static VACTION win_prog_abc_keymap(POBJECT_HEAD pObj, UINT32 key) { VACTION vact = VACT_PASS; switch(key) { case V_KEY_EXIT: case V_KEY_MENU: vact = VACT_CLOSE; break; case V_KEY_2: //guop add 20100927 vact = VACT_CLOSE; ap_send_key(V_KEY_2,TRUE); break; case V_KEY_3: vact = VACT_CLOSE; ap_send_key(V_KEY_3,TRUE); break; case V_KEY_4: vact = VACT_CLOSE; ap_send_key(V_KEY_4,TRUE); break; case V_KEY_5: vact = VACT_CLOSE; ap_send_key(V_KEY_5,TRUE); break; case V_KEY_6: vact = VACT_CLOSE; ap_send_key(V_KEY_6,TRUE); break; case V_KEY_7: vact = VACT_CLOSE; ap_send_key(V_KEY_7,TRUE); break; case V_KEY_8: vact = VACT_CLOSE; ap_send_key(V_KEY_8,TRUE); break; case V_KEY_9: vact = VACT_CLOSE; ap_send_key(V_KEY_9,TRUE); break; default: break; } return vact; }
static PRESULT win_screen_saver_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; VACTION unact; UINT16 vkey; switch(event) { case EVN_PRE_OPEN: { left_offset = RAND(600); top_offset = RAND(300); pObj->frame.uLeft = left_offset; pObj->frame.uTop = top_offset; win_screen_prog_infor(); f_screen_saver_timer = api_start_timer(SCREEN_SAVER_TIMER_NAME_ONE, SCREEN_SAVER_TIMER_INTERVAL_ONE, screen_saver_timer_func_one); } break; case EVN_POST_CLOSE: { OSD_ClearScreen(); } break; case EVN_UNKNOWN_ACTION: vkey = param1&0xFFFF; OSD_ClearScreen(); ap_send_key(vkey, TRUE); ret = PROC_LEAVE; break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_CMD_LEAVE_SAVER) { ret = PROC_LEAVE; } break; default: break; } return ret ; }
static VACTION find_keymap(POBJECT_HEAD pObj, UINT32 key) { VACTION act; switch(key) { case V_KEY_0: case V_KEY_1: case V_KEY_2: case V_KEY_3: case V_KEY_4: case V_KEY_5: case V_KEY_6: case V_KEY_7: case V_KEY_8: case V_KEY_9: act = key - V_KEY_0 + VACT_NUM_0; ap_send_key(V_KEY_ENTER,TRUE); //guop add 20101019 break; case V_KEY_LEFT: act = VACT_CURSOR_LEFT; break; case V_KEY_RIGHT: act = VACT_CURSOR_RIGHT; break; case V_KEY_UP: act = VACT_CURSOR_UP; break; case V_KEY_DOWN: act = VACT_CURSOR_DOWN; break; case V_KEY_EXIT: case V_KEY_MENU: check_ok = FALSE; act = VACT_CLOSE; break; /* case V_KEY_GREEN: act = VACT_CANCEL; break;*/ default: act = VACT_PASS; } return act; }
static PRESULT sm_con_callback(POBJECT_HEAD pObj, VEVENT event, UINT32 param1, UINT32 param2) { PRESULT ret = PROC_PASS; UINT32 i; UINT8 unact; CONTAINER* cont = (CONTAINER*)pObj; UINT8 id = OSD_GetObjID(pObj); POBJECT_HEAD focusObj; switch(event) { case EVN_PRE_OPEN: #if 0 for(i=0;i<9;i++) ComInt2UniStr(display_strs[i], i + 1, 0); #endif if (!submenu_set_items(sub_menu_desc)) { return PROC_LEAVE; } #ifdef EXIT_KEY_EXIT_ALL_MENU exit_key_flag =FALSE; #endif //wincom_open_title(pObj,sub_menu_desc->title_id, 0); //guop break; case EVN_POST_OPEN: break; case EVN_PRE_DRAW: { UINT8 mm_focus_id= OSD_GetFocusID((POBJECT_HEAD)&g_win_mainmenu); UINT8 sm_focus_id= OSD_GetFocusID((POBJECT_HEAD)&g_win_submenu); #if ((defined(OSD_GOLDENMEDIA)) ||(defined(OSD_OCEANBLUE))||(defined(OSD_15))||(defined(OSD_12))) ((POBJECT_HEAD)&g_win_submenu)->frame.uHeight=(sub_menu_desc->item_count)*43+50; #else if((mm_focus_id==1)/*&&((sm_focus_id==1)||(sm_focus_id==2))*/) ((POBJECT_HEAD)&g_win_submenu)->frame.uHeight=W_H+14; else ((POBJECT_HEAD)&g_win_submenu)->frame.uHeight=W_H; #endif }break; case EVN_POST_DRAW: { UINT16 str_id; UINT8 mm_focus_id= OSD_GetFocusID((POBJECT_HEAD)&g_win_mainmenu); UINT8 sm_focus_id= OSD_GetFocusID((POBJECT_HEAD)&g_win_submenu); str_id=mm_item_str_ids[mm_focus_id-1]; OSD_SetTextFieldContent((PTEXT_FIELD)&subm_item_title,STRING_ID,str_id ); OSD_DrawObject((POBJECT_HEAD)&subm_item_title,C_UPDATE_ALL); //item_count = sub_menu_desc->item_count; #if ((defined(OSD_BLACKBERRY))||(defined(OSD_GOLDENMEDIA))||(defined(OSD_OCEANBLUE))||(defined(OSD_15))||(defined(OSD_12))) #else need_draw_signal_status=0; #endif #ifdef OSD_12 #ifdef PREVIEW_SUBMENU switch(mm_focus_id) { case 1: //str_id=RS_MM_SERVICE; if(submenu_open_from_stack) { submenu_open_from_stack=0; if(editchannel_sub_menus[sm_focus_id-1]!=NULL) OSD_ObjOpen(editchannel_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER/* + idx + C_SUBMENU_ID_BASE*/); } break; case 2: //str_id=RS_MM_INSTALLATION; //if(sm_focus_id==1) if(submenu_open_from_stack) { submenu_open_from_stack=0; if(installation_sub_menus[sm_focus_id-1]!=NULL) OSD_ObjOpen(installation_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER/* + idx + C_SUBMENU_ID_BASE*/); } break; #ifdef PREVIEW_SUBMENU //-a by wangyang case 3: if(submenu_open_from_stack) { submenu_open_from_stack=0; if(system_sub_menus[sm_focus_id-1]!=NULL) { /* if(system_sub_menus[sm_focus_id-1]==(POBJECT_HEAD)&g_win_disk_operate) OSD_ObjOpen((POBJECT_HEAD)&g_win_disk_operate, MENU_OPEN_TYPE_OTHER ); else*/ OSD_ObjOpen(system_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER); } } break; case 4: if(submenu_open_from_stack) { submenu_open_from_stack=0; if(preference_sub_menus[sm_focus_id-1]!=NULL) OSD_ObjOpen(preference_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER); } break; case 13: if(submenu_open_from_stack) { submenu_open_from_stack=0; if(network_sub_menus[sm_focus_id-1]!=NULL) OSD_ObjOpen(network_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER); } break; #if 1 case 14: if(submenu_open_from_stack) { submenu_open_from_stack=0; if(sm_focus_id==1) { game_othello_init(); } else if(sm_focus_id==2) { game_sudoku_init(); } if(games_sub_menus[sm_focus_id-1]!=NULL) OSD_ObjOpen(games_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER); } break; #endif case 15: if(submenu_open_from_stack) { submenu_open_from_stack=0; if(ca_sub_menus[sm_focus_id-1]!=NULL) OSD_ObjOpen(ca_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER); } break; case 16: if(submenu_open_from_stack) { submenu_open_from_stack=0; if(upg_sub_menus[sm_focus_id-1]!=NULL) OSD_ObjOpen(upg_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER); } break; #endif default: break; } #endif #else #ifdef PREVIEW_SUBMENU switch(mm_focus_id) { case 1: //str_id=RS_MM_SERVICE; if(submenu_open_from_stack) { submenu_open_from_stack=0; if(editchannel_sub_menus[sm_focus_id-1]!=NULL) OSD_ObjOpen(editchannel_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER/* + idx + C_SUBMENU_ID_BASE*/); } break; case 2: //str_id=RS_MM_INSTALLATION; //if(sm_focus_id==1) if(submenu_open_from_stack) { submenu_open_from_stack=0; if(installation_sub_menus[sm_focus_id-1]!=NULL) OSD_ObjOpen(installation_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER/* + idx + C_SUBMENU_ID_BASE*/); } break; #ifdef PREVIEW_SUBMENU //-a by wangyang case 3: if(submenu_open_from_stack) { submenu_open_from_stack=0; if(system_sub_menus[sm_focus_id-1]!=NULL) { /* if(system_sub_menus[sm_focus_id-1]==(POBJECT_HEAD)&g_win_disk_operate) OSD_ObjOpen((POBJECT_HEAD)&g_win_disk_operate, MENU_OPEN_TYPE_OTHER ); else*/ OSD_ObjOpen(system_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER); } } break; case 4: if(submenu_open_from_stack) { submenu_open_from_stack=0; if(preference_sub_menus[sm_focus_id-1]!=NULL) OSD_ObjOpen(preference_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER); } break; case 9: if(submenu_open_from_stack) { submenu_open_from_stack=0; if(network_sub_menus[sm_focus_id-1]!=NULL) OSD_ObjOpen(network_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER); } break; #if 1 case 10: if(submenu_open_from_stack) { submenu_open_from_stack=0; if(sm_focus_id==1) { game_othello_init(); } else if(sm_focus_id==2) { game_sudoku_init(); } if(games_sub_menus[sm_focus_id-1]!=NULL) OSD_ObjOpen(games_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER); } break; #endif case 11: if(submenu_open_from_stack) { submenu_open_from_stack=0; if(ca_sub_menus[sm_focus_id-1]!=NULL) OSD_ObjOpen(ca_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER); } break; case 12: if(submenu_open_from_stack) { submenu_open_from_stack=0; if(upg_sub_menus[sm_focus_id-1]!=NULL) OSD_ObjOpen(upg_sub_menus[sm_focus_id-1],MENU_OPEN_TYPE_OTHER); } break; #endif default: break; } #endif #endif //if(item_count<3) //OSD_SetObjRect(&subm_item_bg,CON_L,CON_T,CON_W,CON_H*2); //else //OSD_SetObjRect(&subm_item_bg,CON_L,CON_T,CON_W,CON_H*item_count+2); //OSD_DrawObject((POBJECT_HEAD)&subm_item_bg,C_UPDATE_ALL); }break; case EVN_PRE_CLOSE: /* Make OSD not flickering */ *((UINT32*)param2) &= ~C_CLOSE_CLRBACK_FLG; //OSD_DrawObject((POBJECT_HEAD)&g_win_submenu,C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS);//albert.li del break; case EVN_POST_CLOSE: enter_system_flag=FALSE; #if ((defined(OSD_BLACKBERRY))||(defined(OSD_GOLDENMEDIA))||(defined(OSD_OCEANBLUE))/*||(defined(OSD_15))*/) #ifdef EXIT_KEY_EXIT_ALL_MENU if(exit_key_flag) api_full_screen_play(); #endif #else api_full_screen_play(); #endif #if ((defined(OSD_BLACKBERRY))||(defined(OSD_GOLDENMEDIA))||(defined(OSD_OCEANBLUE))||(defined(OSD_15))||(defined(OSD_12))) #else need_draw_signal_status=1; #endif #ifdef EXIT_KEY_EXIT_ALL_MENU #ifdef MINI_INFO_BAR//wdh 2012.2.3 对此客户,进入service 的submenu项直接按推出键会出现信号条没消除掉,原因是把INFO BAR 改小以后没有刷新的这块区域 win_progname_signal_close(); #endif if(exit_key_flag ==FALSE ) { exit_submenu_flag_mute =TRUE; exit_submenu_flag_pause =TRUE; exit_submenu_flag_rec =TRUE; ap_send_key(V_KEY_MENU, TRUE); } else { exit_key_flag =FALSE; } #else ap_send_key(V_KEY_MENU, TRUE);//albert.li add #endif break; case EVN_UNKNOWN_ACTION: #ifdef PREVIEW_SUBMENU unact = (VACTION)(param1>>16) ; if((unact == VACT_FOCUS_UP)||(unact == VACT_FOCUS_DOWN)) ; else #endif submenu_unknown_act(sub_menu_desc, (VACTION)(param1>>16)); ret = PROC_LOOP; break; case EVN_MSG_GOT: if(param1 == CTRL_MSG_SUBTYPE_CMD_STO && param2 == USB_STATUS_OVER) { #ifdef PREVIEW_SUBMENU //-a by wangyang UINT8 sm_focus_id= OSD_GetFocusID((POBJECT_HEAD)&g_win_submenu); #endif //storage_dev_mount_hint(1); submenu_set_items(sub_menu_desc); submenu_show(); OSD_TrackObject(pObj, C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS); // if all sub menu items are inactive, exit sub menu if (!submenu_active(sub_menu_desc)) { UINT32 hkey; ap_vk_to_hk(0, V_KEY_EXIT, &hkey); ap_send_msg(CTRL_MSG_SUBTYPE_KEY, hkey, FALSE); } #ifdef USB_MP_SUPPORT #ifdef USB_SAFELY_REMOVE_SUPPORT #ifndef DISK_MANAGER_SUPPORT extern UINT8 g_show_usb_safely_removed; if (g_show_usb_safely_removed) { g_show_usb_safely_removed = 0; UINT8 back_saved; win_compopup_init(WIN_POPUP_TYPE_OK); win_compopup_set_msg(NULL, NULL, RS_USB_SAFELY_REMOVE_SUCCESS); ap_clear_all_message(); win_compopup_open_ext(&back_saved); } #endif #endif #endif #ifdef PREVIEW_SUBMENU //-a by wangyang if(sub_menu_desc->title_id==RS_MM_SYSTEM) { if((sm_focus_id ==4)||(sm_focus_id ==5) ||(sm_focus_id ==6)) { OSD_DrawFill(SUBMENU_W_L, SUBMENU_W_T, (SUBMENU_W_W), (SUBMENU_W_H), OSD_TRANSPARENT_COLOR, NULL); OSD_ObjOpen((POBJECT_HEAD)&win_info_con, MENU_OPEN_TYPE_OTHER ); } } else if (sub_menu_desc->title_id==RS_MM_UPGRADE) { if((sm_focus_id ==3)||(sm_focus_id==4)) { OSD_DrawFill(SUBMENU_W_L, SUBMENU_W_T, (SUBMENU_W_W), (SUBMENU_W_H), OSD_TRANSPARENT_COLOR, NULL); OSD_ObjOpen((POBJECT_HEAD)&win_rs232upg_con, MENU_OPEN_TYPE_OTHER ); } } #endif } #ifdef PREVIEW_SUBMENU //-a by wangyang { UINT8 sm_focus_id; sm_focus_id= OSD_GetFocusID((POBJECT_HEAD)&g_win_submenu); #if !defined (MAIN_CHIP_M3601S) && !defined (M3606_NON_NETWORK) if (sub_menu_desc->title_id==RS_MM_NETWORK) { if((sm_focus_id ==1)) { TestNetStatus(); } } #endif } #endif #ifdef NETWORK_SUPPORT #ifdef WIFI_SUPPORT if(param1 == CTRL_MSG_SUBTYPE_CMD_WIFI_CTRL_MSG && (param2 == WIFI_MSG_DEVICE_PLUG_IN||param2 == WIFI_MSG_DEVICE_PLUG_OUT)) { //storage_dev_mount_hint(1); submenu_set_items(sub_menu_desc); submenu_show(); OSD_TrackObject(pObj, C_DRAW_SIGN_EVN_FLG | C_UPDATE_FOCUS); // if all sub menu items are inactive, exit sub menu if (!submenu_active(sub_menu_desc)) { UINT32 hkey; ap_vk_to_hk(0, V_KEY_EXIT, &hkey); ap_send_msg(CTRL_MSG_SUBTYPE_KEY, hkey, FALSE); } } #endif #endif default: break; } return ret; }
static VACTION sm_item_con_keymap(POBJECT_HEAD pObj, UINT32 key) { VACTION act; UINT8 id = OSD_GetObjID(pObj) + sub_menu_desc->list_top; switch(key) { case V_KEY_RIGHT: case V_KEY_ENTER: act = VACT_ENTER; break; #ifdef PREVIEW_SUBMENU case V_KEY_FAV: act = VACT_ENTER; ap_send_key(V_KEY_FAV, TRUE); break; case V_KEY_RED: act = VACT_ENTER; ap_send_key(V_KEY_RED, TRUE); break; case V_KEY_GREEN: act = VACT_ENTER; ap_send_key(V_KEY_GREEN, TRUE); break; case V_KEY_YELLOW: act = VACT_ENTER; ap_send_key(V_KEY_YELLOW, TRUE); break; case V_KEY_BLUE: act = VACT_ENTER; ap_send_key(V_KEY_BLUE, TRUE); break; #ifdef RC29_A case V_KEY_F1: #else case V_KEY_FIND://F1 #endif if((id==1)&&(enter_system_flag==TRUE)) { break; } act = VACT_ENTER; #ifdef RC29_A ap_send_key(V_KEY_F1, TRUE); #else ap_send_key(V_KEY_FIND, TRUE); #endif break; #ifdef RC29_A case V_KEY_F2: #else case V_KEY_ZOOM://F2 #endif if((id==1)&&(enter_system_flag==TRUE)) { break; } act = VACT_ENTER; #ifdef RC29_A ap_send_key(V_KEY_F2, TRUE); #else ap_send_key(V_KEY_ZOOM, TRUE); #endif break; #if (defined(RC19_B)||defined(RC19_C)||defined(RC19_D)||defined(RC19_F)) case V_KEY_TEXT://F3 #ifdef RC_PHILIPS_RCMM case V_KEY_MP: #endif #elif defined(RC29_A) case V_KEY_F3: #else case V_KEY_MP://F3 #endif act = VACT_ENTER; #ifdef RC29_A ap_send_key(V_KEY_F3, TRUE); #else ap_send_key(V_KEY_MP, TRUE); #endif break; case V_KEY_MUTE: act = VACT_ENTER; ap_send_key(V_KEY_MUTE, TRUE); break; #endif /*albert.li add 2011.5.16*/ /* case V_KEY_UP: case V_KEY_DOWN: act=VACT_MENU_ITEM_CHANGE; break;*/ /*albert.li add*/ default: act = VACT_PASS; break; } return act; }
static VACTION wifi_password_keymap(POBJECT_HEAD pObj, UINT32 key) { VACTION act; switch(key) { case V_KEY_0: case V_KEY_1: case V_KEY_2: case V_KEY_3: case V_KEY_4: case V_KEY_5: case V_KEY_6: case V_KEY_7: case V_KEY_8: case V_KEY_9: #ifdef RC_PHILIPS_RCMM case V_KEY_A: case V_KEY_S: case V_KEY_D: case V_KEY_F: case V_KEY_G: case V_KEY_H: case V_KEY_J: case V_KEY_K: case V_KEY_L: case V_KEY_Z: case V_KEY_X: case V_KEY_C: case V_KEY_V: case V_KEY_B: case V_KEY_N: case V_KEY_M: case V_KEY_WWW: case V_KEY_SPACE: case V_KEY_COMMA: case V_KEY_sh_0: case V_KEY_sh_1: case V_KEY_sh_2: case V_KEY_sh_3: case V_KEY_sh_4: case V_KEY_sh_5: case V_KEY_sh_6: case V_KEY_sh_7: case V_KEY_sh_8: case V_KEY_sh_9: case V_KEY_sh_A: case V_KEY_sh_S: case V_KEY_sh_D: case V_KEY_sh_F: case V_KEY_sh_G: case V_KEY_sh_H: case V_KEY_sh_J: case V_KEY_sh_K: case V_KEY_sh_L: case V_KEY_sh_Z: case V_KEY_sh_X: case V_KEY_sh_C: case V_KEY_sh_V: case V_KEY_sh_B: case V_KEY_sh_N: case V_KEY_sh_M: /*case V_KEY_sh_WWW:*/ case V_KEY_sh_COM: case V_KEY_alt_0: case V_KEY_alt_1: case V_KEY_alt_2: case V_KEY_alt_3: case V_KEY_alt_4: case V_KEY_alt_5: case V_KEY_alt_6: case V_KEY_alt_7: case V_KEY_alt_8: case V_KEY_alt_9: case V_KEY_alt_A: case V_KEY_alt_S: case V_KEY_alt_D: case V_KEY_alt_F: case V_KEY_alt_G:case V_KEY_alt_H: case V_KEY_alt_J: case V_KEY_alt_K: case V_KEY_alt_L: case V_KEY_alt_COMMA: case V_KEY_alt_Z: case V_KEY_alt_X:/* case V_KEY_alt_C:*/ case V_KEY_alt_V: case V_KEY_alt_B: case V_KEY_alt_N: /* case V_KEY_alt_M:*/ case V_KEY_alt_WWW: /*case V_KEY_alt_COM: */ #endif act = key - V_KEY_0 + VACT_NUM_0; ap_send_key(V_KEY_ENTER,TRUE); //guop add 20120117 break; case V_KEY_LEFT: act = VACT_CURSOR_LEFT; break; case V_KEY_RIGHT: act = VACT_CURSOR_RIGHT; break; case V_KEY_UP: act = VACT_CURSOR_UP; break; case V_KEY_DOWN: act = VACT_CURSOR_DOWN; break; #ifdef RC_PHILIPS_RCMM case V_KEY_sh_ESC: #endif case V_KEY_EXIT: case V_KEY_MENU: wifi_password_check_ok = FALSE; act = VACT_CLOSE; break; /* case V_KEY_GREEN: act = VACT_CANCEL; break;*/ default: act = VACT_PASS; } return act; }