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

📄 guiapp_action_advancedmenu.c

📁 IT projecotr reference design.
💻 C
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************
**             TEXAS INSTRUMENTS PROPRIETARY INFORMATION
**
**  (c) Copyright, Texas Instruments Incorporated, 2006.
**      All Rights Reserved.
**
**  Property of Texas Instruments Incorporated. Restricted Rights -
**  Use, duplication, or disclosure is subject to restrictions set
**  forth in TI's program license agreement and associated documentation.
******************************************************************************/
#include "common.h"
#include "guiStyle.h"
#include "guiApp_action.h"
#include "datapath.h"
#include "guiApp_action_menu_values.h"
#include "pictcont.h"
#include "cw.h"
#include "stdio.h"
#include "ddp2230_rtos_include.h"
#include "eeprom.h"
#include "OSD.h"
#include "datapath.h"
#include "source.h"
#include "dispfmt.h"
#include "environment.h"
#include "lmp_blst.h"
#include "rta_tsk.h"
#include "tmr.h"
#include "global.h"
#include "seq.h"


extern uint32 gID_MemPool; 
GUI_ADVANCED_MENU_VALUES_STRUCT *advancedMenuValues;

/* Initialize the items */
int08 guiApp_action_AdvancedMenu_OnStart( int16 menuId, GUIMSG *msg )
{
    uint08 listSize;
    DP_SOURCEDESC *srcDesc;
    int16 min, max;
    
    if( RTA_MemRequest( gID_MemPool, sizeof( GUI_ADVANCED_MENU_VALUES_STRUCT ), (void **)&advancedMenuValues ) == PASS )
    {   
	    datapath_GetSourceDesc( &srcDesc );
	    
	    /* save all projector settings to the eeprom */
	    EE_GETVAR( UserMachine.Projector.AutoSourceSelect, advancedMenuValues->autoSourceSelect );
	    EE_GETVAR( UserMachine.Projector.RearProjection, advancedMenuValues->rearProjection );
	    EE_GETVAR( UserMachine.Projector.CeilingMount, advancedMenuValues->ceilingMount );
	    EE_GETVAR( UserMachine.Projector.SplashSource, advancedMenuValues->splashSource );
	    EE_GETVAR( UserMachine.Projector.Fade, advancedMenuValues->fade );
	    EE_GETVAR( UserSystem.CW_Calibration, advancedMenuValues->cwCalibration );
	    
	    /* save all connector-specific settings to the eeprom */
	    if( srcDesc->sourceActive )
	    {          
		    EE_GETVAR( UserMachine.ConnectorSettings[srcDesc->connector].Gamma, advancedMenuValues->gamma );
	        EE_GETVAR( UserMachine.ConnectorSettings[srcDesc->connector].WhitePeaking, advancedMenuValues->whitePeaking );
	        EE_GETVAR( UserMachine.ConnectorSettings[srcDesc->connector].NoiseReduction, advancedMenuValues->noiseReduction );
	        EE_GETVAR( UserMachine.ConnectorSettings[srcDesc->connector].BrilliantColorLook, advancedMenuValues->brilliantColorLook );   
	    }  
        
        /**** gamma init ****/
	    if( srcDesc->sourceActive )
	    {
	        OSD_GetListSize( LIST_GAMMALIST, &listSize );
		    advancedMenuValues->gamma = MIN( advancedMenuValues->gamma, listSize - 1 );
		    
	        guiStyle_item_SetListIndex( ITEM_GAMMAITEM, advancedMenuValues->gamma );
	    }
	    else
	        guiStyle_HideItem( menuId, ITEM_GAMMAITEM, TRUE );
	        
	    /**** white peaking init ****/    
	    if( srcDesc->sourceActive )
	    {
		    min = 0;
		    max = 10;
	        advancedMenuValues->whitePeaking = MIN( advancedMenuValues->whitePeaking, max );   
	        
	        guiStyle_item_SetSingleValue( ITEM_WHITEPEAKINGITEM, advancedMenuValues->whitePeaking, min, max );
	    }
	    else
	        guiStyle_HideItem( menuId, ITEM_WHITEPEAKINGITEM, TRUE );
	        
        /**** test pattern init ****/
	    advancedMenuValues->testPattern = source_GetTestPattern();
	    OSD_GetListSize( LIST_TESTPATTERNLIST, &listSize );
		advancedMenuValues->testPattern = MIN( advancedMenuValues->testPattern, listSize - 1 );
		    
	    guiStyle_item_SetListIndex( ITEM_TESTPATTERNITEM, advancedMenuValues->testPattern );
	        
	    /**** noise reduction init ****/    
	    if( srcDesc->sourceActive )
	    {
            OSD_GetListSize( LIST_NOISEREDLIST, &listSize );
	        advancedMenuValues->noiseReduction = MIN( advancedMenuValues->noiseReduction, listSize - 1 );   
	        
            guiStyle_item_SetListIndex( ITEM_NOISEREDUCTIONITEM, advancedMenuValues->noiseReduction );    
	    }
	    else
	        guiStyle_HideItem( menuId, ITEM_NOISEREDUCTIONITEM, TRUE ); 
	        	        
	    /**** auto source select init ****/    
        OSD_GetListSize( LIST_AUTOSOURCECHECKBOXLIST, &listSize );
        advancedMenuValues->autoSourceSelect = MIN( advancedMenuValues->autoSourceSelect, listSize - 1 );   
        
        guiStyle_item_SetListIndex( ITEM_AUTOSOURCESELECTITEM, advancedMenuValues->autoSourceSelect );   
        
	    /**** rear setting init ****/    
        OSD_GetListSize( LIST_REARCHECKBOXLIST, &listSize );
        advancedMenuValues->rearProjection = MIN( advancedMenuValues->rearProjection, listSize - 1 );   
        
        guiStyle_item_SetListIndex( ITEM_REARITEM, advancedMenuValues->rearProjection );   

	    /**** ceiling init ****/    
        OSD_GetListSize( LIST_CEILINGICONLIST, &listSize );
        advancedMenuValues->ceilingMount = MIN( advancedMenuValues->ceilingMount, listSize - 1 );   
        
        guiStyle_item_SetListIndex( ITEM_CEILINGITEM, advancedMenuValues->ceilingMount ); 
        
        /**** Splash Source init ****/
	    OSD_GetListSize( LIST_SPLASHLIST, &listSize );
		advancedMenuValues->splashSource = MIN( advancedMenuValues->splashSource, listSize - 1 );
		    
	    guiStyle_item_SetListIndex( ITEM_SPLASHITEM, advancedMenuValues->splashSource );
	        
	    /**** Brilliant Color Look init ****/    
	    if( srcDesc->sourceActive )
	    {
		    min = 0;
		    max = 3;  //need to set max brilliant color looks
	        advancedMenuValues->brilliantColorLook = MIN(advancedMenuValues->brilliantColorLook, max );   
	        
	        guiStyle_item_SetSingleValue( ITEM_BRILLIANTCOLORITEM, advancedMenuValues->brilliantColorLook, min, max );
	    }
	    else
	        guiStyle_HideItem( menuId, ITEM_BRILLIANTCOLORITEM, TRUE );
          
 	    /**** fade init ****/    
        OSD_GetListSize( LIST_FADELIST, &listSize );
        advancedMenuValues->fade = MIN( advancedMenuValues->fade, listSize - 1 );   
        
        guiStyle_item_SetListIndex( ITEM_FADEITEM, advancedMenuValues->fade );   
         
	    /**** color wheel index delay init ****/    
	    min = 0;
	    max = 719;
        advancedMenuValues->cwCalibration = MIN( advancedMenuValues->cwCalibration, max );   
        
        guiStyle_item_SetSingleValue( ITEM_CWINDEXDELAYITEM, advancedMenuValues->cwCalibration, min, max );         
        
        /**** color wheel sequence group and wave form index init ****/
		min = 0;
		max = 15;
		guiStyle_item_SetSingleValue( ITEM_SEQUENCEGROUPITEM, CW_GetSeqMode(), min, max );
		guiStyle_item_SetSingleValue( ITEM_WAVEFORMINDEXITEM, LMP_BLST_GetWaveformIndex(), min, max );
    }
    else // hide all items
    {
        guiStyle_HideItem( menuId, ITEM_GAMMAITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_WHITEPEAKINGITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_TESTPATTERNITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_NOISEREDUCTIONITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_REARITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_CEILINGITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_LAMPRESETITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_FACTORYRESETITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_AUTOSOURCESELECTITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_SPLASHITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_BRILLIANTCOLORITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_SCREENCAPTUREITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_FADEITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_CWINDEXDELAYITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_SEQUENCEGROUPITEM, TRUE );
        guiStyle_HideItem( menuId, ITEM_WAVEFORMINDEXITEM, TRUE );
        
        return FAIL;
    }
        
    return PASS;
}

