📄 key_handler_setup.c
字号:
/****************************************************************************** * Filename : Setup_handle.c * Start : 2003. 3. 17. * By : Taejin Kwon * Contact : eric.kwon@samsung.com * Description : Key handle in the Setup state. * All key operation is used for setup display control and selection. * In that time there is no presentation for media but only background * image displaying. ****************************************************************************** *//****************************************************** * INCLUDES *****************************************************/#include <string.h>#include <stdio.h>#include "Basic_typedefs.h"#include "CUSTOM/Custom_option.h"#include "OS/OS_abstract.h"#include "API/SH_types.h"#include "API/SH_api.h"#include "COMMON/Common.h"#include "MAIN/Global_state.h"#include "MAIN/Appl_types.h"#include "MAIN/Uop_msg.h"#include "CUSTOM/Osd_types.h"#include "CUSTOM/Osd_if.h"#include "CUSTOM/Strings_ext.h"#include "DRIVER/FS/Fs_api.h"#include "CUSTOM/Key_handler_setup.h"#include "CUSTOM/Key_receive.h"#include "CUSTOM/Key_defs.h"#include "CUSTOM/Key_2_uop.h"#include "MAIN/DVD/Dvd_predef.h"#include "MAIN/DVD/Dvd_common.h"#include "MAIN/SVCD/Svcd_types.h"#include "MAIN/SVCD/Svcd_ext.h"#include "MAIN/SVCD/Svcd_show.h"#include "MAIN/MMP/Mmp_common.h"#include "CUSTOM/FP_handle.h"#include "DRIVER/I2C/I2c_api.h"#include "DRIVER/EEPROM/Eeprom_drv.h"/****************************************************** * Global variables / functions *****************************************************/SetupTop_t gSetup_info;BOOL gPasswd_passed = FALSE;BOOL gPasswd_confirmed = FALSE;UINT gPasswd_wrong_cnt = 0;BOOL gPasswd_creat = FALSE;ONOFF gOsd_onoff = TOGGLE_ON;ONOFF gOsd_angle_onoff = FALSE;UCHAR gVout_old_type;ONOFF gScr_saver_onoff = TOGGLE_ON;BOOL gVersionOn = FALSE;/****************************************************** * Extern variables *****************************************************/extern BYTE1 gNew_disc_id;extern volatile BOOL gTray_open;extern SysTimer_t gTimer_osd;extern SysTimer_t gTimer_num;extern SysTimer_t gTimer_selection;#if _APP_CAP_OSD_SUBTITLE_INCLUDE_OFFBOOL gSp_selected;#endif/****************************************************** * functions *****************************************************/extern VOID SH_KaraokeScoringInit(VOID);extern VOID SH_KaraokeScoringDeInit(VOID);extern INLINE IconState_et GetDisplayIconState( VOID );extern INLINE VOID SetMenuState( OSD_MenuCtrl_st *menu );#if _COP_CAPTURE_LOGO_USEDextern INLINE ONOFF IsFlashCaptureLogoValid( VOID );#endif/******************************************************************************* Function name : GuiSetupGetFirstDom2Item* Arguments : * IN MenuDom1State_et d1_state* * OUT * I/O * Return : STATIC MenuDom2State_et * * By : changlina* Description :* Revision : 1.0 *******************************************************************************/ //****clina****20060315STATIC MenuDom2State_et GuiSetupGetFirstDom2Item( MenuDom1State_et d1_state ){ switch( d1_state ) { case MENU_D1_SUB_LANG: return MENU_D2_LANG_START+1; break; case MENU_D1_SUB_DISP: return MENU_D2_DISP_START+1; break; case MENU_D1_SUB_AUDIO: return MENU_D2_AUDIO_START+1; break; #if _APP_CAP_AUD_KARAOKE case MENU_D1_SUB_KARAOKE: return MENU_D2_KARA_START+1; break;#endif#if _APP_CAP_AUD_SETUP_SPEAKER case MENU_D1_SUB_SPEAKER: return MENU_D2_SPK_START+1; break;#endif case MENU_D1_SUB_PARENT: return MENU_D2_LOCK_START+1; break; default: return MENU_D2_LANG_OSDMENU; break; }}/******************************************************************************* Function name : GuiSetupGetFirstDom3Item* Arguments : * IN * MenuDom2State_et d2_state* OUT * I/O * Return : MenuDom3State_et* * By : changlina* Description : * Revision : 1.0 20060518*******************************************************************************///clina 20060317MenuDom3State_et GuiSetupGetFirstDom3Item(MenuDom2State_et d2_state){ MenuDom2State_et d2 = d2_state; MenuDom3State_et d3; SetupLang_t lang; SetupDisplay_t disp; SetupAdult_t adult; SetupAudio_t audio; SetupSpeaker_t speaker;#if _APP_CAP_AUD_KARAOKE // Qian liping 060329 SetupKaraoke_t karaoke; SetupInfoGetMenuKaraoke(&karaoke);#endif SetupInfoGetMenuLang(&lang); SetupInfoGetMenuDisplay(&disp); SetupInfoGetMenuAudio(&audio); SetupInfoGetMenuSpeaker(&speaker); SetupInfoGetMenuAdult(&adult); //SetupInfoGetMenuEtc(&etc); switch( d2 ) { /* Lang */ case MENU_D2_LANG_OSDMENU: d3 = GuiSetupGetDom3UsingLangList(d2, lang.setup ); break; case MENU_D2_LANG_DISCMENU: d3 = GuiSetupGetDom3UsingLangList(d2, lang.menu ); break; case MENU_D2_LANG_AUDIO: d3 = GuiSetupGetDom3UsingLangList(d2, lang.audio ); break; case MENU_D2_LANG_SUBTITLE: d3 = GuiSetupGetDom3UsingLangList(d2, lang.subtitle ); break;#if _APP_CAP_OSD_MTK_VERSION case MENU_D2_LANG_VERSION: //CLINA 060421 if(lang.version==SET_VERSION_VIEW) d3= MENU_D3_LANG_VERSION_VIEW;#if _APP_CAP_FUNC_DIVX_DRM else d3=MENU_D3_LANG_VERSION_DRM;#endif break;#endif/* case MENU_D2_LANG_SAVER: if(lang.saver) d3= MENU_D3_LANG_SAVER_ON; else d3= MENU_D3_LANG_SAVER_OFF; break; case MENU_D2_LANG_RESET: d3= MENU_D3_LANG_RESET_RESTORE; break; */ /* Display */ case MENU_D2_DISP_ASPECT: if( disp.tv == SET_TV_TYPE_4_3_LB ) d3= MENU_D3_DISP_ASPECT_43LB; else if( disp.tv == SET_TV_TYPE_4_3_PS ) d3=MENU_D3_DISP_ASPECT_43PS; else d3= MENU_D3_DISP_ASPECT_169WIDE; break; case MENU_D2_DISP_TV: if( disp.tv_system == SET_COLOR_AUTO ) d3=MENU_D3_DISP_TV_AUTO;#if _COP_TV_PAL60 else if( disp.tv_system == SET_COLOR_PAL60) d3= MENU_D3_DISP_TV_PAL60;#endif#if _COP_TV_PALM else if( disp.tv_system == SET_COLOR_PALM) d3= MENU_D3_DISP_TV_PALM;#endif#if _COP_TV_PALN else if( disp.tv_system == SET_COLOR_PALN) d3= MENU_D3_DISP_TV_PALN;#endif else if( disp.tv_system == SET_COLOR_PAL) d3 = MENU_D3_DISP_TV_PAL; else d3= MENU_D3_DISP_TV_NTSC; break;#if _COP_UI_OSD_HDMI_VIDEO_IN_SETUP case MENU_D2_DISP_HDMI_VIDEO: if(disp.hdmi_vd == SET_HDMI_720_480) d3=MENU_D3_DISP_HDMI_VD_720_480; else if(disp.hdmi_vd == SET_HDMI_1280_720) d3=MENU_D3_DISP_HDMI_VD_1280_720; else if(disp.hdmi_vd == SET_HDMI_1920_1080) d3=MENU_D3_DISP_HDMI_VD_1920_1080; else d3=MENU_D3_DISP_HDMI_VD_AUTO; break;#endif case MENU_D2_DISP_ANGLE: if(disp.angle) d3= MENU_D3_DISP_ANGLE_ON; else d3=MENU_D3_DISP_ANGLE_OFF; break; #if _APP_CAP_OSD_CAPTURE_LOGO_IN_SETUP case MENU_D2_DISP_CPT_LOGO: SetupInfoSetMenuDisplay(&disp); if(disp.cpt_logo) d3= MENU_D3_DISP_CPT_LOGO_ON; else d3= MENU_D3_DISP_CPT_LOGO_OFF; break;#endif#if _COP_UI_OSD_ASV_IN_SETUP//clina 061019 case MENU_D2_DISP_ASV: d3= (MENU_D3_DISP_ASV_START+1)+disp.asv; break;#endif case MENU_D2_DISP_CAPTION: if(disp.caption) d3= MENU_D3_DISP_CAPTION_ON; else d3=MENU_D3_DISP_CAPTION_OFF; break; case MENU_D2_DISP_SAVER: if(disp.saver) d3=MENU_D3_DISP_SAVER_ON; else d3=MENU_D3_DISP_SAVER_OFF; break; /* Audio */ case MENU_D2_AUDIO_DIGITAL_OUTPUT: d3=(MENU_D3_AUDIO_DIGITAL_OUTPUT_START+1)+audio.digtal_out; break; case MENU_D2_AUDIO_CHAN_OUTPUT: d3=MENU_D3_AUDIO_CHAN_LRT+audio.channel; //clina 060421 /*audio.channel(SET_SPK_CHANNEL_ID structure) clina 060421*/ break; case MENU_D2_AUDIO_DUAL_MONO: d3=(MENU_D3_AUDIO_DUAL_MONO_START+1)+audio.dual_mono; break; case MENU_D2_AUDIO_DYN_COMP: d3=(MENU_D3_AUDIO_DRC_START+1)+audio.dynamic; break;#if _COP_UI_OSD_HDMI_AUDIO_IN_SETUP case MENU_D2_AUDIO_HDMI: d3=(MENU_D3_AUDIO_HDMI_START+1)+audio.hdmi_aud; break;#endif case MENU_D2_AUDIO_LPCM_OUTPUT: if( audio.lpcm == LPCM_OUT_48K ) d3= MENU_D3_AUDIO_LPCM_48; else d3= MENU_D3_AUDIO_LPCM_96; break; #if! _COP_AUD_2CH_ONLY_OUT //clina 060421 case MENU_D2_AUDIO_SPDIF_PCM: if( audio.pcm == PCM_CHAN_FRONT) d3= MENU_D3_AUDIO_SPDIF_FRONT; else if( audio.pcm == PCM_CHAN_SURROUND) d3= MENU_D3_AUDIO_SPDIF_SURROUND; else d3= MENU_D3_AUDIO_SPDIF_CENTER; break;#endif #if _APP_CAP_AUD_KARAOKE // Qian liping 060329#if !_APP_CAP_MTK_ONLY_KARA_SCORING case MENU_D2_KARA_ONOFF: if( karaoke.mic_setup == TOGGLE_OFF) d3= MENU_D3_KARA_SET_OFF; else d3= MENU_D3_KARA_SET_ON; break; case MENU_D2_KARA_VOL: d3 =MENU_D3_KARA_VOL_0+karaoke.mic_volume; break; case MENU_D2_KARA_ECHO: d3 =MENU_D3_KARA_ECHO_0+karaoke.echo; break; case MENU_D2_KARA_KEY: d3 =MENU_D3_KARA_KEY_N6+karaoke.key; break;#endif #if _APP_CAP_AUD_KARAOKE_SCORING case MENU_D2_KARA_SCORE: if( karaoke.score == TOGGLE_OFF) d3= MENU_D3_KARA_SCORE_OFF; else d3= MENU_D3_KARA_SCORE_ON; break;#endif /* _APP_CAP_AUD_KARAOKE_SCORING */#endif/*_APP_CAP_AUD_KARAOKE*/ /* Speaker */#if _APP_CAP_AUD_SETUP_SPEAKER #if _APP_CAP_AUD_SUB_3D_SEPERATED#if _APP_CAP_AUD_3D case MENU_D2_SPK_3D: d3= GuiSetupGetSpk3dDom3(speaker.activevbx); break;#endif#endif#if _APP_CAP_AUD_EQ case MENU_D2_SPK_3DEQ: d3= GuiSetupGetSpkEqDom3(speaker.equalizer); break;#endif #if _APP_CAP_AUD_REVERBERATION case MENU_D2_SPK_REVERBERATION: d3= GuiSetupGetSpkRevDom3(speaker.reverberation); break;#endif#if! _COP_AUD_2CH_ONLY_OUT //clina 060421#if _APP_CAP_AUD_BASE_MANAGE case MENU_D2_SPK_CONFIG: d3= GuiSetupGetSpkCfgDom3(speaker.configure); break;#endif case MENU_D2_SPK_TIME_DELAY: d3= MENU_D3_SPK_TIME_DELAY_SET; break;#if _APP_CAP_AUD_TIME_DELAY case MENU_D2_SPK_SURROUD_DALAY: d3= GuiSetupGetSpkSdelayDom3(speaker.s_delay); break; case MENU_D2_SPK_CENTER_DALAY: d3= GuiSetupGetSpkCdelayDom3(speaker.c_delay); break;#endif/*_APP_CAP_AUD_TIME_DELAY */ #if _APP_CAP_AUD_PROLOGIC // Qian liping 060424 case MENU_D2_SPK_PROLOGIC: if(speaker.prologic ) d3= MENU_D3_SPK_PROLOGIC_ON; else d3= MENU_D3_SPK_PROLOGIC_OFF; break;#endif#if _APP_CAP_AUD_CONTROL_VOLUME// clina 060426 case MENU_D2_SPK_VOLUME: d3= MENU_D3_SPK_VOLUME_SET; break;#endif#if _APP_CAP_AUD_CALNOISE case MENU_D2_SPK_TESTTONE: if(speaker.test_tone) d3= MENU_D3_SPK_TESTTONE_ON; else d3= MENU_D3_SPK_TESTTONE_OFF; break;#endif#endif/* _COP_AUD_2CH_ONLY_OUT //clina 060421*/#endif/*_APP_CAP_AUD_SETUP_SPEAKER*/ /* lock(parental) */ case MENU_D2_LOCK_LEVEL: d3=MENU_D3_LOCK_LV_START+ adult.level; break; case MENU_D2_LOCK_CHANGE: d3=MENU_D3_LOCK_CHANGE_START+1; break; case MENU_D2_LANG_RESET: d3=MENU_D3_LANG_RESET_RESTORE; break; default: d3=MENU_D3_LANG_AUDIO_ENG; break; } return d3;}MenuDom4State_et GuiSetupGetDom4UsingLangList( MenuLang_et lang ){ switch( lang ) {#if 0 #if _APP_CAP_OSD_LANG_CHINESE case LANG_CHINA: return OTH_LANG_CHINESE;#endif#if _APP_CAP_OSD_LANG_JAPANESE case LANG_CHINA: return OTH_LANG_JAPAN;#endif#if _APP_CAP_OSD_LANG_PORTUGUESE case LANG_CHINA: return OTH_LANG_PORTUGUES;#endif#if _APP_CAP_OSD_LANG_RUSSIAN case LANG_CHINA: return OTH_LANG_RUSSIAN;#endif#endif case LANG_CESKY: return OTH_LANG_CESKY; case LANG_DANSK: return OTH_LANG_DANSK; case LANG_MAGYAR: return OTH_LANG_MAGYAR; case LANG_SVENSKA: return OTH_LANG_SVENSKA; case LANG_NORSK: return OTH_LANG_NORSK; case LANG_POLSKI: return OTH_LANG_POLSKI; case LANG_SUOMI: return OTH_LANG_SUOMI; case LANG_AFRIKAANS: return OTH_LANG_AFRIKAANS; case LANG_ARABIC: return OTH_LANG_ARABIC; case LANG_THAI: return OTH_LANG_THAI; case LANG_GREEK: return OTH_LANG_GREEK; case LANG_HINDI: return OTH_LANG_HINDI; case LANG_TURKI: return OTH_LANG_TURKI; case LANG_NEDERLAND: return OTH_LANG_NEDERLAND; case LANG_KOREAN: return OTH_LANG_KOREAN; case LANG_SWEDISH:return OTH_LANG_SWEDISH; case LANG_FINNISH:return OTH_LANG_FINNISH; case LANG_ROMAN:return OTH_LANG_ROMAN; default: break; } return OTH_LANG_CESKY;}//clina 060511MenuDom4State_et GuiSetupGetDefaultLangDom4( ){ SetupLang_t lang; MenuDom4State_et d4_index; SetupInfoGetMenuLang(&lang); switch( gOSD_state.etSetup_dsp.d2_list ) { case MENU_D2_LANG_AUDIO: if( lang.audio == LANG_OTHER ) { d4_index = GuiSetupGetDom4UsingLangList(lang.audio_other); } else { d4_index = MENU_D4_LANG_OTH_START+1; } break; case MENU_D2_LANG_SUBTITLE: if( lang.subtitle == LANG_OTHER ) { d4_index = GuiSetupGetDom4UsingLangList(lang.subtitle_other); } else { d4_index = MENU_D4_LANG_OTH_START+1; } break; case MENU_D2_LANG_DISCMENU: if( lang.menu == LANG_OTHER ) { d4_index = GuiSetupGetDom4UsingLangList(lang.menu_other); } else { d4_index = MENU_D4_LANG_OTH_START+1; } break; default: d4_index = MENU_D4_LANG_OTH_START+1; break; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -