⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guiapp.c

📁 IT projecotr reference design.
💻 C
📖 第 1 页 / 共 3 页
字号:
    KCODE_ENUM key;
    char * const kName;
}
    keyDict[] =
{
    { KCODE_NIL              , "KCODE_NIL             " },
    { KCODE_IR_POWER         , "KCODE_IR_POWER        " },
    { KCODE_IR_SOURCE        , "KCODE_IR_SOURCE       " },
    { KCODE_IR_LEFT_ARROW    , "KCODE_IR_LEFT_ARROW   " },
    { KCODE_IR_RIGHT_ARROW   , "KCODE_IR_RIGHT_ARROW  " },
    { KCODE_IR_BLANK         , "KCODE_IR_BLANK        " },
    { KCODE_IR_ZOOM_INC      , "KCODE_IR_ZOOM_INC     " },
    { KCODE_IR_KEYSTONE_INC  , "KCODE_IR_KEYSTONE_INC " },
    { KCODE_IR_BRIGHT_INC    , "KCODE_IR_BRIGHT_INC   " },
    { KCODE_IR_ZOOM_DEC      , "KCODE_IR_ZOOM_DEC     " },
    { KCODE_IR_KEYSTONE_DEC  , "KCODE_IR_KEYSTONE_DEC " },
    { KCODE_IR_BRIGHT_DEC    , "KCODE_IR_BRIGHT_DEC   " },
    { KCODE_IR_EXIT          , "KCODE_IR_EXIT         " },
    { KCODE_IR_MENU          , "KCODE_IR_MENU         " },
    { KCODE_IR_SELECT        , "KCODE_IR_SELECT       " },
    { KCODE_IR_LEFTCLICK     , "KCODE_IR_LEFTCLICK    " },
    { KCODE_IR_RIGHTCLICK    , "KCODE_IR_RIGHTCLICK   " },
    { KCODE_IR_LEFTRIGHT     , "KCODE_IR_LEFTRIGHT    " },
    { KCODE_IR_MM_UP         , "KCODE_IR_MM_UP        " },
    { KCODE_IR_MM_DOWN       , "KCODE_IR_MM_DOWN      " },
    { KCODE_IR_MM_LEFT       , "KCODE_IR_MM_LEFT      " },
    { KCODE_IR_MM_RIGHT      , "KCODE_IR_MM_RIGHT     " },
    { KCODE_IR_MM_LEFTCLICK  , "KCODE_IR_MM_LEFTCLICK " },
    { KCODE_IR_MM_RIGHTCLICK , "KCODE_IR_MM_RIGHTCLICK" },
    { KCODE_IR_MM_LEFTRIGHT  , "KCODE_IR_MM_LEFTRIGHT " },
    { KCODE_IR_NOBUTTON      , "KCODE_IR_NOBUTTON     " },
    { KCODE_PAD_POWER        , "KCODE_PAD_POWER       " },
    { KCODE_PAD_ZOOM         , "KCODE_PAD_ZOOM        " },
    { KCODE_PAD_BRIGHT       , "KCODE_PAD_BRIGHT      " },
    { KCODE_PAD_SOURCE       , "KCODE_PAD_SOURCE      " },
    { KCODE_PAD_KEYSTONE     , "KCODE_PAD_KEYSTONE    " },
    { KCODE_PAD_MENU         , "KCODE_PAD_MENU        " },
    { KCODE_PAD_LEFTRIGHT    , "KCODE_PAD_LEFTRIGHT   " },
    { KCODE_PAD_MM_LEFT      , "KCODE_PAD_MM_LEFT     " },
    { KCODE_PAD_MM_RIGHT     , "KCODE_PAD_MM_RIGHT    " },
    { KCODE_PAD_MM_UP        , "KCODE_PAD_MM_UP       " },
    { KCODE_PAD_MM_DOWN      , "KCODE_PAD_MM_DOWN     " },
    { KCODE_PAD_MM_SELECT    , "KCODE_PAD_MM_SELECT   " },
    { KCODE_PAD_UPDOWN       , "KCODE_PAD_UPDOWN      " }    
};

static const int kCount = sizeof( keyDict ) / sizeof( struct dictEntryStruct );


static void _guiKeycode( UIREP *pRep )
{
    int n;
    
    for( n = 0; n < kCount; n++ )
    {
        if( pRep->key == keyDict[n].key )
        {
            dbmsg_ftrace( DBM_GUI, "guiKey: mouse=%d  x=%3d  y=%3d  key=%s\r\n",
                pRep->mouse, pRep->mouse_x, pRep->mouse_y, keyDict[n].kName );
                
            return;
        }
    }
    
    dbmsg_ftrace( DBM_GUI, "gui: unknown keycode %02x\r\n", pRep -> key );
}

