int32 REG_Exit( void ) { #ifdef ENABLE_THREAD while( esKRNL_TDelReq(tid1) != OS_TASK_NOT_EXIST ) esKRNL_TimeDly(100); while( esKRNL_TDelReq(tid0) != OS_TASK_NOT_EXIST ) esKRNL_TimeDly(100); #else __refresh_all_reg_file( ); __msg("has refreshed all reg files.\n"); #endif // #ifdef ENABLE_THREAD return __reg_exit( ); }
int __sdlx_init(void *arg) { awargs[1] = (char *)arg; GUI_LockExtMsg(); // 锁住消息锁 esKRNL_TimeDly(1); // 进行调度 GUI_UnLockExtMsg(); // 解开消息锁 // GUI_Init(); // ucGUI初始化 atexit(SDL_Quit); // 勾住Quit awargs[0] = __sdlx_getenvr(); /* 得到工作目录 */ SDL_main(2, awargs); // 进入主循环 _exitcs(); // atexit结束 esKRNL_TimeDly(1); // 进行调度 return EPDK_OK; }
/* **************************************************************************************************** *Name : dsk_send_rmmod_usbh_cmd *Prototype : __s32 dsk_send_rmmod_usbh_cmd(void) *Arguments : void *Return : EPDK_OK 发送成功 * EPDK_FAIL 发送失败 *Description : 向usbh_monitor发送卸载host驱动命令 *Other : 命令发送完毕后,delay 1s 确保卸载成功 **************************************************************************************************** */ __s32 dsk_send_rmmod_usbh_cmd(void) { ES_FILE *usbm_dev_hadle = NULL; __s32 ret = 0; __msg("%s %d :send_rmmod_usbh_cmd \n", __FUNCTION__, __LINE__); /* 打开 hwsc 设备 */ usbm_dev_hadle = eLIBs_fopen("b:\\HWSC\\hwsc", "r"); if(usbm_dev_hadle == NULL){ __wrn("ERR: send_rmmod_usbh_cmd: eLIBs_fopen failed\n"); return EPDK_FAIL; } /* 发送加载host命令 */ ret = eLIBs_fioctrl(usbm_dev_hadle, DEV_IOC_USR_HWSC_APP_RMMOD_USBH, 0, NULL); if(ret == EPDK_FAIL){ __msg("ERR: send_rmmod_usbh_cmd: execute DEV_IOC_USR_HWSC_APP_RMMOD_USBH failed\n"); eLIBs_fclose(usbm_dev_hadle); usbm_dev_hadle = NULL; return EPDK_FAIL; } /* 关闭 hwsc 设备 */ eLIBs_fclose(usbm_dev_hadle); usbm_dev_hadle = NULL; /* delay 1s 确保usb_monitor有足够的时间卸载 */ esKRNL_TimeDly(400); return EPDK_OK; }
/* **************************************************************************************************** *Name : dsk_send_insmod_usbh_cmd *Prototype : __s32 dsk_send_insmod_usbh_cmd(void) *Arguments : void *Return : EPDK_OK 发送成功 * EPDK_FAIL 发送失败 *Description : 向usbh_monitor发送加载host驱动命令 *Other : 命令发送完毕后,delay 2s 确保加载成功 **************************************************************************************************** */ __s32 dsk_send_insmod_usbh_cmd(void) { ES_FILE *usbm_dev_hadle = NULL; __s32 ret = 0; __msg("%s %d :send_insmod_usbh_cmd \n", __FUNCTION__, __LINE__); /* 打开 hwsc 设备 */ usbm_dev_hadle = eLIBs_fopen("b:\\HWSC\\hwsc", "r"); if(usbm_dev_hadle == NULL){ __wrn("ERR: send_insmod_usbh_cmd: eLIBs_fopen failed\n"); return EPDK_FAIL; } /* 发送加载host命令 */ ret = eLIBs_fioctrl(usbm_dev_hadle, DEV_IOC_USR_HWSC_APP_INSMOD_USBH, 0, NULL); if(ret == EPDK_FAIL){ __msg("ERR: send_insmod_usbh_cmd: execute DEV_IOC_USR_HWSC_APP_INSMOD_USBH failed\n"); eLIBs_fclose(usbm_dev_hadle); usbm_dev_hadle = NULL; return EPDK_FAIL; } /* 关闭 hwsc 设备 */ eLIBs_fclose(usbm_dev_hadle); usbm_dev_hadle = NULL; /*wait to install host driver less than 2 second*/ esKRNL_TimeDly(400); return EPDK_OK; }
void sys_sleep(u32 ms) { if(ms < 10) ms = 10; esKRNL_TimeDly(ms/10); }
/** * 释放系统消息队列消息传输通道 */ __s32 msg_srv_deinit_ksrv_channel(__memit_ctr_t *emit) { while( esKRNL_TDelReq(emit->ksrv_th_id) != OS_TASK_NOT_EXIST ) { esKRNL_TimeDly(1); } return EPDK_OK; }
__s32 INIT_MClose(__mp *mp) { while( esKRNL_TDelReq(init_data.init_tid) != OS_TASK_NOT_EXIST ) { esKRNL_TimeDly(1); } return EPDK_OK; }
/************************************************************************ * Function: backlayer_delete_layer * Description: ɾ³ý±³¾°Í¼²ã * Input: __u32 layer_handle: ±³¾°Í¼²ã¾ä±ú * Output: * Return: *************************************************************************/ void backlayer_delete_layer (ES_FILE *de_hdle, __u32 layer_handle) { if (layer_handle != 0) { __u32 arg[3]; arg[0] = layer_handle; arg[1] = 0; arg[2] = 0; eLIBs_fioctrl(de_hdle, DISP_CMD_LAYER_RELEASE, 0, (void *)arg); } esKRNL_TimeDly(3);//add by bayden, ÑÓʱ30ms£¬µÈ´ýÏÔʾÇý¶¯VÖжϵ½´ï return; }
__s32 DRV_lcd_close(__u32 sel) { __u32 i = 0; __lcd_flow_t *flow; BSP_disp_lcd_close_befor(sel); flow = BSP_disp_lcd_get_close_flow(sel); for(i=0; i<flow->func_num; i++) { flow->func[i].func(sel); esKRNL_TimeDly(flow->func[i].delay / 10); } BSP_disp_lcd_close_after(sel); return EPDK_OK; }
//================================================================== //function name: TxtLayer_Destroy //author: //date: 2008-10-7 //description: TxtLayer destroy //parameters: //return: if success return // if fail return the number of fail //modify history: //================================================================== //------------------------------------------------------------------------------------------------------------ __u32 TxtLayer_Destroy(txtlayer_man_t *ptxtlayer) { // __u8 err; __u32 ret; ptxtlayer->status |= TXTBOX_REQDEL; while(ptxtlayer->status & TXTBOX_ONDRAW) { esKRNL_TimeDly(3); } ret = TxtBuffer_Destroy(ptxtlayer->txtbuffer); if(ret!= OK) { return __LINE__; } ret = TxtList_Destroy(ptxtlayer->txtlist); if(ret != OK) { return __LINE__; } if(ptxtlayer->focus_lyr) { GUI_LyrWinDelete(ptxtlayer->focus_lyr); ptxtlayer->foucs_FB = NULL; ptxtlayer->focus_lyr = 0; } ptxtlayer->status &= (~TXTBOX_REQDEL); TXTBOX_MEMFREE(ptxtlayer); return OK; }
/** * 从系统消息队列取消息 */ static void ksrv_msg_thread(void *arg) { __memit_ctr_t *emit = (__memit_ctr_t *)arg; __u8 error; /* 清空按键消息队列 */ while(1) { __u32 usrmsg; //usrmsg = esKSRV_GetLowMsg(); usrmsg = esKSRV_GetMsg(); if( usrmsg == 0 ) break; } while(1) { __u32 usrmsg; __msrv_msg_t *pmsg; __u32 tmp; while(1) { if( esKRNL_TDelReq(OS_PRIO_SELF) == OS_TASK_DEL_REQ ) { esKRNL_TDel(OS_PRIO_SELF); } usrmsg = esKSRV_GetMsg(); // 系统消息队列 if(usrmsg) break; esKRNL_TimeDly(2); } esKRNL_SemPend(emit->p_array_sem, 0, &error); pmsg = get_msg_buf(emit); //eLIBs_memset(pmsg, 0, sizeof(__msrv_msg_t)); esKRNL_SemPost(emit->p_array_sem); if( (usrmsg & 0xffff0000) == KMSG_USR_CLS_KEY) // key 按键消息 { tmp = usrmsg & 0x0000ffff; __msg(" usrmsg = %d \n", tmp); switch (usrmsg) { #if( EPDK_CASE == EPDK_LIVE_BOX ) case KMSG_USR_KEY_POWER: /* standby */ pmsg->type = DSK_MSG_STANDBY; break; case KMSG_USR_KEY_REPEATE: /* 切换到色差输出 */ pmsg->type = DSK_MSG_SWITCH_YPBPR; break; case KMSG_USR_KEY_CLEAR: /* 切换到cvbs输出 */ pmsg->type = DSK_MSG_SWITCH_CVBS; break; case KMSG_USR_KEY_DISPLAY: /* 切换到hdmi输出 */ pmsg->type = DSK_MSG_SWITCH_HDMI; break; case KMSG_USR_KEY_SHIFT: pmsg->type = GUI_MSG_KEY; pmsg->id = GUI_MSG_KEY_SHIFT; break; case KMSG_USR_KEY_SEL: pmsg->type = GUI_MSG_KEY; pmsg->id = GUI_MSG_KEY_SEL; break; case KMSG_USR_KEY_NUM4: pmsg->type = DSK_MSG_SWITCH_AUDIO_IF; pmsg->data = AUDIO_DEV_IF_CODEC; break; case KMSG_USR_KEY_NUM5: pmsg->type = DSK_MSG_SWITCH_AUDIO_IF; pmsg->data = AUDIO_DEV_IF_IIS; break; case KMSG_USR_KEY_NUM6: pmsg->type = DSK_MSG_SWITCH_AUDIO_IF; pmsg->data = AUDIO_DEV_IF_SPDIF; break; #endif #if( EPDK_CASE == EPDK_LIVE_TOUCH ) case KMSG_USR_KEY_NUM8: /* hold 按键 */ pmsg->type = DSK_MSG_HOLD; break; case KMSG_USR_KEY_NUM7: // 禁音功能 pmsg->type = DSK_MSG_BAN_VOLUME; pmsg->data = 0; break; #endif case KMSG_USR_KEY_GOTO: pmsg->type = DSK_MSG_APP_EXIT; /* 一键回主界面 */ break; case KMSG_USR_KEY_POWEROFF: // 关机消息 pmsg->type = DSK_MSG_POWER_OFF; break; case KMSG_USR_KEY_NUM9: pmsg->type = GUI_MSG_KEY; pmsg->id = GUI_MSG_KEY_ESCAPE; break; case KMSG_USR_KEY_VOICE_UP: pmsg->type = GUI_MSG_KEY; pmsg->id = GUI_MSG_KEY_VADD; break; case KMSG_USR_KEY_VOICE_DOWN: pmsg->type = GUI_MSG_KEY; pmsg->id = GUI_MSG_KEY_VDEC; break; case KMSG_USR_KEY_UP: pmsg->type = GUI_MSG_KEY; pmsg->id = GUI_MSG_KEY_UP; break; case KMSG_USR_KEY_DOWN : pmsg->type = GUI_MSG_KEY; pmsg->id = GUI_MSG_KEY_DOWN; break; case KMSG_USR_KEY_LEFT : pmsg->type = GUI_MSG_KEY; pmsg->id = GUI_MSG_KEY_LEFT; break; case KMSG_USR_KEY_RIGHT : pmsg->type = GUI_MSG_KEY; pmsg->id = GUI_MSG_KEY_RIGHT; break; case KMSG_USR_KEY_ENTER: pmsg->type = GUI_MSG_KEY; pmsg->id = GUI_MSG_KEY_ENTER; break; case KMSG_USR_KEY_RISE: pmsg->type = GUI_MSG_KEY; pmsg->id = GUI_MSG_KEY_RISE; break; default: continue; } } else /* system 消息 */ { #if 0 if( (usrmsg & 0x0000ffff) == KMSG_USR_SYSTEM_KNOB_KEY )//add by libaiao,2011.11.21 { __u32 ret; // pmsg->type = GUI_MSG_KEY; pmsg->type = DSK_MSG_KNOB_KEY; ret = (usrmsg & KMSG_USR_SYSTEM_FS_PARA_MASK)>>16; // pmsg->data = (usrmsg & KMSG_USR_SYSTEM_FS_PARA_MASK)>>16; if(ret) { pmsg->data =GUI_MSG_KEY_LONGVADD; // pmsg->id = GUI_MSG_KEY_VADD; // eLIBs_printf(" pmsg->data = GUI_MSG_KEY_LONGVADD \n"); } else { // eLIBs_printf(" pmsg->data = GUI_MSG_KEY_LONGVDEC \n"); pmsg->data =GUI_MSG_KEY_LONGVDEC; // pmsg->id = GUI_MSG_KEY_VDEC; } // continue; } else #endif if( (usrmsg & 0x0000ffff) == KMSG_USR_SYSTEM_FS_PLUGIN ) { pmsg->type = DSK_MSG_FS_PART_PLUGIN; pmsg->data = (usrmsg & KMSG_USR_SYSTEM_FS_PARA_MASK)>>16; }