📄 setup_menu.c
字号:
/* **************************************************************************************
* Copyright (c) 2004 ZORAN Corporation, All Rights Reserved
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
*
* File: $Workfile: setup_menu.c$
*
* Description:
* ========
*
*
****************************************************************************************/
#include "Config.h" // Global Configuration - do not remove!
#ifdef DEBUG_UI_TRACE
#undef IFTRACE
#define IFTRACE if (gTraceUI)
#include "Debug\DbgMain.h"
#endif //DEBUG_UI_TRACE
/***************************************************************************************
* Include files
****************************************************************************************/
#include <stdio.h>
#include "include\sysdefs.h"
#include "Kernel\eventdef.h"
#include "include\math-macro.h"
#include "Playcore\ScPad\SCMGR.h"
#include "Playcore\PS\ps.h"
#ifndef D_GINGER_I86
#include "video_setting\video_setting.h"
#endif //#ifdef D_GINGER_I96
// Included UI LOW LEVEL files
#ifdef D_GINGER_I86
#include "Decoder\OSDLayou.h"
#include "Decoder\AudioSetting.h"
#endif //D_GINGER_I86
#ifdef D_GINGER_I96
#include "OSDLayou.h"
#include "AudioSetting.h"
#endif //D_GINGER_I96
// Included UI MENU SYSTEM files
#include "gui\menu_system\ms_display.h"
#include "GUI\Menu_system\ms_screen.h"
#include "GUI\Menu_system\ms_menu.h"
#include "GUI\Menu_system\ms_container.h"
#include "gui\menu_system\osd_rendering.h"
#include "GUI\Menu_system\ms_component.h"
#include "GUI\Menu_system\ms_send_op.h"
// Included CUSTOMER files
#include "Menu\menu_operation_def.h"
#include "GUI\Resource\Bitmap\bitmap.h"
#include "GUI\Object_class\Text\mso_text.h"
#include "GUI\Object_class\Hscroll\mso_hscroll_text.h"
#include "GUI\Object_class\Page\mso_page.h"
#include "GUI\Object_class\Button\mso_button.h"
#include "GUI\Object_class\Vlist\mso_vlist.h"
#include "GUI\Object_class\Choice\mso_choice.h"
#include "GUI\Object_class\Hslider\mso_hslider.h"
#include "Font\fonts.h"
#include "Menu_config\menu_config_common.h"
//Include API Files
#include "CoreAPI\CoreAPI.h"
#include "Library\String_generate.h"
//#include "UI\Menu_Sys\ms_lib.h"
#include "Components\Bass_manager\o_bass_mgr.h"
#include "Components\Dynamic_range_control\o_drc.h"
#include "Components\Graphic_equalizer\o_ge.h"
#include "Components\Password\o_password_prompt.h"
#include "Components\Prologic\o_prologic2.h"
#include "GUI\Object_class\Confirm\mso_confirm.h"
#ifdef D_SETUP_USE_SLIDE_FOR_SMART_PIC
#include "Components\smart_picture\O_smartpic_slider.h"
#endif
#ifdef AVI_DRM_SUPPORT
#include "Components\Drm\o_drmreg.h"
#endif
#ifdef D_SETUP_TV_SYSTEM_WARNING_MENU
#include "Components\TV_system_warning\o_tvsys_warning.h"
#endif
#ifndef DEBUG_UI_TRACE
#undef dbg_printf(sMsg)
#define dbg_printf(sMsg)
#undef dbgm_printf(sMsg, mode)
#define dbgm_printf(sMsg, mode)
#endif
#ifdef TV_GUARDIAN_ENABLE
#include "Components\TV_guardian\o_tvguardian.h"
#endif //TV_GUARDIAN_ENABLE
#ifdef FTA_SUPPORT
#include "Customer\User_interface\GUI\Components\FTA_Selection\O_FTA_Selection.h"
#include "Customer\User_interface\GUI\Components\FTA_Channel_Tab\O_FTA_Channel_Tab.h"
#ifdef FTA_SATELLITE
#include "Customer\User_interface\GUI\Components\FTA_Transport_Tab\O_FTA_Transport_Tab.h"
#endif // FTA_SATELLITE
#endif
// Include the module header file
#include "Setup\setup_menu.h"
// Include custom header file: customer specific definitions, over-writing common ones.
#include "Setup\setup_menu_config.h"
// Include configuration header file: named constants, macros and typedefs.
#include "Custom\Setup\setup_menu_custom.h"
/***************************************************************************************
* Extern variables.
****************************************************************************************/
#ifdef D_SETUP_ADVANCED_TONE_SET
extern CONST MS_DESCRIPTOR_BUTTON oAdvBassToneButtonDescriptor;
#endif //D_SETUP_ADVANCED_TONE_SET
#ifdef D_SETUP_ADVANCED_DRC
extern CONST MS_DESCRIPTOR_BUTTON oAdvDrcButtonDescriptor;
#endif //D_SETUP_ADVANCED_DRC
#ifdef GRAPHIC_EQUALIZER_MENU
extern CONST MS_DESCRIPTOR_BUTTON oAdvEqButtonDescriptor;
#endif
/***************************************************************************************
* Private static variables ARE FORBIDDEN
****************************************************************************************/
// Local variable for holding current speaker values for speaker config referencing.
STATIC SPEAKER_CONFIG __NEAR currentSpeakers;
/***************************************************************************************
* Private static functions declaration
****************************************************************************************/
STATIC BOOL _Layout(void);
/***************************************************************************************
* Utility functions
****************************************************************************************/
STATIC BOOL _AddItemsAndResizeValueVList(MSO_VLIST __NEAR* pList, MSO_CHOICE __NEAR* pChoice);
STATIC BOOL _AddParamsToVList(MSO_VLIST __NEAR* pList, CONST SETUP_PAGE_PARAM* pParam);
STATIC void _RestoreObjectPosition(MSO_OBJECT __NEAR* pThis);
#ifdef D_SETUP_SPEAKER_SIZE
STATIC void _EnableDisableSpkrSzOptions(MSO_OBJECT __NEAR* pThis, SPEAKER_INDEX cSpeaker);
#endif
#ifdef D_SETUP_PINK_NOISE
STATIC void _EnableDisableTestToneOptions (MSO_OBJECT __NEAR* pThis, UINT16 wSpeakerConfigIndex);
#endif
#ifdef D_SETUP_SPEAKER_CENTER_CTRL
STATIC void _EnableDisableCentreDelayOptions (MSO_OBJECT __NEAR* pThis, UINT16 wSpeakerConfigIndex);
#endif
#ifdef D_SETUP_SPEAKER_REAR_CTRL
STATIC void _EnableDisableRearDelayOptions (MSO_OBJECT __NEAR* pThis, UINT16 wSpeakerConfigIndex);
#endif //D_SETUP_SPEAKER_REAR_CTRL
/***************************************************************************************
* Operation handlers
****************************************************************************************/
STATIC void _ListItemInitOperation(MSO_OBJECT __NEAR* pThis, UINT32 lParam);
/***************************************************************************************
* Operation functions
****************************************************************************************/
STATIC MS_OP _MenuOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _SetupBookOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _WindowOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _ParamVScrollListOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _ValueVScrollListOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _ParamChoiceOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _ListItemOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#ifdef D_SETUP_SMART_PICTURE
STATIC MS_OP _SmartPicListItemOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#endif
STATIC MS_OP _BtnResetDefaultButtonOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _RatingOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#ifdef D_SETUP_PINK_NOISE
STATIC MS_OP _TestToneChoiceOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#endif
#ifdef TV_GUARDIAN_ENABLE
STATIC MS_OP _TVGuardianButtonOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#endif // TV_GUARDIAN_ENABLE
#ifdef D_SETUP_ADVANCED_TONE_SET
STATIC MS_OP _BtnAdvBassToneButtonOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#endif //D_SETUP_ADVANCED_TONE_SET
#ifdef D_SETUP_ADVANCED_DRC
STATIC MS_OP _BtnAdvDRCButtonOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#endif //D_SETUP_ADVANCED_DRC
#ifdef D_GRAPHIC_EQUALIZER_MENU
STATIC MS_OP _BtnAdvEqButtonOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#endif // D_GRAPHIC_EQUALIZER_MENU
#ifdef AVI_DRM_SUPPORT
STATIC MS_OP _BtnDRMRegOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#endif //AVI_DRM_SUPPORT
STATIC MS_OP _BtnSetPasswordButtonOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#ifdef FTA_SUPPORT
STATIC MS_OP _BtnAutoScanButtonOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
STATIC MS_OP _BtnManualScanButtonOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#endif
STATIC void _ConfirmResetOperation(BOOL bConfirmed);
#ifdef D_HDMI_ENABLED
STATIC MS_OP _HDMICtrlParamOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#endif // D_HDMI_ENABLED
#ifdef D_SETUP_HD_JPEG_MODE
static MS_OP _HDJpegModeOperation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#endif//#ifdef D_SETUP_HD_JPEG_MODE
#ifdef D_SETUP_SPEAKER_6CHANNEL_CTRL
static MS_OP _SWDelaySliderOperationOnVList(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
static MS_OP _RSDelaySliderOperationOnVList(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
static MS_OP _LSDelaySliderOperationOnVList(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
static MS_OP _CDelaySliderOperationOnVList(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam);
#endif//D_SETUP_SPEAKER_6CHANNEL_CTRL
/***************************************************************************************
* Display functions
****************************************************************************************/
STATIC BOOL _TabBtnFillOSDSeg(MSO_OBJECT __NEAR* pThis, MS_AREA __NEAR* pAbsArea);
static BOOL _OSDMenuLanguageFillOSDSeg(MSO_OBJECT __NEAR* pThis, MS_AREA __NEAR* pAbsArea);
/***************************************************************************************
* Choice item action functions
****************************************************************************************/
/***************************************************************************************
* Action functions of the Language parameters.
****************************************************************************************/
STATIC void _OSDMenuLanguageParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
STATIC void _SubtitleLanguageParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#ifdef USE_AUX_SUBTITLES
STATIC void _DivxSubtitleCodePageParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif //USE_AUX_SUBTITLES
STATIC void _AudioLanguageParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
STATIC void _DVDMenuLanguageParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#ifdef D_SETUP_OSD_ON_OFF_CHOICE
STATIC void _OSDOnOffParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif //D_SETUP_OSD_ON_OFF_CHOICE
/***************************************************************************************
* Action functions of the Video parameters.
****************************************************************************************/
STATIC void _TVShapeParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
STATIC void _TVSystemParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#ifdef D_GUI_SETUP_VIDEO_OUT
STATIC void _VideoOutParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif //D_GUI_SETUP_VIDEO_OUT
STATIC void _DisplayModeParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#ifdef DVD_AUDIO_SUPPORT
STATIC void _AVPriorityParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif
#ifdef D_SETUP_HD_JPEG_MODE
STATIC void _HDJpegModeParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif //D_SETUP_HD_JPEG_MODE
#ifdef D_SETUP_BRIGHTNESS_SLIDER
STATIC UINT16 _BrightCtrlSliderAction(HSLIDER_ACTION eType, UINT16 wValue);
#endif
#ifdef D_SETUP_EDGE_SLIDER
STATIC UINT16 _EdgeCtrlSliderAction(HSLIDER_ACTION eType, UINT16 wValue);
#endif
#ifdef D_SETUP_SMART_PICTURE
STATIC void _SmartPictureCtrlParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif
#ifdef D_SETUP_EQ_MODE_CHOICE
STATIC void _EQCtrlParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif
#ifdef D_HDMI_ENABLED
STATIC void _HDMICtrlParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif // D_HDMI_ENABLED
#ifdef D_SETUP_JPEG_INTERVAL_ENABLED
STATIC void _JPEGIntervalCtrlParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif
#ifdef D_SCREEN_SAVER_SELECTION
STATIC void _ScreenSaverAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif
#ifdef D_AUTO_PLAY_MODE_SUPPORT
STATIC void _AutoPlayAction(MSO_OBJECT __NEAR * pThis, enMutatorType eType, UINT16 wValue);
#endif
#ifdef FTA_SUPPORT
STATIC void _TimeZoneAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
STATIC void _ManualScanAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif
#if defined( FTA_SUPPORT ) && defined(FTA_SATELLITE)
STATIC void _SatelliteAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif
#ifdef FTA_SUPPORT
STATIC void _ChnlScanModeAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif
#ifdef D_SETUP_PICTURE_MODE //<<< OEC_TAN_0023G : Support picture mode.
STATIC void _PictureModeCtrlParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif // D_SETUP_PICTURE_MODE //>>> OEC_TAN_0023G : Support picture mode.
/***************************************************************************************
* Action functions of the Audio parameters.
****************************************************************************************/
#ifdef D_SETUP_BASS_MANAGEMENT
STATIC void _BassManagementParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif
#ifdef D_SETUP_SPEAKER_SIZE
STATIC void _FrontSpeakerSzParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
STATIC void _CentreSpeakerSzParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
STATIC void _SurroundSpeakerSzParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif
#ifdef D_ENABLE_DOLBY_EX_SUPPORT
STATIC void _SurroundBkSpeakerSzParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif //D_ENABLE_DOLBY_EX_SUPPORT
#ifdef D_SETUP_SPEAKER_SUBWOOFER
STATIC void _SubwooferPresentParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif //D_SETUP_SPEAKER_SUBWOOFER
STATIC void _DigitalOutParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#ifdef D_SETUP_PINK_NOISE
STATIC void _PkNoiseTestToneParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif //D_SETUP_PINK_NOISE
#ifdef D_SETUP_DRC
STATIC void _DRCParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif
#ifdef D_ENABLE_DOWN_SAMPLING
STATIC void _DownSamplingParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif
#ifdef D_SETUP_PROLOGIC_CHOICE
STATIC void _PrologicParamAction(MSO_OBJECT __NEAR* pThis, enMutatorType eType, UINT16 wValue);
#endif //D_SETUP_PROLOGIC_CHOICE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -