- edited description
Implementation of Loading Screen
Issue #253
new
Implementation reason
Currently during booting of the system, only messages from booting manager are printed. It is required to show some user-friendly screen.
Generic Description
The screen shows during start of the system. It uses oC_Boot_GetCurrentBootLevel
to update progress bar with active loading status.
typedef enum { ScreenID_Loading , ScreenID_Login , ScreenID_SystemHandler , ScreenID_NumberOfElements } ScreenID_t; typedef enum { WidgetID_Loading_Logo = 0, WidgetID_Loading_LoadingString , WidgetID_Loading_ProgressBar , WidgetID_Loading_Terminal , WidgetID_Loading_NumberOfElements , } WidgetID_t; extern oC_WidgetScreen_ScreenId_t cgraphic_Loading_Prepare( oC_WidgetScreen_t Screen , oC_WidgetScreen_UserContext_t Context , oC_WidgetScreen_ScreenId_t ScreenID ); extern oC_WidgetScreen_ScreenId_t cgraphic_Loading_Handler( oC_WidgetScreen_t Screen , oC_WidgetScreen_UserContext_t Context , oC_WidgetScreen_ScreenId_t ScreenID ); extern const oC_WidgetScreen_WidgetDefinition_t cgraphic_Loading_Widgets[WidgetID_Loading_NumberOfElements]; oC_WidgetScreen_Value_t cgraphic_Loading_GetValueForProgressBar( oC_WidgetScreen_t Screen, oC_WidgetScreen_UserContext_t Context, oC_WidgetScreen_WidgetIndex_t Index ); const oC_WidgetScreen_WidgetDefinition_t cgraphic_Loading_Widgets[WidgetID_Loading_NumberOfElements] = { [ WidgetID_Loading_Logo ] = { .Type = oC_WidgetScreen_WidgetType_Image, .Position = { } , .Height = 0 , .Width = 0 , .ZPosition = 1 , .Palette = cgraphics_WidgetOnWhitePalette, .DrawStyle = cgraphic_DrawStyle_Default, .ImagePath = "/flash/chocoos.png", } , [ WidgetID_Loading_LoadingString ] = { .Type = oC_WidgetScreen_WidgetType_TextBox, .Position = { } , .Height = 0 , .Width = 0 , .ZPosition = 1 , .Palette = cgraphics_WidgetOnWhitePalette, .DrawStyle = cgraphic_DrawStyle_Default, .String = { .DefaultString = "Loading" , .Font = oC_Font_(Consolas8pt), .TextAlign = oC_WidgetScreen_TextAlign_Left , .VerticalTextAlign = oC_WidgetScreen_VerticalTextAlign_Center , .UpdateStringHandler = NULL, } , } , [ WidgetID_Loading_ProgressBar ] = { .Type = oC_WidgetScreen_WidgetType_ProgressBar, .Position = { } , .Height = 0 , .Width = 0 , .ZPosition = 1 , .Palette = cgraphics_WidgetOnWhitePalette, .DrawStyle = cgraphic_DrawStyle_Default, .GetValueHandler = cgraphic_Loading_GetValueForProgressBar, } , [ WidgetID_Loading_Terminal ] = { .Type = oC_WidgetScreen_WidgetType_ProgressBar, .Position = { } , .Height = 0 , .Width = 0 , .ZPosition = 1 , .Palette = cgraphics_WidgetOnWhitePalette, .DrawStyle = cgraphic_DrawStyle_Default, } , }; static const oC_WidgetScreen_ScreenDefinition_t Definitions[] = { [ ScreenID_Loading ] = { .Position = { 0, 0 } , .Height = 480 , .Width = 272 , .BackgroundColor = Color_White , .ColorFormat = oC_ColorFormat_RGB888 , .PrepareHandler = cgraphic_Loading_Prepare , .Handler = cgraphic_Loading_Handler , .WidgetsDefinitions = cgraphic_Loading_Widgets , .NumberOfWidgetsDefinitions = WidgetID_Loading_NumberOfElements , .RefreshPeriod = ms(250), } ,
Bitbucket
https://bitbucket.org/chocos/chocos/issues/253/implementation-of-loading-screen
Trello
Story
- [ #240 ] - Preparation of the sample graphic program
List of requirements
Comments (10)
-
reporter -
reporter - edited description
- changed title to Implementation of Loading Screen
-
reporter - edited description
-
reporter - edited description
-
reporter - edited description
-
reporter - edited description
-
reporter - edited description
-
reporter - edited description
-
reporter - edited description
-
reporter - edited description
- Log in to comment