/* * Copyright (c) 2014 Amlogic, Inc. All rights reserved. * * This source code is subject to the terms and conditions defined in the * file 'LICENSE' which is part of this source code package. * * Description: header file */ #ifndef __SSM_ACTION_H__ #define __SSM_ACTION_H__ #include "PQType.h" #include "PQTableTypeOSD.h" #include "SSMHandler.h" #include "PQSettingCfg.h" #define CRI_DATE_RGBOGO_OFFSET (0) #define CRI_DATE_RGBOGO_LEN (sizeof(tcon_rgb_ogo_t) + sizeof(int)) #define CRI_DATE_RGBOGO_INDEX_MAX (8) #define CRI_DATA_WB_GAMMA_OFFSET (CRI_DATE_RGBOGO_OFFSET + (CRI_DATE_RGBOGO_LEN * CRI_DATE_RGBOGO_INDEX_MAX)) #define CRI_DATE_WB_GAMMA_LEN (sizeof(WB_GAMMA_TABLE_DATA) + sizeof(int)) #define CRI_DATE_WB_GAMMA_INDEX_MAX (8) #define CRI_DATA_GAMMA_OFFSET (CRI_DATA_WB_GAMMA_OFFSET + (CRI_DATE_WB_GAMMA_LEN * CRI_DATE_WB_GAMMA_INDEX_MAX * WB_GAMMA_MODE_MAX)) #define CRI_DATE_GAMMA_LEN (sizeof(tcon_gamma_table_s) + sizeof(int)) #define CRI_DATE_GAMMA_INDEX_MAX (8) #define SSM_RGBOGO_FILE_OFFSET (0) #define SSM_CR_RGBOGO_LEN (256) #define SSM_CR_RGBOGO_CHKSUM_LEN (2) #define DEFAULT_BACKLIGHT_BRIGHTNESS (10) //#define CRI_DATE_GAMMA_OFFSET (512) //#define CRI_DATE_GAMMA_RGB_SIZE (257) #define CRI_DATE_GAMMA_R_index (1) #define CRI_DATE_GAMMA_G_index (2) #define CRI_DATE_GAMMA_B_index (3) #define CRI_DATE_GAMMA_COOL (1) #define CRI_DATE_GAMMA_STANDARD (2) #define CRI_DATE_GAMMA_WARM (3) class SSMAction { public: SSMAction(); ~SSMAction(); void init(const char *settingDataPath, const char *whiteBalanceDataPath); bool Check(const char *settingDataPath, const char *whiteBalanceDataPath); int SaveBurnWriteCharaterChar(int rw_val); int ReadBurnWriteCharaterChar(); int DeviceMarkCheck(); int RestoreDeviceMarkValues(); static SSMAction *getInstance(); bool isFileExist(const char *file_name); int WriteBytes(int offset, int size, int *buf); int ReadBytes(int offset, int size, int *buf); int EraseAllData(void); int GetSSMActualAddr(int id); int GetSSMActualSize(int id); int GetSSMStatus(void); int SSMReadNTypes(int id, int data_len, int *data_buf, int offset = 0); int SSMWriteNTypes(int id, int data_len, int *data_buf, int offset = 0); bool SSMRecovery(); int SSMRestoreDefault(int id, bool resetAll = true); //PQ mode int SSMSavePictureMode(int offset, int rw_val); int SSMReadPictureMode(int offset, int *rw_val); int SSMSaveLastPictureMode(int offset, int rw_val); int SSMReadLastPictureMode(int offset, int *rw_val); //Color Temperature int SSMSaveColorTemperature(int offset, int rw_val); int SSMReadColorTemperature(int offset, int *rw_val); int SSMSaveRGBGainRStart(int offset, unsigned int rw_val); int SSMReadRGBGainRStart(int offset, unsigned int *rw_val); int SSMSaveRGBGainGStart(int offset, unsigned int rw_val); int SSMReadRGBGainGStart(int offset, unsigned int *rw_val); int SSMSaveRGBGainBStart(int offset, unsigned int rw_val); int SSMReadRGBGainBStart(int offset, unsigned int *rw_val); int SSMSaveRGBPostOffsetRStart(int offset, int rw_val); int SSMReadRGBPostOffsetRStart(int offset, int *rw_val); int SSMSaveRGBPostOffsetGStart(int offset, int rw_val); int SSMReadRGBPostOffsetGStart(int offset, int *rw_val); int SSMSaveRGBPostOffsetBStart(int offset, int rw_val); int SSMReadRGBPostOffsetBStart(int offset, int *rw_val); int SSMReadRGBOGOValue(int offset, int size, unsigned char data_buf[]); int SSMSaveRGBOGOValue(int offset, int size, unsigned char data_buf[]); int SSMSaveRGBValueStart(int offset, int8_t rw_val); int SSMReadRGBValueStart(int offset, int8_t *rw_val); int SSMSaveColorSpaceStart(unsigned char rw_val); int SSMReadColorSpaceStart(unsigned char *rw_val); int ReadDataFromFile(const char *file_name, int offset, int nsize, unsigned char data_buf[]); int SaveDataToFile(const char *file_name, int offset, int nsize, unsigned char data_buf[]); //Brightness int SSMSaveBrightness(int offset, int rw_val); int SSMReadBrightness(int offset, int *rw_val); //constract int SSMSaveContrast(int offset, int rw_val); int SSMReadContrast(int offset, int *rw_val); //saturation int SSMSaveSaturation(int offset, int rw_val); int SSMReadSaturation(int offset, int *rw_val); //hue int SSMSaveHue(int offset, int rw_val); int SSMReadHue(int offset, int *rw_val); //Sharpness int SSMSaveSharpness(int offset, int rw_val); int SSMReadSharpness(int offset, int *rw_val); //NoiseReduction int SSMSaveNoiseReduction(int offset, int rw_val); int SSMReadNoiseReduction(int offset, int *rw_val); //SmoothPlus int SSMSaveSmoothPlus(int offset, int rw_val); int SSMReadSmoothPlus(int offset, int *rw_val); //HDR TMO int SSMSaveHdrTmoVal(int offset, int rw_val); int SSMReadHdrTmoVal(int offset, int *rw_val); //Gamma int SSMSaveGammaValue(int offset, int rw_val); int SSMReadGammaValue(int offset, int *rw_val); //Memc int SSMSaveMemcMode(int offset, int rw_val); int SSMReadMemcMode(int offset, int *rw_val); int SSMSaveMemcDeblurLevel(int offset, int rw_val); int SSMReadMemcDeblurLevel(int offset, int *rw_val); int SSMSaveMemcDeJudderLevel(int offset, int rw_val); int SSMReadMemcDeJudderLevel(int offset, int *rw_val); //Edge enhance int SSMSaveEdgeEnhanceStatus(int offset, int rw_val); int SSMReadEdgeEnhanceStatus(int offset, int *rw_val); //mpeg NR int SSMSaveMpegNoiseReduction(int offset, int rw_val); int SSMReadMpegNoiseReduction(int offset, int *rw_val); //Dynamic contrast int SSMSaveDynamicContrast(int offset, int rw_val); int SSMReadDynamicContrast(int offset, int *rw_val); //Dynamic Backlight int SSMSaveDynamicBacklightMode(int rw_val); int SSMReadDynamicBacklightMode(int *rw_val); //backlight int SSMReadBackLightVal(int *rw_val); int SSMSaveBackLightVal(int rw_val); //dynamic contrast int SSMSaveDnlpMode(int offset, int rw_val); int SSMReadDnlpMode(int offset, int *rw_val); // int SSMSaveColorDemoMode(unsigned char rw_val); int SSMReadColorDemoMode(unsigned char *rw_val); //cm int SSMSaveColorBaseMode(unsigned char rw_val); int SSMReadColorBaseMode(unsigned char *rw_val); //color gamut int SSMSaveColorGamutMode(int offset, int rw_val); int SSMReadColorGamutMode(int offset, int *rw_val); int SSMSaveDnlpGainValue(int offset, int rw_val); int SSMReadDnlpGainValue(int offset, int *rw_val); int SSMSaveEyeProtectionMode(int rw_val); int SSMReadEyeProtectionMode(int *rw_val); int SSMSaveDDRSSC(unsigned char rw_val); int SSMReadDDRSSC(unsigned char *rw_val); int SSMSaveLVDSSSC(int offset, int size, int *rw_val); int SSMReadLVDSSSC(int offset, int size, int *rw_val); int SSMSaveDisplayMode(int offset, int rw_val); int SSMReadDisplayMode(int offset, int *rw_val); int SSMSaveAutoAspect(int offset, int rw_val); int SSMReadAutoAspect(int offset, int *rw_val); int SSMSave43Stretch(int offset, int rw_val); int SSMRead43Stretch(int offset, int *rw_val); int SSMEdidRestoreDefault(int rw_val); int SSMHdcpSwitcherRestoreDefault(int rw_val); int SSMSColorRangeModeRestoreDefault(int rw_val); int SSMSaveLocalContrastMode(int offset, int rw_val); int SSMReadLocalContrastMode(int offset, int *rw_val); int SSMSaveDeblockMode(int offset, int rw_val); int SSMReadDeblockMode(int offset, int *rw_val); int SSMSaveDemoSquitoMode(int offset, int rw_val); int SSMReadDemoSquitoMode(int offset, int *rw_val); int SSMSaveMcDiMode(int offset, int rw_val); int SSMReadMcDiMode(int offset, int *rw_val); int SSMReadAipqEnableVal(int *rw_val); int SSMSaveAipqEnableVal(int rw_val); int SSMReadAiSrMode(int *rw_val); int SSMSaveAiSrMode(int rw_val); int SSMSaveBlackStretch(int offset, int rw_val); int SSMReadBlackStretch(int offset, int *rw_val); int SSMSaveWhiteStretch(int offset, int rw_val); int SSMReadWhiteStretch(int offset, int *rw_val); int SSMSaveBlueStretch(int offset, int rw_val); int SSMReadBlueStretch(int offset, int *rw_val); int SSMSaveChromaCoring(int offset, int rw_val); int SSMReadChromaCoring(int offset, int *rw_val); int SSMSaveLocalDimming(int offset, int rw_val); int SSMReadLocalDimming(int offset, int *rw_val); int SSMSaveWhitebalanceGammaMode(int offset, int rw_val); int SSMReadWhitebalanceGammaMode(int offset, int *rw_val); //FilmMaker Mode UI status int SSMSaveFilmMakerMode(int rw_val); int SSMReadFilmMakerMode(int *rw_val); bool SetPictureMode(int PictureMode, int src, int timming); bool GetPictureMode(int *PictureMode, int src, int timming); bool SetLastPictureMode(int PictureMode, int src, int timming); bool GetLastPictureMode(int *PictureMode, int src, int timming); bool SetPictureModeData(vpp_pictur_mode_para_t *pData, int src, int timming, int pqmode); bool GetPictureModeData(vpp_pictur_mode_para_t *pData, int src, int timming, int pqmode); bool SetColorTemperatureData(tcon_rgb_ogo_t *pData, int src, int timming, int level); bool GetColorTemperatureData(tcon_rgb_ogo_t *pData, int src, int timming, int level); bool SetWhitebalanceGammaData(WB_GAMMA_TABLE *pData, int src, int timming, int level, int mode); bool GetWhitebalanceGammaData(WB_GAMMA_TABLE *pData, int src, int timming, int level, int mode); bool SetColorCustomizeData(TABLE_CMS *pData, int mode, int src, int timming); bool GetColorCustomizeData(TABLE_CMS *pData, int mode, int src, int timming); bool SetColorCustomizeDataBy3DLut(TABLE_CMS_3DLUT *pData, int mode, int src, int timming); bool GetColorCustomizeDataBy3DLut(TABLE_CMS_3DLUT *pData, int mode, int src, int timming); // CRI DATA bool CriDataSetWhitebalanceRGBGainOffsetData(tcon_rgb_ogo_t *pData, int level); bool CriDataGetWhitebalanceRGBGainOffsetData(tcon_rgb_ogo_t *pData, int level); bool CriDataGetWhitebalanceGammaData(WB_GAMMA_TABLE_DATA *pData, int level, int mode); bool CriDataSetWhitebalanceGammaData(WB_GAMMA_TABLE_DATA *pData, int level, int mode); bool SetGammaDataTable(tcon_gamma_table_t *pData, int level, int channel); bool GetGammaDataTable(tcon_gamma_table_t *pData, int level, int channel); bool ClearGammaDataTable(int level, int channel); bool CheckTable(void); bool GetSsmDataParam(void *pData, int id, int iSize, int offset, bool FlagCheck = true); bool GetCriDataParam(void *pData, int iSize, int offset, bool FlagCheck = false, int Flagoffset = 0, int FlagSize = 0); int m_dev_fd; static SSMAction *mInstance; static SSMHandler *mSSMHandler; class ISSMActionObserver { public: ISSMActionObserver() {}; virtual ~ISSMActionObserver() {}; virtual void resetAllUserSettingParam() {}; }; void setObserver (ISSMActionObserver *pOb) { mpObserver = pOb; }; private: ISSMActionObserver *mpObserver; std::string mSSMDataFilePath; std::string mSSMHandlerFilePath; std::string mWhiteBalanceFilePath; }; #endif