void BackupAllNode( void *p ) { uint32 i = 0; while(1) { g_delay(BACKUP_ALL_NODE_DELAY_TIME); i++; // __msg("\n\n\n\nThread BackupAllNode has been executed %d times.\n", i); __backup_all_reg_file( ); if(esKRNL_TDelReq(OS_PRIO_SELF) == OS_TASK_DEL_REQ) { __inf("Thread BackupAllNode has been deleted.\n"); esKRNL_TDel(OS_PRIO_SELF); } } }
void _sys_exit(int return_code) { esKRNL_TDel(OS_PRIO_SELF); // 自杀 }
void GUI_LongString_Task(void *arg) { __u32 i; __bool move_flags = ORANGE_FALSE; while(1) { if(esKRNL_TDelReq(EXEC_prioself) == OS_TASK_DEL_REQ) { break; } orange_Dalay(40); LONGSTR_LOCK(); for(i = 0;i < MAX_NR_SHOW;i++) { if(gshow_info[i]) { if(gshow_info[i]->status == LONGSTRING_MOVE) { move_flags = ORANGE_TRUE; break; } } } LONGSTR_UNLOCK(); if(i == MAX_NR_SHOW) { move_flags = ORANGE_FALSE; } if(move_flags == ORANGE_FALSE) { /*need not move*/ sem_wait (&run_sem); } if (GUI_LockAccept() == EPDK_OK) { LONGSTR_LOCK(); for(i = 0;i < MAX_NR_SHOW;i++) { if(gshow_info[i] && gshow_info[i]->status == LONGSTRING_MOVE) { GUI_LongStringMove(gshow_info[i]); orange_Dalay(10); } } LONGSTR_UNLOCK(); GUI_Unlock(); } } esKRNL_TDel(EXEC_prioself); return; }
/** * 从系统消息队列取消息 */ 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; }