📄 guiapp.c
字号:
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 + -