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

📄 guiapp_action_imagemenu.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 "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 + -