/*===========================================================
 * 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-01 11:54:47 +0800 (?Ÿæ?äº? 01 ?«æ? 2006) $
 * @version $Revision: 1142 $
 */

/**
 * @addtogroup osd
 * @{
 */

#ifndef _OSDCONTROL_H
#define _OSDCONTROL_H
/*===================== Module dependency  ================== */
#include "Core\Header\maindef.h"
#if (_CUSTOMER_TYPE == _SKYWORTH)
#include "Customer\Header\skyworth\osdobjectdef.h"
#endif
#include "Core\Header\global.h"

/*=======================  Types ===================== */

/*======================== Definitions ====================== */
#define _OSD_ACC_HWIN        1                    // 1-> enable ACC highlight window

/*========================== Variables ====================== */
#ifdef _OSDCONTROL_C
    #define EXTERN
#else
    #define EXTERN   extern
#endif

EXTERN UINT8 xdata ucSleepTimeMin;
EXTERN UINT8 xdata ucSleepTimeSec;
EXTERN UINT8 xdata ucSleepType;

EXTERN UINT8 xdata ucAudioModeType;
EXTERN UINT8 xdata ucVideoModeType;

EXTERN BIT bDoAspectRatioFlag;
EXTERN xdata UINT8 ucExtendMenuRow;
EXTERN xdata UINT8 ucExtendMenuCol;

#undef EXTERN

/*=================== Local Functions Phototype ==============*/

/*=========================== Functions ===================== */
void COsdFxChangeInputSrc(UINT8 ucSrcNo);
UINT8 COsdFxCalcMenuSelSource();

UINT8 COsdCtrlGetSingalSource();
void COsdCtrlSetSingalSource(UINT8 message);
void COsdCtrlSetSingalSourceMainMenu(void);

UINT8 COsdCtrlGetColorTemp();
void COsdCtrlSetColorTemp();

UINT8 COsdCtrlGetModeSelect();
void  COsdCtrlSetModeSelect();

void COsdMenuAutoScan();
void COsdMenuAutoColor();
//-----------------sva---------------------------------
void COsdSMenuAdjustlANGUAGE0();
void COsdSMenuAdjustlANGUAGE1();
void COsdSMenuAdjustColorTemp();
//#if 0
void COsdMenuAutoAdjust(void);//tommy change
//#endif
UINT8 COsdCtrlGetAutoImage();
void COsdCtrlSetAutoImage();
UINT8 COsdCtrlGetBlackExpansion();
void COsdCtrlSetBlackExpansion();

 
UINT8 COsdCtrlGetTVSystem();
void COsdCtrlSetTVSystem();

UINT8 COsdCtrlGetOsdTimeOutSystem();
void COsdCtrlSetOsdTimeOutSystem(UINT8 message);

UINT8 COsdCtrlGetOsdBlend(void);
void COsdCtrlSetOsdBlend(UINT8 message);

UINT8 COsdCtrlGetDisplayRatio(void);
void COsdCtrlSetDisplayRatio(void);

UINT8 COsdCtrlGetGamma();
void COsdCtrlSetGamma();

//UINT8 COsdCtrlGetPeakingCoring();
//void COsdCtrlSetPeakingCoring();

UINT8 COsdCtrlGetSharpness();
void COsdCtrlSetSharpness(UINT8 message);

UINT8 COsdCtrlGetHue();
void COsdCtrlSetHue(UINT8 message);

UINT8 COsdCtrlGetSaturation();
void COsdCtrlSetSaturation(UINT8 message);


//void COsdCtrlReset(UINT8 message);//20070531
void COsdCtrlReset(void);//20070531

void COsdCtrlSetSwap();

UINT8 COsdCtrlGetLanguage(void);
void COsdCtrlSetLanguage(UINT8 message);

UINT8 COsdCtrlGetAudioMute();
void COsdCtrlSetAudioMute();
UINT8 COsdCtrlGetAudioVolume();
void COsdCtrlSetAudioVolume(UINT8 message);
#if _VOLUME_PT2314_SUPPORT
UINT8 COsdCtrlGetAudioBass(void);
void COsdCtrlSetAudioBass(UINT8 message);
UINT8 COsdCtrlGetAudioTreble(void);
void COsdCtrlSetAudioTreble(UINT8 message);
UINT8 COsdCtrlGetAudioBalance(void);
void  COsdCtrlSetAudioBalance(UINT8 message);
#endif
//20080823 ccy add
#if (_PCB_TYPE == _PCB_TEST)
UINT8 COsdCtrlGetFMEffect(void);
void COsdCtrlSetFMEffect(void);
#endif
UINT8 COsdCtrlGetHPosition();
void COsdCtrlSetHPosition(UINT8 message);