/****************************************************************************/
/* GUI keycode handler.                                                     */
/****************************************************************************/

void guiApp_Handler( KCODE_ENUM key )
{
    GUIMSG msg;
    int16 itemId;
    BOOL autoKeystoneEnabled;
    DP_SOURCEDESC *srcDesc; 
    int16 language;

    if( guiMode == GUI_MODE_LAMPOFF && key != KCODE_PAD_POWER && key != KCODE_IR_POWER )
        return;

    /* for user adjustable menu message, set the default timeout to 30 seconds.  Don't change timeout for */
    /* display only menus */
    if(( guiStyle_IsMenuDisplayed( MENU_SOURCESTATUSMENU )      == FALSE ) &&
       ( guiStyle_IsMenuDisplayed( MENU_WARNINGDIALOG )         == FALSE ) &&
       ( guiStyle_IsMenuDisplayed( MENU_SOURCEOUTOFRANGEMENU )  == FALSE ))    
    {
        osdTimeout = 30000;
    }

    switch (key)
    {
        case KCODE_PAD_MENU:
        case KCODE_IR_MENU:  /* IR remote key */
            if( guiStyle_IsOsdDisplayed() == TRUE )
            {
                if( guiStyle_IsMenuDisplayed( MENU_SOURCESTATUSMENU ) == TRUE )
                {
                    guiStyle_Exit();                    
                    guiStyle_StartMenu( MENU_MAINMENU, NULL );                    
                    osdTimeout = 30000;
                }
                else
                {
                    guiStyle_Exit();
                }
            }
            else
            {
                guiStyle_StartMenu( MENU_MAINMENU, NULL );
            } 
            break;
            
        case KCODE_PAD_MM_UP:
        case KCODE_IR_MM_UP:
            msg.type = GUIMSG_UP;
            msg.data = NULL;
            guiStyle_SendTopMenuMsg(&msg); 
            break;
        
        case KCODE_PAD_MM_DOWN:
        case KCODE_IR_MM_DOWN:
            msg.type = GUIMSG_DOWN;
            msg.data = NULL;
            guiStyle_SendTopMenuMsg(&msg); 
            break;
            
        case KCODE_PAD_MM_LEFT:
        case KCODE_IR_MM_LEFT:
            language = OSD_GetLanguage();
            /* if RTL language, invert keypress direction */
            if( OSD_GetLanguageDirection( language ) )
            {
                msg.type = GUIMSG_RIGHT;
                msg.data = NULL;
            }
            else
            {
                msg.type = GUIMSG_LEFT;
                msg.data = NULL;
            }
            guiStyle_SendTopMenuMsg(&msg); 
            break;
            
        case KCODE_PAD_MM_RIGHT:
        case KCODE_IR_MM_RIGHT:
            language = OSD_GetLanguage();
            /* if RTL language, invert keypress direction */
            if( OSD_GetLanguageDirection( language ) )
            {
                msg.type = GUIMSG_LEFT;
                msg.data = NULL;
            }
            else
            {
                msg.type = GUIMSG_RIGHT;
                msg.data = NULL;
            }
            guiStyle_SendTopMenuMsg(&msg); 
            break;
        
        case KCODE_PAD_MM_SELECT:
        case KCODE_IR_SELECT:
        case KCODE_IR_MM_LEFTCLICK:
            msg.type = GUIMSG_SELECT;
            msg.data = NULL;
            guiStyle_SendTopMenuMsg(&msg); 
            break;

        case KCODE_IR_EXIT:
            guiStyle_Exit();
            break;
            
        case KCODE_PAD_KEYSTONE:
        case KCODE_IR_KEYSTONE_INC:
            if( guiStyle_IsMenuDisplayed( MENU_KEYSTONEPOPUP ) == FALSE )
            {
        	    EE_GETVAR( UserMachine.Projector.AutoKeystone, autoKeystoneEnabled );
                if( !autoKeystoneEnabled )
                {            
		            if( guiStyle_IsOsdDisplayed() == TRUE )
		            {
                        guiStyle_Exit();
                        osdTimeout = 30000;
                    }
                    guiStyle_StartMenu( MENU_KEYSTONEPOPUP, NULL );
                }
            }
            else
            {
                msg.type = GUIMSG_INC;
                msg.data = 0;
                guiStyle_SendMenuMsg( MENU_KEYSTONEPOPUP, &msg );
            } 
            break;
        
        case KCODE_PAD_BRIGHT:    
        case KCODE_IR_BRIGHT_INC:
            datapath_GetSourceDesc( &srcDesc );    
		    if( srcDesc->sourceActive )
		    {
	            if( guiStyle_IsMenuDisplayed( MENU_BRIGHTNESSPOPUP ) == FALSE )
	            {
	                itemId = ITEM_BRIGHTNESSITEM;
	                msg.type = GUIMSG_VALUE;
	                msg.data = &itemId;
		            if( guiStyle_IsOsdDisplayed() == TRUE )
		            {
	                    guiStyle_Exit();
	                    osdTimeout = 30000;
	                }
	                guiStyle_StartMenu( MENU_BRIGHTNESSPOPUP, &msg );
	            }
	            else
	            {
	                msg.type = GUIMSG_INC;
	                msg.data = 0;
	                guiStyle_SendMenuMsg( MENU_BRIGHTNESSPOPUP, &msg );
	            }  
            }
            break;
            
        case KCODE_PAD_ZOOM:
        case KCODE_IR_ZOOM_INC:
            break;

        case KCODE_IR_KEYSTONE_DEC:
            if( guiStyle_IsMenuDisplayed( MENU_KEYSTONEPOPUP ) == FALSE )
            {
        	    EE_GETVAR( UserMachine.Projector.AutoKeystone, autoKeystoneEnabled );
                if( !autoKeystoneEnabled )
                {
		            if( guiStyle_IsOsdDisplayed() == TRUE )
		            {
                        guiStyle_Exit();
                        osdTimeout = 30000;
                    }
                    guiStyle_StartMenu( MENU_KEYSTONEPOPUP, NULL );
                }
            }
            else
            {
                msg.type = GUIMSG_DEC;
                msg.data = 0;
                guiStyle_SendMenuMsg( MENU_KEYSTONEPOPUP, &msg );
            } 
            break;

        case KCODE_IR_BRIGHT_DEC:
            datapath_GetSourceDesc( &srcDesc );    
		    if( srcDesc->sourceActive )
		    {
	            if( guiStyle_IsMenuDisplayed( MENU_BRIGHTNESSPOPUP ) == FALSE )
	            {
	                itemId = ITEM_BRIGHTNESSITEM;
	                msg.type = GUIMSG_VALUE;
	                msg.data = &itemId;
		            if( guiStyle_IsOsdDisplayed() == TRUE )
		            {
	                    guiStyle_Exit();
	                    osdTimeout = 30000;
	                }
	                guiStyle_StartMenu( MENU_BRIGHTNESSPOPUP, &msg );
	            }
	            else
	            {           
	                msg.type = GUIMSG_DEC;
	                msg.data = 0;
	                guiStyle_SendMenuMsg( MENU_BRIGHTNESSPOPUP, &msg );
	            } 
	        }        
            break;
            
        case KCODE_IR_ZOOM_DEC:
            break;
        
        case KCODE_PAD_POWER:
        case KCODE_IR_POWER:        
            if( guiMode == GUI_MODE_LAMPOFF )  
            {
               sysmon_powerkey(); 
               osdTimeout = 0;
            }
            else if( guiStyle_IsMenuDisplayed( MENU_POWERDOWNMENU ) == TRUE )
            {
                guiStyle_Exit();
                sysmon_powerdown(); 
            }
            else
            {
                guiStyle_Exit();
                guiStyle_StartMenu( MENU_POWERDOWNMENU, 0 );
                
                osdTimeout = 5000;
            }     
            break;            
            
        case KCODE_PAD_SOURCE:
        case KCODE_IR_SOURCE:
            datapath_UserSetConnector( NEXT_CONNECTOR );
            break;
            
        case KCODE_IR_BLANK:
            if( guiStyle_IsOsdDisplayed() )
                guiStyle_Exit();        
            datapath_UserBlankScreenToggle();
            break;
            
        /* secret keycode to exit OSD menu from keypad */
        case KCODE_PAD_LEFTRIGHT:
            if( guiStyle_IsOsdDisplayed() )
                guiStyle_Exit();        
            break;
            
        /* secret keycode to change between usb factory mode and user mode */    
        case KCODE_PAD_UPDOWN:
            usbIO_ToggleMode();        
            break;           
                    
        case KCODE_IR_LEFTCLICK:
        case KCODE_IR_RIGHTCLICK:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -