Ejemplo n.º 1
0
Archivo: reg.c Proyecto: silview/C100A
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( );
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
/*
****************************************************************************************************
*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;
}
Ejemplo n.º 4
0
/*
****************************************************************************************************
*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;
}
Ejemplo n.º 5
0
void sys_sleep(u32 ms)
{
	if(ms < 10)
		ms = 10;

	esKRNL_TimeDly(ms/10);
}
Ejemplo n.º 6
0
/**
 * 释放系统消息队列消息传输通道
 */
__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;
}
Ejemplo n.º 7
0
__s32 INIT_MClose(__mp *mp)
{	
	while( esKRNL_TDelReq(init_data.init_tid) != OS_TASK_NOT_EXIST )
	{
		esKRNL_TimeDly(1);
	}
	
    return EPDK_OK;
}
Ejemplo n.º 8
0
/************************************************************************
* 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;
}
Ejemplo n.º 9
0
__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;
}
Ejemplo n.º 10
0
//==================================================================
//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;
	
}     
Ejemplo n.º 11
0
/** 
 * 从系统消息队列取消息
 */
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;				
			}