int08 guiApp_action_AdvancedMenu_OnClose( int16 menuId )
{
    DP_SOURCEDESC *srcDesc;
    
    datapath_GetSourceDesc( &srcDesc );
    
    /* save all projector settings to the eeprom */
    EE_PUTVAR( UserMachine.Projector.AutoSourceSelect, advancedMenuValues->autoSourceSelect );
    EE_PUTVAR( UserMachine.Projector.RearProjection, advancedMenuValues->rearProjection );
    EE_PUTVAR( UserMachine.Projector.CeilingMount, advancedMenuValues->ceilingMount );
    EE_PUTVAR( UserMachine.Projector.SplashSource, advancedMenuValues->splashSource );
    EE_PUTVAR( UserMachine.Projector.Fade, advancedMenuValues->fade );
    EE_PUTVAR( UserSystem.CW_Calibration, advancedMenuValues->cwCalibration );
    
    /* save all connector-specific settings to the eeprom */
    if( srcDesc->sourceActive )
    {          
	    EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].Gamma, advancedMenuValues->gamma );
        EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].WhitePeaking, advancedMenuValues->whitePeaking );
        EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].NoiseReduction, advancedMenuValues->noiseReduction );
        EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].BrilliantColorLook, advancedMenuValues->brilliantColorLook );   
    }  
    
    /* release image menu memory structure requested in onStart */
    RTA_MemRelease( advancedMenuValues );

    return PASS;
}

