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

📄 guiapp_action_displaymenu.c

📁 IT projecotr reference design.
💻 C
📖 第 1 页 / 共 2 页
字号:
                    guiStyle_GrayOutItem( menuId, ITEM_KEYSTONEITEM, TRUE );
                    break;
            
                case GUIMSG_DEASSERT:
                    enviro_enableAutoTilt( FALSE );
                    guiStyle_item_SetListIndex( ITEM_AUTOKEYSTONEITEM, FALSE );
                    displayMenuValues->autoKeystone = FALSE;
                    
                    dispfmt_GetKeystoneAnglePitch( &displayMenuValues->keystone );
                    displayMenuValues->keystone = displayMenuValues->keystone >> 8;
	                dispfmt_GetKeystoneAnglePitchLimits( &min, &max );
                    
                    /* reset keystone value if changed by auto keystone */
                    guiStyle_GrayOutItem( menuId, ITEM_KEYSTONEITEM, FALSE );                    
                    guiStyle_item_SetSingleValue( ITEM_KEYSTONEITEM, displayMenuValues->keystone, min >> 8, max >> 8 );

                    break;                    
      
                default:
                    break;
            }        
            break;
            
        case ITEM_ASPECTITEM:
        
            OSD_GetListSize( LIST_ASPECTLIST, &listSize );
        
            switch( msg->type )
            {
                case GUIMSG_DEC:
                    if( displayMenuValues->aspectRatio == 0 )  // decrement aspectRatio index
                        tempIndex = listSize - 1;
                    else 
                        tempIndex = displayMenuValues->aspectRatio - 1;
                        
                    if( datapath_UserSetAspectRatio( tempIndex ) == PASS );
                    {  
                        displayMenuValues->aspectRatio = tempIndex; 
                        guiStyle_item_SetListIndex( ITEM_ASPECTITEM, displayMenuValues->aspectRatio );
                    }
                            
                    break;            
        
                case GUIMSG_INC:
                    if( displayMenuValues->aspectRatio == listSize - 1 )  // increment aspectRatio index
                        tempIndex = 0;
                    else 
                        tempIndex = displayMenuValues->aspectRatio + 1;
                        
                    if( datapath_UserSetAspectRatio( tempIndex ) == PASS );
                    {  
                        displayMenuValues->aspectRatio = tempIndex; 
                        guiStyle_item_SetListIndex( ITEM_ASPECTITEM, displayMenuValues->aspectRatio );
                    }
                    break;            
            }
            guiApp_action_CheckImagePositionEnable();
            break;
        
        case ITEM_IMAGESIZEITEM:
        
            OSD_GetListSize( LIST_IMAGESIZELIST, &listSize );
        
            switch( msg->type )
            {
                case GUIMSG_DEC:
                    if( displayMenuValues->imageSizeEnum == 0 )  // decrement imageSizeEnum index
                        tempIndex = listSize - 1;
                    else 
                        tempIndex = displayMenuValues->imageSizeEnum - 1;
                        
                    if( datapath_UserSetImageSize( tempIndex, displayMenuValues->imageSizeManualSteps ) == PASS )
                    {
                        displayMenuValues->imageSizeEnum = tempIndex;
                        guiStyle_item_SetListIndex( ITEM_IMAGESIZEITEM, displayMenuValues->imageSizeEnum );
                    }
                    guiApp_action_CheckImagePositionEnable();
                    break;
                    
                case GUIMSG_INC:
                    if( displayMenuValues->imageSizeEnum == listSize - 1 )  // increment imageSizeEnum index
                        tempIndex = 0;
                    else 
                        tempIndex = displayMenuValues->imageSizeEnum + 1;
                        
                    if( datapath_UserSetImageSize( tempIndex, displayMenuValues->imageSizeManualSteps ) == PASS )
                    {
                        displayMenuValues->imageSizeEnum = tempIndex;
                        guiStyle_item_SetListIndex( ITEM_IMAGESIZEITEM, displayMenuValues->imageSizeEnum );
                    }
                    guiApp_action_CheckImagePositionEnable();
                    break;
            
                case GUIMSG_ASSERT:
                    if( displayMenuValues->imageSizeEnum == 2 ) //manual imageSizeEnum, start new menu
                    {
                        guiStyle_Exit();                     
                        guiStyle_StartMenu( MENU_IMAGESIZEPOPUP, NULL );
                    }
                    break; 
                    
                default:
                    break;
            }                 
            break;
            
        case ITEM_IMAGEPOSITIONITEM:
            switch( msg->type )
            {
                case GUIMSG_DEC:
		            if( datapath_UserSetImagePosition( displayMenuValues->imagePosition - 1 ) == PASS &&
		                dispfmt_GetImagePositionLimits( &min, &max ) == PASS )
		            {
		                displayMenuValues->imagePosition--;
		                guiStyle_item_SetSingleValue( ITEM_IMAGEPOSITIONITEM, displayMenuValues->imagePosition, min, max );
		            }                
                    break;
                    
                case GUIMSG_INC:
		            if( datapath_UserSetImagePosition( displayMenuValues->imagePosition + 1 ) == PASS &&
  		                dispfmt_GetImagePositionLimits( &min, &max ) == PASS )
		            {
		                displayMenuValues->imagePosition++;
		                guiStyle_item_SetSingleValue( ITEM_IMAGEPOSITIONITEM, displayMenuValues->imagePosition, min, max );
		            }                
                    break;
                    
                case GUIMSG_ASSERT:
                    newmsg.type = GUIMSG_VALUE;
                    newmsg.data = (void*)&(itemId);

                    guiStyle_Exit();                     
                    guiStyle_StartMenu( MENU_IMAGEPOSITIONPOPUP, &newmsg );             
                    break;
                    
            }
            break;
            
        case ITEM_MAGNIFYSOURCEITEM:
            switch( msg->type )
            {
                case GUIMSG_DEC:
                    if( dispfmt_GetMagnifyLimits( &min, &max ) == PASS &&
                        dispfmt_GetMagnify( &displayMenuValues->magnify ) == PASS )
                    {
                        if( datapath_UserSetMagnify( displayMenuValues->magnify - 1 ) == PASS )
                        {
                            displayMenuValues->magnify--;
                            guiStyle_item_SetSingleValue( ITEM_MAGNIFYSOURCEITEM, displayMenuValues->magnify, min, max );
                        }
                    }
                    /* disable pan and scan if magnify is set to 0 */
                    if( displayMenuValues->magnify == 0 )
                        guiStyle_GrayOutItem( menuId, ITEM_PANANDSCANITEM, TRUE );

                    break;

                case GUIMSG_INC:
                    if( dispfmt_GetMagnifyLimits( &min, &max ) == PASS  &&
                        dispfmt_GetMagnify( &displayMenuValues->magnify ) == PASS )
                    {
                        if( datapath_UserSetMagnify(  displayMenuValues->magnify + 1 ) == PASS )
                        {
                            displayMenuValues->magnify++;
                            guiStyle_item_SetSingleValue( ITEM_MAGNIFYSOURCEITEM, displayMenuValues->magnify, min, max );
                        }
                    }
                    /* enable pan and scan when magnify is first set above 0 */
                    if( displayMenuValues->magnify == 1 )
                        guiStyle_GrayOutItem( menuId, ITEM_PANANDSCANITEM, FALSE );
                    
                    break;

                case GUIMSG_ASSERT:
                    newmsg.type = NULL;
                    newmsg.data = NULL;

                    guiStyle_Exit();                     
                    guiStyle_StartMenu( MENU_MAGNIFYPOPUP, &newmsg );
                    break; 

                default:
                    break;
            } 
            break;
            
        case ITEM_PANANDSCANITEM:
            if( msg->type == GUIMSG_ASSERT )
            {
                newmsg.type = GUIMSG_VALUE;
                newmsg.data = (void*)&(itemId);

                guiStyle_Exit();                     
                guiStyle_StartMenu( MENU_PANANDSCANPOPUP, &newmsg );
            } 
            break;
            
        case ITEM_VIDEOSTANDARDITEM:  
            
            OSD_GetListSize( LIST_VIDEOSTANDARDLIST, &listSize );
            datapath_GetSourceDesc( &srcDesc );
        
            switch( msg->type )
            {
                case GUIMSG_DEC:
                    if( displayMenuValues->videoStandard == 0 )  // decrement video standard index
                        displayMenuValues->videoStandard = listSize - 1;
                    else 
                        displayMenuValues->videoStandard--;
                        
                    break;
            
                case GUIMSG_INC:
                    if( displayMenuValues->videoStandard == listSize - 1 )  // decrement video standard index
                        displayMenuValues->videoStandard = 0;
                    else 
                        displayMenuValues->videoStandard++;
                    
                    break;
            }
            /* update EEPROM immediately.  If we don't, we can get out of sync with decoder */    
            EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].VideoStandard, displayMenuValues->videoStandard );             
            deccontrol_SetVideoStandard( displayMenuValues->videoStandard );
            guiStyle_item_SetListIndex( ITEM_VIDEOSTANDARDITEM, displayMenuValues->videoStandard );
                      
            break;
        
            return PASS;
            break;
        
        case ITEM_OVERSCANITEM:
        
            datapath_GetSourceDesc( &srcDesc );
            
            switch( msg->type )
            {
                case GUIMSG_ASSERT:
                    if( datapath_UserSetOverscan( TRUE ) == PASS )
                    {
                        guiStyle_item_SetListIndex( ITEM_OVERSCANITEM, TRUE );
                        displayMenuValues->overscan = TRUE;
                    }
                    break;
            
                case GUIMSG_DEASSERT:
                    if( datapath_UserSetOverscan( FALSE ) == PASS )
                    {
                        guiStyle_item_SetListIndex( ITEM_OVERSCANITEM, FALSE );
                        displayMenuValues->overscan = FALSE;

                    }
                    break;
            } 
            
            /* update EEPROM immediately.  If we don't, we can get out of sync with decoder */                
            EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].Overscan, displayMenuValues->overscan );
            break;
        
        default:
            return FAIL;
    }        
    return PASS;
}

/*****************************************************************/
/* gray out image position item when we are filling the DMD      */
/* display.  Since multiple items need to check whether we gray  */
/* out image position, consolidate checks here                   */
/*****************************************************************/ 
int08 guiApp_action_CheckImagePositionEnable( void )
{
    int16 min, max;
    if( dispfmt_GetImagePositionLimits( &min, &max ) == PASS )
    {
        if( max == 0 && min == 0 )
        {
            guiStyle_GrayOutItem( MENU_DISPLAYMENU, ITEM_IMAGEPOSITIONITEM, TRUE );
        }       
        else
        {
            guiStyle_GrayOutItem( MENU_DISPLAYMENU, ITEM_IMAGEPOSITIONITEM, FALSE );        
            guiStyle_item_SetSingleValue( ITEM_IMAGEPOSITIONITEM, displayMenuValues->imageSizeManualSteps, min, max );
        }
    }
    else
        return FAIL;
    return PASS;
}

⌨️ 快捷键说明

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