UINT8 COsdCtrlGetVPosition(void);
void COsdCtrlSetVPosition(UINT8 message);

//---------------------------------------
UINT8 COsdMenuCtrlGetHPosition();
void COsdMenuCtrlSetHPosition(UINT8 message);

UINT8 COsdMenuCtrlGetVPosition();
void COsdMenuCtrlSetVPosition(UINT8 message);

void COsdCtrlSetZoom(UINT8 message);
UINT8 COsdCtrlGetZoom();

UINT8 COsdCtrlGetSource();
void COsdCtrlSetSource(UINT8 message);
//-----------------------------------------


UINT8 COsdCtrlGetClock();

void COsdCtrlSetClock(UINT8 message);

UINT8 COsdCtrlGetPhase();
void COsdCtrlSetPhase(UINT8 message);


UINT8 COsdCtrlGetColorRed(void);
void COsdCtrlSetColorRed(UINT8 message);
UINT8 COsdCtrlGetColorGreen(void);
void COsdCtrlSetColorGreen(UINT8 message);
UINT8 COsdCtrlGetColorBlue(void);
void COsdCtrlSetColorBlue(UINT8 message);


UINT8 COsdCtrlGetRatingTV(void);
void COsdCtrlSetRatingTV(UINT8 message);

UINT8 COsdCtrlGetRatingUSAMovie(void);
void COsdCtrlSetRatingUSAMovie(UINT8 message);

UINT8 COsdCtrlGetRatingCAFRMovie(void);
void COsdCtrlSetRatingCAFRMovie(UINT8 message);

UINT8 COsdCtrlGetRatingCAENMovie(void);
void COsdCtrlSetRatingCAENMovie(UINT8 message);

UINT8 COsdCtrlGetRatingTV_Option(UINT8 ucRating, UINT8 ucOption);
void COsdCtrlSetRatingTV_Option(UINT8 ucRating, UINT8 ucOption);

void CAccAdjust (BYTE mode);


UINT8 COsdCtrlGetDcc(void);
void COsdCtrlSetDcc(void);

UINT8 COsdCtrlGetHueICMR(void);
void COsdCtrlSetHueICMR(UINT8 message);
UINT8 COsdCtrlGetHueICMG(void);
void COsdCtrlSetHueICMG(UINT8 message);
UINT8 COsdCtrlGetHueICMB(void);
void COsdCtrlSetHueICMB(UINT8 message);
UINT8 COsdCtrlGetHueICMY(void);
void COsdCtrlSetHueICMY(UINT8 message);
UINT8 COsdCtrlGetHueICMC(void);
void COsdCtrlSetHueICMC(UINT8 message);



UINT8 COsdCtrlGetSatICMR(void);
void COsdCtrlSetSatICMR(UINT8 message);
UINT8 COsdCtrlGetSatICMG(void);
void COsdCtrlSetSatICMG(UINT8 message);
UINT8 COsdCtrlGetSatICMB(void);
void COsdCtrlSetSatICMB(UINT8 message);
UINT8 COsdCtrlGetSatICMY(void);
void COsdCtrlSetSatICMY(UINT8 message);
UINT8 COsdCtrlGetSatICMC(void);
void COsdCtrlSetSatICMC(UINT8 message);

UINT8 COsdCtrlGetICMswitch(void);
void COsdCtrlSetICMswitch(void);

int CAdjustColorGammaCal(BYTE color, BYTE n);
void CAdjustHueSatSet(BYTE color, SWORD TempU1, SWORD TempU2, SWORD TempV1, SWORD TempV2);
void CAdjustMZHueSat(BYTE color);

// Sleeo mode
void COsdCtrlSetSleepMode(void);
UINT8 COsdCtrlGetSleepMode(void);

// Picture Mode 
UINT8 COsdCtrlGetPictureMode(void);
void COsdCtrlSetPictureMode(void);
void COsdPictureModeSet(UINT8 pMode);

