📄 guiapp_action_advancedmenu.c
字号:
/*****************************************************************************
** 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 + -