📄 guiapp_action_imagemenu.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 "guiApp_action_menu_values.h"
#include "pictcont.h"
#include "ddp2230_rtos_include.h"
#include "datapath.h"
#include "eeprom.h"
#include "osd.h"
#include "guiApp.h"
GUI_IMAGE_MENU_VALUES_STRUCT *imageMenuValues;
extern uint32 gID_MemPool;
/* For each item, read value stored in EEPROM. Validate that data is within limits. Initialize or hide the items
as appropriate depending on whether an external source is displayed */
int08 guiApp_action_ImageMenu_OnStart( int16 menuId, GUIMSG *msg )
{
int16 min, max;
uint08 listSize;
DP_SOURCEDESC *srcDesc;
if( RTA_MemRequest( gID_MemPool, sizeof( GUI_IMAGE_MENU_VALUES_STRUCT ), (void **)&imageMenuValues ) == PASS )
{
datapath_GetSourceDesc( &srcDesc );
if( srcDesc->sourceActive )
{
/* read all settings on the image menu from the eeprom */
EE_GETVAR( UserMachine.ConnectorSettings[srcDesc->connector].Brightness, imageMenuValues->brightness );
EE_GETVAR( UserMachine.ConnectorSettings[srcDesc->connector].Contrast, imageMenuValues->contrast );
EE_GETVAR( UserMachine.ConnectorSettings[srcDesc->connector].Hue, imageMenuValues->hue );
EE_GETVAR( UserMachine.ConnectorSettings[srcDesc->connector].Color, imageMenuValues->color );
EE_GETVAR( UserMachine.ConnectorSettings[srcDesc->connector].Sharpness, imageMenuValues->sharpness );
EE_GETVAR( UserMachine.ConnectorSettings[srcDesc->connector].ColorSpace, imageMenuValues->colorSpace );
}
/* brightness init */
if( srcDesc->sourceActive )
{
pictcont_GetBrightnessLimits( &min, &max );
imageMenuValues->brightness = LMT( min, imageMenuValues->brightness, max );
guiStyle_item_SetSingleValue( ITEM_BRIGHTNESSITEM, imageMenuValues->brightness, min, max );
}
else
guiStyle_HideItem( menuId, ITEM_BRIGHTNESSITEM, TRUE );
/* contrast init */
if( srcDesc->sourceActive )
{
pictcont_GetContrastLimits( &min, &max );
imageMenuValues->contrast = LMT( min, imageMenuValues->contrast, max );
guiStyle_item_SetSingleValue( ITEM_CONTRASTITEM, imageMenuValues->contrast, min, max );
}
else
guiStyle_HideItem( menuId, ITEM_CONTRASTITEM, TRUE );
/* sharpness init */
if( srcDesc->sourceActive )
{
pictcont_GetSharpnessLimits( &min, &max );
imageMenuValues->sharpness = LMT( min, imageMenuValues->sharpness, max );
guiStyle_item_SetSingleValue( ITEM_SHARPNESSITEM, imageMenuValues->sharpness, min, max );
}
else
guiStyle_HideItem( menuId, ITEM_SHARPNESSITEM, TRUE );
/* color init */
if( srcDesc->sourceActive && srcDesc->isYUV)
{
pictcont_GetColorLimits( &min, &max );
imageMenuValues->color = LMT( min, imageMenuValues->color, max );
guiStyle_item_SetSingleValue( ITEM_COLORITEM, imageMenuValues->color, min, max );
}
else
guiStyle_HideItem( menuId, ITEM_COLORITEM, TRUE );
/* hue init */
if( srcDesc->sourceActive && srcDesc->isYUV)
{
pictcont_GetHueLimits( &min, &max );
imageMenuValues->hue = LMT( min, imageMenuValues->hue, max );
guiStyle_item_SetSingleValue( ITEM_TINTITEM, imageMenuValues->hue, min, max );
}
else
guiStyle_HideItem( menuId, ITEM_TINTITEM, TRUE );
/* colorspace init */
if( srcDesc->sourceActive )
{
OSD_GetListSize( LIST_COLORSPACELIST, &listSize );
imageMenuValues->colorSpace = MIN( imageMenuValues->colorSpace, listSize - 1 );
guiStyle_item_SetListIndex( ITEM_COLORSPACEITEM, imageMenuValues->colorSpace );
}
else
guiStyle_HideItem( menuId, ITEM_COLORSPACEITEM, TRUE );
/* HSG init */
if( !srcDesc->sourceActive )
{
guiStyle_HideItem( menuId, ITEM_HSGITEM, TRUE );
}
} // if RTA_MemRequest...
else
{
/* hide all items if we cannot allocate memory for menu values */
guiStyle_HideItem( menuId, ITEM_BRIGHTNESSITEM, TRUE );
guiStyle_HideItem( menuId, ITEM_CONTRASTITEM, TRUE );
guiStyle_HideItem( menuId, ITEM_SHARPNESSITEM, TRUE );
guiStyle_HideItem( menuId, ITEM_COLORITEM, TRUE );
guiStyle_HideItem( menuId, ITEM_TINTITEM, TRUE );
guiStyle_HideItem( menuId, ITEM_COLORSPACEITEM, TRUE );
guiStyle_HideItem( menuId, ITEM_HSGITEM, TRUE );
}
return PASS;
}
int08 guiApp_action_ImageMenu_OnClose( int16 menuId )
{
DP_SOURCEDESC *srcDesc;
datapath_GetSourceDesc( &srcDesc );
if( srcDesc->sourceActive )
{
/* save all settings on the image menu to the eeprom */
EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].Brightness, imageMenuValues->brightness );
EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].Contrast, imageMenuValues->contrast );
EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].Hue, imageMenuValues->hue );
EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].Color, imageMenuValues->color );
EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].Sharpness, imageMenuValues->sharpness );
EE_PUTVAR( UserMachine.ConnectorSettings[srcDesc->connector].ColorSpace, imageMenuValues->colorSpace );
}
/* release image menu memory structure requested in onStart */
RTA_MemRelease( imageMenuValues );
return PASS;
}
/* specify the highlight window as required by the GUI Style ADL */
int08 guiApp_action_ImageMenu_GetHighlightWindow( int16 menuId, uint08 *window )
{
*window = WIND_IMAGEMENUHIGHLIGHT;
return PASS;
}
/* implement item behavior, system interaction */
int08 guiApp_action_ImageMenu_GuiMsg( int16 menuId, int16 itemId, GUIMSG *msg )
{
GUIMSG newmsg;
int16 min, max;
uint08 listSize;
uint08 tempIndex;
if( msg == NULL )
return FAIL;
switch( itemId )
{
case ITEM_BRIGHTNESSITEM:
switch( msg->type )
{
case GUIMSG_DEC:
if( pictcont_GetBrightnessLimits( &min, &max ) == PASS )
{
if( pictcont_SetBrightness( imageMenuValues->brightness - 1 ) == PASS )
{
imageMenuValues->brightness -= 1;
guiStyle_item_SetSingleValue( ITEM_BRIGHTNESSITEM, imageMenuValues->brightness, min, max );
guiApp_SetDDCCISettingsChanged( TRUE );
}
}
break;
case GUIMSG_INC:
if( pictcont_GetBrightnessLimits( &min, &max ) == PASS )
{
if( pictcont_SetBrightness( imageMenuValues->brightness + 1 ) == PASS )
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -