📄 guiapp_action_hsgwhitegainscontrolmenu.c
字号:
/*************************************************************************
** TEXAS INSTRUMENTS PROPRIETARY INFORMATION
**
** (c) Copyright, Texas Instruments Incorporated, 2005, 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 "osd.h"
#include "ddp2230_rtos_include.h"
#include "guiApp_action_menu_values.h"
#include "eeprom.h"
#include "datapath.h"
#include "pictcont.h"
extern uint32 gID_MemPool;
extern uint16 activeHSGColor;
GUI_HSG_WHITE_GAINS_CONTROL_MENU_VALUES_STRUCT *HSGWhiteGainsControlMenuValues;
/* Initialize the items */
int08 guiApp_action_HSGWhiteGainsControlMenu_OnStart( int16 menuId, GUIMSG *msg )
{
DP_SOURCEDESC *srcDesc;
int16 min, max;
if( RTA_MemRequest( gID_MemPool, sizeof( GUI_HSG_WHITE_GAINS_CONTROL_MENU_VALUES_STRUCT ), (void **)&HSGWhiteGainsControlMenuValues ) == PASS )
{
datapath_GetSourceDesc( &srcDesc );
if( srcDesc->sourceActive )
{
/* read all settings on the image menu from the eeprom */
EE_GETVAR( UserMachine.ConnectorSettings[srcDesc->connector].HSGWhiteRedGain, HSGWhiteGainsControlMenuValues->redGain );
EE_GETVAR( UserMachine.ConnectorSettings[srcDesc->connector].HSGWhiteGreenGain, HSGWhiteGainsControlMenuValues->greenGain );
EE_GETVAR( UserMachine.ConnectorSettings[srcDesc->connector].HSGWhiteBlueGain, HSGWhiteGainsControlMenuValues->blueGain );
pictcont_GetHSGWhiteGainsLimits( &min, &max );
/* red gain init */
HSGWhiteGainsControlMenuValues->redGain = LMT( min, HSGWhiteGainsControlMenuValues->redGain, max );
guiStyle_item_SetSingleValue( ITEM_HSGREDGAINITEM, HSGWhiteGainsControlMenuValues->redGain, min, max );
/* green gain init */
HSGWhiteGainsControlMenuValues->greenGain = LMT( min, HSGWhiteGainsControlMenuValues->greenGain, max );
guiStyle_item_SetSingleValue( ITEM_HSGGREENGAINITEM, HSGWhiteGainsControlMenuValues->greenGain, min, max );
/* blue gain init */
HSGWhiteGainsControlMenuValues->blueGain = LMT( min, HSGWhiteGainsControlMenuValues->blueGain, max );
guiStyle_item_SetSingleValue( ITEM_HSGBLUEGAINITEM, HSGWhiteGainsControlMenuValues->blueGain, min, max );
}
}
else
{
guiStyle_HideItem( menuId, ITEM_HSGREDGAINITEM, TRUE );
guiStyle_HideItem( menuId, ITEM_HSGGREENGAINITEM, TRUE );
guiStyle_HideItem( menuId, ITEM_HSGBLUEGAINITEM, TRUE );
}
return PASS;
}
int08 guiApp_action_HSGWhiteGainsControlMenu_OnClose( int16 menuId )
{
DP_SOURCEDESC *srcDesc;
datapath_GetSourceDesc( &srcDesc );
if( srcDesc->sourceActive )
{
/* save all settings on the HSG control menu to the eeprom */
EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].HSGWhiteRedGain, HSGWhiteGainsControlMenuValues->redGain );
EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].HSGWhiteGreenGain, HSGWhiteGainsControlMenuValues->greenGain );
EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].HSGWhiteBlueGain, HSGWhiteGainsControlMenuValues->blueGain );
}
/* release HSG control menu memory structure requested in onStart */
RTA_MemRelease( HSGWhiteGainsControlMenuValues );
return PASS;
}
/* specify the highlight window as required by the GUI Style ADL */
int08 guiApp_action_HSGWhiteGainsControlMenu_GetHighlightWindow( int16 menuId, uint08 *window )
{
*window = WIND_HSGWHITEGAINSCONTROLMENUHIGHLIGHT;
return PASS;
}
/* implement item behavior, system interaction */
int08 guiApp_action_HSGWhiteGainsControlMenu_GuiMsg( int16 menuId, int16 itemId, GUIMSG *msg )
{
int16 min, max;
if( msg == NULL )
return FAIL;
switch( itemId )
{
case ITEM_HSGREDGAINITEM:
switch( msg->type )
{
case GUIMSG_DEC:
if( pictcont_GetHSGWhiteGainsLimits( &min, &max ) == PASS )
{
if( pictcont_SetAllHSGWhiteGains( HSGWhiteGainsControlMenuValues->redGain - 1,
HSGWhiteGainsControlMenuValues->greenGain,
HSGWhiteGainsControlMenuValues->blueGain ) == PASS )
{
HSGWhiteGainsControlMenuValues->redGain--;
guiStyle_item_SetSingleValue( itemId, HSGWhiteGainsControlMenuValues->redGain, min, max );
}
}
break;
case GUIMSG_INC:
if( pictcont_GetHSGWhiteGainsLimits( &min, &max ) == PASS )
{
if( pictcont_SetAllHSGWhiteGains( HSGWhiteGainsControlMenuValues->redGain + 1,
HSGWhiteGainsControlMenuValues->greenGain,
HSGWhiteGainsControlMenuValues->blueGain ) == PASS )
{
HSGWhiteGainsControlMenuValues->redGain++;
guiStyle_item_SetSingleValue( itemId, HSGWhiteGainsControlMenuValues->redGain, min, max );
}
}
break;
default:
break;
}
break;
case ITEM_HSGGREENGAINITEM:
switch( msg->type )
{
case GUIMSG_DEC:
if( pictcont_GetHSGWhiteGainsLimits( &min, &max ) == PASS )
{
if( pictcont_SetAllHSGWhiteGains( HSGWhiteGainsControlMenuValues->redGain,
HSGWhiteGainsControlMenuValues->greenGain - 1,
HSGWhiteGainsControlMenuValues->blueGain ) == PASS )
{
HSGWhiteGainsControlMenuValues->greenGain--;
guiStyle_item_SetSingleValue( itemId, HSGWhiteGainsControlMenuValues->greenGain, min, max );
}
}
break;
case GUIMSG_INC:
if( pictcont_GetHSGWhiteGainsLimits( &min, &max ) == PASS )
{
if( pictcont_SetAllHSGWhiteGains( HSGWhiteGainsControlMenuValues->redGain,
HSGWhiteGainsControlMenuValues->greenGain + 1,
HSGWhiteGainsControlMenuValues->blueGain ) == PASS )
{
HSGWhiteGainsControlMenuValues->greenGain++;
guiStyle_item_SetSingleValue( itemId, HSGWhiteGainsControlMenuValues->greenGain, min, max );
}
}
break;
default:
break;
}
break;
case ITEM_HSGBLUEGAINITEM:
switch( msg->type )
{
case GUIMSG_DEC:
if( pictcont_GetHSGWhiteGainsLimits( &min, &max ) == PASS )
{
if( pictcont_SetAllHSGWhiteGains( HSGWhiteGainsControlMenuValues->redGain,
HSGWhiteGainsControlMenuValues->greenGain,
HSGWhiteGainsControlMenuValues->blueGain - 1 ) == PASS )
{
HSGWhiteGainsControlMenuValues->blueGain--;
guiStyle_item_SetSingleValue( itemId, HSGWhiteGainsControlMenuValues->blueGain, min, max );
}
}
break;
case GUIMSG_INC:
if( pictcont_GetHSGWhiteGainsLimits( &min, &max ) == PASS )
{
if( pictcont_SetAllHSGWhiteGains( HSGWhiteGainsControlMenuValues->redGain,
HSGWhiteGainsControlMenuValues->greenGain,
HSGWhiteGainsControlMenuValues->blueGain + 1 ) == PASS )
{
HSGWhiteGainsControlMenuValues->blueGain++;
guiStyle_item_SetSingleValue( itemId, HSGWhiteGainsControlMenuValues->blueGain, min, max );
}
}
break;
default:
break;
}
break;
default:
return FAIL;
}
return PASS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -