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

📄 guiapp_action_hsgwhitegainscontrolmenu.c

📁 IT projecotr reference design.
💻 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 + -