void COsdSoundModeSet(UINT8 sMode);

// Channel Edit
void COsdCtrlSetChannelStatus(UINT8 message);
UINT8 COsdCtrlGetChannelStatus(void);

void COsdCtrlSetComb(void);
UINT8 COsdCtrlGetComb(void);

void COsdCtrlSetOsdClock(UINT8 message);
UINT8 COsdCtrlGetOsdClock(void);

//void COsdCtrlSetNonLinear(UINT8 message);
//UINT8 COsdCtrlGetNonLinear(void);
//UINT8 COsdCtrlGetMinNonLinear(void);
//UINT8 COsdCtrlGetMaxNonLinear(void);
  
//leo 20060613 add black level
#if(_BLACK_LEVEL == _ENABLE)
void COsdCtrlSetBlackLevel(UINT8 message);
UINT8 COsdCtrlGetBlackLevel();
void COsdCtrlSetWhiteLevel(UINT8 message);
UINT8 COsdCtrlGetWhiteLevel();
#endif

UINT8 COsdCtrlGetTvAudioType(void);
void COsdCtrlSetTvAudioType(UINT8 message);

UINT8 COsdCtrlGetVideoSys(void);
void COsdCtrlSetVideoSys(UINT8 message);

void COsdCtrlSetTvFinetuneScanPdb(UINT8 message);
UINT8 COsdCtrlGetTvFinetuneScanPdb(void);

#if (_CUSTOMER_TYPE == _SKYWORTH)  //yf_zhang for TV fine tune show 2007-5-31 12:50
   void COsdCtrlFineTuneShow(UINT16 freq,UINT8 Active);
#endif
//UINT8 COsdCtrlGetNoiseReduce(void);  
//void COsdCtrlSetNoiseReduce(void);
#if (_PICT_EFFECT_SUPPORT)
UINT8 COsdCtrlGetPictEffect(void);
void COsdCtrlSetPictEffect();
#endif
UINT8 COsdCtrlGetChannel(void);
void COsdCtrlSetChannel(UINT8 message);
UINT8 COsdCtrlGetChannelScanGet(void);
void COsdCtrlSetChannelScanGet(UINT8 message);
UINT8 COsdCtrlGetSearchPercent(void);
void COsdCtrlSetSearchPercent(UINT8 message);
#if (_AUDIO_EFFECT_SUPPORT)
UINT8 COsdCtrlGetAudioEffect(void);
void COsdCtrlSetAudioEffect();
#endif
#if (_AUDIO_EFFECT_SUPPORT)
void COsdCoreAudioEffectChangeProc(void);
#endif


UINT8* COsdCoreGetSignalSourceStr(void);
UINT8 COsdCtrlGetNullFunction(void);
void COsdCtrlSetNullFunction(UINT8 message);
#if 0
void COsdCtrlSetTvSwapSrcChannel(UINT8 message);
UINT8 COsdCtrlGetTvSwapSrcChannel(void);
void COsdCtrlSetTvSwapDestChannel(UINT8 message);
UINT8 COsdCtrlGetTvSwapDestChannel(void);
void COsdCtrlSetTvSwapExecute(UINT8 message);
UINT8 COsdCtrlGetTvSwapExecute(void);
UINT8* COsdCoreGetTvSwapSrcChannelStr(void);
UINT8* COsdCoreGetTvSwapDestChannelStr(void);
UINT8* COsdCoreGetTvSwapExecuteStr(void);
#endif
UINT8 COsdCtrlGetBurnStatus(void);
void COsdCtrlSetBurnStatus(void);
#if _BACKLIGHT_SUPPORT
UINT8 COsdCtrlGetBacklight(void);
void COsdCtrlSetBacklight(UINT8 message);
#endif
#if _PICT_EFFECT_SUPPORT
UINT8 COsdCtrlGetBrightness();
void COsdCtrlSetBrightness(UINT8 message);
UINT8 COsdCtrlGetContrast(void);
void COsdCtrlSetContrast(UINT8 message);
#endif//#if _PICT_EFFECT_SUPPORT