/* specify the highlight window as required by the GUI Style */
int08 guiApp_action_AdvancedMenu_GetHighlightWindow( int16 menuId, uint08 *window )
{
    *window = WIND_ADVANCEDMENUHIGHLIGHT;
    return PASS;
}

/* implement item behavior, system interaction */
int08 guiApp_action_AdvancedMenu_GuiMsg( int16 menuId, int16 itemId, GUIMSG *msg )
{
    GUIMSG newmsg;
    uint08 listSize;
	uint08 t8;
	uint08 waveformIdx;
	int08 retval;
	
    if( msg == NULL )
        return FAIL;

    switch( itemId )
    {
        case ITEM_GAMMAITEM:
            OSD_GetListSize( LIST_GAMMALIST, &listSize );
        
            switch( msg->type )
            {
                case GUIMSG_DEC:
                        if( advancedMenuValues->gamma == 0 )  // decrement gamma index
                            advancedMenuValues->gamma = listSize - 1;
                        else 
                            advancedMenuValues->gamma--;
                            
                        pictcont_SetGamma( advancedMenuValues->gamma );
                        guiStyle_item_SetListIndex( ITEM_GAMMAITEM, advancedMenuValues->gamma );
                    break;
            
                case GUIMSG_INC:
                        if( advancedMenuValues->gamma == listSize - 1 )  // decrement gamma index
                            advancedMenuValues->gamma = 0;
                        else 
                            advancedMenuValues->gamma++;
                            
                        pictcont_SetGamma( advancedMenuValues->gamma );
                        guiStyle_item_SetListIndex( ITEM_GAMMAITEM, advancedMenuValues->gamma );
                    break;
            }  // switch( msg->type ) 
                      
            break;
    
        case ITEM_SCREENCAPTUREITEM:
            if( msg->type == GUIMSG_ASSERT )
            {
                newmsg.type = GUIMSG_VALUE;
                newmsg.data = (void*)&(itemId);

                guiStyle_Exit();                     
                guiStyle_StartMenu( MENU_CONFIRMATIONSCREENCAPTUREMENU, &newmsg );
            }
            break;                    
            
        case ITEM_SPLASHITEM:
            if( (msg->type == GUIMSG_DEC || msg->type == GUIMSG_INC)  )
            {
                /* Only two splash sources available, 0 = OEM, 1 = USER */
                if( advancedMenuValues->splashSource == 0 )
                    advancedMenuValues->splashSource = 1;
                else
                    advancedMenuValues->splashSource = 0;
                    
                guiStyle_item_SetListIndex( ITEM_SPLASHITEM, advancedMenuValues->splashSource );
                    
            }    
            break;
            
            
        case ITEM_WHITEPEAKINGITEM:
            switch( msg->type )
            {
                case GUIMSG_DEC:
                    if( advancedMenuValues->whitePeaking > 0 )
                        advancedMenuValues->whitePeaking -= 1;
                    else
                        advancedMenuValues->whitePeaking = 10;
                    if( pictcont_SetWhitePeaking( advancedMenuValues->whitePeaking ) == PASS )
                        guiStyle_item_SetSingleValue( ITEM_WHITEPEAKINGITEM, advancedMenuValues->whitePeaking, 0, 10 );                    
                    break;

                case GUIMSG_INC:
                    if( advancedMenuValues->whitePeaking < 10 )
                        advancedMenuValues->whitePeaking += 1;
                    else
                        advancedMenuValues->whitePeaking = 0;
                    if( pictcont_SetWhitePeaking( advancedMenuValues->whitePeaking ) == PASS )
                        guiStyle_item_SetSingleValue( ITEM_WHITEPEAKINGITEM, advancedMenuValues->whitePeaking, 0, 10 );
                    break; 
      
                default:

⌨️ 快捷键说明

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