@ -158,6 +158,8 @@ hmi_homescreen_setting {
char * cursor_theme ;
int32_t cursor_size ;
uint32_t transition_duration ;
uint32_t surface_id_offset ;
int32_t screen_num ;
} ;
static void *
@ -621,6 +623,8 @@ registry_handle_global(void *data, struct wl_registry *registry, uint32_t name,
ivi_hmi_controller_add_listener ( p_wlCtx - > hmiCtrl ,
& hmi_controller_listener , p_wlCtx ) ;
} else if ( ! strcmp ( interface , " wl_output " ) ) {
p_wlCtx - > hmi_setting - > screen_num + + ;
}
}
@ -1161,6 +1165,9 @@ hmi_homescreen_setting_create(void)
shellSection , " workspace-background-id " ,
& setting - > workspace_background . id , 2001 ) ;
weston_config_section_get_uint (
shellSection , " surface-id-offset " , & setting - > surface_id_offset , 10 ) ;
icon_surface_id = workspace_layer_id + 1 ;
while ( weston_config_next_section ( config , & section , & name ) ) {
@ -1201,8 +1208,8 @@ hmi_homescreen_setting_create(void)
int main ( int argc , char * * argv )
{
struct wlContextCommon wlCtxCommon ;
struct wlContextStruct wlCtx_BackGround ;
struct wlContextStruct wlCtx_Panel ;
struct wlContextStruct * wlCtx_BackGround ;
struct wlContextStruct * wlCtx_Panel ;
struct wlContextStruct wlCtx_Button_1 ;
struct wlContextStruct wlCtx_Button_2 ;
struct wlContextStruct wlCtx_Button_3 ;
@ -1213,12 +1220,11 @@ int main(int argc, char **argv)
int ret = 0 ;
struct hmi_homescreen_setting * hmi_setting ;
struct wlContextStruct * pWlCtxSt = NULL ;
int i = 0 ;
hmi_setting = hmi_homescreen_setting_create ( ) ;
memset ( & wlCtxCommon , 0x00 , sizeof ( wlCtxCommon ) ) ;
memset ( & wlCtx_BackGround , 0x00 , sizeof ( wlCtx_BackGround ) ) ;
memset ( & wlCtx_Panel , 0x00 , sizeof ( wlCtx_Panel ) ) ;
memset ( & wlCtx_Button_1 , 0x00 , sizeof ( wlCtx_Button_1 ) ) ;
memset ( & wlCtx_Button_2 , 0x00 , sizeof ( wlCtx_Button_2 ) ) ;
memset ( & wlCtx_Button_3 , 0x00 , sizeof ( wlCtx_Button_3 ) ) ;
@ -1256,6 +1262,9 @@ int main(int argc, char **argv)
exit ( 1 ) ;
}
wlCtx_BackGround = MEM_ALLOC ( hmi_setting - > screen_num * sizeof ( struct wlContextStruct ) ) ;
wlCtx_Panel = MEM_ALLOC ( hmi_setting - > screen_num * sizeof ( struct wlContextStruct ) ) ;
if ( wlCtxCommon . hmi_setting - > cursor_theme ) {
create_cursors ( & wlCtxCommon ) ;
@ -1265,8 +1274,6 @@ int main(int argc, char **argv)
wlCtxCommon . current_cursor = CURSOR_LEFT_PTR ;
}
wlCtx_BackGround . cmm = & wlCtxCommon ;
wlCtx_Panel . cmm = & wlCtxCommon ;
wlCtx_Button_1 . cmm = & wlCtxCommon ;
wlCtx_Button_2 . cmm = & wlCtxCommon ;
wlCtx_Button_3 . cmm = & wlCtxCommon ;
@ -1275,11 +1282,18 @@ int main(int argc, char **argv)
wlCtx_WorkSpaceBackGround . cmm = & wlCtxCommon ;
/* create desktop widgets */
create_background ( & wlCtx_BackGround , hmi_setting - > background . id ,
for ( i = 0 ; i < hmi_setting - > screen_num ; i + + ) {
wlCtx_BackGround [ i ] . cmm = & wlCtxCommon ;
create_background ( & wlCtx_BackGround [ i ] ,
hmi_setting - > background . id +
( i * hmi_setting - > surface_id_offset ) ,
hmi_setting - > background . filePath ) ;
create_panel ( & wlCtx_Panel , hmi_setting - > panel . id ,
wlCtx_Panel [ i ] . cmm = & wlCtxCommon ;
create_panel ( & wlCtx_Panel [ i ] ,
hmi_setting - > panel . id + ( i * hmi_setting - > surface_id_offset ) ,
hmi_setting - > panel . filePath ) ;
}
create_button ( & wlCtx_Button_1 , hmi_setting - > tiling . id ,
hmi_setting - > tiling . filePath , 0 ) ;
@ -1310,6 +1324,9 @@ int main(int argc, char **argv)
destroyWLContextStruct ( pWlCtxSt ) ;
}
free ( wlCtx_BackGround ) ;
free ( wlCtx_Panel ) ;
destroyWLContextCommon ( & wlCtxCommon ) ;
return 0 ;