//adc gain/offset
void CAdcDataApply(void);
UINT8 COsdCtrlGetAdcGainRed(void);
void COsdCtrlSetAdcGainRed(UINT8 message);
UINT8 COsdCtrlGetAdcGainGreen(void);
void COsdCtrlSetAdcGainGreen(UINT8 message);
UINT8 COsdCtrlGetAdcGainBlue(void);
void COsdCtrlSetAdcGainBlue(UINT8 message);
UINT8 COsdCtrlGetAdcOffsetRed(void);
void COsdCtrlSetAdcOffsetRed(UINT8 message);
UINT8 COsdCtrlGetAdcOffsetGreen(void);
void COsdCtrlSetAdcOffsetGreen(UINT8 message);
UINT8 COsdCtrlGetAdcOffsetBlue(void);
void COsdCtrlSetAdcOffsetBlue(UINT8 message);

UINT8 COsdCtrlGetHPositionYPbPr();
void COsdCtrlSetHPositionYPbPr(UINT8 message);
UINT8 COsdCtrlGetVPositionYPbPr();
void COsdCtrlSetVPositionYPbPr(UINT8 message);
UINT8 COsdCtrlGetClockYPbPr();
void COsdCtrlSetClockYPbPr(UINT8 message);
UINT8 COsdCtrlGetPhaseYPbPr();
void COsdCtrlSetPhaseYPbPr(UINT8 message);

#if _TIMER_PAGE_SUPPORT
UINT8 COsdCtrlGetTimeCurrentTimer(void);
void COsdCtrlSetTimeCurrentTimer(UINT8 message);
UINT8 COsdCtrlGetPowerOnTimer(void);
void COsdCtrlSetPowerOnTimer(UINT8 message);
UINT8 COsdCtrlGetPowerOffTimer(void);
void COsdCtrlSetPowerOffTimer(UINT8 message);
UINT8 COsdCtrlGetPowerOnChannel(void);
void COsdCtrlSetPowerOnChannel(UINT8 message);
UINT8 COsdCtrlGetSwtichTimer(void);
void COsdCtrlSetSwtichTimer(UINT8 message);
UINT8 COsdCtrlGetTimeSwitchChannel(void);
void COsdCtrlSetTimeSwitchChannel(UINT8 message);

//UINT8 COsdCtrlGetRemindTimer(void);
//void COsdCtrlSetRemindTimer(UINT8 message);
#endif	//#if _TIMER_PAGE_SUPPORT

UINT8 COsdCtrlGetISFilter(void);
void COsdCtrlSetISFilter(UINT8 message);
#if (_DISP_RATIO_M2_SUPPORT)
#if _PANEL_DISPLAY_RATIO == _PANEL_16_9
UINT8 COsdCtrlGetDispRatioM2(void);
void COsdCtrlSetDispRatioM2(void);
#endif	//#if _PANEL_DISPLAY_RATIO == _PANEL_16_9
#endif

void COsdCtrlSetPictureMiscLTI(UINT8 message);
UINT8 COsdCtrlGetPictureMiscLTI(void);
void COsdCtrlSetPictureMiscCTI(UINT8 message);
UINT8 COsdCtrlGetPictureMiscCTI(void);
void COsdCtrlSetPictureMiscBlkExt(UINT8 message);
UINT8 COsdCtrlGetPictureMiscBlkExt(void);
void COsdCtrlSetPictureMiscDNR(UINT8 message);
UINT8 COsdCtrlGetPictureMiscDNR(void);
void COsdCtrlSetPictureMiscDither(UINT8 message);
UINT8 COsdCtrlGetPictureMiscDither(void);
void COsdCtrlSetScreenSave(UINT8 message);
UINT8 COsdCtrlGetScreenSave(void);
//20080901 ccy add
void COsdCtrlSetBlueScreen(UINT8 message);
UINT8 COsdCtrlGetBlueScreen(void);
#endif // #ifndef _OSDFUNCTION_H


#if _TIMER_SLEEP_HINT_SUPPORT

#define _TIMER_SLEEP_MODE_MAX			7
#define _TIMER_SLEEP_T_OFF				0
#define _TIMER_SLEEP_T_1				15
#define _TIMER_SLEEP_T_2				30	//test 2 min
#define _TIMER_SLEEP_T_3				45
#define _TIMER_SLEEP_T_4				60
#define _TIMER_SLEEP_T_5				90
#define _TIMER_SLEEP_T_6				120

#define _TIMER_SLEEP_HINT_START		1 //min

#endif	//#if _TIMER_SLEEP_HINT_SUPPORT

/**
 *
 * @}
 */

