/*=========================================================== * Copyright (c) Realtek Semiconductor Corporation, 2005 * All rights reserved. * ========================================================== */ /*==================== File Description ===================== */ /** * @file * This file is osd control declaration related functions. * * @author $Author: hillwang $ * @date $Date: 2006-08-07 16:36:23 +0800 (?Ÿæ?一, 07 ?«æ? 2006) $ * @version $Revision: 1155 $ * @ingroup osd */ /** * @addtogroup osd * @{ */ #define _OSDCONTROL_C /*===================== Module dependency ================== */ #include "Core\Header\Include.h" /*======================= Private Types ===================== */ /*======================== Definitions ====================== */ //#define _MOVIE_MODE 0 //#define _TEXT_MODE 1 //#define _USER_MODE 2 //#define _NORMAL_MODE 3 #define NOR_FACTOR_CONSTANT 0x3FC00000 /*========================== Variables ====================== */ // AutoScan UINT8 * idata pGetGainOffsetTarget; BYTE code tDCC_Control1[] = { 0x84, 0x66, 0xc3, 0x7c, 0xce, 0x1e, 0x10, 0x10, 0x14, }; BYTE code tDCC_Control2[] = { 0x84, 0x66, 0xc3, 0x5c, 0xce, 0x1e, 0x10, 0x10, 0x14, }; BYTE code tDCC_Control3[] = { 0x84, 0x66, 0xc3, 0x7c, 0xce, 0x1e, 0x10, 0x10, 0x14, }; BYTE code tDCC_Control4[] = { 0x84, 0x66, 0xc3, 0xb4, 0xe6, 0x1e, 0x10, 0x00, 0xff, }; BYTE code tDCC_Control5[] = { 0x84, 0x66, 0xc3, 0xb4, 0xe6, 0x1e, 0x10, 0x00, 0xff, }; BYTE code tDCC_Control6[] = { 0x84, 0x66, 0xc3, 0x64, 0xce, 0x1e, 0x10, 0x10, 0x14, }; BYTE code tDCC_UserCurve1[] = { 0x05, 0x10, 0x1f, 0x30, 0x43, 0x57, 0x6d, 0x80, 0x95, 0xa9, 0xbd, 0xce, 0xe0, 0xed, 0xf7, 0x10, 0x00, 0x80, 0x14, 0x34, }; BYTE code tDCC_UserCurve2[] = { 0x0e, 0x1d, 0x2d, 0x3d, 0x4d, 0x5d, 0x6d, 0x7d, 0x8e, 0x9d, 0xad, 0xbc, 0xca, 0xdb, 0xeb, 0x10, 0x00, 0x41, 0x14, 0x34, }; BYTE code tDCC_UserCurve3[] = { 0x0f, 0x1d, 0x2d, 0x3e, 0x4b, 0x5c, 0x6d, 0x80, 0x91, 0xa2, 0xb3, 0xc4, 0xd4, 0xe3, 0xf2, 0x10, 0x00, 0x5d, 0x14, 0x30, }; BYTE code tDCC_UserCurve4[] = { 0x07, 0x11, 0x21, 0x35, 0x50, 0x60, 0x70, 0x80, 0x9a, 0xad, 0xbf, 0xcb, 0xd8, 0xe3, 0xf0, 0x10, 0x00, 0x50, 0x14, 0x34, }; BYTE code tDCC_UserCurve5[] = { 0x07, 0x11, 0x21, 0x35, 0x50, 0x69, 0x7e, 0x8f, 0x9e, 0xad, 0xbf, 0xcb, 0xd8, 0xe3, 0xf0, 0x10, 0x00, 0x50, 0x14, 0x34, }; BYTE code tDCC_UserCurve6[] = { 0x18, 0x2c, 0x3f, 0x50, 0x61, 0x73, 0x85, 0x99, 0xad, 0xc0, 0xd2, 0xe0, 0xeb, 0xf5, 0xfc, 0x10, 0x00, 0x64, 0x14, 0x3a, }; code BYTE *tDCC_Control[6] = { tDCC_Control2, tDCC_Control3, tDCC_Control1, tDCC_Control4, tDCC_Control5, tDCC_Control6 }; code BYTE *tDCC_UserCurve[6] = { tDCC_UserCurve2, tDCC_UserCurve3, tDCC_UserCurve1, tDCC_UserCurve4, tDCC_UserCurve5, tDCC_UserCurve6 }; UINT8 xdata ucSleepTimeMin; UINT8 xdata ucSleepTimeSec; UINT8 xdata ucSleepType = 0x00; BIT bDoAspectRatioFlag = _FALSE; void COsdFxChangeInputSrc(UINT8 ucSrcNo) { UINT8 ucAudioNo; if((ucSrcNo >= _INPUT_PORT_MAX)) //if((ucSrcNo > 5)) return; SET_OSD_CHANGE_SOURCE(); stSystemData.InputSource = ucSrcNo; // close OSD first to avoid dirty screen. //COsdFxDisableOsd(); ucAudioNo = GET_INPUTPORT_TYPE(stSystemData.InputSource); switch(ucAudioNo) { case _DSUB_A0_PORT: CScalerSetBit(_IPH_ACT_WID_H_16, ~_BIT5, 0x00); SET_INPUTSOURCE_TYPE(_SOURCE_VGA); CVideoOutputDisable(); TV_Power_Down();//add by xyw 070903 //20080823 ccy add #if (_PCB_TYPE == _PCB_TEST) CLR_DVD_POWERONOFF(); #endif //20080215, Pioneer DVD HDMI cause YPBPR can't be shown. #if (_HDCP_SUPPORT == _ON) SET_HOTPLUG_HDMI(_OFF); SET_HOTPLUG_HDMI2(_OFF); #endif break; #if((_TMDS_SUPPORT == _ON) || (_HDMI_SUPPORT == _ON)) case _HDMI_PORT: case _HDMI_PORT2: //20080421, HDMI update RT080321. start... CScalerPageSelect(_PAGE2); CScalerSetBit(_P2_ANALOG_COMMON_CTRL2_AB, ~(_BIT1 | _BIT0), 0); //ch0/ch1 Z0 OFF CTimerDelayXms(100); //20080421, HDMI update RT080321. end... SET_INPUTSOURCE_TYPE(_SOURCE_DVI); CVideoOutputDisable(); TV_Power_Down();//add by xyw 070903 //20080823 ccy add #if (_PCB_TYPE == _PCB_TEST) CLR_DVD_POWERONOFF(); #endif //20080215, Pioneer DVD HDMI cause YPBPR can't be shown. #if (_HDCP_SUPPORT == _ON) if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_HDMI_PORT) { SET_HOTPLUG_HDMI(_ON); SET_HOTPLUG_HDMI2(_OFF); } else { SET_HOTPLUG_HDMI(_OFF); SET_HOTPLUG_HDMI2(_ON); } //080319,test hdmi CTimerDelayXms(200); //080319,test hdmi #endif break; #endif #if _DVI_SUPPORT #if(_TMDS_SUPPORT == _ON) case _DVI_I_A0_PORT: //DVI port SET_INPUTSOURCE_TYPE(_SOURCE_DVI); CVideoOutputDisable(); TV_Power_Down();//add by xyw 070903 //20080823 ccy add #if (_PCB_TYPE == _PCB_TEST) CLR_DVD_POWERONOFF(); #endif //20080215, Pioneer DVD HDMI cause YPBPR can't be shown. #if (_HDCP_SUPPORT == _ON) SET_HOTPLUG_HDMI(_ON); SET_HOTPLUG_HDMI2(_ON); #endif break; #endif #endif case _YPBPR_A0_PORT: #if (_PCB_TYPE == _PCB_TEST) SET_DVD_POWERONOFF(); CTimerDelayXms(2000);//20070714 gary for HDMI compatibility problem #endif CScalerSetBit(_IPH_ACT_WID_H_16, ~_BIT5, 0x00); //adc input R/B swap disable. SET_INPUTSOURCE_TYPE(_SOURCE_YPBPR); #if DINISHI_CHANGESOURCE_DVD_TV_MUTE CAudioChipWrVolumeGradual(stAudioData.Volume, 1); CTimerDelayXms(100); #endif CVideoOutputDisable(); TV_Power_Down();//add by xyw 070903 //20080823 ccy add //SET_DMB_VIDEO(); CTimerDelayXms(20); //20080215, Pioneer DVD HDMI cause YPBPR can't be shown. #if (_HDCP_SUPPORT == _ON) SET_HOTPLUG_HDMI(_OFF); SET_HOTPLUG_HDMI2(_OFF); #endif break; case _VIDEO_TV_PORT: SET_INPUTSOURCE_TYPE(_SOURCE_VIDEO8); TV_Power_ON();//add by xyw 070903 //20080823 ccy add #if (_PCB_TYPE == _PCB_TEST) #if DINISHI_CHANGESOURCE_DVD_TV_MUTE CAudioChipWrVolumeGradual(stAudioData.Volume, 1); CTimerDelayXms(300); #endif CLR_DVD_POWERONOFF(); #endif CTimerDelayXms(100); CVideoOutputEnable(); //20080215, Pioneer DVD HDMI cause YPBPR can't be shown. #if (_HDCP_SUPPORT == _ON) SET_HOTPLUG_HDMI(_OFF); SET_HOTPLUG_HDMI2(_OFF); #endif SET_TV_VIDEO(); CTimerDelayXms(20); break; //20080823 ccy modify #if (_PCB_TEST == _PCB_TYPE) case _VIDEO_AV_PORT: case _VIDEO_YCBCR_PORT: case _VIDEO_AV_SV_PORT1: case _VIDEO_SCART_PORT: SET_INPUTSOURCE_TYPE(_SOURCE_VIDEO8); CVideoOutputEnable(); #if DINISHI_CHANGESOURCE_DVD_TV_MUTE CAudioChipWrVolumeGradual(stAudioData.Volume, 1); CTimerDelayXms(300); #endif TV_Power_Down();//add by xyw 070903 //20080823 ccy add #if (_PCB_TYPE == _PCB_TEST) CLR_DVD_POWERONOFF(); #endif SET_AV_VIDEO(); CTimerDelayXms(20); //20080215, Pioneer DVD HDMI cause YPBPR can't be shown. #if (_HDCP_SUPPORT == _ON) SET_HOTPLUG_HDMI(_OFF); SET_HOTPLUG_HDMI2(_OFF); #endif break; case _VIDEO_SV_PORT: SET_INPUTSOURCE_TYPE(_SOURCE_VIDEO8); TV_Power_Down();//add by xyw 070903 //20080823 ccy add #if (_PCB_TYPE == _PCB_TEST) CLR_DVD_POWERONOFF(); #endif //20080922 ccy modify //CTimerDelayXms(1000); CVideoOutputEnable(); //20080215, Pioneer DVD HDMI cause YPBPR can't be shown. #if (_HDCP_SUPPORT == _ON) SET_HOTPLUG_HDMI(_OFF); SET_HOTPLUG_HDMI2(_OFF); #endif break; #else case _VIDEO_AV_PORT: case _VIDEO_SV_PORT: case _VIDEO_YCBCR_PORT: case _VIDEO_AV_SV_PORT1: case _VIDEO_SCART_PORT: SET_INPUTSOURCE_TYPE(_SOURCE_VIDEO8); CVideoOutputEnable(); TV_Power_Down();//add by xyw 070903 //20080215, Pioneer DVD HDMI cause YPBPR can't be shown. #if (_HDCP_SUPPORT == _ON) SET_HOTPLUG_HDMI(_OFF); SET_HOTPLUG_HDMI2(_OFF); #endif break; #endif } CModeResetMode();//added by frank change to this position to get correct input source //CAudioSetSource(ucAudioNo); //fjyang070531 remove to avoid, change source that sounds are too fast. CLR_SOURCE_AUTOCHANGE(); CEepromLoadBriConData(); //if (GET_PICT_EFFECT()==_PICT_EFFECT_USER) // modified by xyw 070815 //{ // CEepromLoadBriConData(); //} //else //{ // stConBriData.Brightness=COsdCtrlGetBrightness(); // stConBriData.Contrast=COsdCtrlGetContrast(); //} CEepromLoadHueSatData(); CEepromSaveSystemData(); CEepromSaveTvData(); #if _CGT_DELAY_PC_MUTE CLR_PC_AUDIO_ACTIVE(); #endif //#if _CGT_DELAY_PC_MUTE } UINT8 COsdFxCalcMenuSelSource() { //!!! according to _INPUT_PORT_MAX !!! #if (_PCB_TYPE==_PCB_PT2662A) switch(stSystemData.InputSource) { case 0: // D-sub return 1; case 1: // DVI case 2: return 2; // CVBS(2533 + 2613) case 3: // S-Video(2533 + 2613) return 4; case 4: // YPBPr return 3; case 5: // TV return 0; break; }; #endif #if _PCB_TYPE == _PCB_PT2662C1B #if _TYPEOF_INPUT==_TYPEOF_INPUT_6SRC switch(stSystemData.InputSource) { case 0: // TV return 1; case 1: // av case 2: // sv return 2; case 3: // ypbpr return 4; case 4: // hdmi return 3; case 5: // pc return 0; default: // return 0; }; #elif _TYPEOF_INPUT==_TYPEOF_INPUT_7SRC switch(stSystemData.InputSource) { case 0: // TV return 1; case 1: // av case 2: // sv return 2; case 3: // ypbpr return 4; case 4: // hdmi 1 case 5: // hdmi 2 return 3; case 6: // pc return 0; default: // return 0; }; #endif //#if _TYPEOF_INPUT==_TYPEOF_INPUT_7SRC #endif //#if _PCB_TYPE == _PCB_PT2662C1B #if (_PCB_TYPE==_PCB_PT2660A1A) switch(stSystemData.InputSource) { case 0: // TV return 1; case 1: // CVBS case 2: // S-Video return 2; case 3: // D-sub return 0; }; #endif #if (_PCB_TYPE==_PCB_PT2660_KTC57924G) switch(stSystemData.InputSource) { case 0: // PC return 0; case 1: // CVBS case 2: // S-Video return 2; }; #endif //20080818 ccy add #if (_PCB_TYPE==_PCB_TEST) switch(stSystemData.InputSource) { case 3: // PC return 0; case 1: // CVBS case 2: // S-Video return 2; case 0: //TV return 1; }; #endif #if _PCB_TYPE==_PCB_PT2662F1A #if _TYPEOF_INPUT==_TYPEOF_INPUT_6SRC switch(stSystemData.InputSource) { case 0: // TV return 1; case 1: // av case 2: // sv return 2; case 3: // ypbpr return 4; case 4: // hdmi return 3; case 5: // pc return 0; default: // return 0; }; #elif _TYPEOF_INPUT==_TYPEOF_INPUT_7SRC switch(stSystemData.InputSource) { case 0: // TV return 1; case 1: // av case 2: // sv return 2; case 3: // ypbpr return 4; case 4: // hdmi 1 case 5: // hdmi 2 return 3; case 6: // pc return 0; default: // return 0; }; #elif _TYPEOF_INPUT==_TYPEOF_INPUT_8SRC switch(stSystemData.InputSource) { case 0: // TV return 1; case 1: // av case 2: // sv return 2; case 3: // ypbpr case 4: // ypbpr return 4; case 5: // hdmi 1 case 6: // hdmi 2 return 3; case 7: // pc return 0; default: // return 0; }; #endif //#if _TYPEOF_INPUT==_TYPEOF_INPUT_7SRC #endif //#if _PCB_TYPE==_PCB_PT2662F1A #if _PCB_TYPE==_PCB_PT2662F1C #if _TYPEOF_INPUT==_TYPEOF_INPUT_6SRC switch(stSystemData.InputSource) { case 0: // TV return 1; case 1: // av case 2: // sv return 2; case 3: // ypbpr return 4; case 4: // hdmi return 3; case 5: // pc return 0; default: // return 0; }; #elif _TYPEOF_INPUT==_TYPEOF_INPUT_7SRC switch(stSystemData.InputSource) { case 0: // TV return 1; case 1: // av case 2: // sv return 2; case 3: // ypbpr return 4; case 4: // hdmi 1 case 5: // hdmi 2 return 3; case 6: // pc return 0; default: // return 0; }; #elif _TYPEOF_INPUT==_TYPEOF_INPUT_8SRC switch(stSystemData.InputSource) { case 0: // TV return 1; case 1: // av case 2: // sv return 2; case 3: // ypbpr case 4: // ypbpr return 4; case 5: // hdmi 1 case 6: // hdmi 2 return 3; case 7: // pc return 0; default: // return 0; }; #endif //#if _TYPEOF_INPUT==_TYPEOF_INPUT_7SRC #endif //#if _PCB_TYPE==_PCB_PT2662F1C #if (_PCB_TYPE==_PCB_PT2662B1C) #if _TYPEOF_INPUT==_TYPEOF_INPUT_6SRC switch(stSystemData.InputSource) { case 0: // D-sub return 1; case 1: // DVI case 2: return 2; // CVBS(2533 + 2613) case 3: // S-Video(2533 + 2613) return 4; case 4: // YPBPr return 3; case 5: // TV return 0; break; }; #elif _TYPEOF_INPUT==_TYPEOF_INPUT_5SRC switch(stSystemData.InputSource) { case 0: // D-sub return 1; case 1: // DVI case 2: return 2; // CVBS(2533 + 2613) case 3: // S-Video(2533 + 2613) return 4; case 4: // tv return 0; break; default: return 0; break; }; #endif #endif } void COsdCtrlSetSingalSource(UINT8 message) { // if the same source, don't need to change. if (stSystemData.InputSource == message) return; CAdjustBackgroundColor(0x00,0x00,0x00); //setup black background color //20081016 ccy cancel CScalerSetBit(_VDISP_CTRL_28, ~_BIT5, _BIT5); //CScalerSetBit(_VDISP_CTRL_28, ~_BIT3, _BIT5); SET_MUTE_PROCESS(_ENABLE); //add 20091126 COsdFxDisableOsd(); COsdFxChangeInputSrc(message); //20080825 ccy add // CAudioSetSource(GET_INPUTPORT_TYPE(stSystemData.InputSource)); ucMenuSelect =COsdFxCalcMenuSelSource(); COsdCoreInitialze();//add by xyw } #if 0 void COsdCtrlSetSingalSourceMainMenu(void) { if (ucExtendMenuRow>_INPUT_PORT_MAX) return; if (ucExtendMenuRow==0) return; #if _PCB_TYPE==_PCB_PT2662F1A #if _TYPEOF_INPUT == _TYPEOF_INPUT_8SRC COsdCtrlSetSingalSource(tSrcMap[(ucExtendMenuCol-1)*5+ucExtendMenuRow-1][2]); #else COsdCtrlSetSingalSource(ucExtendMenuRow-1); #endif #elif _PCB_TYPE==_PCB_PT2662F1C #if _TYPEOF_INPUT == _TYPEOF_INPUT_8SRC COsdCtrlSetSingalSource(tSrcMap[(ucExtendMenuCol-1)*5+ucExtendMenuRow-1][2]); #else COsdCtrlSetSingalSource(ucExtendMenuRow-1); #endif #else COsdCtrlSetSingalSource(ucExtendMenuRow-1); #endif } #endif UINT8 COsdCtrlGetColorTemp() { return GET_COLOR_TEMP_TYPE(); } void COsdCtrlSetColorTemp() { if (GET_INPUTSOURCE_TYPE()==_SOURCE_VGA) SET_COLOR_TEMP_TYPE((GET_COLOR_TEMP_TYPE() + 1) % _CT_TYPE_TOTAL); else if (GET_INPUTSOURCE_TYPE()==_SOURCE_DVI) SET_COLOR_TEMP_TYPE((GET_COLOR_TEMP_TYPE() + 1) % _CT_TYPE_DVI_TOTAL); else SET_COLOR_TEMP_TYPE((GET_COLOR_TEMP_TYPE() + 1) % _CT_TYPE_VIDEO_TOTAL); CEepromLoadColorTempData(); CAdjustContrast(); CEepromSaveColorTempModeData(); } UINT8 COsdCtrlGetModeSelect() { return (BYTE)GET_MODESELECT_TYPE(); } void COsdCtrlSetModeSelect() { SET_MODESELECT_TYPE(((BYTE)GET_MODESELECT_TYPE() + 1) % 2); CEepromSaveSystemData(); CModeResetMode(); COsdCoreInitialze(); } #if 0 //------------source -------------------------------- UINT8 COsdCtrlGetSource() { return stSystemData.InputSource; } #endif #define WIN_ID(x) (x) #define WIN_EXT_BG WIN_ID(0) #define WIN_EXT_FG WIN_ID(1) #define WIN_EXT_MV WIN_ID(5) #define _TVSCANBG_WINDOW_HSTART (0) // {0, 0, 12 * 45, 32+18+18 * 8+ 9}, #define _TVSCANBG_WINDOW_HEND (12 * 45) #define _TVSCANBG_WINDOW_VSTART (0) #define _TVSCANBG_WINDOW_VEND (32+18+18 * 6+ 8) #define _TVSCANFG_WINDOW_HSTART (_TVSCANBG_WINDOW_HSTART+12) #define _TVSCANFG_WINDOW_HEND (_TVSCANBG_WINDOW_HEND-12) #define _TVSCANFG_WINDOW_VSTART (_TVSCANBG_WINDOW_VSTART+48) #define _TVSCANFG_WINDOW_VEND (_TVSCANBG_WINDOW_VEND-36) // tv scan extend page skin1 WindowStyle code tOsdAutoScan_BackgroundWindow1 = { WIN_EXT_BG, //{_WIN_TVSCAN_H_START, 0, 12 * 45, 32+18+18 * 6+ 9}, {_TVSCANBG_WINDOW_HSTART, _TVSCANBG_WINDOW_VSTART, _TVSCANBG_WINDOW_HEND, _TVSCANBG_WINDOW_VEND}, {0, 0, 0x00}, {0x00, 0x10 | _CP_3, 1} }; WindowStyle code tOsdAutoScan_ForegroundWindow1 = { WIN_EXT_FG, //{_Win_Gap, 32 + 18, 12 * 45-_Win_Gap, 32+18+18 * 4+ 9}, {_TVSCANFG_WINDOW_HSTART, _TVSCANFG_WINDOW_VSTART, _TVSCANFG_WINDOW_HEND, _TVSCANFG_WINDOW_VEND}, {0, 0, 0x00}, {0x00, 0x10 | _CP_3, 1} }; #if 0 //we not use item move window for tv scan WindowStyle code tOsdAutoScan_MoveWindow1 = { WIN_EXT_MV, {2*10, 0, _DISP_WID-2*10, 32}, {0, 0, 0x00}, {0x00, 0x10 | _CP_3, 1} }; void COsdMenuAutoScan() { #if 0 //to be defined COsdFxDisableOsd(); COsdFxMapSetting(_OSD_MAP1); COsdFxDrawWindow(&tOsdAutoScan_BackgroundWindow1); COsdFxDrawWindow(&tOsdAutoScan_ForegroundWindow1); //usItemStart = tOsdAutoScan_ForegroundWindowArray[GET_OSDSKIN()]->stPosition.usXStart + 20; usItemStart = tOsdAutoScan_ForegroundWindow1.stPosition.usXStart + 20; COsdFxLoadText(0, 0, usItemStart, _CP_3, _CP_1, GET_LANGUAGE(), tOsdAutoScanStr); //COsdFxLoadText(1, 0, usItemStart, _CP_3, _CP_1, GET_LANGUAGE(), tAutoScanMsgDialog.pNoteString); //COsdFxLoadText(5, 0, usItemStart, _CP_3, _CP_1, GET_LANGUAGE(), tOsdKeyDirStr_MExit); COsdFxEnableOsd(); CTimerCancelTimerEvent(COsdFxExitEvent); //CTvAutoScanStart(); //COsdCoreSetState(_AUTOSCANCHANNEL_STATE); CTvAutoScan(); //premier, add, review??? CTimerCancelNosignal_Icon_Powersaving(); #endif //to be defined COsdFxMapSetting(_OSD_MAP9); COsdFxDrawWindow(&tExtAdjWindowStyle); //usItemStart = tOsdAutoScan_ForegroundWindowArray[GET_OSDSKIN()]->stPosition.usXStart + 20; usItemStart = tOsdAutoScan_ForegroundWindow1.stPosition.usXStart + 20; COsdFxLoadText(0, 0, usItemStart, _CP_3, _CP_1, GET_LANGUAGE(), tOsdAutoScanStr); //COsdFxLoadText(1, 0, usItemStart, _CP_3, _CP_1, GET_LANGUAGE(), tAutoScanMsgDialog.pNoteString); //COsdFxLoadText(5, 0, usItemStart, _CP_3, _CP_1, GET_LANGUAGE(), tOsdKeyDirStr_MExit); COsdFxEnableOsd(); CTimerCancelTimerEvent(COsdFxExitEvent); //CTvAutoScanStart(); //COsdCoreSetState(_AUTOSCANCHANNEL_STATE); CTvAutoScan(); //premier, add, review??? CTimerCancelNosignal_Icon_Powersaving(); } #endif //-----------------sva--------------------------------- #if 0 void COsdSMenuAdjustlANGUAGE0() { UINT8 ucLanguage; ucLanguage = 0; SET_LANGUAGE(ucLanguage); //COsdFxDisableOsd();// test by xyw 071019 CEepromSaveOsdUserData(); COsdResetMenu(); } void COsdSMenuAdjustlANGUAGE1() { UINT8 ucLanguage; ucLanguage = 1; SET_LANGUAGE(ucLanguage); #if _ADD_CHINESE #if(_CHINESE_FONT_TYPE == _CH_FONT_2X1) COsdLoadfontLoadChineseBankFont(4); #else COsdDispLoadFont(GET_LANGUAGE()); #endif #endif //COsdFxDisableOsd();// test by xyw 071019 CEepromSaveOsdUserData(); COsdResetMenu(); } #endif UINT8 COsdCtrlGetLanguage(void) { return (GET_LANGUAGE()); } void COsdCtrlSetLanguage(UINT8 message) { UINT8 mode = GET_LANGUAGE(); if (message == _LEFT_KEY_MESSAGE) { if (mode<=_LANGUAGE_FIRST) mode = _LANGUAGE_LAST; else mode -= 1; } else if (message == _RIGHT_KEY_MESSAGE) { if (mode >= _LANGUAGE_LAST) mode = _LANGUAGE_FIRST; else mode = mode + 1; } else return; SET_LANGUAGE(mode); CEepromSaveOsdUserData(); #if 0//_ADD_CHINESE #if(_CHINESE_FONT_TYPE == _CH_FONT_2X1) COsdLoadfontLoadChineseBankFont(4); #else COsdDispLoadFont(GET_LANGUAGE()); #endif #endif //COsdResetMenu(); } void COsdSMenuAdjustColorTemp() { CEepromSaveColorTempModeData(); //CLR_KEYREPEATENABLE(); //COsdIconItemSelection(&ucOsdItemIndex0, ucOsdMessage, _COLORTEMP_NUM+1, _COLORTEMP_NUM, _OSD_ITEM_1, COsdDispItemSelect); //SET_COLOR_TEMP_TYPE(ucOsdItemIndex0 -1); //CEepromLoadColorTempData(); //CAdjustContrast(); } //---------------------------------------------- void COsdMenuAutoColor() { ucOsdisAutoMenu=1;// modified finish auto ,menu error by xyw 071022 ; COsdFxShowStatus(_SHOW_AUTOCOLOR); CAutoDoWhiteBalance(); COsdFxDisableOsd(); // COsdCoreAutoColorProc(); COsdCoreSetState(_USER_DEFINED_STATE); CTimerCancelTimerEvent(COsdFxExitEvent); CTimerActiveTimerEvent(0.01, COsdFxExitEvent); } //#if 0 void COsdMenuAutoAdjust(void) //tommy change { //ucOsdisAutoMenu=1;// modified finish auto ,menu error by xyw 071022 ; //COsdFxShowStatus(_SHOW_AUTOADJUST); CAutoDoAutoConfig(); CTimerDelayXms(20); CAutoDoWhiteBalance(); //COsdFxDisableOsd(); // COsdCoreAutoProc(); //COsdCoreSetState(_USER_DEFINED_STATE); //CTimerCancelTimerEvent(COsdFxExitEvent); //CTimerActiveTimerEvent(0.01, COsdFxExitEvent); } //#endif UINT8 COsdCtrlGetOsdTimeOutSystem() { return GET_OSDTIMEOUT(); } void COsdCtrlSetOsdTimeOutSystem(UINT8 message) { if(message < 5) message = 5; else if(message > 60) message = 60; SET_OSDTIMEOUT(message); CEepromSaveOsdUserData(); } UINT8 COsdCtrlGetOsdBlend(void) { return GET_OSDBLENDING(); } void COsdCtrlSetOsdBlend(UINT8 message) { SET_OSDBLENDING(message); CScalerSetBit(_OVERLAY_CTRL_6C, 0x23, ((message & 0x07) << 2)); CEepromSaveOsdUserData(); } UINT8 COsdCtrlGetGamma() { return GET_GAMMA(); } void COsdCtrlSetGamma() { UINT8 mode; mode = GET_GAMMA(); mode = (mode + 1) % 4; CAdjustGammaTable(mode); SET_GAMMA(mode); CEepromSaveSystemData(); } UINT8 COsdCtrlGetSharpness() { return GET_PEAKING_CORING(); } void COsdCtrlSetSharpness(UINT8 message) { SET_PEAKING_CORING(message); CAdjustPeakingCoding(); #if _SHARPNESS_REWRITE CEepromSavePeakingCoringData(); #else //#if _SHARPNESS_REWRITE CEepromSaveSystemData(); #endif //#if _SHARPNESS_REWRITE } UINT8 COsdCtrlGetHue() { //return GET_HUE(); if(GET_INPUTSOURCE_TYPE() == _SOURCE_YPBPR) //20070324, if ypbpr hue is used, we must apply GET_PICT_EFFECT() return GET_HUE(); else { //return GET_HUE(); //pal hue use default value if (GET_VIDEO8_V_RATE_IS_50()) { //return 40;//_HUE; return 50; //set video hue as default } else { //20070324 //return GET_HUE(); switch (GET_PICT_EFFECT()) { case _PICT_EFFECT_MOVIE: case _PICT_EFFECT_PLAY: case _PICT_EFFECT_DV: case _PICT_EFFECT_SPORT: return 50; //set video hue as default break; case _PICT_EFFECT_USER: default: return GET_HUE(); break; } } } } void COsdCtrlSetHue(UINT8 message) { SET_HUE(message); if(GET_INPUTSOURCE_TYPE() == _SOURCE_VIDEO8) CVideoSetHuee(message); else CAdjustYpbprhue(message); CTimerDelayXms(10); CEepromSaveHueSatData(); } UINT8 COsdCtrlGetBacklight(void) { return GET_BACKLIGHT(); } void COsdCtrlSetBacklight(UINT8 message) { SET_BACKLIGHT(message); CEepromSaveBacklightData(); CAdjustBacklight(); } UINT8 COsdCtrlGetISFilter(void) { return GET_ISFILTER(); } void COsdCtrlSetISFilter(UINT8 message) { SET_ISFILTER(message); CEepromSaveSystemData(); } UINT8 COsdCtrlGetSaturation() { switch (GET_PICT_EFFECT()) { case _PICT_EFFECT_MOVIE: return _PICT_EFFECT_MOVIE_SAT; break; case _PICT_EFFECT_PLAY: return _PICT_EFFECT_PLAY_SAT; break; case _PICT_EFFECT_DV: return _PICT_EFFECT_DV_SAT; break; case _PICT_EFFECT_SPORT: return _PICT_EFFECT_SPORT_SAT; break; case _PICT_EFFECT_USER: default: //if(GET_INPUTSOURCE_TYPE() == _SOURCE_YPBPR) // return GET_YPbPrSaturation(); //else return GET_SATURATION(); break; } } void COsdCtrlSetSaturation(UINT8 message) { if(GET_INPUTSOURCE_TYPE() == _SOURCE_YPBPR) { SET_SATURATION(message); CAdjustYpbprSaturation(message); } else { if(GET_PICT_EFFECT()){ switch (GET_PICT_EFFECT()) {//the hue is always 50 case _PICT_EFFECT_MOVIE: SET_PICT_EFFECT(0); COsdCtrlSetContrast(_PICT_EFFECT_MOVIE_CON); COsdCtrlSetBrightness(_PICT_EFFECT_MOVIE_BRI); break; case _PICT_EFFECT_PLAY: SET_PICT_EFFECT(0); COsdCtrlSetContrast(_PICT_EFFECT_PLAY_CON); COsdCtrlSetBrightness(_PICT_EFFECT_PLAY_BRI); break; case _PICT_EFFECT_DV: SET_PICT_EFFECT(0); COsdCtrlSetContrast(_PICT_EFFECT_DV_CON); COsdCtrlSetBrightness(_PICT_EFFECT_DV_BRI); break; case _PICT_EFFECT_SPORT: SET_PICT_EFFECT(0); COsdCtrlSetContrast(_PICT_EFFECT_SPORT_CON); COsdCtrlSetBrightness(_PICT_EFFECT_SPORT_BRI); break; } CEepromSavePictModeData(); } SET_SATURATION(message); CVideoSetSaturation(COsdCtrlGetSaturation()); } CTimerDelayXms(10); CEepromSaveHueSatData(); } UINT8 COsdCtrlGetContrast(void) { switch (GET_PICT_EFFECT()) { case _PICT_EFFECT_MOVIE: return _PICT_EFFECT_MOVIE_CON; break; case _PICT_EFFECT_PLAY: return _PICT_EFFECT_PLAY_CON; break; case _PICT_EFFECT_DV: return _PICT_EFFECT_DV_CON; break; case _PICT_EFFECT_SPORT: return _PICT_EFFECT_SPORT_CON; break; case _PICT_EFFECT_USER: default: return GET_MODE_CONTRAST(); break; } } void COsdCtrlSetContrast(UINT8 message) { SET_MODE_CONTRAST(message); CAdjustContrast(); CEepromSaveBriConData(); /* if(GET_PICT_EFFECT()){ switch (GET_PICT_EFFECT()) {//the hue is always 50 case _PICT_EFFECT_MOVIE: SET_PICT_EFFECT(0); COsdCtrlSetBrightness(_PICT_EFFECT_MOVIE_BRI); COsdCtrlSetSaturation(_PICT_EFFECT_MOVIE_SAT); break; case _PICT_EFFECT_PLAY: SET_PICT_EFFECT(0); COsdCtrlSetBrightness(_PICT_EFFECT_PLAY_BRI); COsdCtrlSetSaturation(_PICT_EFFECT_PLAY_SAT); break; case _PICT_EFFECT_DV: SET_PICT_EFFECT(0); COsdCtrlSetBrightness(_PICT_EFFECT_DV_BRI); COsdCtrlSetSaturation(_PICT_EFFECT_DV_SAT); break; case _PICT_EFFECT_SPORT: SET_PICT_EFFECT(0); COsdCtrlSetBrightness(_PICT_EFFECT_SPORT_BRI); COsdCtrlSetSaturation(_PICT_EFFECT_SPORT_SAT); break; } CEepromSavePictModeData(); } SET_MODE_CONTRAST(message); CAdjustContrast(); CEepromSaveBriConData(); */ } void COsdCtrlReset(void) { bit factory; UINT8 src; #if _CUSTOMER_HPC UINT8 language; #endif #if _CUSTOMER_HPC language = GET_LANGUAGE(); #endif factory = GET_FACTORYSTATUS(); src = stSystemData.InputSource; //20080825 ccy modify #if (_PCB_TYPE == _PCB_TEST) SET_MUTE_PROCESS(_ENABLE); #else CAudioSetVolume(0); #endif //COsdFxDisableOsd(); //SET_DISPLAYRATIO(_RATIO_16X9); if (factory) { CAdjustBackgroundColor(0x00,0x00,0x00); //setup black background color CScalerSetBit(_VDISP_CTRL_28, ~_BIT5,_BIT5); CEepromLoadDefault(); SET_FACTORYSTATUS(); stSystemData.InputSource = src; CEepromSaveSystemData(); //COsdFxChangeInputSrc(stSystemData.InputSource); //alter 20091026 ucMenuSelect =COsdFxCalcMenuSelSource(); COsdCoreInitSubWindow(); //dong add 20080923 if(ucVideoProcessState==_ACTIVE_STATE||ucSyncProcessState==_ACTIVE_STATE) CScalerSetBit(_VDISP_CTRL_28, ~_BIT5,0x00); else { if(GET_INPUTPORT_TYPE(stSystemData.InputSource)==_VIDEO_TV_PORT) { if(GET_TV_BACKGROUND()) CAdjustBackgroundColor(0, 0, 0xff); else CScalerSetBit(_VDISP_CTRL_28, ~_BIT5,0x00); } else { if(GET_TV_BACKGROUND()) CAdjustBackgroundColor(0x00, 0x00, 0xff); else CAdjustBackgroundColor(0x00, 0x00, 0x00); } } } else { CEepromLoadDefaultSource(); stSystemData.InputSource = src; CEepromSaveSystemData(); //redraw video parameters: //if (ucVideoProcessState == _ACTIVE_STATE || ucSyncProcessState == _ACTIVE_STATE) //SET_MUTE_PROCESS(_DISABLE);//delete by xyw 080219 at jpe if (GET_INPUTSOURCE_TYPE() == _SOURCE_VIDEO8) { //adjust customer color mode #if(_AdjustCustomerColorMode == _ENABLE) CAdjustCustomerColorMode(); #endif CAdjustContrast(); CAdjustBrightness(); CAdjustBacklight(); //20080421, move //CAdjustPeakingCoding(); CVideoSetSaturation(GET_SATURATION());//eric 20070703 for sat move here if (GET_INPUTPORT_TYPE(stSystemData.InputSource)==_VIDEO_TV_PORT) { CVideoSetVDCContrast(_VDC_CON_DEFAULT_TV); CVideoSetVDCBrightness(_VDC_BRI_DEFAULT_TV); //0x84: dark noise for TV src can't be see } else { CVideoSetVDCContrast(_VDC_CON_DEFAULT_AV); CVideoSetVDCBrightness(_VDC_BRI_DEFAULT_AV); //0x84: dark noise for TV src can't be see } CAccAdjust(_DISABLE); // set DCC mode //20080421, add CAdjustPeakingCoding(); //czl 071206 CVideoSetHuee(0x32); #if (_DCC_FUNC==_ENABLE) //OSD_SRCChg = 1; CVideoDCCProcess(); #endif #if _DEBUG_USE_ICM //enable icm if (GET_ICM_on_off()) { CLR_ICM_on_off(); COsdCtrlSetICMswitch(); } #endif //#if _DEBUG_USE_ICM CAdjustEnableHLWindow(); } else if (GET_INPUTSOURCE_TYPE() == _SOURCE_VGA) { // Setup color processing CModeSetupColorProcess(); #if _DEBUG_USE_ICM //enable icm if (GET_ICM_on_off()) { CLR_ICM_on_off(); COsdCtrlSetICMswitch(); } #endif //#if _DEBUG_USE_ICM #if _BACKLIGHT_SUPPORT CAdjustBacklight(); #endif CAdjustAdcGainOffset(); CAdjustAdcClock(stModeUserData.Clock); //CAdjustPhase(stModeUserData.Phase); CAdjustHPosition(); CModeModifyVTotal(); CAdjustVPosition(); CAdjustPeakingCoding(); } else if (GET_INPUTSOURCE_TYPE() == _SOURCE_DVI) { // Setup color processing CModeSetupColorProcess(); CAdjustBacklight(); //20080421, move //CAdjustPeakingCoding(); CAdjustYpbprSaturation(GET_SATURATION()); CAdjustYpbprhue(GET_HUE()); CScalerSetBit(_COLOR_CTRL_62,~_BIT2,_BIT2); // Enable SRGB CAccAdjust(_DISABLE); // set DCC mode //20080421, add CAdjustPeakingCoding(); #if _DEBUG_USE_ICM //enable icm if (GET_ICM_on_off()) { CLR_ICM_on_off(); COsdCtrlSetICMswitch(); } #endif //#if _DEBUG_USE_ICM } else if (GET_INPUTSOURCE_TYPE() == _SOURCE_YPBPR) { // Load mode user data from eeprom CEepromLoadModeDataYPbPr(stModeInfo.ModeCurr); CEepromLoadYPbPrData(); CAdjustAdcGainOffset(); //V304 modify CAdjustAdcClock(stModeUserData.Clock); CAdjustPhase(stModeUserData.Phase); CAdjustHPosition(); CAdjustVPosition(); CScalerSetByte(_P1_I_CODE_M_A1,0x00);//eric 20070613 for DVD player CAdjustYpbprSaturation(GET_SATURATION()); CAdjustYpbprhue(GET_HUE()); #if _BACKLIGHT_SUPPORT CAdjustBacklight(); #endif CAdjustBrightness(); CAdjustContrast(); CScalerSetByte(_COLOR_CTRL_62, 0x03); CScalerSetBit(_COLOR_CTRL_62,~_BIT2,_BIT2); // Enable SRGB CAccAdjust(_DISABLE); // set DCC mode CAdjustPeakingCoding(); #if(_AdjustCustomerColorMode == _ENABLE) CAdjustCustomerColorMode(); #endif #if _DEBUG_USE_ICM //enable icm if (GET_ICM_on_off()) { CLR_ICM_on_off(); COsdCtrlSetICMswitch(); } #endif //#if _DEBUG_USE_ICM CAdjustEnableHLWindow(); } } #if _CUSTOMER_HPC if (language != GET_LANGUAGE()) COsdRedrawSignalMenu(); #endif if (!GET_FACTORYSTATUS())//(ucOsdTypeFlag==_OSD_MAP0)//main osd menu { #if _TYPEOF_OSD_KONSTA if(GET_OSDSIZEDOUBLE()) COsdFxSetOsdSizeDouble(1); else COsdFxSetOsdSizeDouble(2); #else COsdFxSetOsdSizeDouble(GET_OSDSIZEDOUBLE()+1); #endif } COsdMessageInitial(); CLR_AUDIO_MUTE(); #if _PANEL_DISPLAY_RATIO==_PANEL_16_9 //--------------------------add by xyw 080229 if(GET_DISPLAYRATIO()==_RATIO_4X3) { CModeResetMode(); SET_DISPLAYRATIO(_RATIO_16X9); CEepromSaveSystemData(); } else #endif //#if _PANEL_DISPLAY_RATIO==_PANEL_16_9 { //----------------------add by xyw 080219 if (ucVideoProcessState == _ACTIVE_STATE || ucSyncProcessState == _ACTIVE_STATE) { if (GET_AUDIO_MUTE()) SET_MUTE_PROCESS(_ENABLE); else SET_MUTE_PROCESS(_DISABLE); } CEepromSaveAudioData(); } } UINT8 COsdCtrlGetAudioMute() { return (UINT8)(GET_AUDIO_MUTE()); } void COsdCtrlSetAudioMute() { if(!GET_AUDIO_MUTE()) SET_AUDIO_MUTE(); else CLR_AUDIO_MUTE(); if (ucVideoProcessState==_ACTIVE_STATE || ucSyncProcessState==_ACTIVE_STATE || ucCurrState == _BURNIN_STATE) { if (GET_AUDIO_MUTE()) SET_MUTE_PROCESS(_ENABLE); else SET_MUTE_PROCESS(_DISABLE); } CEepromSaveAudioData(); } UINT8 COsdCtrlGetAudioVolume() { return GET_VOLUME(); } void COsdCtrlSetAudioVolume(UINT8 message) { SET_VOLUME(message); if (ucVideoProcessState==_ACTIVE_STATE || ucSyncProcessState==_ACTIVE_STATE || ucCurrState == _BURNIN_STATE) { if (ucOsdMessage==_RIGHT_KEY_MESSAGE) { if(GET_AUDIO_MUTE()) { CLR_AUDIO_MUTE(); SET_MUTE_PROCESS(_DISABLE); } //20070330 add, for 0 --> 1 else if (message == 1) // only from 0 and right key can arrive here!!! { SET_MUTE_PROCESS(_DISABLE); } } CAudioSetVolume(message); } else { if (ucOsdMessage==_RIGHT_KEY_MESSAGE) { if(GET_AUDIO_MUTE()) { CLR_AUDIO_MUTE(); } } } CEepromSaveAudioData(); } #if _VOLUME_PT2314_SUPPORT UINT8 COsdCtrlGetAudioBass(void) { #if (_AUDIO_EFFECT_SUPPORT) switch (GET_AUDIO_EFFECT()) { case _AUDIO_EFFECT_USER: return GET_BASS(); break; case _AUDIO_EFFECT_MOVIE: //return tEEPROM_AUDIO_DATA_MOVIE.Bass; return _AUDIO_EFFECT_MOVIE_BASS; break; case _AUDIO_EFFECT_MUSIC: //return tEEPROM_AUDIO_DATA_MUSIC.Bass; return _AUDIO_EFFECT_MUSIC_BASS; break; case _AUDIO_EFFECT_NEWS: //return tEEPROM_AUDIO_DATA_NEWS.Bass; return _AUDIO_EFFECT_NEWS_BASS; break; default: return GET_BASS(); break; } #else return GET_BASS(); #endif } void COsdCtrlSetAudioBass(UINT8 message) { SET_BASS(message); /* if(GET_AUDIO_MUTE()) { CLR_AUDIO_MUTE(); SET_MUTE_PROCESS(_DISABLE); } */ CPt2314WrBass(); CEepromSaveAudioData(); } UINT8 COsdCtrlGetAudioTreble(void) { #if (_AUDIO_EFFECT_SUPPORT) switch (GET_AUDIO_EFFECT()) { case _AUDIO_EFFECT_USER: return GET_TREBLE(); break; case _AUDIO_EFFECT_MOVIE: return _AUDIO_EFFECT_MOVIE_TREBLE; //return tEEPROM_AUDIO_DATA_MOVIE.Treble; break; case _AUDIO_EFFECT_MUSIC: return _AUDIO_EFFECT_MUSIC_TREBLE; //return tEEPROM_AUDIO_DATA_MUSIC.Treble; break; case _AUDIO_EFFECT_NEWS: return _AUDIO_EFFECT_NEWS_TREBLE; //return tEEPROM_AUDIO_DATA_NEWS.Treble; break; default: return GET_TREBLE(); break; } #else return GET_TREBLE(); #endif } void COsdCtrlSetAudioTreble(UINT8 message) { SET_TREBLE(message); /* if(GET_AUDIO_MUTE()) { CLR_AUDIO_MUTE(); SET_MUTE_PROCESS(_DISABLE); } */ CPt2314WrTreble(); CEepromSaveAudioData(); } UINT8 COsdCtrlGetAudioBalance(void) { return GET_BALANCE(); } void COsdCtrlSetAudioBalance(UINT8 message) { SET_BALANCE(message); /* if(GET_AUDIO_MUTE()) { CLR_AUDIO_MUTE(); SET_MUTE_PROCESS(_DISABLE); } */ #if _VOLUME_PT2314_SUPPORT CPt2314WrBalance(); #endif CEepromSaveAudioData(); } #endif UINT8 COsdCtrlGetKey(void) { if(ucOsdMessage == _REPEAT_KEY_MESSAGE){ if(ucOsdPreMessage == _LEFT_KEY_MESSAGE) ucOsdMessage = _LEFT_KEY_MESSAGE; else if(ucOsdPreMessage == _RIGHT_KEY_MESSAGE) ucOsdMessage = _RIGHT_KEY_MESSAGE; } return ucOsdMessage; } UINT16 COsdFxGetHPositionRange(BYTE ucPar) { if(ucPar == _GET_HPOSITIONRANGE_MAX) return (stModeUserCenterData.CenterHPos + _HPOSITION_BIAS); else if(ucPar == _GET_HPOSITIONRANGE_MIN) return (stModeUserCenterData.CenterHPos - _HPOSITION_BIAS); } UINT8 COsdCtrlGetHPosition() { if((GET_INPUTSOURCE_TYPE() != _SOURCE_VGA)|| ((GET_INPUTSOURCE_TYPE() == _SOURCE_VGA)&&((ucSyncProcessState==_SEARCH_STATE)||(ucSyncProcessState==_NOSIGNAL_STATE))))//20070606 { return 50; } else { return (50 + stModeUserData.HPosition - stModeUserCenterData.CenterHPos); } } void COsdCtrlSetHPosition(UINT8 message) { if(GET_INPUTSOURCE_TYPE() != _SOURCE_VGA) return; message = COsdCtrlGetKey(); if((message==_LEFT_KEY_MESSAGE) && (stModeUserData.HPosition>COsdFxGetHPositionRange(_GET_HPOSITIONRANGE_MIN))) stModeUserData.HPosition-=1; else if((message==_RIGHT_KEY_MESSAGE) && (stModeUserData.HPositionCOsdFxGetVPositionRange(_GET_VPOSITIONRANGE_MIN))) stModeUserData.VPosition-=1; else if ((message==_LEFT_KEY_MESSAGE) && (stModeUserData.VPosition _CLOCK_BIAS) return (stModeUserCenterData.CenterClock + _CLOCK_BIAS); else return (stModeUserCenterData.CenterClock + delta); } else if(ucPar == _GET_CLOCKRANGE_MIN) { //CAdjustCheckAdcClockRange(stModeUserCenterData.CenterClock, &delta); delta = (stModeInfo.IHTotal - stModeInfo.IHWidth * 8 / 10) / 2; if(delta > _CLOCK_BIAS) return (stModeUserCenterData.CenterClock - _CLOCK_BIAS); else return (stModeUserCenterData.CenterClock - delta); } } UINT8 COsdCtrlGetClock() { #if 0 UINT16 xdata tmpMin,tmpMax,result; tmpMin = COsdFxGetAdcClockRange(_GET_CLOCKRANGE_MIN); //1294 tmpMax = COsdFxGetAdcClockRange(_GET_CLOCKRANGE_MAX);//1394 result = stModeUserData.Clock-tmpMin;//1353-1294=59 //result *= 100; //result /=(tmpMax - tmpMin); result *= 100; result /=(tmpMax - tmpMin); usAdcClockResult= result; //result = ((stModeUserData.Clock-tmpMin)*100)/(tmpMax - tmpMin); if (GET_INPUTSOURCE_TYPE() != _SOURCE_VGA) return 50; else //return ((stModeUserData.Clock-COsdFxGetAdcClockRange(_GET_CLOCKRANGE_MIN))*100)/(COsdFxGetAdcClockRange(_GET_CLOCKRANGE_MAX) - COsdFxGetAdcClockRange(_GET_CLOCKRANGE_MIN)); return result&0x00ff; #else if((GET_INPUTSOURCE_TYPE() != _SOURCE_VGA)|| ((GET_INPUTSOURCE_TYPE() == _SOURCE_VGA)&&((ucSyncProcessState==_SEARCH_STATE)||(ucSyncProcessState==_NOSIGNAL_STATE))))//20070606 return 50; else return ((stModeUserData.Clock-COsdFxGetAdcClockRange(_GET_CLOCKRANGE_MIN))*100)/(COsdFxGetAdcClockRange(_GET_CLOCKRANGE_MAX) - COsdFxGetAdcClockRange(_GET_CLOCKRANGE_MIN)); #endif } void COsdCtrlSetClock(UINT8 message) { #if 0 UINT8 msg; if (GET_INPUTSOURCE_TYPE() != _SOURCE_VGA) return; msg = COsdCtrlGetKey(); if((msg==_LEFT_KEY_MESSAGE) && (stModeUserData.Clock>COsdFxGetAdcClockRange(_GET_CLOCKRANGE_MIN))) { stModeUserData.Clock-=1; } else if((msg==_RIGHT_KEY_MESSAGE) && (stModeUserData.ClockCOsdFxGetAdcClockRange(_GET_CLOCKRANGE_MIN))) stModeUserData.Clock-=1; else if((message==_RIGHT_KEY_MESSAGE) && (stModeUserData.Clock0) stModeUserData.Phase-=1; else if((message==_RIGHT_KEY_MESSAGE) && stModeUserData.Phase<63) stModeUserData.Phase+=1; CAdjustPhase(stModeUserData.Phase); #if(_MEMORY_LOCATION == _FLASH) bPhaseFlag = _ENABLE; CTimerReactiveTimerEvent(SEC(0.5), COsdSaveFlashDataEvent); #else CEepromSaveModeData(stModeInfo.ModeCurr); #endif } UINT8 COsdCtrlGetColorRed(void) { //return stColorTempData.ColorTemp[_RED+3]; return stColorTempData.ColorTemp[_RED];//modified by xyw 070830 } void COsdCtrlSetColorRed(UINT8 message) { //stColorTempData.ColorTemp[_RED+3] = message; stColorTempData.ColorTemp[_RED] = message;//modified by xyw 070830 CAdjustContrast(); CEepromSaveColorTempData(); } UINT8 COsdCtrlGetColorGreen(void) { //return stColorTempData.ColorTemp[_GREEN+3]; return stColorTempData.ColorTemp[_GREEN];//modified by xyw 070830 } void COsdCtrlSetColorGreen(UINT8 message) { //stColorTempData.ColorTemp[_GREEN+3] = message; stColorTempData.ColorTemp[_GREEN] = message;//modified by xyw 070830 CAdjustContrast(); CEepromSaveColorTempData(); } UINT8 COsdCtrlGetColorBlue(void) { //return stColorTempData.ColorTemp[_BLUE+3]; return stColorTempData.ColorTemp[_BLUE];//modified by xyw 070830 } void COsdCtrlSetColorBlue(UINT8 message) { //stColorTempData.ColorTemp[_BLUE+3] = message; stColorTempData.ColorTemp[_BLUE] = message;//modified by xyw 070830 CAdjustContrast(); CEepromSaveColorTempData(); } void CAccAdjust (BYTE mode) { BYTE *DCCContol,*DCCCurve; BYTE i,j; // Set DCC Normal_Factor // ((DWORD*)pData)[1] = ((DWORD)stDisplayInfo.DHWidth * stDisplayInfo.DVHeight); ((DWORD*)pData)[1] = ((DWORD) Panel[ucPanelSelect].DHWidth * Panel[ucPanelSelect].DVHeight); ((DWORD*)pData)[0] = (NOR_FACTOR_CONSTANT / ((DWORD*)pData)[1]); CScalerSetByte(_DCC_ACCESS_PORT_E6, 0x00); CScalerSetByte(_DCC_DATA_PORT_E7, pData[1]); CScalerSetByte(_DCC_DATA_PORT_E7, pData[2]); CScalerSetByte(_DCC_DATA_PORT_E7, pData[3]); if(mode == 0) { #if(_DCC_FUNC==_ENABLE)//Modify:2006.4.25D jerry CScalerSetByte(_DCC_CTRL0_E4, 0x90); //set manual mode CScalerSetByte(_DCC_CTRL1_E5, 0x80); //DCC gain control enable #else CScalerSetByte(_DCC_CTRL0_E4, 0x00); //disable dcc, page0 CScalerSetByte(_DCC_CTRL1_E5, 0x00); //disable #endif return; } else { DCCContol = tDCC_Control[mode - 1]; DCCCurve = tDCC_UserCurve[mode - 1]; } CScalerRead(_DCC_CTRL0_E4, 1, &i, _NON_AUTOINC); i = i & 0xfc; CScalerRead(_DCC_CTRL1_E5, 1, &j, _NON_AUTOINC); CScalerSetByte(_DCC_CTRL0_E4, i); CScalerSetByte(_DCC_CTRL1_E5, j); CScalerSetByte(_DCC_ACCESS_PORT_E6, 0x03); for (i=0; i<9; i++) { CScalerSetByte(_DCC_DATA_PORT_E7, *DCCContol ); DCCContol++; } CScalerRead(_DCC_CTRL0_E4, 1, &i, _NON_AUTOINC); i = (i & 0xfc) | 0x01; CScalerSetByte(_DCC_CTRL0_E4, i); CScalerSetByte(_DCC_ACCESS_PORT_E6, 0x00); for (i=0; i<20; i++) { CScalerSetByte(_DCC_DATA_PORT_E7, *DCCCurve); DCCCurve++; } CTimerWaitForEvent(_EVENT_DEN_STOP); CScalerSetByte(_DCC_CTRL0_E4, 0xac); //enable dcc CScalerSetByte(_DCC_CTRL1_E5, 0x80); CScalerSetByte(_HW_ACCESS_PORT_60, 0x00); // disable Hightlight Window } UINT8 COsdCtrlGetDcc(void) { return GET_DCC_MODE(); } void COsdCtrlSetDcc() { BYTE mode; mode = GET_DCC_MODE(); mode = (mode + 1) % 7; CAccAdjust(mode); SET_DCC_MODE(mode); CEepromSaveSystemData(); } //leo 20060613 add black level #if(_BLACK_LEVEL == _ENABLE) void COsdCtrlSetBlackLevel(UINT8 message) { SET_BLACKLEVEL(message); message = message*255/100; CScalerSetByte(_DCC_CTRL0_E4, 0xBD); //enable dcc manual mode,page 1 CScalerSetByte(_DCC_ACCESS_PORT_E6, 0x0f); CScalerSetByte(_DCC_DATA_PORT_E7, message); CEepromSaveSystemData(); } UINT8 COsdCtrlGetBlackLevel() { return GET_BLACKLEVEL(); } void COsdCtrlSetWhiteLevel(UINT8 message) { SET_WHITELEVEL(message); message = message*255/100; CScalerSetByte(_DCC_CTRL0_E4, 0xBD); //enable dcc manual mode,page 1 CScalerSetByte(_DCC_ACCESS_PORT_E6, 0x10); CScalerSetByte(_DCC_DATA_PORT_E7, message); CEepromSaveSystemData(); } UINT8 COsdCtrlGetWhiteLevel() { return GET_WHITELEVEL(); } #endif UINT8 COsdCtrlGetICMswitch(void) { return GET_ICM_on_off(); } void COsdCtrlSetICMswitch(void) { int i; if(GET_ICM_on_off()){ #if(_SCALER_TYPE==_RTD2662) CScalerPageSelect(_PAGE7); CScalerSetByte(_P7_ICM_CTRL_D0, 0x00); #else CScalerSetByte(_ICM_CTRL_E0, 0x00); #endif CLR_ICM_on_off(); } else{ if(GET_INPUTSOURCE_TYPE()>1){ //RGBYC or RGB #if(_SCALER_TYPE==_RTD2662) CScalerPageSelect(_PAGE7); CScalerSetByte(_P7_ICM_CTRL_D0, 0xdf); #else CScalerSetByte(_ICM_CTRL_E0,0xdf); #endif i=4; } else{ #if(_SCALER_TYPE==_RTD2662) CScalerPageSelect(_PAGE7); CScalerSetByte(_P7_ICM_CTRL_D0, 0xdc); #else CScalerSetByte(_ICM_CTRL_E0,0xdc); #endif i=2; } for(i; i>=0; i--) CAdjustMZHueSat(i); //initial ICM SET_ICM_on_off(); } CEepromSaveSystemData(); } UINT8 COsdCtrlGetHueICMR(void) { return GET_ICM_HUE_R(); } void COsdCtrlSetHueICMR(UINT8 message) { SET_ICM_HUE_R(message); CAdjustMZHueSat(0); CEepromSaveSystemData(); } UINT8 COsdCtrlGetHueICMG(void) { return GET_ICM_HUE_G(); } void COsdCtrlSetHueICMG(UINT8 message) { SET_ICM_HUE_G(message); CAdjustMZHueSat(1); CEepromSaveSystemData(); } UINT8 COsdCtrlGetHueICMB(void) { return GET_ICM_HUE_B(); } void COsdCtrlSetHueICMB(UINT8 message) { SET_ICM_HUE_B(message); CAdjustMZHueSat(2); CEepromSaveSystemData(); } UINT8 COsdCtrlGetHueICMY(void) { return GET_ICM_HUE_Y(); } void COsdCtrlSetHueICMY(UINT8 message) { SET_ICM_HUE_Y(message); CAdjustMZHueSat(3); CEepromSaveSystemData(); } UINT8 COsdCtrlGetHueICMC(void) { return GET_ICM_HUE_C(); } void COsdCtrlSetHueICMC(UINT8 message) { SET_ICM_HUE_C(message); CAdjustMZHueSat(4); CEepromSaveSystemData(); } UINT8 COsdCtrlGetSatICMR(void) { return GET_ICM_SAT_R(); } void COsdCtrlSetSatICMR(UINT8 message) { SET_ICM_SAT_R(message); CAdjustMZHueSat(0); CEepromSaveSystemData(); } UINT8 COsdCtrlGetSatICMG(void) { return GET_ICM_SAT_G(); } void COsdCtrlSetSatICMG(UINT8 message) { SET_ICM_SAT_G(message); CAdjustMZHueSat(1); CEepromSaveSystemData(); } UINT8 COsdCtrlGetSatICMB(void) { return GET_ICM_SAT_B(); } void COsdCtrlSetSatICMB(UINT8 message) { SET_ICM_SAT_B(message); CAdjustMZHueSat(2); CEepromSaveSystemData(); } UINT8 COsdCtrlGetSatICMY(void) { return GET_ICM_SAT_Y(); } void COsdCtrlSetSatICMY(UINT8 message) { SET_ICM_SAT_Y(message); CAdjustMZHueSat(3); CEepromSaveSystemData(); } UINT8 COsdCtrlGetSatICMC(void) { return GET_ICM_SAT_C(); } void COsdCtrlSetSatICMC(UINT8 message) { SET_ICM_SAT_C(message); CAdjustMZHueSat(4); CEepromSaveSystemData(); } BYTE code SatPlus[8] = { 41, 44, 43, 39, 31, 22, 11, 0 }; // by 1/256 BYTE code SatMinus[8] = { 24, 35, 40, 41, 36, 28, 16, 0 }; // by 1/256 int CAdjustColorGammaCal(BYTE color, BYTE n) // n = 1~8 { BYTE temp; if (color == 0) //R temp = GET_ICM_SAT_R(); else if (color== 1) //G temp = GET_ICM_SAT_G(); else if (color == 2)//B temp = GET_ICM_SAT_B(); else if (color == 3)//Y temp = GET_ICM_SAT_Y(); else if (color == 4)//C temp = GET_ICM_SAT_C(); temp *= 2; //Since the scale for OSD(from 0~16) and cloor(from 0~32) is different, we will have to multiply //temp by 2 to make up the difference if (temp >= 16){ return ((int)(512*n) + (int)((temp-16)*(int)SatPlus[n-1])) / 64 ; } else{ return ((int)(512*n) - (int)((16-temp)*(int)SatMinus[n-1])) / 64 ; } } #define CENTER 0x00 #define RIGHT 0x10 #define LEFT 0x20 void CAdjustMZHueSat(BYTE color) { //Value 0~4095 => angle 0~359 //R / G / B / Y /C //range 256 => 22.5 degree //buffer 128 => 11.25 degree //R / G / B //range 512 => 45 degree //buffer 128 => 11.25 degree CTimerWaitForEvent(_EVENT_DEN_STOP); CAdjustSetHueUVDelta(color, CENTER); CAdjustSetHueUVDelta(color, RIGHT); CAdjustSetHueUVDelta(color, LEFT); #if(_SCALER_TYPE==_RTD2662) CScalerPageSelect(_PAGE7); CScalerSetBit(_P7_ICM_CTRL_D0, ~_BIT7, _BIT7); #else CScalerSetBit(_ICM_CTRL_E0, ~_BIT7, _BIT7); #endif } void COsdCtrlSetSleepMode(void) { //ucSleepType = (ucSleepType - 1) % _TIMER_SLEEP_MODE_MAX; //modified by xyw 080312 at jpe if(ucOsdMessage == _RIGHT_KEY_MESSAGE ||ucOsdMessage == _SLEEP_KEY_MESSAGE) //ucSleepType = (ucSleepType + 1) % _TIMER_SLEEP_MODE_MAX; ucSleepType= (ucSleepType>=_TIMER_SLEEP_MODE_MAX-1)?(0):(ucSleepType+1); else //ucSleepType = (ucSleepType - 1) % _TIMER_SLEEP_MODE_MAX; ucSleepType= (ucSleepType==0)?(_TIMER_SLEEP_MODE_MAX-1):(ucSleepType-1); if(ucSleepType == 0) { CTimerCancelTimerEvent(COsdReckonTimeEvent); return; } else if(ucSleepType == 1) ucSleepTimeMin = _TIMER_SLEEP_T_1; else if(ucSleepType == 2) ucSleepTimeMin = _TIMER_SLEEP_T_2; else if(ucSleepType == 3) ucSleepTimeMin = _TIMER_SLEEP_T_3; else if(ucSleepType == 4) ucSleepTimeMin = _TIMER_SLEEP_T_4; else if(ucSleepType == 5) ucSleepTimeMin = _TIMER_SLEEP_T_5; else if(ucSleepType == 6) ucSleepTimeMin = _TIMER_SLEEP_T_6; //else if(ucSleepType == 6) //ucSleepTimeMin = _TIMER_SLEEP_T_6; //czl 071126 #if 0//(!_CUSTOMER_HPC) else if(ucSleepType == 5) ucSleepTimeMin = _TIMER_SLEEP_T_5; #endif //test line //else if(ucSleepType == 6) // ucSleepTimeMin = _TIMER_SLEEP_T_6; ucSleepTimeSecCnt = 60; CTimerCancelTimerEvent(COsdReckonTimeEvent); CTimerActiveTimerEvent(SEC(1), COsdReckonTimeEvent); } UINT8 COsdCtrlGetSleepMode(void) { return ucSleepType; } void COsdCtrlSetChannelStatus(UINT8 message) { message = message; if(CTvGetChStatus(stTvInfo.CurChn)) CTvSetChStatus(stTvInfo.CurChn, _DISABLE); else CTvSetChStatus(stTvInfo.CurChn,_ENABLE); //premier, add CEepromSaveTvChStatusOfChn(stTvInfo.CurChn); //prevent from doing repeat action of IR key //SET_IR_CLEAR_REQ(); } UINT8 COsdCtrlGetChannelStatus(void) { //premier, update if(CTvGetChStatus(stTvInfo.CurChn)) //return 0; return 1; else //return 1; return 0; } void COsdCtrlSetOsdClock(UINT8 message) { if((message == _REPEAT_KEY_MESSAGE)&&(ucRepeatKeyCount<5))//20070621 for IR too celerity. return; ucSec = 0; if((message == _LEFT_KEY_MESSAGE) || ((message == _REPEAT_KEY_MESSAGE) && (ucOsdPreMessage == _LEFT_KEY_MESSAGE))) ucHour = (ucHour + 1) % 24; else ucMin = (ucMin + 1) % 60; ucSec = 0; } UINT8 COsdCtrlGetOsdClock(void) { return 0; } UINT8 COsdCtrlGetTvAudioType(void) { return GET_CURR_AUDIO_SYS(); } void COsdCtrlSetTvAudioType(UINT8 message) { UINT8 audio; audio = GET_CURR_AUDIO_SYS(); //prevent from doing repeat action of IR key if (message==_LEFT_KEY_MESSAGE) { //20080827 ccy modify #if (_PCB_TYPE == _PCB_TEST) audio = (audio == _TV_AUDIO_SYS_DK) ? (_TV_AUDIO_SYS_N) : (audio-1);//modified by xyw 080115 at jpe #else audio = (audio == _TV_AUDIO_SYS_DK) ? (_TV_AUDIO_SYS_AUTO) : (audio-1);//modified by xyw 080115 at jpe #endif SET_CURR_AUDIO_SYS(audio); } else if (message==_RIGHT_KEY_MESSAGE) { //20080827 ccy modify #if (_PCB_TYPE == _PCB_TEST) audio = (audio == _TV_AUDIO_SYS_N) ? (_TV_AUDIO_SYS_DK) : (audio+1);//modified by xyw 080115 at jpe #else audio = ((audio + 1) % _TV_AUDIO_SYS_MAX); #endif SET_CURR_AUDIO_SYS(audio); } else return; CEepromSaveTvPdbData(stTvInfo.CurChn, &stTvPdb.chinfo); #if (_TUNER_TYPE==_JS6H1_111 ||_TUNER_TYPE==_GDC8F1D_QF106L ||_TUNER_TYPE==_GDC8F2E_106L ||_TUNER_TYPE==_ET5C511_TDA9886ST ||_TUNER_TYPE==_ET6T1E_TDA9886ST||_TUNER_TYPE == _GDC8F2D_106L) #if 0 if (GET_CURR_AUDIO_SYS()==_TV_AUDIO_SYS_AUTO) { if (ucVideoProcessState == _ACTIVE_STATE) { audio = CTunerSoundAutoDetect(); //--------20080317 at jpe ------------------------------------------ //CModeResetMode(); //---------------------------------------------------------------- } else audio = _TV_AUDIO_SYS_DEFAULT; } else { audio = GET_CURR_AUDIO_SYS(); //--------20080317 at jpe ------------------------------------------ if(GET_CURR_AUDIO_SYS()>=_TV_AUDIO_SYS_DK && GET_CURR_AUDIO_SYS()<=_TV_AUDIO_SYS_BG) {//CScalerCodeW(RTD2610_PAL_I_ini); CScalerPageSelect(_PAGE8); //CScalerSetBit(_P8_YCSEP_CTRL_E0,(~_BIT7),0x00); CScalerSetByte(_P8_YCSEP_CTRL_E0,(0x02)); CScalerSetByte(_P8_YC_BW_CTRL_EA,(0x49)); CScalerSetByte(_P8_VIDEO_CTRL0_A0,(0x02)); CScalerSetByte(_P8_CMAG_STATUS_CA,(0xA3)); CScalerPageSelect(_PAGEA); CScalerSetByte(_PA_SECAM_CTRL_C4,0x82); //------------------080320 CScalerPageSelect(_PAGE8); CScalerSetBit(_P8_MANUAL_MODE_D2,(~_BIT7),0x00); CScalerSetByte(_P8_MANUAL_MODE_D2,(0x06)); //----------------------------------------- } else if(GET_CURR_AUDIO_SYS()>=_TV_AUDIO_SYS_SECAM_DK && GET_CURR_AUDIO_SYS()<=_TV_AUDIO_SYS_SECAM_BG) { //CScalerCodeW(RTD2610_SECAM_ini); CScalerPageSelect(_PAGE8); //CScalerSetBit(_P8_YCSEP_CTRL_E0,(~_BIT7),0x00); CScalerSetByte(_P8_YCSEP_CTRL_E0,(0x00)); CScalerSetByte(_P8_YC_BW_CTRL_EA,(0x07)); CScalerSetByte(_P8_VIDEO_CTRL0_A0,(0x08)); CScalerSetByte(_P8_CMAG_STATUS_CA,(0x00)); CScalerPageSelect(_PAGEA); CScalerSetByte(_PA_SECAM_CTRL_C4,0xc2); //------------------080320 CScalerPageSelect(_PAGE8); CScalerSetBit(_P8_MANUAL_MODE_D2,(~_BIT7),0x00); CScalerSetByte(_P8_MANUAL_MODE_D2,(0x07)); //-------------------------------------- } //CScalerPageSelect(_PAGE8); //CScalerSetBit(_P8_MANUAL_MODE_D2,(~_BIT7),0x00); //CScalerSetByte(_P8_MANUAL_MODE_D2,(0x06)); //CScalerSetByte(_P8_MANUAL_MODE_D2,(0x80)); //--------20080317 at jpe ------------------------------------------ //CModeResetMode();// //---------------------------------------------------------------- //------------------------------------------------------------------------------------- } #endif SET_MUTE_PROCESS(1); CTunerSetSound(audio); SET_MUTE_PROCESS(0); #if 1 // CSetVideoParameterTVSetVideo(GET_TV_VIDEO_SYS()); CTunerSetColor(GET_TV_VIDEO_SYS()); // if (ucVideoProcessState == _ACTIVE_STATE) //CModeResetMode(); #endif CEepromSaveTvPdbData(stTvInfo.CurChn, &stTvPdb.chinfo); //CTvTunerChangeChannelApplyNewData(); //CModeResetMode(); #if 0 //--------20080317 at jpe ------------------------------------------ if(message == _RIGHT_KEY_MESSAGE) { if ((GET_CURR_AUDIO_SYS() == _TV_AUDIO_SYS_DK)||\ (GET_CURR_AUDIO_SYS() == _TV_AUDIO_SYS_SECAM_L)||\ (GET_CURR_AUDIO_SYS() == _TV_AUDIO_SYS_M)) CModeResetMode(); } else if (message == _LEFT_KEY_MESSAGE) { if((GET_CURR_AUDIO_SYS() == _TV_AUDIO_SYS_BG)||\ (GET_CURR_AUDIO_SYS() == _TV_AUDIO_SYS_SECAM_LL)||\ (GET_CURR_AUDIO_SYS() == _TV_AUDIO_SYS_N)) CModeResetMode(); } #endif //--------------------------------------------------------------------- #endif //#if (_TUNER_TYPE==_JS6H1_111 ||_TUNER_TYPE==_GDC8F1D_QF106L ||_TUNER_TYPE==_GDC8F2E_106L ||_TUNER_TYPE==_TSN3311_S25) } UINT8 COsdCtrlGetVideoSys(void) { return GET_TV_VIDEO_SYS(); } void COsdCtrlSetVideoSys(UINT8 message) { UINT8 color; color = GET_TV_VIDEO_SYS(); //prevent from doing repeat action of IR key if (message==_LEFT_KEY_MESSAGE) { color = (color <= _TV_VIDEO_SYS_MIN) ? (_TV_VIDEO_SYS_MAX-1) : (color-1);//modified by xyw 080115 at jpe SET_TV_VIDEO_SYS(color); } else if (message==_RIGHT_KEY_MESSAGE) { color = ((color + 1) % _TV_VIDEO_SYS_MAX); SET_TV_VIDEO_SYS(color); } //else // return; //20080827 ccy add color = GET_TV_VIDEO_SYS(); //CTimerDelayXms(10); CTunerSetSound(GET_CURR_AUDIO_SYS()); CSetVideoParameterTVSetVideo(GET_TV_VIDEO_SYS()); CTunerSetColor(color); //CScalerSetBit(_VDISP_CTRL_28, (~_BIT5), _BIT5); //CVideoSoftReset(); // CTimerDelayXms(10); //20080927 ccy modify CEepromSaveTvPdbData(stTvInfo.CurChn, &stTvPdb.chinfo); #if 0 if (ucVideoProcessState == _ACTIVE_STATE) //add by dengyi on 20100107 CModeResetMode(); #endif } void COsdCtrlSetTvFinetuneScanPdb(UINT8 message) { #if 0 //20070407, save finetune data bit bAfcStatusLast; bAfcStatusLast = GET_TV_AFC_ENABLE(); ucTvFinetuneData=(message>100) ? 50 : message; //if (stTvPdb.pdb + ucTvFinetuneData-50 > _UHF_END) stTvPdb.pdb=_UHF_END; //if (stTvPdb.pdb + ucTvFinetuneData-50 < _VH_LOW_STAR) stTvPdb.pdb=_VH_LOW_STAR; //CTunerSetFreq(stTvPdb.pdb); //20070407, finetune don't use afc data //CTunerSetFreq(stTvPdb.pdb , stTvPdb.Afc); CTunerSetFreq(stTvPdb.pdb + ucTvFinetuneData-50 , 0); if (bAfcStatusLast){ SET_TV_AFC_ENABLE(0); CEepromSaveTvPdbData(stTvInfo.CurChn, &stTvPdb.chinfo); } //20070407, save finetune data CEepromSaveTvFinetuneData(stTvInfo.CurChn, &ucTvFinetuneData); #endif //20070407, save finetune data bit bAfcStatusLast; UINT8 msg; msg = ucOsdMessage;//COsdCtrlGetKey(); bAfcStatusLast = GET_TV_AFC_ENABLE(); if (message == _LEFT_KEY_MESSAGE || (message==_REPEAT_KEY_MESSAGE && ucOsdPreMessage==_LEFT_KEY_MESSAGE)) { if (stTvPdb.pdb>_VH_LOW_STAR) stTvPdb.pdb--; } else if (message == _RIGHT_KEY_MESSAGE || (message==_REPEAT_KEY_MESSAGE && ucOsdPreMessage==_RIGHT_KEY_MESSAGE)) { if (stTvPdb.pdb<_UHF_END) stTvPdb.pdb++; } else return; CTunerSetFreq(stTvPdb.pdb + ucTvFinetuneData-50, 0); if (bAfcStatusLast) { //disable AFC, then save it SET_TV_AFC_ENABLE(0); CEepromSaveTvPdbData(stTvInfo.CurChn, &stTvPdb.chinfo); } //20070407, save finetune data CEepromSaveTvFinetuneData(stTvInfo.CurChn, &ucTvFinetuneData); } UINT8 COsdCtrlGetTvFinetuneScanPdb(void) { return stTvPdb.pdb&0x00ff; } #if 0//(_TV_SWAP_SUPPORT) UINT8* COsdCoreGetTvSwapSrcChannelStr(void) { #if _TV_SWAP_BY_NUMBER return COsdCoreGetNumberStr3(GET_TV_SWAP_SRC_CHANNEL(), GET_TV_SWAP_SRC_LEN()); #else return COsdCoreGetNumberStr(GET_TV_SWAP_SRC_CHANNEL(), 0); #endif } UINT8* COsdCoreGetTvSwapDestChannelStr(void) { #if _TV_SWAP_BY_NUMBER return COsdCoreGetNumberStr3(GET_TV_SWAP_DEST_CHANNEL(), GET_TV_SWAP_DEST_LEN()); #else return COsdCoreGetNumberStr(GET_TV_SWAP_DEST_CHANNEL(), 0); #endif } UINT8* COsdCoreGetTvSwapExecuteStr(void) { if (!bTvSwapExecuteDone) return tOsdSelectSet[0]; //no else return tOsdSelectSet[1]; } #if 1//(_TV_SWAP_SUPPORT) #if _TV_SWAP_BY_NUMBER //target: 0--source channel // 1--dest channel void COsdTvSwapAddNum(UINT8 target, UINT8 num) { StructTVHyperLinkKeyDataType * ptr; ptr = (target) ? (&stTvSwapDestKeyData) : (&stTvSwapSrcKeyData); ptr->nNumbers= (ptr->nNumbers+1)%4; if (ptr->nNumbers==0) { ptr->Numbers[0] = 0; ptr->Numbers[1] = 0; ptr->Numbers[2] = 0; } else { ptr->Numbers[0] = ptr->Numbers[1]; ptr->Numbers[1] = ptr->Numbers[2]; ptr->Numbers[2] = num; } } #else //target: 0--source channel // 1--dest channel void COsdTvSwapAddNum(UINT8 target, UINT8 message) { UINT8 * ptr; ptr = (target) ? (&ucTvSwapDestKeyData) : (&ucTvSwapSrcKeyData); //check input data is in the range: if (message == _LEFT_KEY_MESSAGE) { if (*ptr <= _FIRST_CHANNEL) *ptr = GET_TV_MAX_CH()-1; else *ptr -= 1; } else if (message == _RIGHT_KEY_MESSAGE) { if (*ptr >=GET_TV_MAX_CH()-1) *ptr = _FIRST_CHANNEL; else *ptr += 1; } else return; } #endif /* //target: 0--source channel // 1--dest channel //increase: 0--dec // 1--inc void COsdTvSwapIncNum(UINT8 target, bit increase) { StructTVHyperLinkKeyDataType * ptr; UINT8 ch; ptr = (target) ? (&stTvSwapDestKeyData) : (&stTvSwapSrcKeyData); ch =(target==0) ? GET_TV_SWAP_SRC_CHANNEL() : GET_TV_SWAP_DEST_CHANNEL(); if (increase) { ch=(ch>=GET_TV_MAX_CH()) ? (_FIRST_CHANNEL) : (ch+1); } else { ch=(ch<=_FIRST_CHANNEL) ? (GET_TV_MAX_CH()) : (ch-1); } ptr->Numbers[0] = ch%100; ptr->Numbers[1] = (ch/100)%10; ptr->Numbers[2] = ch/10; } */ void COsdCtrlSetTvSwapSrcChannel(UINT8 message) { #if _TV_SWAP_BY_NUMBER if (message>=_0_KEY_MESSAGE && message <= _9_KEY_MESSAGE) { COsdTvSwapAddNum(0, message-_0_KEY_MESSAGE); if (bTvSwapExecuteDone) { bTvSwapExecuteDone = _FALSE; bTvSwapExecuteDoneUpdateRelativeItem = _TRUE; } } /* else if (message==_UP_KEY_MESSAGE || message == _DOWN_KEY_MESSAGE) { COsdTvSwapIncNum(0, (message==_UP_KEY_MESSAGE)?(1):(0)); if (bTvSwapExecuteDone) { bTvSwapExecuteDone = _FALSE; bTvSwapExecuteDoneUpdateRelativeItem = _TRUE; } } */ else if (message == _RIGHT_KEY_MESSAGE) { CTvSetChannel(GET_TV_SWAP_SRC_CHANNEL()); CEepromSaveTvData(); } #else if (message == _RIGHT_KEY_MESSAGE || message == _LEFT_KEY_MESSAGE) { COsdTvSwapAddNum(0, message); if (bTvSwapExecuteDone) { bTvSwapExecuteDone = _FALSE; bTvSwapExecuteDoneUpdateRelativeItem = _TRUE; } } #endif } UINT8 COsdCtrlGetTvSwapSrcChannel(void) { #if _TV_SWAP_BY_NUMBER return 1; #else return GET_TV_SWAP_SRC_CHANNEL(); #endif } void COsdCtrlSetTvSwapDestChannel(UINT8 message) { #if _TV_SWAP_BY_NUMBER if (message>=_0_KEY_MESSAGE && message <= _9_KEY_MESSAGE) { COsdTvSwapAddNum(1, message-_0_KEY_MESSAGE); if (bTvSwapExecuteDone) { bTvSwapExecuteDone = _FALSE; bTvSwapExecuteDoneUpdateRelativeItem = _TRUE; } } /* else if (message==_UP_KEY_MESSAGE || message == _DOWN_KEY_MESSAGE) { COsdTvSwapIncNum(1, (message==_UP_KEY_MESSAGE)?(1):(0)); } */ #else if (message == _RIGHT_KEY_MESSAGE || message == _LEFT_KEY_MESSAGE) { COsdTvSwapAddNum(1, message); if (bTvSwapExecuteDone) { bTvSwapExecuteDone = _FALSE; bTvSwapExecuteDoneUpdateRelativeItem = _TRUE; } } #endif } UINT8 COsdCtrlGetTvSwapDestChannel(void) { #if _TV_SWAP_BY_NUMBER return 1; #else return GET_TV_SWAP_DEST_CHANNEL(); #endif } void COsdCtrlSetTvSwapExecute(UINT8 message) { StructTvPdb stTvPdbTemp; UINT8 src, dest; BIT bSrcSkip, bDestSkip; UINT8 srcFinetuneData,destFinetuneData; src = GET_TV_SWAP_SRC_CHANNEL(); dest = GET_TV_SWAP_DEST_CHANNEL(); if (src>=GET_TV_MAX_CH()) { CLR_TV_SWAP_SRC_DATA(); CLR_TV_SWAP_SRC_LEN(); return; } if (dest>=GET_TV_MAX_CH()) { CLR_TV_SWAP_DEST_DATA(); CLR_TV_SWAP_DEST_LEN(); return; } if (dest == src) { return; } if (message==_RIGHT_KEY_MESSAGE) { //skip status bSrcSkip = CTvGetChStatus(src); bDestSkip = CTvGetChStatus(dest); //save src pdb: CEepromGetTvPdbData(src, &stTvPdb.chinfo); stTvPdbTemp = stTvPdb; //load dest pdb CEepromGetTvPdbData(dest, &stTvPdb.chinfo); //save dest pdb to src position: CEepromSaveTvPdbData(src, &stTvPdb.chinfo); //save src pdb to dest position: CEepromSaveTvPdbData(dest, &stTvPdbTemp.chinfo); //20070407, get finetune data //change src and dest finetune data //get CEepromGetTvFinetuneData(src, &srcFinetuneData); CEepromGetTvFinetuneData(dest, &destFinetuneData); //set CEepromSaveTvFinetuneData(src, &destFinetuneData); CEepromSaveTvFinetuneData(dest, &srcFinetuneData); //20070423, tv swap change current channel number //change current channel as dest channel: //stTvInfo.PreChn=stTvInfo.CurChn; //stTvInfo.CurChn = dest; //20070506, tv swap change current channel number /*if (src == stTvInfo.CurChn) { //change current channel as dest channel: stTvInfo.PreChn=stTvInfo.CurChn; stTvInfo.CurChn = dest; CEepromSaveTvData(); }*/ //20070506, tv swap change current channel number stTvInfo.PreChn=src; stTvInfo.CurChn = dest; CEepromSaveTvData(); //change src and dest skip status: CTvSetChStatus(src, bDestSkip); CTvSetChStatus(dest, bSrcSkip); bTvSwapExecuteDone = _TRUE; //bTvSwapExecuteDoneUpdatePdb = _TRUE; bTvSwapExecuteDoneUpdateRelativeItem = _FALSE; //20070324, add CEepromGetTvPdbData(stTvInfo.CurChn, &stTvPdb.chinfo); SET_TV_FINETUNE_PRE_DONE(); //20070407, get finetune data CEepromGetTvFinetuneData(stTvInfo.CurChn, &ucTvFinetuneData); CLR_TV_SWAP_SRC_DATA(); CLR_TV_SWAP_SRC_LEN(); CLR_TV_SWAP_DEST_DATA(); CLR_TV_SWAP_DEST_LEN(); //20070506, apply new channel data CTvTunerChangeChannel(); } } UINT8 COsdCtrlGetTvSwapExecute(void) { return 1; } #endif #endif UINT8 COsdCtrlGetChannel(void) { return stTvInfo.CurChn; } void COsdCtrlSetChannel(UINT8 message) { UINT8 mode; mode = stTvInfo.CurChn; if (message == _LEFT_KEY_MESSAGE) { if (mode<=_FIRST_CHANNEL) mode = GET_TV_MAX_CH()-1; else mode -= 1; } else if (message == _RIGHT_KEY_MESSAGE) { if (mode >= GET_TV_MAX_CH()-1) mode = _FIRST_CHANNEL; else mode = mode + 1; } else return; stTvInfo.PreChn = stTvInfo.CurChn; stTvInfo.CurChn = mode; CEepromSaveTvData(); CLR_KEYREPEATENABLE(); CTvTunerChangeChannel(); } /* UINT8 COsdCtrlGetChannelScanGet(void) { return tvScanCurChn; } void COsdCtrlSetChannelScanGet(UINT8 message) { UINT8 mode; mode = tvScanCurChn; if (message == _LEFT_KEY_MESSAGE) { if (mode<=1) mode = GET_TV_MAX_CH()-1; else mode -= 1; } else if (message == _RIGHT_KEY_MESSAGE) { mode = (mode + 1) % (GET_TV_MAX_CH()); } else return; tvScanCurChn = mode; } */ UINT8 COsdCtrlGetSearchPercent(void) { //czl 070928 UINT16 usPercent, len; if(GET_CURR_AUDIO_SYS()==_TV_AUDIO_SYS_SECAM_LL) { len = (UINT16)(_UHF_END1-_VH_LOW_STAR1)/100; usPercent=(UINT16)(stTvPdb.pdb-_VH_LOW_STAR1); if(stTvPdb.pdb>_UHF_END1) usPercent=100; if(stTvPdb.pdb<_VH_LOW_STAR1) usPercent=0; usPercent=usPercent/len; } else { len = (UINT16)(_UHF_END-_VH_LOW_STAR)/100; usPercent=(UINT16)(stTvPdb.pdb-_VH_LOW_STAR); if(stTvPdb.pdb>_UHF_END) usPercent=100; if(stTvPdb.pdb<_VH_LOW_STAR) usPercent=0; usPercent=usPercent/len; } /* len = (UINT16)(_UHF_END-_VH_LOW_STAR)/100; usPercent=(UINT16)(stTvPdb.pdb-_VH_LOW_STAR); if(stTvPdb.pdb>_UHF_END) usPercent=100; if(stTvPdb.pdb<_VH_LOW_STAR) usPercent=0; usPercent=usPercent/len; */ //usPercent = len/100; // '/' will reserve the data of INT, so "stTvPdb.pdb / usPercent" may large than 100, so do: //if (usPercent*100=_OSD_HPOSITION_RANGE) CLR_X_DIR(); } else { X--; if (X==0) SET_X_DIR(); } if (GET_Y_DIR()) { Y++; if (Y>=_OSD_VPOSITION_RANGE-2) CLR_Y_DIR(); } else { Y--; if (Y<=2) SET_Y_DIR(); } COsdFxSetPosition(WIDTH(12*2*16), HEIGHT(18*2*3), X, Y, 1); //COsdFxSetPositionLinearMove(0,0,1); /*usActH++; if (usActH>_DISP_ACT_WID) usActH = 1; usActV++; if (usActV>_DISP_ACT_LEN) usActV= 1; COsdFxSetPositionStep(_DISP_WID -usActH, _DISP_LEN-usActV, 1); */ #if 1 //COsdFxShowNumber(0, 4, ucIconTimerCounter, 0x33, 1); //COsdFxShowNumber(0, 9, pulIconTimerCounter, 0x33, 1); //COsdFxShowNumber(0, 4, usActH, 0x33, 1); //COsdFxShowNumber(0, 10, usActV, 0x33, 1); #endif } else { usIconMoveInteval--; } } } } #endif //endof move style #endif void COsdIconMoveDisableResetEnv(void) { if (GET_ICON_MOVE_ENABLE()) { CLR_ICON_MOVE_ENABLE(); CLR_ICON_MOVE_STICK(); CTimerWaitForEvent(_EVENT_DEN_STOP); CScalerSetBit(_OVERLAY_CTRL_6C, ~_BIT0, 0x00); //review??? CTimerCancelNosignal_Icon_Powersaving(); } } #if 0 UINT8 COsdCtrlGetHPositionYPbPr() { return (50 + stModeUserData.HPosition - stModeInfo.IHStartPos); //stModeUserCenterData.CenterClock = stModeInfo.IHTotal; //stModeUserCenterData.CenterHPos = stModeInfo.IHStartPos; //stModeUserCenterData.CenterVPos = stModeInfo.IVStartPos; } void COsdCtrlSetHPositionYPbPr(UINT8 message) { if(GET_INPUTSOURCE_TYPE() != _SOURCE_YPBPR) return; message = COsdCtrlGetKey(); if((message==_LEFT_KEY_MESSAGE)/* && (stModeUserCenterData.CenterHPos-stModeUserData.HPosition >= 0)*/) stModeUserData.HPosition-=1; else if((message==_RIGHT_KEY_MESSAGE)/* && (stModeUserData.HPosition-stModeUserCenterData.CenterHPos >= 0)*/) stModeUserData.HPosition+=1; CAdjustHPosition(); #if(_MEMORY_LOCATION == _FLASH) bHPositionFlag = _ENABLE; CTimerReactiveTimerEvent(SEC(0.5), COsdSaveFlashDataEvent); #else CEepromSaveModeDataYPbPr(stModeInfo.ModeCurr); #endif } UINT8 COsdCtrlGetVPositionYPbPr() { return 100-(stModeUserData.VPosition-COsdFxGetVPositionRange(_GET_VPOSITIONRANGE_MIN))*100/(COsdFxGetVPositionRange(_GET_VPOSITIONRANGE_MAX)-COsdFxGetVPositionRange(_GET_VPOSITIONRANGE_MIN)); } void COsdCtrlSetVPositionYPbPr(UINT8 message) { if(GET_INPUTSOURCE_TYPE() != _SOURCE_YPBPR) return; message = COsdCtrlGetKey(); if((message==_RIGHT_KEY_MESSAGE) && (stModeUserData.VPosition>COsdFxGetVPositionRange(_GET_VPOSITIONRANGE_MIN))) stModeUserData.VPosition-=1; else if ((message==_LEFT_KEY_MESSAGE) && (stModeUserData.VPositionCOsdFxGetAdcClockRange(_GET_CLOCKRANGE_MIN))) { stModeUserData.Clock-=1; } else if((message==_RIGHT_KEY_MESSAGE) && (stModeUserData.Clock0) stModeUserData.Phase-=1; else if((message==_RIGHT_KEY_MESSAGE) && stModeUserData.Phase<63) stModeUserData.Phase+=1; CAdjustPhase(stModeUserData.Phase); #if(_MEMORY_LOCATION == _FLASH) bPhaseFlag = _ENABLE; CTimerReactiveTimerEvent(SEC(0.5), COsdSaveFlashDataEvent); #else CEepromSaveModeDataYPbPr(stModeInfo.ModeCurr); #endif } #endif #if _TIMER_PAGE_SUPPORT UINT8 COsdCtrlGetTimeCurrentTimer(void) { if (ucExtendMenuRow == 1) { if (ucExtendMenuCol==1) return ucHourSystem; else if (ucExtendMenuCol==2) return ucMinSystem; else return 0; } return 0; } void COsdCtrlSetTimeCurrentTimer(UINT8 message) { unsigned char key=0; message = COsdCtrlGetKey(); if ((message == _DOWN_KEY_MESSAGE) || (message == _REPEAT_KEY_MESSAGE && ucOsdPreMessage == _DOWN_KEY_MESSAGE)) key = 1; else if ((message == _UP_KEY_MESSAGE) || (message == _REPEAT_KEY_MESSAGE && ucOsdPreMessage == _UP_KEY_MESSAGE)) key = 2; if (ucExtendMenuRow == 1) { if (ucExtendMenuCol == 1) { if (key == 1) ucHourSystem = (ucHourSystem==0)?(23):(ucHourSystem-1); else if (key == 2) ucHourSystem = (ucHourSystem==23)?(0):(ucHourSystem+1); } else if (ucExtendMenuCol == 2) { if (key == 1) ucMinSystem = (ucMinSystem==0)?(59):(ucMinSystem-1); else if (key == 2) ucMinSystem = (ucMinSystem==59)?(0):(ucMinSystem+1); } } } UINT8 COsdCtrlGetPowerOnTimer(void) { if (ucExtendMenuRow == 1) { if (ucExtendMenuCol==1) return stTimeData.ucTimeHourStart; else if (ucExtendMenuCol==2) return stTimeData.ucTimeMinStart; else return 0; } return 0; } void COsdCtrlSetPowerOnTimer(UINT8 message) { unsigned char key=0; message = COsdCtrlGetKey(); if ((message == _DOWN_KEY_MESSAGE) || (message == _REPEAT_KEY_MESSAGE && ucOsdPreMessage == _DOWN_KEY_MESSAGE)) key = 1; else if ((message == _UP_KEY_MESSAGE) || (message == _REPEAT_KEY_MESSAGE && ucOsdPreMessage == _UP_KEY_MESSAGE)) key = 2; if (ucExtendMenuRow == 3) { ucTimerPowerOnMinTickCnt = 0; if (ucExtendMenuCol == 1) { if (key == 1) stTimeData.ucTimeHourStart = (stTimeData.ucTimeHourStart==0)?(23):(stTimeData.ucTimeHourStart-1); else if (key == 2) stTimeData.ucTimeHourStart = (stTimeData.ucTimeHourStart==23)?(0):(stTimeData.ucTimeHourStart+1); } else if (ucExtendMenuCol == 2) { if (key == 1) stTimeData.ucTimeMinStart = (stTimeData.ucTimeMinStart==0)?(59):(stTimeData.ucTimeMinStart-1); else if (key == 2) stTimeData.ucTimeMinStart = (stTimeData.ucTimeMinStart==59)?(0):(stTimeData.ucTimeMinStart+1); } } } UINT8 COsdCtrlGetPowerOffTimer(void) { if (ucExtendMenuRow == 2) { if (ucExtendMenuCol==1) return stTimeData.ucTimeHourStop; else if (ucExtendMenuCol==2) return stTimeData.ucTimeMinStop; else return 0; } return 0; } void COsdCtrlSetPowerOffTimer(UINT8 message) { unsigned char key=0; if ((message == _DOWN_KEY_MESSAGE) || (message == _REPEAT_KEY_MESSAGE && ucOsdPreMessage == _DOWN_KEY_MESSAGE)) key = 1; else if ((message == _UP_KEY_MESSAGE) || (message == _REPEAT_KEY_MESSAGE && ucOsdPreMessage == _UP_KEY_MESSAGE)) key = 2; if (ucExtendMenuRow == 2) { ucTimerPowerOffMinTickCnt = 0; if (ucExtendMenuCol == 1) { if (key == 1) stTimeData.ucTimeHourStop = (stTimeData.ucTimeHourStop==0)?(23):(stTimeData.ucTimeHourStop-1); else if (key == 2) stTimeData.ucTimeHourStop = (stTimeData.ucTimeHourStop==23)?(0):(stTimeData.ucTimeHourStop+1); } else if (ucExtendMenuCol == 2) { if (key == 1) stTimeData.ucTimeMinStop = (stTimeData.ucTimeMinStop==0)?(59):(stTimeData.ucTimeMinStop-1); else if (key == 2) stTimeData.ucTimeMinStop = (stTimeData.ucTimeMinStop==59)?(0):(stTimeData.ucTimeMinStop+1); } } } #if 1//(_TV_POWERONCH_SUPPORT) UINT8 COsdCtrlGetPowerOnChannel(void) { return GET_TVPOWERONCHANNEL(); } void COsdCtrlSetPowerOnChannel(UINT8 message) { UINT8 ucPowerChannel = GET_TVPOWERONCHANNEL(); if (message == _LEFT_KEY_MESSAGE) { if (ucPowerChannel<=_FIRST_CHANNEL) ucPowerChannel = GET_TV_MAX_CH()-1; else ucPowerChannel -= 1; } else if (message == _RIGHT_KEY_MESSAGE) { ucPowerChannel = (ucPowerChannel + 1) % (GET_TV_MAX_CH()); } else return; SET_TVPOWERONCHANNEL(ucPowerChannel); CEepromSaveTimeData(); } UINT8 COsdCtrlGetSwtichTimer(void) { if (ucExtendMenuRow == 2) { if (ucExtendMenuCol==1) return stTimeData.ucTimeHourSwitch; else if (ucExtendMenuCol==2) return stTimeData.ucTimeMinSwitch; else return 0; } return 0; } void COsdCtrlSetSwtichTimer(UINT8 message) { unsigned char key=0; unsigned char * pHour; unsigned char * pMin; pHour = &stTimeData.ucTimeHourSwitch; pMin = &stTimeData.ucTimeMinSwitch; if ((message == _DOWN_KEY_MESSAGE) || (message == _REPEAT_KEY_MESSAGE && ucOsdPreMessage == _DOWN_KEY_MESSAGE)) key = 1; else if ((message == _UP_KEY_MESSAGE) || (message == _REPEAT_KEY_MESSAGE && ucOsdPreMessage == _UP_KEY_MESSAGE)) key = 2; if (ucExtendMenuRow == 5) { if (ucExtendMenuCol == 1) { if (key == 1) *pHour = (*pHour==0)?(23):(*pHour-1); else if (key == 2) *pHour = (*pHour==23)?(0):(*pHour+1); } else if (ucExtendMenuCol == 2) { if (key == 1) *pMin = (*pMin==0)?(59):(*pMin-1); else if (key == 2) *pMin = (*pMin==59)?(0):(*pMin+1); } } } UINT8 COsdCtrlGetTimeSwitchChannel(void) { return GET_TIME_SWITCH_CH(); } void COsdCtrlSetTimeSwitchChannel(UINT8 message) { UINT8 ucSwitchChannel = GET_TIME_SWITCH_CH(); if (message == _LEFT_KEY_MESSAGE) { if (ucSwitchChannel<=_FIRST_CHANNEL) ucSwitchChannel = GET_TV_MAX_CH()-1; else ucSwitchChannel -= 1; } else if (message == _RIGHT_KEY_MESSAGE) { ucSwitchChannel = (ucSwitchChannel + 1) % (GET_TV_MAX_CH()); } else return; SET_TIME_SWITCH_CH(ucSwitchChannel); } #endif /* UINT8 COsdCtrlGetRemindTimer(void) { if (ucExtendMenuRow == 3) { if (ucExtendMenuCol==1) return stTimeData.ucTimeHourRemind; else if (ucExtendMenuCol==2) return stTimeData.ucTimeMinRemind; else return 0; } return 0; } void COsdCtrlSetRemindTimer(UINT8 message) { unsigned char key=0; message = COsdCtrlGetKey(); if ((message == _DOWN_KEY_MESSAGE) || (message == _REPEAT_KEY_MESSAGE && ucOsdPreMessage == _DOWN_KEY_MESSAGE)) key = 1; else if ((message == _UP_KEY_MESSAGE) || (message == _REPEAT_KEY_MESSAGE && ucOsdPreMessage == _UP_KEY_MESSAGE)) key = 2; if (ucExtendMenuRow == 3) { ucTimerRemindMinTickCnt = 0; if (ucExtendMenuCol == 1) { if (key == 1) stTimeData.ucTimeHourRemind= (stTimeData.ucTimeHourRemind==0)?(23):(stTimeData.ucTimeHourRemind-1); else if (key == 2) stTimeData.ucTimeHourRemind = (stTimeData.ucTimeHourRemind==23)?(0):(stTimeData.ucTimeHourRemind+1); } else if (ucExtendMenuCol == 2) { if (key == 1) stTimeData.ucTimeMinRemind= (stTimeData.ucTimeMinRemind==0)?(59):(stTimeData.ucTimeMinRemind-1); else if (key == 2) stTimeData.ucTimeMinRemind = (stTimeData.ucTimeMinRemind==59)?(0):(stTimeData.ucTimeMinRemind+1); } } } */ #endif //#if _TIMER_PAGE_SUPPORT #if (_DISP_RATIO_M2_SUPPORT) #if _PANEL_DISPLAY_RATIO == _PANEL_16_9 UINT8 COsdCtrlGetDispRatioM2(void) { return GET_DISPLAYRATIO(); } void COsdCtrlSetDispRatioM2(void) { UINT8 mode; UINT8 ucTmpLayerIndex = ucLayerIndex; UINT8 ucTmpState = ucOsdState; //20070406, positive /negtive turn, but short menu fail //mode = GET_DISPLAYRATIO(); //if (!COsdCtrlSetBracketData(ucOsdMessage,_DISP_RATIO_MAX, _DISP_RATIO_MIN, &mode)) // return; mode = GET_DISPLAYRATIO(); mode = (mode + 1) % _DISP_RATIO_MODENUM; SET_DISPLAYRATIO(mode); CEepromSaveSystemData(); //only active state to execute switch (GET_INPUTSOURCE_TYPE()) { case _SOURCE_VGA: case _SOURCE_YPBPR: case _SOURCE_DVI: if (ucSyncProcessState!=_ACTIVE_STATE) return; break; case _SOURCE_VIDEO8: if (ucVideoProcessState!=_ACTIVE_STATE) return; break; } //CModeResetMode(); CAdjustDisableWatchDog(_WD_ALL); // Disable watch dog CMiscDisableDoubleBuffer();//disable dobule buffle for VGIP write in CTimerWaitForEvent(_EVENT_DEN_STOP); //========add by dengyi 0n 2010 01 07 CPowerLightPowerOff(); CAdjustBackgroundColor(0x00, 0x00, 0x00); CScalerSetBit(_VDISP_CTRL_28, ~_BIT5,_BIT5);//display force to background color //COsdFxDisableOsd(); CModeAutoMeasureOff(); bDoAspectRatioFlag = _TRUE; if(GET_INPUTSOURCE_TYPE() == _SOURCE_VIDEO8) CVideoDisplaySet(); else{ if(GET_INPUTSOURCE_TYPE() == _SOURCE_DVI) // restore avoid ovscan capture windows size reduce,hill 20070516 { #if _HDMI_REWRITE #else stModeInfo.IHWidth = HDMI_H_Width; stModeInfo.IVHeight = HDMI_V_Height; #endif } CModeDisplayActiveMode(); } bDoAspectRatioFlag = _FALSE; CMiscEnableDoubleBuffer(); CTimerWaitForEvent(_EVENT_DEN_STOP); CTimerWaitForEvent(_EVENT_DEN_START); CMiscClearStatusRegister(); if(GET_INPUTPORT_TYPE(stSystemData.InputSource)!=_VIDEO_TV_PORT) //for tv crash issue.//yf_zhang CModeAutoMeasureOn(); CTimerWaitForEvent(_EVENT_DEN_STOP); CScalerSetBit(_VDISP_CTRL_28, ~_BIT5,0x00);//display operates normally if(GET_INPUTSOURCE_TYPE() == _SOURCE_DVI) CScalerSetDataPortBit(_P2_HDMI_ADDR_PORT_C9, _P2_HDMI_VWDSR_41, ~_BIT0, _BIT0);//Enable packet variation Watch Dog if(GET_INPUTSOURCE_TYPE() == _SOURCE_YPBPR) CAdjustEnableWatchDog(_WD_DV_TIMEOUT | _WD_FRAMESYNC); else if(GET_INPUTSOURCE_TYPE() == _SOURCE_VIDEO8) CAdjustDisableWatchDog(_WD_ALL); else CAdjustEnableWatchDog(_WD_ALL); CTimerReactiveTimerEvent(SEC(0.1), CPowerPanelOn); //add by dengyi on 2010 10 07 //COsdFxEnableOsd(); } #endif //#if _PANEL_DISPLAY_RATIO == _PANEL_16_9 #endif void COsdCtrlSetPictureMiscLTI(UINT8 message) { message = message; if(GET_PICTMISC_LTI()) CLR_PICTMISC_LTI(); else SET_PICTMISC_LTI(); CEepromSaveSystemData();//CEepromSaveTimeData(); //dong alter 20080813 //action: } UINT8 COsdCtrlGetPictureMiscLTI(void) { if(GET_PICTMISC_LTI()) return 1; else return 0; } void COsdCtrlSetPictureMiscCTI(UINT8 message) { message = message; if(GET_PICTMISC_CTI()) CLR_PICTMISC_CTI(); else SET_PICTMISC_CTI(); CEepromSaveSystemData();//CEepromSaveTimeData(); //dong alter 20080813 //action: } UINT8 COsdCtrlGetPictureMiscCTI(void) { if(GET_PICTMISC_CTI()) return 1; else return 0; } void COsdCtrlSetPictureMiscBlkExt(UINT8 message) { message = message; if(GET_PICTMISC_BLK_EXT()) CLR_PICTMISC_BLK_EXT(); else SET_PICTMISC_BLK_EXT(); CEepromSaveSystemData();//CEepromSaveTimeData(); //dong alter 20080813 //action: } UINT8 COsdCtrlGetPictureMiscBlkExt(void) { if(GET_PICTMISC_BLK_EXT()) return 1; else return 0; } void COsdCtrlSetPictureMiscDNR(UINT8 message) { message = message; if(GET_PICTMISC_DNR()) CLR_PICTMISC_DNR(); else SET_PICTMISC_DNR(); CEepromSaveSystemData();//CEepromSaveTimeData(); //dong alter 20080813 //action: } UINT8 COsdCtrlGetPictureMiscDNR(void) { if(GET_PICTMISC_DNR()) return 1; else return 0; } void COsdCtrlSetPictureMiscDither(UINT8 message) { message = message; if(GET_PICTMISC_DITHER()) CLR_PICTMISC_DITHER(); else SET_PICTMISC_DITHER(); CEepromSaveSystemData();//CEepromSaveTimeData(); //dong alter 20080813 //action: } UINT8 COsdCtrlGetPictureMiscDither(void) { if(GET_PICTMISC_DITHER()) return 1; else return 0; } //20080901 void COsdCtrlSetBlueScreen(UINT8 message) { message = message; //20081013 ccy modify if(GET_TV_BACKGROUND()) SET_TV_BACKGROUND(0); else SET_TV_BACKGROUND(1); CEepromSaveOsdUserData();//CEepromSaveTimeData(); //dong alter 20081020 if(ucSyncProcessState==_NOSUPPORT_STATE||ucVideoProcessState==_NOSIGNAL_STATE||ucSyncProcessState==_NOSIGNAL_STATE) CModeResetMode(); } UINT8 COsdCtrlGetBlueScreen(void) { //20081013 ccy modify if(GET_TV_BACKGROUND()) return 1; else return 0; } void COsdCtrlSetScreenSave(UINT8 message) { message = message; if(GET_SCREEN_SAVE()) CLR_SCREEN_SAVE(); else SET_SCREEN_SAVE(); CEepromSaveSystemData();//CEepromSaveTimeData(); //dong alter 20080813 //action: } UINT8 COsdCtrlGetScreenSave(void) { if(GET_SCREEN_SAVE()) return 1; else return 0; } /** * * @} */