author | Kieth Liu <kieth.liu@amlogic.com> | 2016-02-15 04:41:35 (GMT) |
---|---|---|
committer | Kieth Liu <kieth.liu@amlogic.com> | 2016-02-15 04:58:00 (GMT) |
commit | eda9ad6a6abbf7918e65e47837c46999e5f27b61 (patch) | |
tree | f995a39368d2007efa7dd2c54232d8b25afd4fbb | |
parent | c426dcc2d139e8e8cd7f4000c0625ae3e24e2558 (diff) | |
download | tv_input-eda9ad6a6abbf7918e65e47837c46999e5f27b61.zip tv_input-eda9ad6a6abbf7918e65e47837c46999e5f27b61.tar.gz tv_input-eda9ad6a6abbf7918e65e47837c46999e5f27b61.tar.bz2 |
format code style
Change-Id: I771b292f3a33fb29d9e1ed289233c1cabe0a632b
134 files changed, 31073 insertions, 30287 deletions
diff --git a/tv_callback.h b/tv_callback.h index f753c6f..50e7ab8 100644 --- a/tv_callback.h +++ b/tv_callback.h @@ -3,12 +3,15 @@ #include "tvapi/android/tv/TvPlay.h" class TvCallback : public TvPlayObserver { public: - TvCallback(void* data){ mPri = data; } + TvCallback(void *data) + { + mPri = data; + } ~TvCallback() {} void onTvEvent (int32_t msgType, const Parcel &p); private: - void* mPri; + void *mPri; }; #endif diff --git a/tv_input.cpp b/tv_input.cpp index 277349b..0fa778c 100644 --- a/tv_input.cpp +++ b/tv_input.cpp @@ -170,44 +170,42 @@ void TvCallback::onTvEvent (int32_t msgType, const Parcel &p) { tv_input_private_t *priv = (tv_input_private_t *)(mPri); switch (msgType) { - case SOURCE_CONNECT_CALLBACK: { - int source = p.readInt32(); - int connectState = p.readInt32(); - LOGD("TvCallback::onTvEvent source = %d, status = %d", source, connectState) - - switch (source) { - case SOURCE_HDMI1: - case SOURCE_HDMI2: - case SOURCE_HDMI3: { - if (connectState == 1) { - notify_HDMI_device_available(priv, (tv_source_input_t)source, 1, TV_INPUT_EVENT_DEVICE_AVAILABLE); - notify_HDMI_stream_configurations_change(priv, (tv_source_input_t)source, 1); - } - else { - notify_HDMI_device_available(priv, (tv_source_input_t)source, 1, TV_INPUT_EVENT_DEVICE_UNAVAILABLE); - } - } - break; - - case SOURCE_AV1: - case SOURCE_AV2: { - if (connectState == 1) { - notify_AV_device_available(priv, (tv_source_input_t)source, TV_INPUT_EVENT_DEVICE_AVAILABLE); - notify_AV_stream_configurations_change(priv, (tv_source_input_t)source); - } - else { - notify_AV_device_available(priv, (tv_source_input_t)source, TV_INPUT_EVENT_DEVICE_UNAVAILABLE); - } - } - break; - - default: - break; + case SOURCE_CONNECT_CALLBACK: { + int source = p.readInt32(); + int connectState = p.readInt32(); + LOGD("TvCallback::onTvEvent source = %d, status = %d", source, connectState) + + switch (source) { + case SOURCE_HDMI1: + case SOURCE_HDMI2: + case SOURCE_HDMI3: { + if (connectState == 1) { + notify_HDMI_device_available(priv, (tv_source_input_t)source, 1, TV_INPUT_EVENT_DEVICE_AVAILABLE); + notify_HDMI_stream_configurations_change(priv, (tv_source_input_t)source, 1); + } else { + notify_HDMI_device_available(priv, (tv_source_input_t)source, 1, TV_INPUT_EVENT_DEVICE_UNAVAILABLE); + } + } + break; + + case SOURCE_AV1: + case SOURCE_AV2: { + if (connectState == 1) { + notify_AV_device_available(priv, (tv_source_input_t)source, TV_INPUT_EVENT_DEVICE_AVAILABLE); + notify_AV_stream_configurations_change(priv, (tv_source_input_t)source); + } else { + notify_AV_device_available(priv, (tv_source_input_t)source, TV_INPUT_EVENT_DEVICE_UNAVAILABLE); } } break; default: + break; + } + } + break; + + default: break; } } @@ -291,7 +289,7 @@ static int get_stream_configs(int dev_id, int *num_configurations, const tv_stre *num_configurations = 2; *configs = mconfig; break; - default: + default: break; } return 0; @@ -318,7 +316,7 @@ static int get_tv_stream(tv_stream_t *stream) } static int tv_input_device_open(const struct hw_module_t *module, - const char *name, struct hw_device_t **device); + const char *name, struct hw_device_t **device); static struct hw_module_methods_t tv_input_module_methods = { open: @@ -326,20 +324,26 @@ open: }; tv_input_module_t HAL_MODULE_INFO_SYM = { - common: { - tag: HARDWARE_MODULE_TAG, +common: + { +tag: + HARDWARE_MODULE_TAG, version_major: 0, version_minor: 1, - id: TV_INPUT_HARDWARE_MODULE_ID, - name: "TVInput module", - author: "Amlogic", - methods: &tv_input_module_methods, +id: + TV_INPUT_HARDWARE_MODULE_ID, +name: "TVInput module" + , +author: "Amlogic" + , +methods: + &tv_input_module_methods, } }; /*****************************************************************************/ static int tv_input_initialize(struct tv_input_device *dev, - const tv_input_callback_ops_t *callback, void *data) + const tv_input_callback_ops_t *callback, void *data) { if (dev == NULL || callback == NULL) { return -EINVAL; @@ -425,7 +429,7 @@ static int tv_input_get_stream_configurations(const struct tv_input_device *dev, } static int tv_input_open_stream(struct tv_input_device *dev, int device_id, - tv_stream_t *stream) + tv_stream_t *stream) { tv_input_private_t *priv = (tv_input_private_t *)dev; if (priv) { @@ -443,7 +447,7 @@ static int tv_input_open_stream(struct tv_input_device *dev, int device_id, } static int tv_input_close_stream(struct tv_input_device *dev, int device_id, - int stream_id) + int stream_id) { tv_input_private_t *priv = (tv_input_private_t *)dev; if (stream_id == NORMAL_STREAM_ID) { @@ -483,7 +487,7 @@ static int tv_input_device_close(struct hw_device_t *dev) /*****************************************************************************/ static int tv_input_device_open(const struct hw_module_t *module, - const char *name, struct hw_device_t **device) + const char *name, struct hw_device_t **device) { int status = -EINVAL; if (!strcmp(name, TV_INPUT_DEFAULT_DEVICE)) { @@ -501,7 +505,7 @@ static int tv_input_device_open(const struct hw_module_t *module, dev->device.initialize = tv_input_initialize; dev->device.get_stream_configurations = - tv_input_get_stream_configurations; + tv_input_get_stream_configurations; dev->device.open_stream = tv_input_open_stream; dev->device.close_stream = tv_input_close_stream; dev->device.request_capture = tv_input_request_capture; diff --git a/tvapi/android/include/ITv.h b/tvapi/android/include/ITv.h index 1130511..064e4e9 100644 --- a/tvapi/android/include/ITv.h +++ b/tvapi/android/include/ITv.h @@ -14,25 +14,25 @@ class ITvClient; class ITv: public IInterface { public: - DECLARE_META_INTERFACE(Tv); + DECLARE_META_INTERFACE(Tv); - virtual void disconnect() = 0; + virtual void disconnect() = 0; - // connect new client with existing tv remote - virtual status_t connect(const sp<ITvClient> &client) = 0; + // connect new client with existing tv remote + virtual status_t connect(const sp<ITvClient> &client) = 0; - // prevent other processes from using this ITv interface - virtual status_t lock() = 0; + // prevent other processes from using this ITv interface + virtual status_t lock() = 0; - // allow other processes to use this ITv interface - virtual status_t unlock() = 0; + // allow other processes to use this ITv interface + virtual status_t unlock() = 0; - virtual status_t processCmd(const Parcel &p, Parcel *r) = 0; + virtual status_t processCmd(const Parcel &p, Parcel *r) = 0; - //share mem for subtitle bmp - virtual status_t createSubtitle(const sp<IMemory> &share_mem) = 0; - //share mem for video/hdmi bmp - virtual status_t createVideoFrame(const sp<IMemory> &share_mem, int iSourceMode, int iCapVideoLayerOnly) = 0; + //share mem for subtitle bmp + virtual status_t createSubtitle(const sp<IMemory> &share_mem) = 0; + //share mem for video/hdmi bmp + virtual status_t createVideoFrame(const sp<IMemory> &share_mem, int iSourceMode, int iCapVideoLayerOnly) = 0; }; @@ -40,10 +40,10 @@ public: class BnTv: public BnInterface<ITv> { public: - virtual status_t onTransact( uint32_t code, - const Parcel &data, - Parcel *reply, - uint32_t flags = 0); + virtual status_t onTransact( uint32_t code, + const Parcel &data, + Parcel *reply, + uint32_t flags = 0); }; #endif diff --git a/tvapi/android/include/ITvClient.h b/tvapi/android/include/ITvClient.h index 26794be..05c498d 100644 --- a/tvapi/android/include/ITvClient.h +++ b/tvapi/android/include/ITvClient.h @@ -11,18 +11,18 @@ using namespace android; class ITvClient: public IInterface { public: - DECLARE_META_INTERFACE(TvClient); + DECLARE_META_INTERFACE(TvClient); - virtual void notifyCallback(int32_t msgType, const Parcel &p) = 0; + virtual void notifyCallback(int32_t msgType, const Parcel &p) = 0; }; class BnTvClient: public BnInterface<ITvClient> { public: - virtual status_t onTransact(uint32_t code, - const Parcel &data, - Parcel *reply, - uint32_t flags = 0); + virtual status_t onTransact(uint32_t code, + const Parcel &data, + Parcel *reply, + uint32_t flags = 0); }; #endif diff --git a/tvapi/android/include/ITvService.h b/tvapi/android/include/ITvService.h index 8803809..60983d3 100644 --- a/tvapi/android/include/ITvService.h +++ b/tvapi/android/include/ITvService.h @@ -12,22 +12,22 @@ using namespace android; class ITvService : public IInterface { public: - enum { - CONNECT = IBinder::FIRST_CALL_TRANSACTION, - }; + enum { + CONNECT = IBinder::FIRST_CALL_TRANSACTION, + }; public: - DECLARE_META_INTERFACE(TvService); + DECLARE_META_INTERFACE(TvService); - virtual sp<ITv> connect(const sp<ITvClient> &tvClient) = 0; + virtual sp<ITv> connect(const sp<ITvClient> &tvClient) = 0; }; class BnTvService: public BnInterface<ITvService> { public: - virtual status_t onTransact(uint32_t code, - const Parcel &data, - Parcel *reply, - uint32_t flags = 0); + virtual status_t onTransact(uint32_t code, + const Parcel &data, + Parcel *reply, + uint32_t flags = 0); }; #endif diff --git a/tvapi/android/include/TvClient.h b/tvapi/android/include/TvClient.h index a3f2a3f..505f2bb 100644 --- a/tvapi/android/include/TvClient.h +++ b/tvapi/android/include/TvClient.h @@ -30,7 +30,10 @@ public: status_t lock(); status_t unlock(); - status_t getStatus() { return mStatus; } + status_t getStatus() + { + return mStatus; + } status_t processCmd(const Parcel &p, Parcel *r); status_t createSubtitle(const sp<IMemory> &share_mem); status_t createVideoFrame(const sp<IMemory> &share_mem, int iSourceMode, int iCapVideoLayerOnly); diff --git a/tvapi/android/include/tvcmd.h b/tvapi/android/include/tvcmd.h index 8415171..ac8fa57 100644 --- a/tvapi/android/include/tvcmd.h +++ b/tvapi/android/include/tvcmd.h @@ -2,616 +2,616 @@ #define ANDROID_AMLOGIC_TVCMD_H enum tvcmd_e { - // Tv function - OPEN_TV = 1, - CLOSE_TV = 2, - START_TV = 3, - STOP_TV = 4, - GET_TV_STATUS = 5, - GET_LAST_SOURCE_INPUT = 6, - GET_CURRENT_SOURCE_INPUT = 7, - GET_CURRENT_SOURCE_INPUT_TYPE = 8, - GET_CURRENT_SIGNAL_INFO = 9, - IS_SOURCE_SWTICH_DONE = 10, - SET_SOURCE_INPUT = 11, - RUN_ADC_AUTO_CALIBRATION = 12, - IS_DVI_SIGNAL = 13, - IS_VGA_TIMEING_IN_HDMI = 14, - GET_VIDEO_PATH_STATUS = 15, - GET_VIDEO_STREAM_STATUS = 16, - GET_FIRST_START_SWITCH_TYPE = 17, - SET_PREVIEW_WINDOW = 18, - GET_SOURCE_CONNECT_STATUS = 19, - //Tv function END + // Tv function + OPEN_TV = 1, + CLOSE_TV = 2, + START_TV = 3, + STOP_TV = 4, + GET_TV_STATUS = 5, + GET_LAST_SOURCE_INPUT = 6, + GET_CURRENT_SOURCE_INPUT = 7, + GET_CURRENT_SOURCE_INPUT_TYPE = 8, + GET_CURRENT_SIGNAL_INFO = 9, + IS_SOURCE_SWTICH_DONE = 10, + SET_SOURCE_INPUT = 11, + RUN_ADC_AUTO_CALIBRATION = 12, + IS_DVI_SIGNAL = 13, + IS_VGA_TIMEING_IN_HDMI = 14, + GET_VIDEO_PATH_STATUS = 15, + GET_VIDEO_STREAM_STATUS = 16, + GET_FIRST_START_SWITCH_TYPE = 17, + SET_PREVIEW_WINDOW = 18, + GET_SOURCE_CONNECT_STATUS = 19, + //Tv function END - // VGA - RUN_VGA_AUTO_ADJUST = 20, - GET_VGA_AUTO_ADJUST_STATUS = 21, - IS_VGA_AUTO_ADJUST_DONE = 22, - SET_VGA_HPOS = 23, - GET_VGA_HPOS = 24, - SET_VGA_VPOS = 25, - GET_VGA_VPOS = 26, - SET_VGA_CLOCK = 27, - GET_VGA_CLOCK = 28, - SET_VGA_PHASE = 29, - GET_VGA_PHASE = 30, - SET_VGA_AJUST_PARA = 31, - GET_VGA_AJUST_PARA = 32, - SET_VGAPARAM_DEFAULT = 33, + // VGA + RUN_VGA_AUTO_ADJUST = 20, + GET_VGA_AUTO_ADJUST_STATUS = 21, + IS_VGA_AUTO_ADJUST_DONE = 22, + SET_VGA_HPOS = 23, + GET_VGA_HPOS = 24, + SET_VGA_VPOS = 25, + GET_VGA_VPOS = 26, + SET_VGA_CLOCK = 27, + GET_VGA_CLOCK = 28, + SET_VGA_PHASE = 29, + GET_VGA_PHASE = 30, + SET_VGA_AJUST_PARA = 31, + GET_VGA_AJUST_PARA = 32, + SET_VGAPARAM_DEFAULT = 33, - // 3D - SET_3D_MODE = 61, - GET_3D_MODE = 62, - SET_3D_LR_SWITH = 63, - GET_3D_LR_SWITH = 64, - SET_3D_TO_2D_MODE = 65, - GET_3D_TO_2D_MODE = 66, - SET_3D_DEPTH = 67, - GET_3D_DEPTH = 68, - GET_3D_AUTO_DETECT = 69, - SET_3D_AUTO_DETECT = 70, - // 3D END + // 3D + SET_3D_MODE = 61, + GET_3D_MODE = 62, + SET_3D_LR_SWITH = 63, + GET_3D_LR_SWITH = 64, + SET_3D_TO_2D_MODE = 65, + GET_3D_TO_2D_MODE = 66, + SET_3D_DEPTH = 67, + GET_3D_DEPTH = 68, + GET_3D_AUTO_DETECT = 69, + SET_3D_AUTO_DETECT = 70, + // 3D END - //Screen related - SET_VIDEO_DISABLE = 80, + //Screen related + SET_VIDEO_DISABLE = 80, - // PQ - SET_SCENEMODE = 192, - GET_SCENEMODE = 193, - SET_BRIGHTNESS = 194, - GET_BRIGHTNESS = 195, - SAVE_BRIGHTNESS = 196, - SET_CONTRAST = 197, - GET_CONTRAST = 198, - SAVE_CONTRAST = 199, - SET_SATUATION = 200, - GET_SATUATION = 201, - SAVE_SATUATION = 202, - SET_HUE = 203, - GET_HUE = 204, - SAVE_HUE = 205, - SET_PQMODE = 206, - GET_PQMODE = 207, - SAVE_PQMODE = 208, - SET_SHARPNESS = 209, - GET_SHARPNESS = 210, - SAVE_SHARPNESS = 211, - SET_BACKLIGHT = 212, - GET_BACKLIGHT = 213, - SAVE_BACKLIGHT = 214, - SET_COLOR_MODE = 215, - GET_COLOR_MODE = 216, - SAVE_COLOR_MODE = 217, - SET_COLOR_TEMPERATURE = 218, - GET_COLOR_TEMPERATURE = 219, - SAVE_COLOR_TEMPERATURE = 220, - SET_DISPLAY_MODE = 221, - GET_DISPLAY_MODE = 222, - SAVE_DISPLAY_MODE = 223, - SET_NOISE_REDUCTION_MODE = 224, - GET_NOISE_REDUCTION_MODE = 225, - VPP_SPLIT_SCREEN_EFFECT = 226, - SET_BACKLIGHT_SWITCH = 227, - GET_BACKLIGHT_SWITCH = 228, - SAVE_NOISE_REDUCTION_MODE = 229, - //GETRGBOGO_GAIN_G = 237, - //GETRGBOGO_GAIN_B = 238, + // PQ + SET_SCENEMODE = 192, + GET_SCENEMODE = 193, + SET_BRIGHTNESS = 194, + GET_BRIGHTNESS = 195, + SAVE_BRIGHTNESS = 196, + SET_CONTRAST = 197, + GET_CONTRAST = 198, + SAVE_CONTRAST = 199, + SET_SATUATION = 200, + GET_SATUATION = 201, + SAVE_SATUATION = 202, + SET_HUE = 203, + GET_HUE = 204, + SAVE_HUE = 205, + SET_PQMODE = 206, + GET_PQMODE = 207, + SAVE_PQMODE = 208, + SET_SHARPNESS = 209, + GET_SHARPNESS = 210, + SAVE_SHARPNESS = 211, + SET_BACKLIGHT = 212, + GET_BACKLIGHT = 213, + SAVE_BACKLIGHT = 214, + SET_COLOR_MODE = 215, + GET_COLOR_MODE = 216, + SAVE_COLOR_MODE = 217, + SET_COLOR_TEMPERATURE = 218, + GET_COLOR_TEMPERATURE = 219, + SAVE_COLOR_TEMPERATURE = 220, + SET_DISPLAY_MODE = 221, + GET_DISPLAY_MODE = 222, + SAVE_DISPLAY_MODE = 223, + SET_NOISE_REDUCTION_MODE = 224, + GET_NOISE_REDUCTION_MODE = 225, + VPP_SPLIT_SCREEN_EFFECT = 226, + SET_BACKLIGHT_SWITCH = 227, + GET_BACKLIGHT_SWITCH = 228, + SAVE_NOISE_REDUCTION_MODE = 229, + //GETRGBOGO_GAIN_G = 237, + //GETRGBOGO_GAIN_B = 238, - // FACTORY - FACTORY_SETPQMODE_BRIGHTNESS = 240, - FACTORY_GETPQMODE_BRIGHTNESS = 241, - FACTORY_SETPQMODE_CONTRAST = 242, - FACTORY_GETPQMODE_CONTRAST = 243, - FACTORY_SETPQMODE_SATURATION = 244, - FACTORY_GETPQMODE_SATURATION = 245, - FACTORY_SETPQMODE_HUE = 246, - FACTORY_GETPQMODE_HUE = 247, - FACTORY_SETPQMODE_SHARPNESS = 248, - FACTORY_GETPQMODE_SHARPNESS = 249, - FACTORY_SETTESTPATTERN = 268, - FACTORY_GETTESTPATTERN = 269, - FACTORY_RESETPQMODE = 270, - FACTORY_RESETCOLORTEMP = 271, - FACTORY_RESETPAMAMSDEFAULT = 272, - FACTORY_SETDDRSSC = 273, - FACTORY_GETDDRSSC = 274, - FACTORY_SETLVDSSSC = 275, - FACTORY_GETLVDSSSC = 276, - FACTORY_SETNOLINEPARAMS = 277, - FACTORY_GETNOLINEPARAMS = 278, - FACTORY_SETOVERSCAN = 279, - FACTORY_GETOVERSCAN = 280, - FACTORY_SET_OUT_DEFAULT = 281, - FACTORY_GETGLOBALOGO_RGAIN = 282, - FACTORY_GETGLOBALOGO_GGAIN = 283, - FACTORY_GETGLOBALOGO_BGAIN = 284, - FACTORY_GETGLOBALOGO_ROFFSET = 285, - FACTORY_GETGLOBALOGO_GOFFSET = 286, - FACTORY_GETGLOBALOGO_BOFFSET = 287, - FACTORY_SETGLOBALOGO_RGAIN = 288, - FACTORY_SETGLOBALOGO_GGAIN = 289, - FACTORY_SETGLOBALOGO_BGAIN = 290, - FACTORY_SETGLOBALOGO_ROFFSET = 291, - FACTORY_SETGLOBALOGO_GOFFSET = 292, - FACTORY_SETGLOBALOGO_BOFFSET = 293, - FACTORY_CLEAN_ALL_TABLE_FOR_PROGRAM = 294, + // FACTORY + FACTORY_SETPQMODE_BRIGHTNESS = 240, + FACTORY_GETPQMODE_BRIGHTNESS = 241, + FACTORY_SETPQMODE_CONTRAST = 242, + FACTORY_GETPQMODE_CONTRAST = 243, + FACTORY_SETPQMODE_SATURATION = 244, + FACTORY_GETPQMODE_SATURATION = 245, + FACTORY_SETPQMODE_HUE = 246, + FACTORY_GETPQMODE_HUE = 247, + FACTORY_SETPQMODE_SHARPNESS = 248, + FACTORY_GETPQMODE_SHARPNESS = 249, + FACTORY_SETTESTPATTERN = 268, + FACTORY_GETTESTPATTERN = 269, + FACTORY_RESETPQMODE = 270, + FACTORY_RESETCOLORTEMP = 271, + FACTORY_RESETPAMAMSDEFAULT = 272, + FACTORY_SETDDRSSC = 273, + FACTORY_GETDDRSSC = 274, + FACTORY_SETLVDSSSC = 275, + FACTORY_GETLVDSSSC = 276, + FACTORY_SETNOLINEPARAMS = 277, + FACTORY_GETNOLINEPARAMS = 278, + FACTORY_SETOVERSCAN = 279, + FACTORY_GETOVERSCAN = 280, + FACTORY_SET_OUT_DEFAULT = 281, + FACTORY_GETGLOBALOGO_RGAIN = 282, + FACTORY_GETGLOBALOGO_GGAIN = 283, + FACTORY_GETGLOBALOGO_BGAIN = 284, + FACTORY_GETGLOBALOGO_ROFFSET = 285, + FACTORY_GETGLOBALOGO_GOFFSET = 286, + FACTORY_GETGLOBALOGO_BOFFSET = 287, + FACTORY_SETGLOBALOGO_RGAIN = 288, + FACTORY_SETGLOBALOGO_GGAIN = 289, + FACTORY_SETGLOBALOGO_BGAIN = 290, + FACTORY_SETGLOBALOGO_ROFFSET = 291, + FACTORY_SETGLOBALOGO_GOFFSET = 292, + FACTORY_SETGLOBALOGO_BOFFSET = 293, + FACTORY_CLEAN_ALL_TABLE_FOR_PROGRAM = 294, - DELETE_PARAM_PQ_DB = 295, - REPLACE_PARAM_PQ_DB = 296, - FACTORY_SETPATTERN_YUV = 297, + DELETE_PARAM_PQ_DB = 295, + REPLACE_PARAM_PQ_DB = 296, + FACTORY_SETPATTERN_YUV = 297, - // FACTORY END + // FACTORY END - // AUDIO - // AUDIO MUTE - SET_AUDIO_MUTEKEY_STATUS = 301, - GET_AUDIO_MUTEKEY_STATUS = 302, - SET_AUDIO_FORCE_MUTE_STATUS = 303, - GET_AUDIO_FORCE_MUTE_STATUS = 304, - SET_AUDIO_AVOUT_MUTE_STATUS = 305, - GET_AUDIO_AVOUT_MUTE_STATUS = 306, - SET_AUDIO_SPDIF_MUTE_STATUS = 307, - GET_AUDIO_SPDIF_MUTE_STATUS = 308, - // AUDIO MASTER VOLUME - SET_AUDIO_MASTER_VOLUME = 309, - GET_AUDIO_MASTER_VOLUME = 310, - SAVE_CUR_AUDIO_MASTER_VOLUME = 311, - GET_CUR_AUDIO_MASTER_VOLUME = 312, - // AUDIO BALANCE - SET_AUDIO_BALANCE = 313, - GET_AUDIO_BALANCE = 314, - SAVE_CUR_AUDIO_BALANCE = 315, - GET_CUR_AUDIO_BALANCE = 316, - // AUDIO SUPPERBASS VOLUME - SET_AUDIO_SUPPER_BASS_VOLUME = 317, - GET_AUDIO_SUPPER_BASS_VOLUME = 318, - SAVE_CUR_AUDIO_SUPPER_BASS_VOLUME = 319, - GET_CUR_AUDIO_SUPPER_BASS_VOLUME = 320, - // AUDIO SUPPERBASS SWITCH - SET_AUDIO_SUPPER_BASS_SWITCH = 321, - GET_AUDIO_SUPPER_BASS_SWITCH = 322, - SAVE_CUR_AUDIO_SUPPER_BASS_SWITCH = 323, - GET_CUR_AUDIO_SUPPER_BASS_SWITCH = 324, - // AUDIO SRS SURROUND SWITCH - SET_AUDIO_SRS_SURROUND = 325, - GET_AUDIO_SRS_SURROUND = 326, - SAVE_CUR_AUDIO_SRS_SURROUND = 327, - GET_CUR_AUDIO_SRS_SURROUND = 328, - // AUDIO SRS DIALOG CLARITY - SET_AUDIO_SRS_DIALOG_CLARITY = 329, - GET_AUDIO_SRS_DIALOG_CLARITY = 330, - SAVE_CUR_AUDIO_SRS_DIALOG_CLARITY = 331, - GET_CUR_AUDIO_SRS_DIALOG_CLARITY = 332, - // AUDIO SRS TRUBASS - SET_AUDIO_SRS_TRU_BASS = 333, - GET_AUDIO_SRS_TRU_BASS = 334, - SAVE_CUR_AUDIO_SRS_TRU_BASS = 335, - GET_CUR_AUDIO_SRS_TRU_BASS = 336, - // AUDIO BASS - SET_AUDIO_BASS_VOLUME = 337, - GET_AUDIO_BASS_VOLUME = 338, - SAVE_CUR_AUDIO_BASS_VOLUME = 339, - GET_CUR_AUDIO_BASS_VOLUME = 340, - // AUDIO TREBLE - SET_AUDIO_TREBLE_VOLUME = 341, - GET_AUDIO_TREBLE_VOLUME = 342, - SAVE_CUR_AUDIO_TREBLE_VOLUME = 343, - GET_CUR_AUDIO_TREBLE_VOLUME = 344, - // AUDIO SOUND MODE - SET_AUDIO_SOUND_MODE = 345, - GET_AUDIO_SOUND_MODE = 346, - SAVE_CUR_AUDIO_SOUND_MODE = 347, - GET_CUR_AUDIO_SOUND_MODE = 348, - // AUDIO WALL EFFECT - SET_AUDIO_WALL_EFFECT = 349, - GET_AUDIO_WALL_EFFECT = 350, - SAVE_CUR_AUDIO_WALL_EFFECT = 351, - GET_CUR_AUDIO_WALL_EFFECT = 352, - // AUDIO EQ MODE - SET_AUDIO_EQ_MODE = 353, - GET_AUDIO_EQ_MODE = 354, - SAVE_CUR_AUDIO_EQ_MODE = 355, - GET_CUR_AUDIO_EQ_MODE = 356, - // AUDIO EQ GAIN - GET_AUDIO_EQ_RANGE = 357, - GET_AUDIO_EQ_BAND_COUNT = 358, - SET_AUDIO_EQ_GAIN = 359, - GET_AUDIO_EQ_GAIN = 360, - GET_CUR_EQ_GAIN = 361, - SAVE_CUR_AUDIO_EQ_GAIN = 362, - SET_AUDIO_EQ_SWITCH = 363, - // AUDIO SPDIF SWITCH - SET_AUDIO_SPDIF_SWITCH = 364, - GET_AUDIO_SPDIF_SWITCH = 365, - SAVE_CUR_AUDIO_SPDIF_SWITCH = 366, - GET_CUR_AUDIO_SPDIF_SWITCH = 367, - // AUDIO SPDIF MODE - SET_AUDIO_SPDIF_MODE = 368, - GET_AUDIO_SPDIF_MODE = 369, - SAVE_CUR_AUDIO_SPDIF_MODE = 370, - GET_CUR_AUDIO_SPDIF_MODE = 371, - // amAudio - OPEN_AMAUDIO = 372, - CLOSE_AMAUDIO = 373, - SET_AMAUDIO_INPUT_SR = 374, - SET_AMAUDIO_OUTPUT_MODE = 375, - SET_AMAUDIO_MUSIC_GAIN = 376, - SET_AMAUDIO_LEFT_GAIN = 377, - SET_AMAUDIO_RIGHT_GAIN = 378, - SET_AMAUDIO_REV1 = 379, - SET_AMAUDIO_REV2 = 380, - SET_AMAUDIO_REV3 = 381, - SET_AMAUDIO_REV4 = 382, - SET_AMAUDIO_REV5 = 383, - //AUDIO INPUT LEVEL SWITCH - SELECT_LINE_IN_CHANNEL = 384, - SET_LINE_IN_CAPTURE_VOL = 385, - HANDLE_AUDIO_HEADSET_PLUG_IN = 386, - HANDLE_AUDIO_HEADSET_PULL_OUT = 387, - SET_AUDIO_VOL_COMP = 388, - GET_AUDIO_VOL_COMP = 389, - SET_NOISE_GATE_THRESHOLD = 390, - SAVE_AUDIO_VOL_COMP = 391, - SET_KALAOK_IO_LEVEL = 392, - AUDIO_SET_DOUBLE_OUTPUT_ENABLE = 393, - USB_AUDIO_OUPUT_MODULE_ENABLE = 394, - GET_USB_AUDIO_DOUBLE_OUPUT_MODULE_ENABLE = 395, - GET_USB_AUDIO_OUPUT_MODULE_ENABLE = 396, - SET_AUDIO_SOURCE_FOR_KARAOKE = 397, - SET_DBX_TV_MODE = 398, - SET_DRC_ONOFF = 399, - GET_DRC_ONOFF = 400, - GET_DBX_TV_MODE = 401, - //AUDIO END + // AUDIO + // AUDIO MUTE + SET_AUDIO_MUTEKEY_STATUS = 301, + GET_AUDIO_MUTEKEY_STATUS = 302, + SET_AUDIO_FORCE_MUTE_STATUS = 303, + GET_AUDIO_FORCE_MUTE_STATUS = 304, + SET_AUDIO_AVOUT_MUTE_STATUS = 305, + GET_AUDIO_AVOUT_MUTE_STATUS = 306, + SET_AUDIO_SPDIF_MUTE_STATUS = 307, + GET_AUDIO_SPDIF_MUTE_STATUS = 308, + // AUDIO MASTER VOLUME + SET_AUDIO_MASTER_VOLUME = 309, + GET_AUDIO_MASTER_VOLUME = 310, + SAVE_CUR_AUDIO_MASTER_VOLUME = 311, + GET_CUR_AUDIO_MASTER_VOLUME = 312, + // AUDIO BALANCE + SET_AUDIO_BALANCE = 313, + GET_AUDIO_BALANCE = 314, + SAVE_CUR_AUDIO_BALANCE = 315, + GET_CUR_AUDIO_BALANCE = 316, + // AUDIO SUPPERBASS VOLUME + SET_AUDIO_SUPPER_BASS_VOLUME = 317, + GET_AUDIO_SUPPER_BASS_VOLUME = 318, + SAVE_CUR_AUDIO_SUPPER_BASS_VOLUME = 319, + GET_CUR_AUDIO_SUPPER_BASS_VOLUME = 320, + // AUDIO SUPPERBASS SWITCH + SET_AUDIO_SUPPER_BASS_SWITCH = 321, + GET_AUDIO_SUPPER_BASS_SWITCH = 322, + SAVE_CUR_AUDIO_SUPPER_BASS_SWITCH = 323, + GET_CUR_AUDIO_SUPPER_BASS_SWITCH = 324, + // AUDIO SRS SURROUND SWITCH + SET_AUDIO_SRS_SURROUND = 325, + GET_AUDIO_SRS_SURROUND = 326, + SAVE_CUR_AUDIO_SRS_SURROUND = 327, + GET_CUR_AUDIO_SRS_SURROUND = 328, + // AUDIO SRS DIALOG CLARITY + SET_AUDIO_SRS_DIALOG_CLARITY = 329, + GET_AUDIO_SRS_DIALOG_CLARITY = 330, + SAVE_CUR_AUDIO_SRS_DIALOG_CLARITY = 331, + GET_CUR_AUDIO_SRS_DIALOG_CLARITY = 332, + // AUDIO SRS TRUBASS + SET_AUDIO_SRS_TRU_BASS = 333, + GET_AUDIO_SRS_TRU_BASS = 334, + SAVE_CUR_AUDIO_SRS_TRU_BASS = 335, + GET_CUR_AUDIO_SRS_TRU_BASS = 336, + // AUDIO BASS + SET_AUDIO_BASS_VOLUME = 337, + GET_AUDIO_BASS_VOLUME = 338, + SAVE_CUR_AUDIO_BASS_VOLUME = 339, + GET_CUR_AUDIO_BASS_VOLUME = 340, + // AUDIO TREBLE + SET_AUDIO_TREBLE_VOLUME = 341, + GET_AUDIO_TREBLE_VOLUME = 342, + SAVE_CUR_AUDIO_TREBLE_VOLUME = 343, + GET_CUR_AUDIO_TREBLE_VOLUME = 344, + // AUDIO SOUND MODE + SET_AUDIO_SOUND_MODE = 345, + GET_AUDIO_SOUND_MODE = 346, + SAVE_CUR_AUDIO_SOUND_MODE = 347, + GET_CUR_AUDIO_SOUND_MODE = 348, + // AUDIO WALL EFFECT + SET_AUDIO_WALL_EFFECT = 349, + GET_AUDIO_WALL_EFFECT = 350, + SAVE_CUR_AUDIO_WALL_EFFECT = 351, + GET_CUR_AUDIO_WALL_EFFECT = 352, + // AUDIO EQ MODE + SET_AUDIO_EQ_MODE = 353, + GET_AUDIO_EQ_MODE = 354, + SAVE_CUR_AUDIO_EQ_MODE = 355, + GET_CUR_AUDIO_EQ_MODE = 356, + // AUDIO EQ GAIN + GET_AUDIO_EQ_RANGE = 357, + GET_AUDIO_EQ_BAND_COUNT = 358, + SET_AUDIO_EQ_GAIN = 359, + GET_AUDIO_EQ_GAIN = 360, + GET_CUR_EQ_GAIN = 361, + SAVE_CUR_AUDIO_EQ_GAIN = 362, + SET_AUDIO_EQ_SWITCH = 363, + // AUDIO SPDIF SWITCH + SET_AUDIO_SPDIF_SWITCH = 364, + GET_AUDIO_SPDIF_SWITCH = 365, + SAVE_CUR_AUDIO_SPDIF_SWITCH = 366, + GET_CUR_AUDIO_SPDIF_SWITCH = 367, + // AUDIO SPDIF MODE + SET_AUDIO_SPDIF_MODE = 368, + GET_AUDIO_SPDIF_MODE = 369, + SAVE_CUR_AUDIO_SPDIF_MODE = 370, + GET_CUR_AUDIO_SPDIF_MODE = 371, + // amAudio + OPEN_AMAUDIO = 372, + CLOSE_AMAUDIO = 373, + SET_AMAUDIO_INPUT_SR = 374, + SET_AMAUDIO_OUTPUT_MODE = 375, + SET_AMAUDIO_MUSIC_GAIN = 376, + SET_AMAUDIO_LEFT_GAIN = 377, + SET_AMAUDIO_RIGHT_GAIN = 378, + SET_AMAUDIO_REV1 = 379, + SET_AMAUDIO_REV2 = 380, + SET_AMAUDIO_REV3 = 381, + SET_AMAUDIO_REV4 = 382, + SET_AMAUDIO_REV5 = 383, + //AUDIO INPUT LEVEL SWITCH + SELECT_LINE_IN_CHANNEL = 384, + SET_LINE_IN_CAPTURE_VOL = 385, + HANDLE_AUDIO_HEADSET_PLUG_IN = 386, + HANDLE_AUDIO_HEADSET_PULL_OUT = 387, + SET_AUDIO_VOL_COMP = 388, + GET_AUDIO_VOL_COMP = 389, + SET_NOISE_GATE_THRESHOLD = 390, + SAVE_AUDIO_VOL_COMP = 391, + SET_KALAOK_IO_LEVEL = 392, + AUDIO_SET_DOUBLE_OUTPUT_ENABLE = 393, + USB_AUDIO_OUPUT_MODULE_ENABLE = 394, + GET_USB_AUDIO_DOUBLE_OUPUT_MODULE_ENABLE = 395, + GET_USB_AUDIO_OUPUT_MODULE_ENABLE = 396, + SET_AUDIO_SOURCE_FOR_KARAOKE = 397, + SET_DBX_TV_MODE = 398, + SET_DRC_ONOFF = 399, + GET_DRC_ONOFF = 400, + GET_DBX_TV_MODE = 401, + //AUDIO END - // CALLBACK - SEARCH_CALLBACK = 501, - SIGLE_DETECT_CALLBACK = 502, - VGA_CALLBACK = 503, - DREAM_PANEL_CALLBACK = 504, - ADC_CALIBRATION_CALLBACK = 505, - SOURCE_SWITCH_CALLBACK = 506, - CHANNEL_SELECT_CALLBACK = 507, - STATUS_3D_CALLBACK = 508, - DTV_AV_PLAYBACK_CALLBACK = 509, - SOURCE_CONNECT_CALLBACK = 510, - HDMIRX_CEC_CALLBACK = 511, - SERIAL_COMMUNICATION_CALLBACK = 512, - CLOSE_CAPTION_CALLBACK = 514, - VCHIP_CALLBACK = 515, - UPGRADE_FBC_CALLBACK = 516, - HEADSET_STATUS_CALLBACK = 517, + // CALLBACK + SEARCH_CALLBACK = 501, + SIGLE_DETECT_CALLBACK = 502, + VGA_CALLBACK = 503, + DREAM_PANEL_CALLBACK = 504, + ADC_CALIBRATION_CALLBACK = 505, + SOURCE_SWITCH_CALLBACK = 506, + CHANNEL_SELECT_CALLBACK = 507, + STATUS_3D_CALLBACK = 508, + DTV_AV_PLAYBACK_CALLBACK = 509, + SOURCE_CONNECT_CALLBACK = 510, + HDMIRX_CEC_CALLBACK = 511, + SERIAL_COMMUNICATION_CALLBACK = 512, + CLOSE_CAPTION_CALLBACK = 514, + VCHIP_CALLBACK = 515, + UPGRADE_FBC_CALLBACK = 516, + HEADSET_STATUS_CALLBACK = 517, - RELEASE_RESOURCE_CALLBACK = 530, - RESOURCES_STATE_CHANGED_CALLBACK = 531, - RESOURCE_STATE_CHANGED_LISTEN_NOFIFY_CALLBACK = 532, + RELEASE_RESOURCE_CALLBACK = 530, + RESOURCES_STATE_CHANGED_CALLBACK = 531, + RESOURCE_STATE_CHANGED_LISTEN_NOFIFY_CALLBACK = 532, - SUBTITLE_UPDATE_CALLBACK = 540, - SCAN_EVENT_CALLBACK = 541, - EPG_EVENT_CALLBACK = 542, - VFRAME_BMP_EVENT_CALLBACK = 543, - // CALLBACK END + SUBTITLE_UPDATE_CALLBACK = 540, + SCAN_EVENT_CALLBACK = 541, + EPG_EVENT_CALLBACK = 542, + VFRAME_BMP_EVENT_CALLBACK = 543, + // CALLBACK END - // SSM - SSM_INIT_DEVICE = 600, - SSM_SAVE_ONE_BYTE = 601, - SSM_READ_ONE_BYTE = 602, - SSM_SAVE_N_BYTES = 603, - SSM_READ_N_BYTES = 604, - SSM_SAVE_POWER_ON_OFF_CHANNEL = 605, - SSM_READ_POWER_ON_OFF_CHANNEL = 606, - SSM_SAVE_SOURCE_INPUT = 607, - SSM_READ_SOURCE_INPUT = 608, - SSM_SAVE_LAST_SOURCE_INPUT = 609, - SSM_READ_LAST_SOURCE_INPUT = 610, - SSM_SAVE_SYS_LANGUAGE = 611, - SSM_READ_SYS_LANGUAGE = 612, - SSM_SAVE_AGING_MODE = 613, - SSM_READ_AGING_MODE = 614, - SSM_SAVE_PANEL_TYPE = 615, - SSM_READ_PANEL_TYPE = 616, - SSM_SAVE_MAC_ADDR = 617, - SSM_READ_MAC_ADDR = 618, - SSM_SAVE_BAR_CODE = 619, - SSM_READ_BAR_CODE = 620, - SSM_SAVE_POWER_ON_MUSIC_SWITCH = 623, - SSM_READ_POWER_ON_MUSIC_SWITCH = 624, - SSM_SAVE_POWER_ON_MUSIC_VOL = 625, - SSM_READ_POWER_ON_MUSIC_VOL = 626, - SSM_SAVE_SYS_SLEEP_TIMER = 627, - SSM_READ_SYS_SLEEP_TIMER = 628, - SSM_SET_BUS_STATUS = 629, - SSM_GET_BUS_STATUS = 630, - SSM_SAVE_INPUT_SRC_PARENTAL_CTL = 631, - SSM_READ_INPUT_SRC_PARENTAL_CTL = 632, - SSM_SAVE_PARENTAL_CTL_SWITCH = 633, - SSM_READ_PARENTAL_CTL_SWITCH = 634, - SSM_SAVE_PARENTAL_CTL_PASS_WORD = 635, - SSM_READ_PARENTAL_CTL_PASS_WORD = 636, - SSM_SAVE_USING_DEF_HDCP_KEY_FLAG = 637, - SSM_READ_USING_DEF_HDCP_KEY_FLAG = 638, - SSM_GET_CUSTOMER_DATA_START = 639, - SSM_GET_CUSTOMER_DATA_LEN = 640, - SSM_SAVE_STANDBY_MODE = 641, - SSM_READ_STANDBY_MODE = 642, - SSM_SAVE_LOGO_ON_OFF_FLAG = 643, - SSM_READ_LOGO_ON_OFF_FLAG = 644, - SSM_SAVE_HDMIEQ_MODE = 645, - SSM_READ_HDMIEQ_MODE = 646, - SSM_SAVE_HDMIINTERNAL_MODE = 647, - SSM_READ_HDMIINTERNAL_MODE = 648, - SSM_SAVE_DISABLE_3D = 649, - SSM_READ_DISABLE_3D = 650, - SSM_SAVE_GLOBAL_OGOENABLE = 651, - SSM_READ_GLOBAL_OGOENABLE = 652, - SSM_SAVE_LOCAL_DIMING_STATUS = 653, - SSM_READ_LOCAL_DIMING_STATUS = 654, - SSM_SAVE_NON_STANDARD_STATUS = 655, - SSM_READ_NON_STANDARD_STATUS = 656, - SSM_SAVE_ADB_SWITCH_STATUS = 657, - SSM_READ_ADB_SWITCH_STATUS = 658, - SSM_SAVE_SERIAL_CMD_SWITCH_STATUS = 659, - SSM_READ_SERIAL_CMD_SWITCH_STATUS = 660, - SSM_SET_HDCP_KEY = 661, - SSM_SAVE_CHROMA_STATUS = 662, - SSM_SAVE_CA_BUFFER_SIZE = 663, - SSM_READ_CA_BUFFER_SIZE = 664, - SSM_GET_ATV_DATA_START = 665, - SSM_GET_ATV_DATA_LEN = 666, - SSM_GET_VPP_DATA_START = 667, - SSM_GET_VPP_DATA_LEN = 668, - SSM_SAVE_NOISE_GATE_THRESHOLD_STATUS = 669, - SSM_READ_NOISE_GATE_THRESHOLD_STATUS = 670, - SSM_SAVE_PROJECT_ID = 673, - SSM_READ_PROJECT_ID = 674, - SSM_SAVE_HDCPKEY = 675, - SSM_READ_HDCPKEY = 676, - SSM_READ_BLACKOUT_ENABLE = 677, - SSM_REFRESH_HDCPKEY = 678, + // SSM + SSM_INIT_DEVICE = 600, + SSM_SAVE_ONE_BYTE = 601, + SSM_READ_ONE_BYTE = 602, + SSM_SAVE_N_BYTES = 603, + SSM_READ_N_BYTES = 604, + SSM_SAVE_POWER_ON_OFF_CHANNEL = 605, + SSM_READ_POWER_ON_OFF_CHANNEL = 606, + SSM_SAVE_SOURCE_INPUT = 607, + SSM_READ_SOURCE_INPUT = 608, + SSM_SAVE_LAST_SOURCE_INPUT = 609, + SSM_READ_LAST_SOURCE_INPUT = 610, + SSM_SAVE_SYS_LANGUAGE = 611, + SSM_READ_SYS_LANGUAGE = 612, + SSM_SAVE_AGING_MODE = 613, + SSM_READ_AGING_MODE = 614, + SSM_SAVE_PANEL_TYPE = 615, + SSM_READ_PANEL_TYPE = 616, + SSM_SAVE_MAC_ADDR = 617, + SSM_READ_MAC_ADDR = 618, + SSM_SAVE_BAR_CODE = 619, + SSM_READ_BAR_CODE = 620, + SSM_SAVE_POWER_ON_MUSIC_SWITCH = 623, + SSM_READ_POWER_ON_MUSIC_SWITCH = 624, + SSM_SAVE_POWER_ON_MUSIC_VOL = 625, + SSM_READ_POWER_ON_MUSIC_VOL = 626, + SSM_SAVE_SYS_SLEEP_TIMER = 627, + SSM_READ_SYS_SLEEP_TIMER = 628, + SSM_SET_BUS_STATUS = 629, + SSM_GET_BUS_STATUS = 630, + SSM_SAVE_INPUT_SRC_PARENTAL_CTL = 631, + SSM_READ_INPUT_SRC_PARENTAL_CTL = 632, + SSM_SAVE_PARENTAL_CTL_SWITCH = 633, + SSM_READ_PARENTAL_CTL_SWITCH = 634, + SSM_SAVE_PARENTAL_CTL_PASS_WORD = 635, + SSM_READ_PARENTAL_CTL_PASS_WORD = 636, + SSM_SAVE_USING_DEF_HDCP_KEY_FLAG = 637, + SSM_READ_USING_DEF_HDCP_KEY_FLAG = 638, + SSM_GET_CUSTOMER_DATA_START = 639, + SSM_GET_CUSTOMER_DATA_LEN = 640, + SSM_SAVE_STANDBY_MODE = 641, + SSM_READ_STANDBY_MODE = 642, + SSM_SAVE_LOGO_ON_OFF_FLAG = 643, + SSM_READ_LOGO_ON_OFF_FLAG = 644, + SSM_SAVE_HDMIEQ_MODE = 645, + SSM_READ_HDMIEQ_MODE = 646, + SSM_SAVE_HDMIINTERNAL_MODE = 647, + SSM_READ_HDMIINTERNAL_MODE = 648, + SSM_SAVE_DISABLE_3D = 649, + SSM_READ_DISABLE_3D = 650, + SSM_SAVE_GLOBAL_OGOENABLE = 651, + SSM_READ_GLOBAL_OGOENABLE = 652, + SSM_SAVE_LOCAL_DIMING_STATUS = 653, + SSM_READ_LOCAL_DIMING_STATUS = 654, + SSM_SAVE_NON_STANDARD_STATUS = 655, + SSM_READ_NON_STANDARD_STATUS = 656, + SSM_SAVE_ADB_SWITCH_STATUS = 657, + SSM_READ_ADB_SWITCH_STATUS = 658, + SSM_SAVE_SERIAL_CMD_SWITCH_STATUS = 659, + SSM_READ_SERIAL_CMD_SWITCH_STATUS = 660, + SSM_SET_HDCP_KEY = 661, + SSM_SAVE_CHROMA_STATUS = 662, + SSM_SAVE_CA_BUFFER_SIZE = 663, + SSM_READ_CA_BUFFER_SIZE = 664, + SSM_GET_ATV_DATA_START = 665, + SSM_GET_ATV_DATA_LEN = 666, + SSM_GET_VPP_DATA_START = 667, + SSM_GET_VPP_DATA_LEN = 668, + SSM_SAVE_NOISE_GATE_THRESHOLD_STATUS = 669, + SSM_READ_NOISE_GATE_THRESHOLD_STATUS = 670, + SSM_SAVE_PROJECT_ID = 673, + SSM_READ_PROJECT_ID = 674, + SSM_SAVE_HDCPKEY = 675, + SSM_READ_HDCPKEY = 676, + SSM_READ_BLACKOUT_ENABLE = 677, + SSM_REFRESH_HDCPKEY = 678, - // Misc - MISC_PROP_SET = 701, - MISC_PROP_GET = 702, - MISC_CFG_SET = 703, - MISC_CFG_GET = 704, - MISC_READ_ADC_VAL = 707, - MISC_SET_WDT_USER_PET = 708, - MISC_SET_WDT_USER_COUNTER = 709, - MISC_SET_WDT_USER_PET_RESET_ENABLE = 710, - MISC_GET_TV_API_VERSION = 713, - MISC_GET_DVB_API_VERSION = 714, - MISC_SERIAL_SWITCH = 715, - MISC_SERIAL_SEND_DATA = 716, - MISC_CHANNEL_EXPORT = 721, - MISC_CHANNEL_IMPORT = 722, - MISC_GET_PROJECT_INFO = 723, - MISC_GET_PLATFORM_TYPE = 724, + // Misc + MISC_PROP_SET = 701, + MISC_PROP_GET = 702, + MISC_CFG_SET = 703, + MISC_CFG_GET = 704, + MISC_READ_ADC_VAL = 707, + MISC_SET_WDT_USER_PET = 708, + MISC_SET_WDT_USER_COUNTER = 709, + MISC_SET_WDT_USER_PET_RESET_ENABLE = 710, + MISC_GET_TV_API_VERSION = 713, + MISC_GET_DVB_API_VERSION = 714, + MISC_SERIAL_SWITCH = 715, + MISC_SERIAL_SEND_DATA = 716, + MISC_CHANNEL_EXPORT = 721, + MISC_CHANNEL_IMPORT = 722, + MISC_GET_PROJECT_INFO = 723, + MISC_GET_PLATFORM_TYPE = 724, - //Extra - FORMAT_PARTITION = 801, - DELETE_DIR_FILES = 802, - REQUEST_RESOURCES = 803, - RELEASED_RESOURCES = 804, - SET_LISTEN_TO_RESOURCE = 805, - QUERY_RESOURCE_STATE = 806, - GET_DISPLAY_RESOLUTION_CONFIG = 808, - GET_DISPLAY_RESOLUTION_INFO = 809, - HDMIRX_CEC_SEND_CUSTOM_MESSAGE = 810, - HDMIRX_CEC_SEND_CUSTOM_WAIT_REPLY_MESSAGE = 811, - HDMIRX_CEC_SEND_BROADCAST_STANDBY_MESSAGE = 812, - HDMIRX_CEC_SEND_GIVE_CEC_VERSION_MESSAGE = 813, - HDMIRX_CEC_SEND_GIVE_DEV_VENDOR_ID_MESSAGE = 814, - HDMIRX_CEC_SEND_GIVE_OSD_NAME_MESSAGE = 815, - GET_HDMI_KSV_INFO = 816, - HDMI_OUT_TOWHAT = 817, - SET_DEBUG_SERIAL_PORT_ONOFF = 818, - GET_DEBUG_SERIAL_PORT_ONOFF = 819, - DO_SUSPEND = 820, - DO_RESUME = 821, + //Extra + FORMAT_PARTITION = 801, + DELETE_DIR_FILES = 802, + REQUEST_RESOURCES = 803, + RELEASED_RESOURCES = 804, + SET_LISTEN_TO_RESOURCE = 805, + QUERY_RESOURCE_STATE = 806, + GET_DISPLAY_RESOLUTION_CONFIG = 808, + GET_DISPLAY_RESOLUTION_INFO = 809, + HDMIRX_CEC_SEND_CUSTOM_MESSAGE = 810, + HDMIRX_CEC_SEND_CUSTOM_WAIT_REPLY_MESSAGE = 811, + HDMIRX_CEC_SEND_BROADCAST_STANDBY_MESSAGE = 812, + HDMIRX_CEC_SEND_GIVE_CEC_VERSION_MESSAGE = 813, + HDMIRX_CEC_SEND_GIVE_DEV_VENDOR_ID_MESSAGE = 814, + HDMIRX_CEC_SEND_GIVE_OSD_NAME_MESSAGE = 815, + GET_HDMI_KSV_INFO = 816, + HDMI_OUT_TOWHAT = 817, + SET_DEBUG_SERIAL_PORT_ONOFF = 818, + GET_DEBUG_SERIAL_PORT_ONOFF = 819, + DO_SUSPEND = 820, + DO_RESUME = 821, - //Fac_FBC - FACTORY_FBC_UPGRADE = 900, - FACTORY_FBC_SET_BRIGHTNESS = 901, - FACTORY_FBC_GET_BRIGHTNESS = 902, - FACTORY_FBC_SET_CONTRAST = 903, - FACTORY_FBC_GET_CONTRAST = 904, - FACTORY_FBC_SET_SATURATION = 905, - FACTORY_FBC_GET_SATURATION = 906, - FACTORY_FBC_SET_HUE = 907, - FACTORY_FBC_GET_HUE = 908, - FACTORY_FBC_SET_BACKLIGHT = 909, - FACTORY_FBC_GET_BACKLIGHT = 910, - FACTORY_FBC_SET_PIC_MODE = 911, - FACTORY_FBC_GET_PIC_MODE = 912, - FACTORY_FBC_SET_GAIN_RED = 913, - FACTORY_FBC_GET_GAIN_RED = 914, - FACTORY_FBC_SET_GAIN_GREEN = 915, - FACTORY_FBC_GET_GAIN_GREEN = 916, - FACTORY_FBC_SET_GAIN_BLUE = 917, - FACTORY_FBC_GET_GAIN_BLUE = 918, - FACTORY_FBC_SET_OFFSET_RED = 919, - FACTORY_FBC_GET_OFFSET_RED = 920, - FACTORY_FBC_SET_OFFSET_GREEN = 921, - FACTORY_FBC_GET_OFFSET_GREEN = 922, - FACTORY_FBC_SET_OFFSET_BLUE = 923, - FACTORY_FBC_GET_OFFSET_BLUE = 924, - FACTORY_FBC_SET_COLORTEMP_MODE = 925, - FACTORY_FBC_GET_COLORTEMP_MODE = 926, - FACTORY_FBC_SET_WB_INIT = 927, - FACTORY_FBC_GET_WB_INIT = 928, - FACTORY_FBC_SET_TEST_PATTERN = 929, - FACTORY_FBC_GET_TEST_PATTERN = 930, - FACTORY_FBC_SET_BACKLIGHT_EN = 931, - FACTORY_FBC_GET_BACKLIGHT_EN = 932, - FACTORY_FBC_SET_LVDS_SSG = 933, - FACTORY_FBC_SET_ELEC_MODE = 934, - FACTORY_FBC_GET_MAINCODE_VERSION = 935, - FACTORY_FBC_PANEL_POWER_SWITCH = 936, - FACTORY_FBC_PANEL_GET_INFO = 937, - FACTORY_FBC_PANEL_SUSPEND = 938, - FACTORY_FBC_SEND_KEY_TO_FBC = 939, - FACTORY_FBC_POWER_REBOOT = 940, - FACTORY_FBC_GET_ELEC_MODE = 941, - FACTORY_FBC_PANEL_USER_SETTING_DEFAULT = 942, - FACTORY_FBC_SET_BACKLIGHT_N360 = 943, - FACTORY_FBC_GET_BACKLIGHT_N360 = 944, - FACTORY_FBC_SET_COLORTEMP_MODE_N360 = 945, - FACTORY_FBC_GET_COLORTEMP_MODE_N360 = 946, - FACTORY_FBC_SET_LOCKN_STATE_N360 = 947, - FACTORY_FBC_TEST_PATTERN = 950, - FACTORY_FBC_VIDEO_MUTE = 951, + //Fac_FBC + FACTORY_FBC_UPGRADE = 900, + FACTORY_FBC_SET_BRIGHTNESS = 901, + FACTORY_FBC_GET_BRIGHTNESS = 902, + FACTORY_FBC_SET_CONTRAST = 903, + FACTORY_FBC_GET_CONTRAST = 904, + FACTORY_FBC_SET_SATURATION = 905, + FACTORY_FBC_GET_SATURATION = 906, + FACTORY_FBC_SET_HUE = 907, + FACTORY_FBC_GET_HUE = 908, + FACTORY_FBC_SET_BACKLIGHT = 909, + FACTORY_FBC_GET_BACKLIGHT = 910, + FACTORY_FBC_SET_PIC_MODE = 911, + FACTORY_FBC_GET_PIC_MODE = 912, + FACTORY_FBC_SET_GAIN_RED = 913, + FACTORY_FBC_GET_GAIN_RED = 914, + FACTORY_FBC_SET_GAIN_GREEN = 915, + FACTORY_FBC_GET_GAIN_GREEN = 916, + FACTORY_FBC_SET_GAIN_BLUE = 917, + FACTORY_FBC_GET_GAIN_BLUE = 918, + FACTORY_FBC_SET_OFFSET_RED = 919, + FACTORY_FBC_GET_OFFSET_RED = 920, + FACTORY_FBC_SET_OFFSET_GREEN = 921, + FACTORY_FBC_GET_OFFSET_GREEN = 922, + FACTORY_FBC_SET_OFFSET_BLUE = 923, + FACTORY_FBC_GET_OFFSET_BLUE = 924, + FACTORY_FBC_SET_COLORTEMP_MODE = 925, + FACTORY_FBC_GET_COLORTEMP_MODE = 926, + FACTORY_FBC_SET_WB_INIT = 927, + FACTORY_FBC_GET_WB_INIT = 928, + FACTORY_FBC_SET_TEST_PATTERN = 929, + FACTORY_FBC_GET_TEST_PATTERN = 930, + FACTORY_FBC_SET_BACKLIGHT_EN = 931, + FACTORY_FBC_GET_BACKLIGHT_EN = 932, + FACTORY_FBC_SET_LVDS_SSG = 933, + FACTORY_FBC_SET_ELEC_MODE = 934, + FACTORY_FBC_GET_MAINCODE_VERSION = 935, + FACTORY_FBC_PANEL_POWER_SWITCH = 936, + FACTORY_FBC_PANEL_GET_INFO = 937, + FACTORY_FBC_PANEL_SUSPEND = 938, + FACTORY_FBC_SEND_KEY_TO_FBC = 939, + FACTORY_FBC_POWER_REBOOT = 940, + FACTORY_FBC_GET_ELEC_MODE = 941, + FACTORY_FBC_PANEL_USER_SETTING_DEFAULT = 942, + FACTORY_FBC_SET_BACKLIGHT_N360 = 943, + FACTORY_FBC_GET_BACKLIGHT_N360 = 944, + FACTORY_FBC_SET_COLORTEMP_MODE_N360 = 945, + FACTORY_FBC_GET_COLORTEMP_MODE_N360 = 946, + FACTORY_FBC_SET_LOCKN_STATE_N360 = 947, + FACTORY_FBC_TEST_PATTERN = 950, + FACTORY_FBC_VIDEO_MUTE = 951, - //T868 for cvt - FACTORY_SETBACKLIGHT_PWM_FREQUENCY = 1000, - FACTORY_GETBACKLIGHT_PWM_FREQUENCY = 1001, - FACTORY_SETBACKLIGHT_SWITCH_STATUS = 1002, - FACTORY_GETBACKLIGHT_SWITCH_STATUS = 1003, - FACTORY_SETBACKLIGHT_PWM_DUTY = 1004, - FACTORY_GETBACKLIGHT_PWM_DUTY = 1005, - FACTORY_SETLVDS_COLOR_DEPTH = 1006, - FACTORY_GETLVDS_COLOR_DEPTH = 1007, - FACTORY_SETLVDS_DITHER_STATUS = 1008, - FACTORY_GETLVDS_DITHER_STATUS = 1009, - FACTORY_SETLVDS_MAPPING_STATUS = 1010, - FACTORY_GETLVDS_MAPPING_STATUS = 1011, - FACTORY_SETLVDS_PORT_SWAP_STATUS = 1012, - FACTORY_GETLVDS_PORT_SWAP_STATUS = 1013, - FACTORY_SET_SN = 1014, - FACTORY_GET_SN = 1015, + //T868 for cvt + FACTORY_SETBACKLIGHT_PWM_FREQUENCY = 1000, + FACTORY_GETBACKLIGHT_PWM_FREQUENCY = 1001, + FACTORY_SETBACKLIGHT_SWITCH_STATUS = 1002, + FACTORY_GETBACKLIGHT_SWITCH_STATUS = 1003, + FACTORY_SETBACKLIGHT_PWM_DUTY = 1004, + FACTORY_GETBACKLIGHT_PWM_DUTY = 1005, + FACTORY_SETLVDS_COLOR_DEPTH = 1006, + FACTORY_GETLVDS_COLOR_DEPTH = 1007, + FACTORY_SETLVDS_DITHER_STATUS = 1008, + FACTORY_GETLVDS_DITHER_STATUS = 1009, + FACTORY_SETLVDS_MAPPING_STATUS = 1010, + FACTORY_GETLVDS_MAPPING_STATUS = 1011, + FACTORY_SETLVDS_PORT_SWAP_STATUS = 1012, + FACTORY_GETLVDS_PORT_SWAP_STATUS = 1013, + FACTORY_SET_SN = 1014, + FACTORY_GET_SN = 1015, - //Uniform White Balance - FACTORY_WHITE_BALANCE_SET_GAIN_RED = 1100, - FACTORY_WHITE_BALANCE_GET_GAIN_RED = 1101, - FACTORY_WHITE_BALANCE_SET_GAIN_GREEN = 1102, - FACTORY_WHITE_BALANCE_GET_GAIN_GREEN = 1103, - FACTORY_WHITE_BALANCE_SET_GAIN_BLUE = 1104, - FACTORY_WHITE_BALANCE_GET_GAIN_BLUE = 1105, - FACTORY_WHITE_BALANCE_SET_OFFSET_RED = 1106, - FACTORY_WHITE_BALANCE_GET_OFFSET_RED = 1107, - FACTORY_WHITE_BALANCE_SET_OFFSET_GREEN = 1108, - FACTORY_WHITE_BALANCE_GET_OFFSET_GREEN = 1109, - FACTORY_WHITE_BALANCE_SET_OFFSET_BLUE = 1110, - FACTORY_WHITE_BALANCE_GET_OFFSET_BLUE = 1111, - FACTORY_WHITE_BALANCE_GET_COLOR_TMP = 1112, - FACTORY_WHITE_BALANCE_SET_COLOR_TMP = 1113, - FACTORY_WHITE_BALANCE_SAVE_PRAMAS = 1114, - FACTORY_WHITE_BALANCE_SET_WB_INIT = 1115, - FACTORY_WHITE_BALANCE_GET_WB_INIT = 1116, - FACTORY_WHITE_BALANCE_SET_GRAY_PATTERN = 1117, - FACTORY_WHITE_BALANCE_GET_GRAY_PATTERN = 1118, - FACTORY_WHITE_BALANCE_OPEN_GRAY_PATTERN = 1119, - FACTORY_WHITE_BALANCE_CLOSE_GRAY_PATTERN = 1120, - FACTORY_WHITE_BALANCE_GET_ALL_PRAMAS = 1121, + //Uniform White Balance + FACTORY_WHITE_BALANCE_SET_GAIN_RED = 1100, + FACTORY_WHITE_BALANCE_GET_GAIN_RED = 1101, + FACTORY_WHITE_BALANCE_SET_GAIN_GREEN = 1102, + FACTORY_WHITE_BALANCE_GET_GAIN_GREEN = 1103, + FACTORY_WHITE_BALANCE_SET_GAIN_BLUE = 1104, + FACTORY_WHITE_BALANCE_GET_GAIN_BLUE = 1105, + FACTORY_WHITE_BALANCE_SET_OFFSET_RED = 1106, + FACTORY_WHITE_BALANCE_GET_OFFSET_RED = 1107, + FACTORY_WHITE_BALANCE_SET_OFFSET_GREEN = 1108, + FACTORY_WHITE_BALANCE_GET_OFFSET_GREEN = 1109, + FACTORY_WHITE_BALANCE_SET_OFFSET_BLUE = 1110, + FACTORY_WHITE_BALANCE_GET_OFFSET_BLUE = 1111, + FACTORY_WHITE_BALANCE_GET_COLOR_TMP = 1112, + FACTORY_WHITE_BALANCE_SET_COLOR_TMP = 1113, + FACTORY_WHITE_BALANCE_SAVE_PRAMAS = 1114, + FACTORY_WHITE_BALANCE_SET_WB_INIT = 1115, + FACTORY_WHITE_BALANCE_GET_WB_INIT = 1116, + FACTORY_WHITE_BALANCE_SET_GRAY_PATTERN = 1117, + FACTORY_WHITE_BALANCE_GET_GRAY_PATTERN = 1118, + FACTORY_WHITE_BALANCE_OPEN_GRAY_PATTERN = 1119, + FACTORY_WHITE_BALANCE_CLOSE_GRAY_PATTERN = 1120, + FACTORY_WHITE_BALANCE_GET_ALL_PRAMAS = 1121, - //dtv - DTV_GET_SUBTITLE_SWITCH = 1380, - DTV_SUBTITLE_INIT = 1381, - DTV_SUBTITLE_LOCK = 1382, - DTV_SUBTITLE_UNLOCK = 1383, - DTV_START_SUBTITLE = 1384, - DTV_STOP_SUBTITLE = 1385, - DTV_GET_SUBTITLE_INDEX = 1386, - DTV_SET_SUBTITLE_INDEX = 1387, - ATV_GET_CURRENT_PROGRAM_ID = 1389, - DTV_GET_CURRENT_PROGRAM_ID = 1390, - ATV_SAVE_PROGRAM_ID = 1391, - DTV_SCAN_MANUAL_BETWEEN_FREQ = 1392, - ATV_GET_MIN_MAX_FREQ = 1393, - DTV_GET_SCAN_FREQUENCY_LIST = 1394, - DTV_GET_CHANNEL_INFO = 1395, - ATV_GET_CHANNEL_INFO = 1396, - ATV_SCAN_MANUAL = 1397, - ATV_SCAN_AUTO = 1398, - DTV_SCAN_MANUAL = 1399, - DTV_SCAN_AUTO = 1400, - TV_SUBTITLE_DRAW_END = 1401, - PLAY_PROGRAM = 1402, - STOP_PROGRAM_PLAY = 1403, - GET_PROGRAM_LIST = 1404, - STOP_SCAN = 1405, - DTV_GET_SNR = 1406, - DTV_GET_BER = 1407, - DTV_GET_STRENGTH = 1408, - DTV_GET_AUDIO_TRACK_NUM = 1409, - DTV_GET_AUDIO_TRACK_INFO = 1410, - DTV_SWITCH_AUDIO_TRACK = 1411, - DTV_GET_EPG_UTC_TIME = 1412, - DTV_GET_CUR_FREQ = 1413, - DTV_GET_EPG_INFO_POINT_IN_TIME = 1414, - DTV_GET_EPG_INFO_DURATION = 1415, - SET_FRONTEND_PARA = 1416, - DTV_SET_PROGRAM_NAME = 1417, - DTV_SET_PROGRAM_SKIPPED = 1418, - DTV_SET_PROGRAM_FAVORITE = 1419, - DTV_DETELE_PROGRAM = 1420, - DTV_SWAP_PROGRAM = 1421, - DTV_SET_PROGRAM_LOCKED = 1422, - DTV_SET_BOOKING_FLAG = 1423, - DTV_GET_BOOKED_EVENT = 1424, - DTV_GET_CURR_AUDIO_TRACK_INDEX = 1425, - DTV_SET_AUDIO_CHANNEL_MOD = 1426, - DTV_GET_AUDIO_CHANNEL_MOD = 1427, - DTV_GET_FREQ_BY_PROG_ID = 1428, - DTV_GET_VIDEO_FMT_INFO = 1429, - DTV_START_RECORD = 1430, - DTV_STOP_RECORD = 1431, - DTV_SET_RECORD_ALL_TS = 1432, - DTV_SCAN_AUTO_ATSC = 1433, - DTV_TEST_1 = 1451, - DTV_TEST_2 = 1452, - DTV_TEST_3 = 1453, - TV_CLEAR_ALL_PROGRAM = 1454, - SET_BLACKOUT_ENABLE = 1455, - START_AUTO_BACKLIGHT = 1456, - STOP_AUTO_BACKLIGHT = 1457, - IS_AUTO_BACKLIGHTING = 1458, - HDMIAV_HOTPLUGDETECT_ONOFF = 1459, - GET_AVERAGE_LUMA = 1480, - GET_AUTO_BACKLIGHT_DATA = 1481, - SET_AUTO_BACKLIGHT_DATA = 1482, - TV_PRINT_DEBUG_INFO = 2000, + //dtv + DTV_GET_SUBTITLE_SWITCH = 1380, + DTV_SUBTITLE_INIT = 1381, + DTV_SUBTITLE_LOCK = 1382, + DTV_SUBTITLE_UNLOCK = 1383, + DTV_START_SUBTITLE = 1384, + DTV_STOP_SUBTITLE = 1385, + DTV_GET_SUBTITLE_INDEX = 1386, + DTV_SET_SUBTITLE_INDEX = 1387, + ATV_GET_CURRENT_PROGRAM_ID = 1389, + DTV_GET_CURRENT_PROGRAM_ID = 1390, + ATV_SAVE_PROGRAM_ID = 1391, + DTV_SCAN_MANUAL_BETWEEN_FREQ = 1392, + ATV_GET_MIN_MAX_FREQ = 1393, + DTV_GET_SCAN_FREQUENCY_LIST = 1394, + DTV_GET_CHANNEL_INFO = 1395, + ATV_GET_CHANNEL_INFO = 1396, + ATV_SCAN_MANUAL = 1397, + ATV_SCAN_AUTO = 1398, + DTV_SCAN_MANUAL = 1399, + DTV_SCAN_AUTO = 1400, + TV_SUBTITLE_DRAW_END = 1401, + PLAY_PROGRAM = 1402, + STOP_PROGRAM_PLAY = 1403, + GET_PROGRAM_LIST = 1404, + STOP_SCAN = 1405, + DTV_GET_SNR = 1406, + DTV_GET_BER = 1407, + DTV_GET_STRENGTH = 1408, + DTV_GET_AUDIO_TRACK_NUM = 1409, + DTV_GET_AUDIO_TRACK_INFO = 1410, + DTV_SWITCH_AUDIO_TRACK = 1411, + DTV_GET_EPG_UTC_TIME = 1412, + DTV_GET_CUR_FREQ = 1413, + DTV_GET_EPG_INFO_POINT_IN_TIME = 1414, + DTV_GET_EPG_INFO_DURATION = 1415, + SET_FRONTEND_PARA = 1416, + DTV_SET_PROGRAM_NAME = 1417, + DTV_SET_PROGRAM_SKIPPED = 1418, + DTV_SET_PROGRAM_FAVORITE = 1419, + DTV_DETELE_PROGRAM = 1420, + DTV_SWAP_PROGRAM = 1421, + DTV_SET_PROGRAM_LOCKED = 1422, + DTV_SET_BOOKING_FLAG = 1423, + DTV_GET_BOOKED_EVENT = 1424, + DTV_GET_CURR_AUDIO_TRACK_INDEX = 1425, + DTV_SET_AUDIO_CHANNEL_MOD = 1426, + DTV_GET_AUDIO_CHANNEL_MOD = 1427, + DTV_GET_FREQ_BY_PROG_ID = 1428, + DTV_GET_VIDEO_FMT_INFO = 1429, + DTV_START_RECORD = 1430, + DTV_STOP_RECORD = 1431, + DTV_SET_RECORD_ALL_TS = 1432, + DTV_SCAN_AUTO_ATSC = 1433, + DTV_TEST_1 = 1451, + DTV_TEST_2 = 1452, + DTV_TEST_3 = 1453, + TV_CLEAR_ALL_PROGRAM = 1454, + SET_BLACKOUT_ENABLE = 1455, + START_AUTO_BACKLIGHT = 1456, + STOP_AUTO_BACKLIGHT = 1457, + IS_AUTO_BACKLIGHTING = 1458, + HDMIAV_HOTPLUGDETECT_ONOFF = 1459, + GET_AVERAGE_LUMA = 1480, + GET_AUTO_BACKLIGHT_DATA = 1481, + SET_AUTO_BACKLIGHT_DATA = 1482, + TV_PRINT_DEBUG_INFO = 2000, - //customer interface - FACTROY_FBC_SET_LIGHT_SENSOR_STATUS_N310 = 3000, - FACTROY_FBC_GET_LIGHT_SENSOR_STATUS_N310 = 3001, - FACTROY_FBC_SET_DREAM_PANEL_STATUS_N310 = 3002, - FACTROY_FBC_GET_DREAM_PANEL_STATUS_N310 = 3003, - SSM_EEPROM_SAVE_ONE_BYTE_N310_N311 = 3004, - SSM_EEPROM_READ_ONE_BYTE_N310_N311 = 3005, - SSM_EEPROM_SAVE_N_BYTES_N310_N311 = 3006, - SSM_EEPROM_READ_N_BYTES_N310_N311 = 3007, - SSM_FLASH_SAVE_ONE_BYTE_N310_N311 = 3008, - SSM_FLASH_READ_ONE_BYTE_N310_N311 = 3009, - SSM_FLASH_SAVE_N_BYTES_N310_N311 = 3010, - SSM_FLASH_READ_N_BYTES_N310_N311 = 3011, - FACTROY_FBC_SET_MULT_PQ_STATUS_N310 = 3012, - FACTROY_FBC_GET_MULT_PQ_STATUS_N310 = 3013, - FACTROY_FBC_SET_MEMC_STATUS_N310 = 3014, - FACTROY_FBC_GET_MEMC_STATUS_N310 = 3015, - FACTROY_FBC_SET_BACKLIGNT_N310 = 3016, - FACTROY_FBC_GET_BACKLIGNT_N310 = 3017, - FACTROY_FBC_SET_COLORTEMP_MODE_N310 = 3018, - FACTROY_FBC_GET_COLORTEMP_MODE_N310 = 3019, - FACTROY_SET_VBYONE_SPREAD_SPECTRUM_N311 = 3020, - FACTROY_GET_VBYONE_SPREAD_SPECTRUM_N311 = 3021, - GET_HISTGRAM_N311 = 3022, - FACTROY_SET_IIC_BUS_ONOFF_N311 = 3023, - FACTROY_GET_IIC_BUS_ONOFF_N311 = 3024, - SET_SPLIT_SCREEN_DEMO_ONOFF_N390 = 3025, - GET_SPLIT_SCREEN_DEMO_ONOFF_N390 = 3026, - FACTROY_FBC_SET_BLUETOOTH_IIS_N310 = 3027, - FACTROY_FBC_GET_BLUETOOTH_IIS_N310 = 3028, - FACTROY_FBC_SET_LED_N310 = 3029, - MISC_SET_2K_TO_4K_SCALE_UP_MODE = 3030, - MISC_GET_2K_TO_4K_SCALE_UP_MODE = 3031, - MISC_SET_FBC_AP_STANDBY_N310 = 3032, - MISC_GET_FBC_AP_STANDBY_N310 = 3033, - MISC_SET_BLUETOOTH_VOL_N311_N310 = 3034, - MISC_GET_BLUETOOTH_VOL_N311_N310 = 3035, + //customer interface + FACTROY_FBC_SET_LIGHT_SENSOR_STATUS_N310 = 3000, + FACTROY_FBC_GET_LIGHT_SENSOR_STATUS_N310 = 3001, + FACTROY_FBC_SET_DREAM_PANEL_STATUS_N310 = 3002, + FACTROY_FBC_GET_DREAM_PANEL_STATUS_N310 = 3003, + SSM_EEPROM_SAVE_ONE_BYTE_N310_N311 = 3004, + SSM_EEPROM_READ_ONE_BYTE_N310_N311 = 3005, + SSM_EEPROM_SAVE_N_BYTES_N310_N311 = 3006, + SSM_EEPROM_READ_N_BYTES_N310_N311 = 3007, + SSM_FLASH_SAVE_ONE_BYTE_N310_N311 = 3008, + SSM_FLASH_READ_ONE_BYTE_N310_N311 = 3009, + SSM_FLASH_SAVE_N_BYTES_N310_N311 = 3010, + SSM_FLASH_READ_N_BYTES_N310_N311 = 3011, + FACTROY_FBC_SET_MULT_PQ_STATUS_N310 = 3012, + FACTROY_FBC_GET_MULT_PQ_STATUS_N310 = 3013, + FACTROY_FBC_SET_MEMC_STATUS_N310 = 3014, + FACTROY_FBC_GET_MEMC_STATUS_N310 = 3015, + FACTROY_FBC_SET_BACKLIGNT_N310 = 3016, + FACTROY_FBC_GET_BACKLIGNT_N310 = 3017, + FACTROY_FBC_SET_COLORTEMP_MODE_N310 = 3018, + FACTROY_FBC_GET_COLORTEMP_MODE_N310 = 3019, + FACTROY_SET_VBYONE_SPREAD_SPECTRUM_N311 = 3020, + FACTROY_GET_VBYONE_SPREAD_SPECTRUM_N311 = 3021, + GET_HISTGRAM_N311 = 3022, + FACTROY_SET_IIC_BUS_ONOFF_N311 = 3023, + FACTROY_GET_IIC_BUS_ONOFF_N311 = 3024, + SET_SPLIT_SCREEN_DEMO_ONOFF_N390 = 3025, + GET_SPLIT_SCREEN_DEMO_ONOFF_N390 = 3026, + FACTROY_FBC_SET_BLUETOOTH_IIS_N310 = 3027, + FACTROY_FBC_GET_BLUETOOTH_IIS_N310 = 3028, + FACTROY_FBC_SET_LED_N310 = 3029, + MISC_SET_2K_TO_4K_SCALE_UP_MODE = 3030, + MISC_GET_2K_TO_4K_SCALE_UP_MODE = 3031, + MISC_SET_FBC_AP_STANDBY_N310 = 3032, + MISC_GET_FBC_AP_STANDBY_N310 = 3033, + MISC_SET_BLUETOOTH_VOL_N311_N310 = 3034, + MISC_GET_BLUETOOTH_VOL_N311_N310 = 3035, - // 2.4G headset - START_OPEN_HEADSET_DETECT = 4000, + // 2.4G headset + START_OPEN_HEADSET_DETECT = 4000, }; diff --git a/tvapi/android/jni/cfbc_jni.cpp b/tvapi/android/jni/cfbc_jni.cpp index e531de7..7ec7d86 100644 --- a/tvapi/android/jni/cfbc_jni.cpp +++ b/tvapi/android/jni/cfbc_jni.cpp @@ -23,145 +23,145 @@ static CFbcCommunication *g_cfbc_handle = NULL; JNIEnv *getJNIEnv(bool *needsDetach) { - JNIEnv *env = NULL; - jint result = -1; - if (m_vm->GetEnv((void **) &env, JNI_VERSION_1_4) != JNI_OK) { - __android_log_print(ANDROID_LOG_INFO, TAG, "ERROR: GetEnv failed\n"); - - int status = m_vm->AttachCurrentThread(&env, NULL); - if (status < 0) { - __android_log_print(ANDROID_LOG_INFO, TAG, "callback_handler: failed to attach current thread"); - return NULL; - } - - *needsDetach = true; - } - - __android_log_print(ANDROID_LOG_INFO, TAG, "GetEnv Success"); - return env; + JNIEnv *env = NULL; + jint result = -1; + if (m_vm->GetEnv((void **) &env, JNI_VERSION_1_4) != JNI_OK) { + __android_log_print(ANDROID_LOG_INFO, TAG, "ERROR: GetEnv failed\n"); + + int status = m_vm->AttachCurrentThread(&env, NULL); + if (status < 0) { + __android_log_print(ANDROID_LOG_INFO, TAG, "callback_handler: failed to attach current thread"); + return NULL; + } + + *needsDetach = true; + } + + __android_log_print(ANDROID_LOG_INFO, TAG, "GetEnv Success"); + return env; } void detachJNI() { - int result = m_vm->DetachCurrentThread(); - if (result != JNI_OK) { - __android_log_print(ANDROID_LOG_INFO, TAG, "thread detach failed: %#x", result); - } + int result = m_vm->DetachCurrentThread(); + if (result != JNI_OK) { + __android_log_print(ANDROID_LOG_INFO, TAG, "thread detach failed: %#x", result); + } } //this data buf is same as cmd buf void java_jni_callback(char *str, int cnt, int data_buf[]) { - char temp_str[MAX_CNT]; - int idx = 0; - if (str != NULL && cnt > 0) { - memset(temp_str, 0, sizeof(temp_str)); - JNI_DBG("java jni string is:\n%s, cnt:%d.", str, cnt); - //strcpy(temp_str, "Call From C/C++!"); - memcpy(temp_str, str, strlen(str) % MAX_CNT); - - if (NULL != jni_local_obj) { - bool needsDetach = false; - jint j_cnt = data_buf[1]; - jint j_data_buf[MAX_CNT]; - for (idx = 0; idx < j_cnt; idx++) { - idx %= MAX_CNT; - j_data_buf[idx] = data_buf[idx]; - JNI_DBG("java_jni_callback the %d data is:0x%x, %d.", idx, j_data_buf[idx], data_buf[idx]); - } - - //jobject obj; - jni_local_env = getJNIEnv(&needsDetach); - //obj = (*jni_local_env)->NewGlobalRef(jni_local_env,jni_local_obj); - jni_local_clz = jni_local_env->GetObjectClass(jni_local_obj); - //this func name and parameters should be same as the callback defined in java code - jni_local_mid = jni_local_env->GetMethodID(jni_local_clz, "android_java_callback", "(Ljava/lang/String;[I)I"); - - jstring str1 = jni_local_env->NewStringUTF(temp_str); - - jintArray cc_data_arr = jni_local_env->NewIntArray(j_cnt); - jni_local_env->SetIntArrayRegion(cc_data_arr, 0, cnt, j_data_buf); - //jint *temp_data = jni_local_env->GetIntArrayElements(cc_data_arr, NULL); - - jint cnt = jni_local_env->CallIntMethod(jni_local_obj, jni_local_mid, str1, cc_data_arr); - - //jni_local_env->ReleaseIntArrayElements(cc_data_arr, temp_data, 0); - //jni_local_env->ReleaseIntArrayElements(cc_cmd_arr, temp_cmd, 0); - JNI_DBG("%s %d be called.", __FUNCTION__, __LINE__); - - if (needsDetach) { - detachJNI(); - } - } - } + char temp_str[MAX_CNT]; + int idx = 0; + if (str != NULL && cnt > 0) { + memset(temp_str, 0, sizeof(temp_str)); + JNI_DBG("java jni string is:\n%s, cnt:%d.", str, cnt); + //strcpy(temp_str, "Call From C/C++!"); + memcpy(temp_str, str, strlen(str) % MAX_CNT); + + if (NULL != jni_local_obj) { + bool needsDetach = false; + jint j_cnt = data_buf[1]; + jint j_data_buf[MAX_CNT]; + for (idx = 0; idx < j_cnt; idx++) { + idx %= MAX_CNT; + j_data_buf[idx] = data_buf[idx]; + JNI_DBG("java_jni_callback the %d data is:0x%x, %d.", idx, j_data_buf[idx], data_buf[idx]); + } + + //jobject obj; + jni_local_env = getJNIEnv(&needsDetach); + //obj = (*jni_local_env)->NewGlobalRef(jni_local_env,jni_local_obj); + jni_local_clz = jni_local_env->GetObjectClass(jni_local_obj); + //this func name and parameters should be same as the callback defined in java code + jni_local_mid = jni_local_env->GetMethodID(jni_local_clz, "android_java_callback", "(Ljava/lang/String;[I)I"); + + jstring str1 = jni_local_env->NewStringUTF(temp_str); + + jintArray cc_data_arr = jni_local_env->NewIntArray(j_cnt); + jni_local_env->SetIntArrayRegion(cc_data_arr, 0, cnt, j_data_buf); + //jint *temp_data = jni_local_env->GetIntArrayElements(cc_data_arr, NULL); + + jint cnt = jni_local_env->CallIntMethod(jni_local_obj, jni_local_mid, str1, cc_data_arr); + + //jni_local_env->ReleaseIntArrayElements(cc_data_arr, temp_data, 0); + //jni_local_env->ReleaseIntArrayElements(cc_cmd_arr, temp_cmd, 0); + JNI_DBG("%s %d be called.", __FUNCTION__, __LINE__); + + if (needsDetach) { + detachJNI(); + } + } + } } //here we needn't to match the java package name static jint jni_java_exec_cmd(JNIEnv *env, jobject obj, jintArray cmdArray) { - jint *arry = env->GetIntArrayElements(cmdArray, NULL); - jint length = env->GetArrayLength(cmdArray); + jint *arry = env->GetIntArrayElements(cmdArray, NULL); + jint length = env->GetArrayLength(cmdArray); - int cmd_cnt = arry[1], idx = 0; - int cmd_array[MAX_CNT]; - memset(cmd_array, 0, sizeof(cmd_array)); - for (idx = 0; idx < cmd_cnt; idx++) - cmd_array[idx] = arry[idx]; + int cmd_cnt = arry[1], idx = 0; + int cmd_array[MAX_CNT]; + memset(cmd_array, 0, sizeof(cmd_array)); + for (idx = 0; idx < cmd_cnt; idx++) + cmd_array[idx] = arry[idx]; - JNI_DBG("%s %s %d be called.", __FILE__, __FUNCTION__, __LINE__); + JNI_DBG("%s %s %d be called.", __FILE__, __FUNCTION__, __LINE__); - if (g_cfbc_handle == NULL) { - g_cfbc_handle = new CFbcCommunication(); - g_cfbc_handle->run("cfbc_thread", 0, 0); - } + if (g_cfbc_handle == NULL) { + g_cfbc_handle = new CFbcCommunication(); + g_cfbc_handle->run("cfbc_thread", 0, 0); + } - //g_cfbc_handle->handleCmd(COMM_DEV_CEC, cmd_array); - //c_exec_cmd(cmd_array); + //g_cfbc_handle->handleCmd(COMM_DEV_CEC, cmd_array); + //c_exec_cmd(cmd_array); - if (NULL == jni_local_obj) { - jni_local_obj = env->NewGlobalRef(obj); - } + if (NULL == jni_local_obj) { + jni_local_obj = env->NewGlobalRef(obj); + } #if 0 - /* this is used to terminate the jni call if needed - ** and we should handle the pthread we create in c layer - */ - if (cmd_array[0] == 0x1002) { - if (NULL != jni_local_obj) - env->DeleteGlobalRef(jni_local_obj); - } + /* this is used to terminate the jni call if needed + ** and we should handle the pthread we create in c layer + */ + if (cmd_array[0] == 0x1002) { + if (NULL != jni_local_obj) + env->DeleteGlobalRef(jni_local_obj); + } #endif - return 0; + return 0; } //the name of 'exec_cmd' should be same as the native func in java code static JNINativeMethod gMethods[] = { - {"exec_cmd", "([I)I", (void *)jni_java_exec_cmd}, + {"exec_cmd", "([I)I", (void *)jni_java_exec_cmd}, }; static int register_android_MyFunc(JNIEnv *env) { - JNI_DBG("%s %s %d be called.", __FILE__, __FUNCTION__, __LINE__); - //the name below should be same as the class name in which native method declared in Java layer - return android::AndroidRuntime::registerNativeMethods(env, "com/fbc/MyFunc", gMethods, NELEM(gMethods)); + JNI_DBG("%s %s %d be called.", __FILE__, __FUNCTION__, __LINE__); + //the name below should be same as the class name in which native method declared in Java layer + return android::AndroidRuntime::registerNativeMethods(env, "com/fbc/MyFunc", gMethods, NELEM(gMethods)); } jint JNI_OnLoad(JavaVM *vm, void *reserved) { - JNIEnv *env = NULL; - JNI_DBG("%s %s %d be called.", __FILE__, __FUNCTION__, __LINE__); - //c_set_callback(&java_jni_callback); - if (vm->GetEnv((void **)&env, JNI_VERSION_1_4) != JNI_OK) { - JNI_DBG("Error GetEnv\n"); - return -1; - } - - assert(env != NULL); - if (register_android_MyFunc(env) < 0) { - JNI_DBG("register_android_test_hdi error.\n"); - return -1; - } - - m_vm = vm; - return JNI_VERSION_1_4; + JNIEnv *env = NULL; + JNI_DBG("%s %s %d be called.", __FILE__, __FUNCTION__, __LINE__); + //c_set_callback(&java_jni_callback); + if (vm->GetEnv((void **)&env, JNI_VERSION_1_4) != JNI_OK) { + JNI_DBG("Error GetEnv\n"); + return -1; + } + + assert(env != NULL); + if (register_android_MyFunc(env) < 0) { + JNI_DBG("register_android_test_hdi error.\n"); + return -1; + } + + m_vm = vm; + return JNI_VERSION_1_4; } diff --git a/tvapi/android/jni/cfbc_test.cpp b/tvapi/android/jni/cfbc_test.cpp index 00efa84..ecba2e6 100644 --- a/tvapi/android/jni/cfbc_test.cpp +++ b/tvapi/android/jni/cfbc_test.cpp @@ -4,40 +4,40 @@ int main(int argc, char **argv) { - int idx = 0, send_buf[128], recv_buf[128], cmd_value = 1, run_flag = 0, run_cnt = 0, cmd_type = 0, read_flag = 0; - printf("run begin.......\n"); - if (argc < 4) { - printf("usage:./libcfbc_jni cmd_type cmd_value run_cnt(all hex mode)\n"); - return 0; - } + int idx = 0, send_buf[128], recv_buf[128], cmd_value = 1, run_flag = 0, run_cnt = 0, cmd_type = 0, read_flag = 0; + printf("run begin.......\n"); + if (argc < 4) { + printf("usage:./libcfbc_jni cmd_type cmd_value run_cnt(all hex mode)\n"); + return 0; + } - cmd_type = strtol(argv[1], NULL, 16); - cmd_value = strtol(argv[2], NULL, 16); - run_cnt = strtol(argv[3], NULL, 16); + cmd_type = strtol(argv[1], NULL, 16); + cmd_value = strtol(argv[2], NULL, 16); + run_cnt = strtol(argv[3], NULL, 16); - CFbcCommunication *cfbcHandle = new CFbcCommunication(); - printf("to test.......\n"); - cfbcHandle->run(); - sleep(0.2); + CFbcCommunication *cfbcHandle = new CFbcCommunication(); + printf("to test.......\n"); + cfbcHandle->run(); + sleep(0.2); - switch (cmd_type) { - default: - for (idx = 0; idx < run_cnt; idx++) { - memset(send_buf, 0, sizeof(send_buf)); - memset(recv_buf, 0, sizeof(recv_buf)); - send_buf[0] = cmd_type; - send_buf[1] = 3; - send_buf[2] = cmd_value; - printf("\n\n======%d to set value is:0x%02x\n", idx, cmd_value); - cfbcHandle->handleCmd(COMM_DEV_SERIAL, send_buf, recv_buf); - sleep(1); - } - break; - } + switch (cmd_type) { + default: + for (idx = 0; idx < run_cnt; idx++) { + memset(send_buf, 0, sizeof(send_buf)); + memset(recv_buf, 0, sizeof(recv_buf)); + send_buf[0] = cmd_type; + send_buf[1] = 3; + send_buf[2] = cmd_value; + printf("\n\n======%d to set value is:0x%02x\n", idx, cmd_value); + cfbcHandle->handleCmd(COMM_DEV_SERIAL, send_buf, recv_buf); + sleep(1); + } + break; + } - printf("wait to exit......\n"); - cfbcHandle->requestExitAndWait(); - delete cfbcHandle; - printf("program exited\n"); - return 0; + printf("wait to exit......\n"); + cfbcHandle->requestExitAndWait(); + delete cfbcHandle; + printf("program exited\n"); + return 0; } diff --git a/tvapi/android/jni/com_droidlogic_app_tv_TvControlManager.cpp b/tvapi/android/jni/com_droidlogic_app_tv_TvControlManager.cpp index 0f815f2..f0fb381 100644 --- a/tvapi/android/jni/com_droidlogic_app_tv_TvControlManager.cpp +++ b/tvapi/android/jni/com_droidlogic_app_tv_TvControlManager.cpp @@ -18,8 +18,8 @@ using namespace android; struct fields_t { - jfieldID context; - jmethodID post_event; + jfieldID context; + jmethodID post_event; }; #ifdef LOG_TAG @@ -31,444 +31,444 @@ static fields_t fields; static Mutex sLock; class JNITvContext: public TvListener { public: - JNITvContext(JNIEnv *env, jobject weak_this, jclass clazz, const sp<TvClient> &tv); - ~JNITvContext() - { - release(); - } - virtual void notify(int32_t msgType, const Parcel &p); - void addCallbackBuffer(JNIEnv *env, jbyteArray cbb); - sp<TvClient> getTv() - { - Mutex::Autolock _l(mLock); - return mTv; - } - void release(); - Parcel *mExtParcel; - SkBitmap *pSubBmp;//for UI subtitle Bitmap - sp<MemoryBase> mSubMemBase;//for subtitle shar memory to tvapi + JNITvContext(JNIEnv *env, jobject weak_this, jclass clazz, const sp<TvClient> &tv); + ~JNITvContext() + { + release(); + } + virtual void notify(int32_t msgType, const Parcel &p); + void addCallbackBuffer(JNIEnv *env, jbyteArray cbb); + sp<TvClient> getTv() + { + Mutex::Autolock _l(mLock); + return mTv; + } + void release(); + Parcel *mExtParcel; + SkBitmap *pSubBmp;//for UI subtitle Bitmap + sp<MemoryBase> mSubMemBase;//for subtitle shar memory to tvapi private: - jobject mTvJObjectWeak; // weak reference to java object - jclass mTvJClass; // strong reference to java class - sp<TvClient> mTv; // strong reference to native object - Mutex mLock; - - Vector<jbyteArray> mCallbackBuffers; // Global reference application managed byte[] - bool mManualBufferMode; // Whether to use application managed buffers. - bool mManualTvCallbackSet; // Whether the callback has been set, used to reduce unnecessary calls to set the callback. + jobject mTvJObjectWeak; // weak reference to java object + jclass mTvJClass; // strong reference to java class + sp<TvClient> mTv; // strong reference to native object + Mutex mLock; + + Vector<jbyteArray> mCallbackBuffers; // Global reference application managed byte[] + bool mManualBufferMode; // Whether to use application managed buffers. + bool mManualTvCallbackSet; // Whether the callback has been set, used to reduce unnecessary calls to set the callback. }; sp<TvClient> get_native_tv(JNIEnv *env, jobject thiz, JNITvContext **pContext) { - sp<TvClient> tv; - Mutex::Autolock _l(sLock); - JNITvContext *context = reinterpret_cast<JNITvContext *>(env->GetIntField(thiz, fields.context)); - if (context != NULL) { - tv = context->getTv(); - } - if (tv == 0) { - jniThrowException(env, "java/lang/RuntimeException", "Method called after release()"); - } - - if (pContext != NULL) *pContext = context; - return tv; + sp<TvClient> tv; + Mutex::Autolock _l(sLock); + JNITvContext *context = reinterpret_cast<JNITvContext *>(env->GetIntField(thiz, fields.context)); + if (context != NULL) { + tv = context->getTv(); + } + if (tv == 0) { + jniThrowException(env, "java/lang/RuntimeException", "Method called after release()"); + } + + if (pContext != NULL) *pContext = context; + return tv; } JNITvContext::JNITvContext(JNIEnv *env, jobject weak_this, jclass clazz, const sp<TvClient> &tv) { - mTvJObjectWeak = env->NewGlobalRef(weak_this); - mTvJClass = (jclass)env->NewGlobalRef(clazz); - mTv = tv; - ALOGD("tvjni----------------------JNITvContext::JNITvContext("); - mManualBufferMode = false; - mManualTvCallbackSet = false; - pSubBmp = NULL; - mSubMemBase = NULL; - //mExtParcel = parcelForJavaObject(env, ext_parcel); + mTvJObjectWeak = env->NewGlobalRef(weak_this); + mTvJClass = (jclass)env->NewGlobalRef(clazz); + mTv = tv; + ALOGD("tvjni----------------------JNITvContext::JNITvContext("); + mManualBufferMode = false; + mManualTvCallbackSet = false; + pSubBmp = NULL; + mSubMemBase = NULL; + //mExtParcel = parcelForJavaObject(env, ext_parcel); } void JNITvContext::release() { - ALOGD("release"); - Mutex::Autolock _l(mLock); - JNIEnv *env = AndroidRuntime::getJNIEnv(); - - if (mTvJObjectWeak != NULL) { - env->DeleteGlobalRef(mTvJObjectWeak); - mTvJObjectWeak = NULL; - } - if (mTvJClass != NULL) { - env->DeleteGlobalRef(mTvJClass); - mTvJClass = NULL; - } - if (pSubBmp != NULL) { - pSubBmp = NULL; - } - mTv.clear(); + ALOGD("release"); + Mutex::Autolock _l(mLock); + JNIEnv *env = AndroidRuntime::getJNIEnv(); + + if (mTvJObjectWeak != NULL) { + env->DeleteGlobalRef(mTvJObjectWeak); + mTvJObjectWeak = NULL; + } + if (mTvJClass != NULL) { + env->DeleteGlobalRef(mTvJClass); + mTvJClass = NULL; + } + if (pSubBmp != NULL) { + pSubBmp = NULL; + } + mTv.clear(); } // connect to tv service static void com_droidlogic_app_tv_TvControlManager_native_setup(JNIEnv *env, jobject thiz, jobject weak_this) { - sp<TvClient> tv = TvClient::connect(); + sp<TvClient> tv = TvClient::connect(); - ALOGD("com_droidlogic_app_tv_TvControlManager_native_setup."); + ALOGD("com_droidlogic_app_tv_TvControlManager_native_setup."); - if (tv == NULL) { - jniThrowException(env, "java/lang/RuntimeException", "Fail to connect to tv service"); - return; - } + if (tv == NULL) { + jniThrowException(env, "java/lang/RuntimeException", "Fail to connect to tv service"); + return; + } - // make sure tv amlogic is alive - if (tv->getStatus() != NO_ERROR) { - jniThrowException(env, "java/lang/RuntimeException", "Tv initialization failed!"); - return; - } + // make sure tv amlogic is alive + if (tv->getStatus() != NO_ERROR) { + jniThrowException(env, "java/lang/RuntimeException", "Tv initialization failed!"); + return; + } - jclass clazz = env->GetObjectClass(thiz); - if (clazz == NULL) { - jniThrowException(env, "java/lang/RuntimeException", "Can't find com/droidlogic/app/tv/TvControlManager!"); - return; - } + jclass clazz = env->GetObjectClass(thiz); + if (clazz == NULL) { + jniThrowException(env, "java/lang/RuntimeException", "Can't find com/droidlogic/app/tv/TvControlManager!"); + return; + } - sp<JNITvContext> context = new JNITvContext(env, weak_this, clazz, tv); - context->incStrong(thiz); - tv->setListener(context); + sp<JNITvContext> context = new JNITvContext(env, weak_this, clazz, tv); + context->incStrong(thiz); + tv->setListener(context); - env->SetIntField(thiz, fields.context, (int)context.get()); + env->SetIntField(thiz, fields.context, (int)context.get()); } static void com_droidlogic_app_tv_TvControlManager_release(JNIEnv *env, jobject thiz) { - // TODO: Change to LOGE - JNITvContext *context = NULL; - sp<TvClient> tv; - { - Mutex::Autolock _l(sLock); - context = reinterpret_cast<JNITvContext *>(env->GetIntField(thiz, fields.context)); - - // Make sure we do not attempt to callback on a deleted Java object. - env->SetIntField(thiz, fields.context, 0); - } - - ALOGD("release tv"); - - // clean up if release has not been called before - if (context != NULL) { - tv = context->getTv(); - context->release(); - ALOGD("native_release: context=%p tv=%p", context, tv.get()); - - // clear callbacks - if (tv != NULL) { - //tv->setPreviewCallbackFlags(FRAME_CALLBACK_FLAG_NOOP); - tv->disconnect(); - } - - // remove context to prevent further Java access - context->decStrong(thiz); - } + // TODO: Change to LOGE + JNITvContext *context = NULL; + sp<TvClient> tv; + { + Mutex::Autolock _l(sLock); + context = reinterpret_cast<JNITvContext *>(env->GetIntField(thiz, fields.context)); + + // Make sure we do not attempt to callback on a deleted Java object. + env->SetIntField(thiz, fields.context, 0); + } + + ALOGD("release tv"); + + // clean up if release has not been called before + if (context != NULL) { + tv = context->getTv(); + context->release(); + ALOGD("native_release: context=%p tv=%p", context, tv.get()); + + // clear callbacks + if (tv != NULL) { + //tv->setPreviewCallbackFlags(FRAME_CALLBACK_FLAG_NOOP); + tv->disconnect(); + } + + // remove context to prevent further Java access + context->decStrong(thiz); + } } void JNITvContext::notify(int32_t msgType, const Parcel &p) { - // VM pointer will be NULL if object is released - Mutex::Autolock _l(mLock); - if (mTvJObjectWeak == NULL) { - ALOGW("callback on dead tv object"); - return; - } - if (msgType == SUBTITLE_UPDATE_CALLBACK) { - if (pSubBmp) { - SkAutoLockPixels alp(*pSubBmp); - char *pDst = (char *) pSubBmp->getPixels(); - char *pBuf = (char *) mSubMemBase->pointer(); - for (int i = 0; i < pSubBmp->width() * pSubBmp->height() * 4; i++) { - pDst[i] = pBuf[i]; - } - pSubBmp->notifyPixelsChanged(); - } - } - - JNIEnv *env = AndroidRuntime::getJNIEnv(); - - jobject jParcel = createJavaParcelObject(env); - if (jParcel != NULL) { - Parcel *nativeParcel = parcelForJavaObject(env, jParcel); - nativeParcel->write(p.data(), p.dataSize()); - env->CallStaticVoidMethod(mTvJClass, fields.post_event, mTvJObjectWeak, msgType, jParcel); - env->DeleteLocalRef(jParcel); - } + // VM pointer will be NULL if object is released + Mutex::Autolock _l(mLock); + if (mTvJObjectWeak == NULL) { + ALOGW("callback on dead tv object"); + return; + } + if (msgType == SUBTITLE_UPDATE_CALLBACK) { + if (pSubBmp) { + SkAutoLockPixels alp(*pSubBmp); + char *pDst = (char *) pSubBmp->getPixels(); + char *pBuf = (char *) mSubMemBase->pointer(); + for (int i = 0; i < pSubBmp->width() * pSubBmp->height() * 4; i++) { + pDst[i] = pBuf[i]; + } + pSubBmp->notifyPixelsChanged(); + } + } + + JNIEnv *env = AndroidRuntime::getJNIEnv(); + + jobject jParcel = createJavaParcelObject(env); + if (jParcel != NULL) { + Parcel *nativeParcel = parcelForJavaObject(env, jParcel); + nativeParcel->write(p.data(), p.dataSize()); + env->CallStaticVoidMethod(mTvJClass, fields.post_event, mTvJObjectWeak, msgType, jParcel); + env->DeleteLocalRef(jParcel); + } } void JNITvContext::addCallbackBuffer(JNIEnv *env, jbyteArray cbb) { - if (cbb != NULL) { - Mutex::Autolock _l(mLock); - jbyteArray callbackBuffer = (jbyteArray)env->NewGlobalRef(cbb); - mCallbackBuffers.push(cbb); - ALOGD("Adding callback buffer to queue, %d total", mCallbackBuffers.size()); - } else { - ALOGE("Null byte array!"); - } + if (cbb != NULL) { + Mutex::Autolock _l(mLock); + jbyteArray callbackBuffer = (jbyteArray)env->NewGlobalRef(cbb); + mCallbackBuffers.push(cbb); + ALOGD("Adding callback buffer to queue, %d total", mCallbackBuffers.size()); + } else { + ALOGE("Null byte array!"); + } } static jint com_droidlogic_app_tv_TvControlManager_processCmd(JNIEnv *env, jobject thiz, jobject pObj, jobject rObj) { - sp<TvClient> tv = get_native_tv(env, thiz, NULL); - if (tv == 0) return -1; + sp<TvClient> tv = get_native_tv(env, thiz, NULL); + if (tv == 0) return -1; - Parcel *p = parcelForJavaObject(env, pObj); - //jclass clazz; - //clazz = env->FindClass("android/os/Parcel"); - //LOG_FATAL_IF(clazz == NULL, "Unable to find class android.os.Parcel"); + Parcel *p = parcelForJavaObject(env, pObj); + //jclass clazz; + //clazz = env->FindClass("android/os/Parcel"); + //LOG_FATAL_IF(clazz == NULL, "Unable to find class android.os.Parcel"); - //jmethodID mConstructor = env->GetMethodID(clazz, "<init>", "(I)V"); - //jobject replayobj = env->NewObject(clazz, mConstructor, 0); - Parcel *r = parcelForJavaObject(env, rObj); + //jmethodID mConstructor = env->GetMethodID(clazz, "<init>", "(I)V"); + //jobject replayobj = env->NewObject(clazz, mConstructor, 0); + Parcel *r = parcelForJavaObject(env, rObj); - return tv->processCmd(*p, r); - //if ( != NO_ERROR) { - // jniThrowException(env, "java/lang/RuntimeException", "StartTv failed"); - // return -1; - // } - //return 0; + return tv->processCmd(*p, r); + //if ( != NO_ERROR) { + // jniThrowException(env, "java/lang/RuntimeException", "StartTv failed"); + // return -1; + // } + //return 0; } static void com_droidlogic_app_tv_TvControlManager_addCallbackBuffer(JNIEnv *env, jobject thiz, jbyteArray bytes) { - JNITvContext *context = reinterpret_cast<JNITvContext *>(env->GetIntField(thiz, fields.context)); + JNITvContext *context = reinterpret_cast<JNITvContext *>(env->GetIntField(thiz, fields.context)); - ALOGD("addCallbackBuffer"); - if (context != NULL) { - context->addCallbackBuffer(env, bytes); - } + ALOGD("addCallbackBuffer"); + if (context != NULL) { + context->addCallbackBuffer(env, bytes); + } } static void com_droidlogic_app_tv_TvControlManager_reconnect(JNIEnv *env, jobject thiz) { - sp<TvClient> tv = get_native_tv(env, thiz, NULL); - if (tv == 0) return; + sp<TvClient> tv = get_native_tv(env, thiz, NULL); + if (tv == 0) return; - if (tv->reconnect() != NO_ERROR) { - jniThrowException(env, "java/io/IOException", "reconnect failed"); - return; - } + if (tv->reconnect() != NO_ERROR) { + jniThrowException(env, "java/io/IOException", "reconnect failed"); + return; + } } static void com_droidlogic_app_tv_TvControlManager_lock(JNIEnv *env, jobject thiz) { - sp<TvClient> tv = get_native_tv(env, thiz, NULL); - if (tv == 0) return; + sp<TvClient> tv = get_native_tv(env, thiz, NULL); + if (tv == 0) return; - ALOGD("lock"); + ALOGD("lock"); - if (tv->lock() != NO_ERROR) { - jniThrowException(env, "java/lang/RuntimeException", "lock failed"); - } + if (tv->lock() != NO_ERROR) { + jniThrowException(env, "java/lang/RuntimeException", "lock failed"); + } } static void com_droidlogic_app_tv_TvControlManager_unlock(JNIEnv *env, jobject thiz) { - sp<TvClient> tv = get_native_tv(env, thiz, NULL); - if (tv == 0) return; + sp<TvClient> tv = get_native_tv(env, thiz, NULL); + if (tv == 0) return; - ALOGD("unlock"); + ALOGD("unlock"); - if (tv->unlock() != NO_ERROR) { - jniThrowException(env, "java/lang/RuntimeException", "unlock failed"); - } + if (tv->unlock() != NO_ERROR) { + jniThrowException(env, "java/lang/RuntimeException", "unlock failed"); + } } static void com_droidlogic_app_tv_TvControlManager_create_subtitle_bitmap(JNIEnv *env, jobject thiz, jobject bmpobj) { - ALOGD("create subtitle bmp"); - JNITvContext *context = reinterpret_cast<JNITvContext *>(env->GetIntField(thiz, fields.context)); - sp<TvClient> tv = get_native_tv(env, thiz, NULL); - if (tv == 0) return; - - //get skbitmap - jclass bmp_clazz; - jfieldID skbmp_fid; - jint hbmp; - bmp_clazz = env->FindClass("android/graphics/Bitmap"); - skbmp_fid = env->GetFieldID(bmp_clazz, "mNativeBitmap", "I"); - hbmp = env->GetIntField(bmpobj, skbmp_fid); - context->pSubBmp = reinterpret_cast<SkBitmap *>(hbmp); - env->DeleteLocalRef(bmp_clazz); - - //alloc share mem - sp<MemoryHeapBase> MemHeap = new MemoryHeapBase(context->pSubBmp->width()*context->pSubBmp->height() * 4, 0, "subtitle bmp"); - ALOGD("heap id = %d", MemHeap->getHeapID()); - if (MemHeap->getHeapID() < 0) { - return; - } - context->pSubBmp->lockPixels(); - context->mSubMemBase = new MemoryBase(MemHeap, 0, context->pSubBmp->width()*context->pSubBmp->height() * 4); - - - //send share mem to server - tv->createSubtitle(context->mSubMemBase); - return; + ALOGD("create subtitle bmp"); + JNITvContext *context = reinterpret_cast<JNITvContext *>(env->GetIntField(thiz, fields.context)); + sp<TvClient> tv = get_native_tv(env, thiz, NULL); + if (tv == 0) return; + + //get skbitmap + jclass bmp_clazz; + jfieldID skbmp_fid; + jint hbmp; + bmp_clazz = env->FindClass("android/graphics/Bitmap"); + skbmp_fid = env->GetFieldID(bmp_clazz, "mNativeBitmap", "I"); + hbmp = env->GetIntField(bmpobj, skbmp_fid); + context->pSubBmp = reinterpret_cast<SkBitmap *>(hbmp); + env->DeleteLocalRef(bmp_clazz); + + //alloc share mem + sp<MemoryHeapBase> MemHeap = new MemoryHeapBase(context->pSubBmp->width()*context->pSubBmp->height() * 4, 0, "subtitle bmp"); + ALOGD("heap id = %d", MemHeap->getHeapID()); + if (MemHeap->getHeapID() < 0) { + return; + } + context->pSubBmp->lockPixels(); + context->mSubMemBase = new MemoryBase(MemHeap, 0, context->pSubBmp->width()*context->pSubBmp->height() * 4); + + + //send share mem to server + tv->createSubtitle(context->mSubMemBase); + return; } static void com_droidlogic_app_tv_TvControlManager_create_video_frame_bitmap(JNIEnv *env, jobject thiz, jobject bmpobj, jint inputSourceMode, jint iCapVideoLayer ) { - ALOGD("create video frame bmp"); - sp<TvClient> tv = get_native_tv(env, thiz, NULL); - if (tv == 0) return; - - //get skbitmap - jclass bmp_clazz; - jfieldID skbmp_fid; - jint hbmp; - bmp_clazz = env->FindClass("android/graphics/Bitmap"); - skbmp_fid = env->GetFieldID(bmp_clazz, "mNativeBitmap", "I"); - hbmp = env->GetIntField(bmpobj, skbmp_fid); - SkBitmap *pSkBmp = reinterpret_cast<SkBitmap *>(hbmp); - ALOGD("pSkBmp = %d", hbmp); - ALOGD("bmp width = %d height = %d", pSkBmp->width(), pSkBmp->height()); - env->DeleteLocalRef(bmp_clazz); - - //alloc share mem - sp<MemoryHeapBase> MemHeap = new MemoryHeapBase(1920 * 1080 * 4, 0, "video frame bmp"); - ALOGD("heap id = %d", MemHeap->getHeapID()); - if (MemHeap->getHeapID() < 0) { - return; - } - sp<MemoryBase> MemBase = new MemoryBase(MemHeap, 0, 1920 * 1080 * 4); - pSkBmp->setPixels(MemBase->pointer()); - - - //send share mem to server - tv->createVideoFrame(MemBase, inputSourceMode, iCapVideoLayer); - return; + ALOGD("create video frame bmp"); + sp<TvClient> tv = get_native_tv(env, thiz, NULL); + if (tv == 0) return; + + //get skbitmap + jclass bmp_clazz; + jfieldID skbmp_fid; + jint hbmp; + bmp_clazz = env->FindClass("android/graphics/Bitmap"); + skbmp_fid = env->GetFieldID(bmp_clazz, "mNativeBitmap", "I"); + hbmp = env->GetIntField(bmpobj, skbmp_fid); + SkBitmap *pSkBmp = reinterpret_cast<SkBitmap *>(hbmp); + ALOGD("pSkBmp = %d", hbmp); + ALOGD("bmp width = %d height = %d", pSkBmp->width(), pSkBmp->height()); + env->DeleteLocalRef(bmp_clazz); + + //alloc share mem + sp<MemoryHeapBase> MemHeap = new MemoryHeapBase(1920 * 1080 * 4, 0, "video frame bmp"); + ALOGD("heap id = %d", MemHeap->getHeapID()); + if (MemHeap->getHeapID() < 0) { + return; + } + sp<MemoryBase> MemBase = new MemoryBase(MemHeap, 0, 1920 * 1080 * 4); + pSkBmp->setPixels(MemBase->pointer()); + + + //send share mem to server + tv->createVideoFrame(MemBase, inputSourceMode, iCapVideoLayer); + return; } //------------------------------------------------- static JNINativeMethod camMethods[] = { - { - "native_setup", - "(Ljava/lang/Object;)V", - (void *)com_droidlogic_app_tv_TvControlManager_native_setup - }, - { - "native_release", - "()V", - (void *)com_droidlogic_app_tv_TvControlManager_release - }, - { - "processCmd", - "(Landroid/os/Parcel;Landroid/os/Parcel;)I", - (void *)com_droidlogic_app_tv_TvControlManager_processCmd - }, - { - "addCallbackBuffer", - "([B)V", - (void *)com_droidlogic_app_tv_TvControlManager_addCallbackBuffer - }, - { - "reconnect", - "()V", - (void *)com_droidlogic_app_tv_TvControlManager_reconnect - }, - { - "lock", - "()V", - (void *)com_droidlogic_app_tv_TvControlManager_lock - }, - { - "unlock", - "()V", - (void *)com_droidlogic_app_tv_TvControlManager_unlock - }, - { - "native_create_subtitle_bitmap", - "(Ljava/lang/Object;)V", - (void *)com_droidlogic_app_tv_TvControlManager_create_subtitle_bitmap - }, - { - "native_create_video_frame_bitmap", - "(Ljava/lang/Object;)V", - (void *)com_droidlogic_app_tv_TvControlManager_create_video_frame_bitmap - }, + { + "native_setup", + "(Ljava/lang/Object;)V", + (void *)com_droidlogic_app_tv_TvControlManager_native_setup + }, + { + "native_release", + "()V", + (void *)com_droidlogic_app_tv_TvControlManager_release + }, + { + "processCmd", + "(Landroid/os/Parcel;Landroid/os/Parcel;)I", + (void *)com_droidlogic_app_tv_TvControlManager_processCmd + }, + { + "addCallbackBuffer", + "([B)V", + (void *)com_droidlogic_app_tv_TvControlManager_addCallbackBuffer + }, + { + "reconnect", + "()V", + (void *)com_droidlogic_app_tv_TvControlManager_reconnect + }, + { + "lock", + "()V", + (void *)com_droidlogic_app_tv_TvControlManager_lock + }, + { + "unlock", + "()V", + (void *)com_droidlogic_app_tv_TvControlManager_unlock + }, + { + "native_create_subtitle_bitmap", + "(Ljava/lang/Object;)V", + (void *)com_droidlogic_app_tv_TvControlManager_create_subtitle_bitmap + }, + { + "native_create_video_frame_bitmap", + "(Ljava/lang/Object;)V", + (void *)com_droidlogic_app_tv_TvControlManager_create_video_frame_bitmap + }, }; struct field { - const char *class_name; - const char *field_name; - const char *field_type; - jfieldID *jfield; + const char *class_name; + const char *field_name; + const char *field_type; + jfieldID *jfield; }; static int find_fields(JNIEnv *env, field *fields, int count) { - for (int i = 0; i < count; i++) { - field *f = &fields[i]; - jclass clazz = env->FindClass(f->class_name); - if (clazz == NULL) { - ALOGE("Can't find %s", f->class_name); - return -1; - } - - jfieldID field = env->GetFieldID(clazz, f->field_name, f->field_type); - if (field == NULL) { - ALOGE("Can't find %s.%s", f->class_name, f->field_name); - return -1; - } - - *(f->jfield) = field; - } - - return 0; + for (int i = 0; i < count; i++) { + field *f = &fields[i]; + jclass clazz = env->FindClass(f->class_name); + if (clazz == NULL) { + ALOGE("Can't find %s", f->class_name); + return -1; + } + + jfieldID field = env->GetFieldID(clazz, f->field_name, f->field_type); + if (field == NULL) { + ALOGE("Can't find %s.%s", f->class_name, f->field_name); + return -1; + } + + *(f->jfield) = field; + } + + return 0; } // Get all the required offsets in java class and register native functions int register_com_droidlogic_app_tv_TvControlManager(JNIEnv *env) { - field fields_to_find[] = { - { "com/droidlogic/app/tv/TvControlManager", "mNativeContext", "I", &fields.context } - }; + field fields_to_find[] = { + { "com/droidlogic/app/tv/TvControlManager", "mNativeContext", "I", &fields.context } + }; - ALOGD("register_com_droidlogic_app_tv_TvControlManager."); + ALOGD("register_com_droidlogic_app_tv_TvControlManager."); - if (find_fields(env, fields_to_find, NELEM(fields_to_find)) < 0) - return -1; + if (find_fields(env, fields_to_find, NELEM(fields_to_find)) < 0) + return -1; - jclass clazz = env->FindClass("com/droidlogic/app/tv/TvControlManager"); - fields.post_event = env->GetStaticMethodID(clazz, "postEventFromNative", "(Ljava/lang/Object;ILandroid/os/Parcel;)V"); - if (fields.post_event == NULL) { - ALOGE("Can't find com/droidlogic/app/tv/TvControlManager.postEventFromNative"); - return -1; - } + jclass clazz = env->FindClass("com/droidlogic/app/tv/TvControlManager"); + fields.post_event = env->GetStaticMethodID(clazz, "postEventFromNative", "(Ljava/lang/Object;ILandroid/os/Parcel;)V"); + if (fields.post_event == NULL) { + ALOGE("Can't find com/droidlogic/app/tv/TvControlManager.postEventFromNative"); + return -1; + } - // Register native functions - return AndroidRuntime::registerNativeMethods(env, "com/droidlogic/app/tv/TvControlManager", camMethods, NELEM(camMethods)); + // Register native functions + return AndroidRuntime::registerNativeMethods(env, "com/droidlogic/app/tv/TvControlManager", camMethods, NELEM(camMethods)); } jint JNI_OnLoad(JavaVM *vm, void *reserved) { - JNIEnv *env = NULL; - jint result = -1; + JNIEnv *env = NULL; + jint result = -1; - if (vm->GetEnv((void **) &env, JNI_VERSION_1_4) != JNI_OK) { - ALOGE("ERROR: GetEnv failed\n"); - goto bail; - } - assert(env != NULL); + if (vm->GetEnv((void **) &env, JNI_VERSION_1_4) != JNI_OK) { + ALOGE("ERROR: GetEnv failed\n"); + goto bail; + } + assert(env != NULL); - register_com_droidlogic_app_tv_TvControlManager(env); + register_com_droidlogic_app_tv_TvControlManager(env); - /* success -- return valid version number */ - result = JNI_VERSION_1_4; + /* success -- return valid version number */ + result = JNI_VERSION_1_4; bail: - return result; + return result; } diff --git a/tvapi/android/libtvbinder/ITv.cpp b/tvapi/android/libtvbinder/ITv.cpp index 0be4f87..5988713 100644 --- a/tvapi/android/libtvbinder/ITv.cpp +++ b/tvapi/android/libtvbinder/ITv.cpp @@ -7,142 +7,142 @@ #include <include/ITv.h> enum { - DISCONNECT = IBinder::FIRST_CALL_TRANSACTION, - START_PREVIEW, - SEND_COMMAND, - CONNECT, - LOCK, - UNLOCK, - TV_CMD, - TV_CREATE_SUBTITLE, - TV_CREATE_VIDEO_FRAME, + DISCONNECT = IBinder::FIRST_CALL_TRANSACTION, + START_PREVIEW, + SEND_COMMAND, + CONNECT, + LOCK, + UNLOCK, + TV_CMD, + TV_CREATE_SUBTITLE, + TV_CREATE_VIDEO_FRAME, }; class BpTv: public BpInterface<ITv> { public: - BpTv(const sp<IBinder> &impl) - : BpInterface<ITv>(impl) - { - } + BpTv(const sp<IBinder> &impl) + : BpInterface<ITv>(impl) + { + } - // disconnect from tv service - void disconnect() - { - Parcel data, reply; - data.writeInterfaceToken(ITv::getInterfaceDescriptor()); - remote()->transact(DISCONNECT, data, &reply); - } + // disconnect from tv service + void disconnect() + { + Parcel data, reply; + data.writeInterfaceToken(ITv::getInterfaceDescriptor()); + remote()->transact(DISCONNECT, data, &reply); + } - status_t processCmd(const Parcel &p, Parcel *r) - { - Parcel data, reply; - data.writeInterfaceToken(ITv::getInterfaceDescriptor()); - data.write(p.data(), p.dataSize()); - remote()->transact(TV_CMD, data, &reply); - r->write(reply.data(), reply.dataSize()); - r->setDataPosition(0); - return 0; - } + status_t processCmd(const Parcel &p, Parcel *r) + { + Parcel data, reply; + data.writeInterfaceToken(ITv::getInterfaceDescriptor()); + data.write(p.data(), p.dataSize()); + remote()->transact(TV_CMD, data, &reply); + r->write(reply.data(), reply.dataSize()); + r->setDataPosition(0); + return 0; + } - virtual status_t createVideoFrame(const sp<IMemory> &share_mem, int iSourceMode, int iCapVideoLayerOnly) - { - Parcel data, reply; - data.writeInterfaceToken(ITv::getInterfaceDescriptor()); - data.writeStrongBinder(IInterface::asBinder(share_mem)); - data.writeInt32(iSourceMode); - data.writeInt32(iCapVideoLayerOnly); - remote()->transact(TV_CREATE_VIDEO_FRAME, data, &reply); - return reply.readInt32(); - } + virtual status_t createVideoFrame(const sp<IMemory> &share_mem, int iSourceMode, int iCapVideoLayerOnly) + { + Parcel data, reply; + data.writeInterfaceToken(ITv::getInterfaceDescriptor()); + data.writeStrongBinder(IInterface::asBinder(share_mem)); + data.writeInt32(iSourceMode); + data.writeInt32(iCapVideoLayerOnly); + remote()->transact(TV_CREATE_VIDEO_FRAME, data, &reply); + return reply.readInt32(); + } - virtual status_t createSubtitle(const sp<IMemory> &share_mem) - { - Parcel data, reply; - data.writeInterfaceToken(ITv::getInterfaceDescriptor()); - data.writeStrongBinder(IInterface::asBinder(share_mem)); - remote()->transact(TV_CREATE_SUBTITLE, data, &reply); - return reply.readInt32(); - } - virtual status_t connect(const sp<ITvClient> &tvClient) - { - Parcel data, reply; - data.writeInterfaceToken(ITv::getInterfaceDescriptor()); - data.writeStrongBinder(IInterface::asBinder(tvClient)); - remote()->transact(CONNECT, data, &reply); - return reply.readInt32(); - } - virtual status_t lock() - { - Parcel data, reply; - data.writeInterfaceToken(ITv::getInterfaceDescriptor()); - remote()->transact(LOCK, data, &reply); - return reply.readInt32(); - } - virtual status_t unlock() - { - Parcel data, reply; - data.writeInterfaceToken(ITv::getInterfaceDescriptor()); - remote()->transact(UNLOCK, data, &reply); - return reply.readInt32(); - } + virtual status_t createSubtitle(const sp<IMemory> &share_mem) + { + Parcel data, reply; + data.writeInterfaceToken(ITv::getInterfaceDescriptor()); + data.writeStrongBinder(IInterface::asBinder(share_mem)); + remote()->transact(TV_CREATE_SUBTITLE, data, &reply); + return reply.readInt32(); + } + virtual status_t connect(const sp<ITvClient> &tvClient) + { + Parcel data, reply; + data.writeInterfaceToken(ITv::getInterfaceDescriptor()); + data.writeStrongBinder(IInterface::asBinder(tvClient)); + remote()->transact(CONNECT, data, &reply); + return reply.readInt32(); + } + virtual status_t lock() + { + Parcel data, reply; + data.writeInterfaceToken(ITv::getInterfaceDescriptor()); + remote()->transact(LOCK, data, &reply); + return reply.readInt32(); + } + virtual status_t unlock() + { + Parcel data, reply; + data.writeInterfaceToken(ITv::getInterfaceDescriptor()); + remote()->transact(UNLOCK, data, &reply); + return reply.readInt32(); + } }; IMPLEMENT_META_INTERFACE(Tv, "android.amlogic.ITv"); status_t BnTv::onTransact( - uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) + uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) { - switch (code) { - case DISCONNECT: { - CHECK_INTERFACE(ITv, data, reply); - disconnect(); - return NO_ERROR; - } - break; - case CONNECT: { - CHECK_INTERFACE(ITv, data, reply); - sp<ITvClient> tvClient = interface_cast<ITvClient>(data.readStrongBinder()); - reply->writeInt32(connect(tvClient)); - return NO_ERROR; - } - break; - case LOCK: { - CHECK_INTERFACE(ITv, data, reply); - reply->writeInt32(lock()); - return NO_ERROR; - } - break; - case UNLOCK: { - CHECK_INTERFACE(ITv, data, reply); - reply->writeInt32(unlock()); - return NO_ERROR; - } - break; - case TV_CMD: { - CHECK_INTERFACE(ITv, data, reply); - processCmd(data, reply); - //reply->write(tmp.data(), tmp.dataSize()); - return NO_ERROR; - } - case TV_CREATE_SUBTITLE: { - CHECK_INTERFACE(ITv, data, reply); - sp<IMemory> buffer = interface_cast<IMemory>(data.readStrongBinder()); - createSubtitle(buffer); - //reply->write(tmp.data(), tmp.dataSize()); - return NO_ERROR; - } - case TV_CREATE_VIDEO_FRAME: { - CHECK_INTERFACE(ITv, data, reply); - sp<IMemory> buffer = interface_cast<IMemory>(data.readStrongBinder()); - int srcMode = data.readInt32(); - int capVideoLayerOnly = data.readInt32(); - createVideoFrame(buffer, srcMode, capVideoLayerOnly); - //reply->write(tmp.data(), tmp.dataSize()); - return NO_ERROR; - } - break; - default: - return BBinder::onTransact(code, data, reply, flags); - } + switch (code) { + case DISCONNECT: { + CHECK_INTERFACE(ITv, data, reply); + disconnect(); + return NO_ERROR; + } + break; + case CONNECT: { + CHECK_INTERFACE(ITv, data, reply); + sp<ITvClient> tvClient = interface_cast<ITvClient>(data.readStrongBinder()); + reply->writeInt32(connect(tvClient)); + return NO_ERROR; + } + break; + case LOCK: { + CHECK_INTERFACE(ITv, data, reply); + reply->writeInt32(lock()); + return NO_ERROR; + } + break; + case UNLOCK: { + CHECK_INTERFACE(ITv, data, reply); + reply->writeInt32(unlock()); + return NO_ERROR; + } + break; + case TV_CMD: { + CHECK_INTERFACE(ITv, data, reply); + processCmd(data, reply); + //reply->write(tmp.data(), tmp.dataSize()); + return NO_ERROR; + } + case TV_CREATE_SUBTITLE: { + CHECK_INTERFACE(ITv, data, reply); + sp<IMemory> buffer = interface_cast<IMemory>(data.readStrongBinder()); + createSubtitle(buffer); + //reply->write(tmp.data(), tmp.dataSize()); + return NO_ERROR; + } + case TV_CREATE_VIDEO_FRAME: { + CHECK_INTERFACE(ITv, data, reply); + sp<IMemory> buffer = interface_cast<IMemory>(data.readStrongBinder()); + int srcMode = data.readInt32(); + int capVideoLayerOnly = data.readInt32(); + createVideoFrame(buffer, srcMode, capVideoLayerOnly); + //reply->write(tmp.data(), tmp.dataSize()); + return NO_ERROR; + } + break; + default: + return BBinder::onTransact(code, data, reply, flags); + } } diff --git a/tvapi/android/libtvbinder/ITvClient.cpp b/tvapi/android/libtvbinder/ITvClient.cpp index 8ade96e..0c450af 100644 --- a/tvapi/android/libtvbinder/ITvClient.cpp +++ b/tvapi/android/libtvbinder/ITvClient.cpp @@ -5,26 +5,26 @@ #include <include/ITvClient.h> #include "../include/tvcmd.h" enum { - NOTIFY_CALLBACK = IBinder::FIRST_CALL_TRANSACTION, + NOTIFY_CALLBACK = IBinder::FIRST_CALL_TRANSACTION, }; class BpTvClient: public BpInterface<ITvClient> { public: - BpTvClient(const sp<IBinder> &impl) : - BpInterface<ITvClient> (impl) - { - } - - // generic callback from tv service to app - void notifyCallback(int32_t msgType, const Parcel &p) - { - ALOGV("BpTvClient notifyCallback datasize = %d pos = %d", p.dataSize(), p.dataPosition()); - Parcel data, reply; - data.writeInterfaceToken(ITvClient::getInterfaceDescriptor()); - data.writeInt32(msgType); - data.write(p.data(), p.dataSize()); - remote()->transact(NOTIFY_CALLBACK, data, &reply, IBinder::FLAG_ONEWAY); - } + BpTvClient(const sp<IBinder> &impl) : + BpInterface<ITvClient> (impl) + { + } + + // generic callback from tv service to app + void notifyCallback(int32_t msgType, const Parcel &p) + { + ALOGV("BpTvClient notifyCallback datasize = %d pos = %d", p.dataSize(), p.dataPosition()); + Parcel data, reply; + data.writeInterfaceToken(ITvClient::getInterfaceDescriptor()); + data.writeInt32(msgType); + data.write(p.data(), p.dataSize()); + remote()->transact(NOTIFY_CALLBACK, data, &reply, IBinder::FLAG_ONEWAY); + } }; IMPLEMENT_META_INTERFACE(TvClient, "android.amlogic.ITvClient"); @@ -32,27 +32,27 @@ IMPLEMENT_META_INTERFACE(TvClient, "android.amlogic.ITvClient"); // ---------------------------------------------------------------------- status_t BnTvClient::onTransact(uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) { - int i = 0, loop_count = 0; - - switch (code) { - case NOTIFY_CALLBACK: { - CHECK_INTERFACE(ITvClient, data, reply); - Parcel ext; - int32_t msgType = data.readInt32(); - - ext.appendFrom(const_cast<Parcel *>(&data), data.dataPosition(), data.dataAvail()); - - - switch (msgType) { - default: - ALOGE("BnTvClient::onTransact NOTIFY_CALLBACK msg type ----= %d", msgType); - break; - } - notifyCallback(msgType, ext); - return NO_ERROR; - } - break; - default: - return BBinder::onTransact(code, data, reply, flags); - } + int i = 0, loop_count = 0; + + switch (code) { + case NOTIFY_CALLBACK: { + CHECK_INTERFACE(ITvClient, data, reply); + Parcel ext; + int32_t msgType = data.readInt32(); + + ext.appendFrom(const_cast<Parcel *>(&data), data.dataPosition(), data.dataAvail()); + + + switch (msgType) { + default: + ALOGE("BnTvClient::onTransact NOTIFY_CALLBACK msg type ----= %d", msgType); + break; + } + notifyCallback(msgType, ext); + return NO_ERROR; + } + break; + default: + return BBinder::onTransact(code, data, reply, flags); + } } diff --git a/tvapi/android/libtvbinder/ITvService.cpp b/tvapi/android/libtvbinder/ITvService.cpp index 041f660..a60b032 100644 --- a/tvapi/android/libtvbinder/ITvService.cpp +++ b/tvapi/android/libtvbinder/ITvService.cpp @@ -10,20 +10,20 @@ class BpTvService: public BpInterface<ITvService> { public: - BpTvService(const sp<IBinder> &impl) - : BpInterface<ITvService>(impl) - { - } - - // connect to tv service - virtual sp<ITv> connect(const sp<ITvClient> &tvClient) - { - Parcel data, reply; - data.writeInterfaceToken(ITvService::getInterfaceDescriptor()); - data.writeStrongBinder(IInterface::asBinder(tvClient)); - remote()->transact(BnTvService::CONNECT, data, &reply); - return interface_cast<ITv>(reply.readStrongBinder()); - } + BpTvService(const sp<IBinder> &impl) + : BpInterface<ITvService>(impl) + { + } + + // connect to tv service + virtual sp<ITv> connect(const sp<ITvClient> &tvClient) + { + Parcel data, reply; + data.writeInterfaceToken(ITvService::getInterfaceDescriptor()); + data.writeStrongBinder(IInterface::asBinder(tvClient)); + remote()->transact(BnTvService::CONNECT, data, &reply); + return interface_cast<ITv>(reply.readStrongBinder()); + } }; IMPLEMENT_META_INTERFACE(TvService, "android.amlogic.ITvService"); @@ -31,20 +31,20 @@ IMPLEMENT_META_INTERFACE(TvService, "android.amlogic.ITvService"); // ---------------------------------------------------------------------- status_t BnTvService::onTransact( - uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) + uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) { - switch (code) { - case CONNECT: { - CHECK_INTERFACE(ITvService, data, reply); - sp<ITvClient> tvClient = interface_cast<ITvClient>(data.readStrongBinder()); - sp<ITv> tv = connect(tvClient); - ALOGD("BnTvService::onTransact( sp<ITv> tv = connect(tvClient);"); - reply->writeStrongBinder(IInterface::asBinder(tv)); - return NO_ERROR; - } - break; - default: - return BBinder::onTransact(code, data, reply, flags); - } + switch (code) { + case CONNECT: { + CHECK_INTERFACE(ITvService, data, reply); + sp<ITvClient> tvClient = interface_cast<ITvClient>(data.readStrongBinder()); + sp<ITv> tv = connect(tvClient); + ALOGD("BnTvService::onTransact( sp<ITv> tv = connect(tvClient);"); + reply->writeStrongBinder(IInterface::asBinder(tv)); + return NO_ERROR; + } + break; + default: + return BBinder::onTransact(code, data, reply, flags); + } } diff --git a/tvapi/android/libtvbinder/TvClient.cpp b/tvapi/android/libtvbinder/TvClient.cpp index 188a964..432be8b 100644 --- a/tvapi/android/libtvbinder/TvClient.cpp +++ b/tvapi/android/libtvbinder/TvClient.cpp @@ -14,7 +14,8 @@ sp<ITvService> TvClient::mTvService; sp<TvClient::DeathNotifier> TvClient::mDeathNotifier; // establish binder interface to tv service -const sp<ITvService> &TvClient::getTvService() { +const sp<ITvService> &TvClient::getTvService() +{ Mutex::Autolock _l(mLock); if (mTvService.get() == 0) { sp<IServiceManager> sm = defaultServiceManager(); @@ -36,12 +37,14 @@ const sp<ITvService> &TvClient::getTvService() { return mTvService; } -TvClient::TvClient() { +TvClient::TvClient() +{ init(); } // construct a tv client from an existing tv remote -sp<TvClient> TvClient::create(const sp<ITv> &tv) { +sp<TvClient> TvClient::create(const sp<ITv> &tv) +{ ALOGD("create"); if (tv == 0) { ALOGE("tv remote is a NULL pointer"); @@ -57,15 +60,18 @@ sp<TvClient> TvClient::create(const sp<ITv> &tv) { return c; } -void TvClient::init() { +void TvClient::init() +{ mStatus = UNKNOWN_ERROR; } -TvClient::~TvClient() { +TvClient::~TvClient() +{ disconnect(); } -sp<TvClient> TvClient::connect() { +sp<TvClient> TvClient::connect() +{ ALOGD("Tv::connect------------------------------------------"); sp<TvClient> c = new TvClient(); const sp<ITvService> &cs = getTvService(); @@ -81,7 +87,8 @@ sp<TvClient> TvClient::connect() { return c; } -void TvClient::disconnect() { +void TvClient::disconnect() +{ ALOGD("disconnect"); if (mTv != 0) { mTv->disconnect(); @@ -90,55 +97,64 @@ void TvClient::disconnect() { } } -status_t TvClient::reconnect() { +status_t TvClient::reconnect() +{ ALOGD("reconnect"); sp <ITv> c = mTv; if (c == 0) return NO_INIT; return c->connect(this); } -sp<ITv> TvClient::remote() { +sp<ITv> TvClient::remote() +{ return mTv; } -status_t TvClient::lock() { +status_t TvClient::lock() +{ sp <ITv> c = mTv; if (c == 0) return NO_INIT; return c->lock(); } -status_t TvClient::unlock() { +status_t TvClient::unlock() +{ sp <ITv> c = mTv; if (c == 0) return NO_INIT; return c->unlock(); } -status_t TvClient::processCmd(const Parcel &p, Parcel *r) { +status_t TvClient::processCmd(const Parcel &p, Parcel *r) +{ sp <ITv> c = mTv; if (c == 0) return NO_INIT; return c->processCmd(p, r); } -status_t TvClient::createSubtitle(const sp<IMemory> &share_mem) { +status_t TvClient::createSubtitle(const sp<IMemory> &share_mem) +{ sp <ITv> c = mTv; if (c == 0) return NO_INIT; return c->createSubtitle(share_mem); } -status_t TvClient::createVideoFrame(const sp<IMemory> &share_mem, int iSourceMode, int iCapVideoLayerOnly) { +status_t TvClient::createVideoFrame(const sp<IMemory> &share_mem, int iSourceMode, int iCapVideoLayerOnly) +{ sp <ITv> c = mTv; if (c == 0) return NO_INIT; return c->createVideoFrame(share_mem, iSourceMode, iCapVideoLayerOnly); } -void TvClient::setListener(const sp<TvListener> &listener) { +void TvClient::setListener(const sp<TvListener> &listener) +{ ALOGD("tv------------Tv::setListener"); Mutex::Autolock _l(mLock); mListener = listener; } // callback from tv service -void TvClient::notifyCallback(int32_t msgType, const Parcel &p) { +void TvClient::notifyCallback(int32_t msgType, const Parcel &p) +{ int size = p.dataSize(); int pos = p.dataPosition(); p.setDataPosition(0); @@ -152,12 +168,14 @@ void TvClient::notifyCallback(int32_t msgType, const Parcel &p) { } } -void TvClient::binderDied(const wp<IBinder> &who) { +void TvClient::binderDied(const wp<IBinder> &who) +{ ALOGW("ITv died"); //notifyCallback(1, 2, 0); } -void TvClient::DeathNotifier::binderDied(const wp<IBinder> &who) { +void TvClient::DeathNotifier::binderDied(const wp<IBinder> &who) +{ ALOGW("-----------------binderDied"); Mutex::Autolock _l(TvClient::mLock); TvClient::mTvService.clear(); diff --git a/tvapi/android/tv/TvPlay.cpp b/tvapi/android/tv/TvPlay.cpp index b5994d4..8d2ef82 100644 --- a/tvapi/android/tv/TvPlay.cpp +++ b/tvapi/android/tv/TvPlay.cpp @@ -2,42 +2,49 @@ #include "TvPlay.h" #include "../include/tvcmd.h" -TvPlay::TvPlay() { +TvPlay::TvPlay() +{ mpObserver = NULL; tvSession = TvClient::connect(); tvSession->setListener(this); } -TvPlay::~TvPlay() { +TvPlay::~TvPlay() +{ tvSession.clear(); } -int TvPlay::setTvObserver ( TvPlayObserver *ob ) { +int TvPlay::setTvObserver ( TvPlayObserver *ob ) +{ mpObserver = ob; return 0; } -void TvPlay::notify(int32_t msgType, const Parcel &p) { +void TvPlay::notify(int32_t msgType, const Parcel &p) +{ ALOGD("TvPlay-------notify-------"); if (mpObserver != NULL) mpObserver->onTvEvent(msgType, p); } -int TvPlay::StartTv() { +int TvPlay::StartTv() +{ Parcel p, r; p.writeInt32(START_TV); tvSession->processCmd(p, &r); return r.readInt32(); } -int TvPlay::StopTv() { +int TvPlay::StopTv() +{ Parcel p, r; p.writeInt32(STOP_TV); tvSession->processCmd(p, &r); return r.readInt32(); } -int TvPlay::SwitchSourceInput(tv_source_input_t source_input) { +int TvPlay::SwitchSourceInput(tv_source_input_t source_input) +{ Parcel p, r; p.writeInt32(SET_SOURCE_INPUT); p.writeInt32(source_input); @@ -45,7 +52,8 @@ int TvPlay::SwitchSourceInput(tv_source_input_t source_input) { return r.readInt32(); } -int TvPlay::DoSuspend(int type) { +int TvPlay::DoSuspend(int type) +{ Parcel p, r; p.writeInt32(DO_SUSPEND); p.writeInt32(type); @@ -53,7 +61,8 @@ int TvPlay::DoSuspend(int type) { return r.readInt32(); } -int TvPlay::DoResume(int type) { +int TvPlay::DoResume(int type) +{ Parcel p, r; p.writeInt32(DO_RESUME); p.writeInt32(type); @@ -61,7 +70,8 @@ int TvPlay::DoResume(int type) { return r.readInt32(); } -int TvPlay::GetSourceConnectStatus(tv_source_input_t source_input) { +int TvPlay::GetSourceConnectStatus(tv_source_input_t source_input) +{ Parcel p, r; p.writeInt32(GET_SOURCE_CONNECT_STATUS); p.writeInt32(source_input); @@ -69,14 +79,16 @@ int TvPlay::GetSourceConnectStatus(tv_source_input_t source_input) { return r.readInt32(); } -int TvPlay::GetCurrentSourceInput() { +int TvPlay::GetCurrentSourceInput() +{ Parcel p, r; p.writeInt32(SSM_READ_SOURCE_INPUT); tvSession->processCmd(p, &r); return r.readInt32(); } -int TvPlay::GetHdmiAvHotplugDetectOnoff() { +int TvPlay::GetHdmiAvHotplugDetectOnoff() +{ Parcel p, r; p.writeInt32(HDMIAV_HOTPLUGDETECT_ONOFF); tvSession->processCmd(p, &r); diff --git a/tvapi/android/tv/TvPlay.h b/tvapi/android/tv/TvPlay.h index cbab849..d30522d 100644 --- a/tvapi/android/tv/TvPlay.h +++ b/tvapi/android/tv/TvPlay.h @@ -33,7 +33,7 @@ public: virtual void onTvEvent (int32_t msgType, const Parcel &p) = 0; }; -class TvPlay : public TvListener{ +class TvPlay : public TvListener { public: TvPlay(); ~TvPlay(); diff --git a/tvapi/android/tvserver/TvService.cpp b/tvapi/android/tvserver/TvService.cpp index 56dbe48..6568003 100644 --- a/tvapi/android/tvserver/TvService.cpp +++ b/tvapi/android/tvserver/TvService.cpp @@ -36,4459 +36,4459 @@ extern "C" { static int getCallingPid() { - return IPCThreadState::self()->getCallingPid(); + return IPCThreadState::self()->getCallingPid(); } TvService *TvService::mTvService = NULL; -CTv* TvService::mpTv = NULL; +CTv *TvService::mpTv = NULL; void TvService::instantiate() { - defaultServiceManager()->addService(String16("aml.tvserver"), TvService::getIntance()); + defaultServiceManager()->addService(String16("aml.tvserver"), TvService::getIntance()); } TvService::TvService() : - BnTvService() + BnTvService() { - mpStartTvClient = NULL; - mpScannerClient = NULL; - mUsers = 0; - mpTv = new CTv(); - mpTv->setTvObserver(this); - mCapVidFrame.setObserver(this); - mpTv->OpenTv(); + mpStartTvClient = NULL; + mpScannerClient = NULL; + mUsers = 0; + mpTv = new CTv(); + mpTv->setTvObserver(this); + mCapVidFrame.setObserver(this); + mpTv->OpenTv(); } TvService::~TvService() { - mpStartTvClient = NULL; - mpScannerClient = NULL; - int client_size = m_v_Clients.size(); - wp<Client> client; - for (int i = 0; i < client_size; i++) { - client = m_v_Clients[i]; - if (client != 0) { - LOGW("some client still connect it!"); - } - } - if (mpTv != NULL) { - delete mpTv; - mpTv = NULL; - } + mpStartTvClient = NULL; + mpScannerClient = NULL; + int client_size = m_v_Clients.size(); + wp<Client> client; + for (int i = 0; i < client_size; i++) { + client = m_v_Clients[i]; + if (client != 0) { + LOGW("some client still connect it!"); + } + } + if (mpTv != NULL) { + delete mpTv; + mpTv = NULL; + } } void TvService::onTvEvent(const CTvEv &ev) { - int type = ev.getEvType(); - LOGD("TvService::onTvEvent ev type = %d", type); - switch (type) { - case CTvEv::TV_EVENT_COMMOM: { - break; - } - case CTvEv::TV_EVENT_SCANNER: { - CTvScanner::ScannerEvent *pScannerEv = (CTvScanner::ScannerEvent *) (&ev); - if (mpScannerClient != NULL) { - sp<Client> ScannerClient = mpScannerClient.promote(); - if (ScannerClient != 0) { - Parcel p; - LOGD("scanner evt type:%d freq:%d vid:%d acnt:%d", - pScannerEv->mType, pScannerEv->mFrequency, pScannerEv->mVid, pScannerEv->mAcnt); - p.writeInt32(pScannerEv->mType); - p.writeInt32(pScannerEv->mPercent); - p.writeInt32(pScannerEv->mTotalChannelCount); - p.writeInt32(pScannerEv->mLockedStatus); - p.writeInt32(pScannerEv->mChannelNumber); - p.writeInt32(pScannerEv->mFrequency); - p.writeString16(String16(pScannerEv->mProgramName)); - p.writeInt32(pScannerEv->mprogramType); - p.writeString16(String16(pScannerEv->mMSG)); - p.writeInt32(pScannerEv->mStrength); - p.writeInt32(pScannerEv->mSnr); - //ATV - p.writeInt32(pScannerEv->mVideoStd); - p.writeInt32(pScannerEv->mAudioStd); - p.writeInt32(pScannerEv->mIsAutoStd); - //DTV - p.writeInt32(pScannerEv->mMode); - p.writeInt32(pScannerEv->mSymbolRate); - p.writeInt32(pScannerEv->mModulation); - p.writeInt32(pScannerEv->mBandwidth); - p.writeInt32(pScannerEv->mOfdm_mode); - p.writeInt32(pScannerEv->mTsId); - p.writeInt32(pScannerEv->mONetId); - p.writeInt32(pScannerEv->mServiceId); - p.writeInt32(pScannerEv->mVid); - p.writeInt32(pScannerEv->mVfmt); - p.writeInt32(pScannerEv->mAcnt); - for (int i = 0; i < pScannerEv->mAcnt; i++) - p.writeInt32(pScannerEv->mAid[i]); - for (int i = 0; i < pScannerEv->mAcnt; i++) - p.writeInt32(pScannerEv->mAfmt[i]); - for (int i = 0; i < pScannerEv->mAcnt; i++) - p.writeString16(String16(pScannerEv->mAlang[i])); - for (int i = 0; i < pScannerEv->mAcnt; i++) - p.writeInt32(pScannerEv->mAtype[i]); - p.writeInt32(pScannerEv->mPcr); - p.writeInt32(pScannerEv->mScnt); - for (int i = 0; i < pScannerEv->mScnt; i++) - p.writeInt32(pScannerEv->mStype[i]); - for (int i = 0; i < pScannerEv->mScnt; i++) - p.writeInt32(pScannerEv->mSid[i]); - for (int i = 0; i < pScannerEv->mScnt; i++) - p.writeInt32(pScannerEv->mSstype[i]); - for (int i = 0; i < pScannerEv->mScnt; i++) - p.writeInt32(pScannerEv->mSid1[i]); - for (int i = 0; i < pScannerEv->mScnt; i++) - p.writeInt32(pScannerEv->mSid2[i]); - for (int i = 0; i < pScannerEv->mScnt; i++) - p.writeString16(String16(pScannerEv->mSlang[i])); - ScannerClient->notifyCallback(SCAN_EVENT_CALLBACK, p); - } - } - break; - } - case CTvEv::TV_EVENT_EPG: { - CTvEpg::EpgEvent *pEpgEvent = (CTvEpg::EpgEvent *) (&ev); - int client_size = m_v_Clients.size(); - wp<Client> client; - for (int i = 0; i < client_size; i++) { - client = m_v_Clients[i]; - if (client != 0) { - sp<Client> currentClient = client.promote(); - if (currentClient != 0) { - Parcel p; - p.writeInt32(pEpgEvent->type); - p.writeInt32(pEpgEvent->time); - p.writeInt32(pEpgEvent->programID); - p.writeInt32(pEpgEvent->channelID); - currentClient->getTvClient()->notifyCallback(EPG_EVENT_CALLBACK, p); - } - } - } - break; - } - case CTvEv::TV_EVENT_HDMI_IN_CAP: { - CTvScreenCapture::CapEvent *pCapEvt = (CTvScreenCapture::CapEvent *)(&ev); - int client_size = m_v_Clients.size(); - wp<Client> client; - for (int i = 0; i < client_size; i++) { - client = m_v_Clients[i]; - if (client != 0) { - sp<Client> currentClient = client.promote(); - if (currentClient != 0) { - Parcel p; - p.writeInt32(pCapEvt->mFrameNum); - p.writeInt32(pCapEvt->mFrameSize); - p.writeInt32(pCapEvt->mFrameWide); - p.writeInt32(pCapEvt->mFrameHeight); - currentClient->getTvClient()->notifyCallback(VFRAME_BMP_EVENT_CALLBACK, p); - } - } - } - break; - } - case CTvEv::TV_EVENT_AV_PLAYBACK: { - TvEvent::AVPlaybackEvent *pEv = (TvEvent::AVPlaybackEvent *)(&ev); - int client_size = m_v_Clients.size(); - wp<Client> client; - for (int i = 0; i < client_size; i++) { - client = m_v_Clients[i]; - if (client != 0) { - sp<Client> currentClient = client.promote(); - if (currentClient != 0) { - Parcel p; - p.writeInt32(pEv->mMsgType); - p.writeInt32(pEv->mProgramId); - currentClient->getTvClient()->notifyCallback(DTV_AV_PLAYBACK_CALLBACK, p); - } - } - } - break; - } - case CTvEv::TV_EVENT_SIGLE_DETECT: { - TvEvent::SignalInfoEvent *pEv = (TvEvent::SignalInfoEvent *)(&ev); - - int client_size = m_v_Clients.size(); - wp<Client> client; - for (int i = 0; i < client_size; i++) { - client = m_v_Clients[i]; - if (client != 0) { - sp<Client> currentClient = client.promote(); - if (currentClient != 0) { - Parcel p; - p.writeInt32(pEv->mTrans_fmt); - p.writeInt32(pEv->mFmt); - p.writeInt32(pEv->mStatus); - p.writeInt32(pEv->mReserved); - currentClient->getTvClient()->notifyCallback(SIGLE_DETECT_CALLBACK, p); - } - } - } - break; - } - case CTvEv::TV_EVENT_SUBTITLE: { - TvEvent::SubtitleEvent *pEv = (TvEvent::SubtitleEvent *)(&ev); - sp<Client> pSubtitleClient = mpSubClient.promote(); - if (pSubtitleClient != NULL) { - Parcel p; - p.writeInt32(pEv->pic_width); - p.writeInt32(pEv->pic_height); - pSubtitleClient->notifyCallback(SUBTITLE_UPDATE_CALLBACK, p); - } - break; - } - case CTvEv::TV_EVENT_ADC_CALIBRATION: { - TvEvent::ADCCalibrationEvent *pEv = (TvEvent::ADCCalibrationEvent *)(&ev); - int client_size = m_v_Clients.size(); - wp<Client> client; - for (int i = 0; i < client_size; i++) { - client = m_v_Clients[i]; - if (client != 0) { - sp<Client> currentClient = client.promote(); - if (currentClient != 0) { - Parcel p; - p.writeInt32(pEv->mState); - currentClient->getTvClient()->notifyCallback(ADC_CALIBRATION_CALLBACK, p); - } - } - } - break; - } - case CTvEv::TV_EVENT_VGA: { //VGA - TvEvent::VGAEvent *pEv = (TvEvent::VGAEvent *)(&ev); - int client_size = m_v_Clients.size(); - wp<Client> client; - for (int i = 0; i < client_size; i++) { - client = m_v_Clients[i]; - if (client != 0) { - sp<Client> currentClient = client.promote(); - if (currentClient != 0) { - Parcel p; - p.writeInt32(pEv->mState); - currentClient->getTvClient()->notifyCallback(VGA_CALLBACK, p); - } - } - } - break; - } - case CTvEv::TV_EVENT_SOURCE_CONNECT: { - TvEvent::SourceConnectEvent *pEv = (TvEvent::SourceConnectEvent *)(&ev); - int client_size = m_v_Clients.size(); - wp<Client> client; - for (int i = 0; i < client_size; i++) { - client = m_v_Clients[i]; - if (client != 0) { - sp<Client> currentClient = client.promote(); - if (currentClient != 0) { - Parcel p; - p.writeInt32(pEv->mSourceInput); - p.writeInt32(pEv->connectionState); - currentClient->getTvClient()->notifyCallback(SOURCE_CONNECT_CALLBACK, p); - } - } - } - break; - } - case CTvEv::TV_EVENT_HDMIRX_CEC: { - TvEvent::HDMIRxCECEvent *pEv = (TvEvent::HDMIRxCECEvent *)(&ev); - int client_size = m_v_Clients.size(); - wp<Client> client; - for (int i = 0; i < client_size; i++) { - client = m_v_Clients[i]; - if (client != 0) { - sp<Client> currentClient = client.promote(); - if (currentClient != 0) { - Parcel p; - - p.writeInt32(pEv->mDataCount); - for (int j = 0; j < pEv->mDataCount; j++) { - p.writeInt32(pEv->mDataBuf[j]); - } - - currentClient->getTvClient()->notifyCallback(HDMIRX_CEC_CALLBACK, p); - } - } - } - break; - } - case CTvEv::TV_EVENT_UPGRADE_FBC: { - TvEvent::UpgradeFBCEvent *pEv = (TvEvent::UpgradeFBCEvent *)(&ev); - - int client_size = m_v_Clients.size(); - wp<Client> client; - for (int i = 0; i < client_size; i++) { - client = m_v_Clients[i]; - if (client != 0) { - sp<Client> currentClient = client.promote(); - if (currentClient != 0) { - Parcel p; - p.writeInt32(pEv->mState); - p.writeInt32(pEv->param); - currentClient->getTvClient()->notifyCallback(UPGRADE_FBC_CALLBACK, p); - } - } - } - break; - } - case CTvEv::TV_EVENT_SERIAL_COMMUNICATION: { - TvEvent::SerialCommunicationEvent *pEv = (TvEvent::SerialCommunicationEvent *)(&ev); - int client_size = m_v_Clients.size(); - wp<Client> client; - for (int i = 0; i < client_size; i++) { - client = m_v_Clients[i]; - if (client != 0) { - sp<Client> currentClient = client.promote(); - if (currentClient != 0) { - Parcel p; - p.writeInt32(pEv->mDevId); - p.writeInt32(pEv->mDataCount); - for (int j = 0; j < pEv->mDataCount; j++) { - p.writeInt32(pEv->mDataBuf[j]); - } - - currentClient->getTvClient()->notifyCallback(SERIAL_COMMUNICATION_CALLBACK, p); - } - } - } - break; - } - - case CTvEv::TV_EVENT_2d4G_HEADSET: { - TvEvent::HeadSetOf2d4GEvent *pEv = (TvEvent::HeadSetOf2d4GEvent *)(&ev); - LOGD("SendDtvStats status: =%d para2: =%d", pEv->state, pEv->para); - int client_size = m_v_Clients.size(); - wp<Client> client; - for (int i = 0; i < client_size; i++) { - client = m_v_Clients[i]; - if (client != 0) { - sp<Client> currentClient = client.promote(); - if (currentClient != 0) { - Parcel p; - p.writeInt32(pEv->state); - p.writeInt32(pEv->para); - currentClient->getTvClient()->notifyCallback(HEADSET_STATUS_CALLBACK, p); - } - } - } - break; - } - - default: - break; - } + int type = ev.getEvType(); + LOGD("TvService::onTvEvent ev type = %d", type); + switch (type) { + case CTvEv::TV_EVENT_COMMOM: { + break; + } + case CTvEv::TV_EVENT_SCANNER: { + CTvScanner::ScannerEvent *pScannerEv = (CTvScanner::ScannerEvent *) (&ev); + if (mpScannerClient != NULL) { + sp<Client> ScannerClient = mpScannerClient.promote(); + if (ScannerClient != 0) { + Parcel p; + LOGD("scanner evt type:%d freq:%d vid:%d acnt:%d", + pScannerEv->mType, pScannerEv->mFrequency, pScannerEv->mVid, pScannerEv->mAcnt); + p.writeInt32(pScannerEv->mType); + p.writeInt32(pScannerEv->mPercent); + p.writeInt32(pScannerEv->mTotalChannelCount); + p.writeInt32(pScannerEv->mLockedStatus); + p.writeInt32(pScannerEv->mChannelNumber); + p.writeInt32(pScannerEv->mFrequency); + p.writeString16(String16(pScannerEv->mProgramName)); + p.writeInt32(pScannerEv->mprogramType); + p.writeString16(String16(pScannerEv->mMSG)); + p.writeInt32(pScannerEv->mStrength); + p.writeInt32(pScannerEv->mSnr); + //ATV + p.writeInt32(pScannerEv->mVideoStd); + p.writeInt32(pScannerEv->mAudioStd); + p.writeInt32(pScannerEv->mIsAutoStd); + //DTV + p.writeInt32(pScannerEv->mMode); + p.writeInt32(pScannerEv->mSymbolRate); + p.writeInt32(pScannerEv->mModulation); + p.writeInt32(pScannerEv->mBandwidth); + p.writeInt32(pScannerEv->mOfdm_mode); + p.writeInt32(pScannerEv->mTsId); + p.writeInt32(pScannerEv->mONetId); + p.writeInt32(pScannerEv->mServiceId); + p.writeInt32(pScannerEv->mVid); + p.writeInt32(pScannerEv->mVfmt); + p.writeInt32(pScannerEv->mAcnt); + for (int i = 0; i < pScannerEv->mAcnt; i++) + p.writeInt32(pScannerEv->mAid[i]); + for (int i = 0; i < pScannerEv->mAcnt; i++) + p.writeInt32(pScannerEv->mAfmt[i]); + for (int i = 0; i < pScannerEv->mAcnt; i++) + p.writeString16(String16(pScannerEv->mAlang[i])); + for (int i = 0; i < pScannerEv->mAcnt; i++) + p.writeInt32(pScannerEv->mAtype[i]); + p.writeInt32(pScannerEv->mPcr); + p.writeInt32(pScannerEv->mScnt); + for (int i = 0; i < pScannerEv->mScnt; i++) + p.writeInt32(pScannerEv->mStype[i]); + for (int i = 0; i < pScannerEv->mScnt; i++) + p.writeInt32(pScannerEv->mSid[i]); + for (int i = 0; i < pScannerEv->mScnt; i++) + p.writeInt32(pScannerEv->mSstype[i]); + for (int i = 0; i < pScannerEv->mScnt; i++) + p.writeInt32(pScannerEv->mSid1[i]); + for (int i = 0; i < pScannerEv->mScnt; i++) + p.writeInt32(pScannerEv->mSid2[i]); + for (int i = 0; i < pScannerEv->mScnt; i++) + p.writeString16(String16(pScannerEv->mSlang[i])); + ScannerClient->notifyCallback(SCAN_EVENT_CALLBACK, p); + } + } + break; + } + case CTvEv::TV_EVENT_EPG: { + CTvEpg::EpgEvent *pEpgEvent = (CTvEpg::EpgEvent *) (&ev); + int client_size = m_v_Clients.size(); + wp<Client> client; + for (int i = 0; i < client_size; i++) { + client = m_v_Clients[i]; + if (client != 0) { + sp<Client> currentClient = client.promote(); + if (currentClient != 0) { + Parcel p; + p.writeInt32(pEpgEvent->type); + p.writeInt32(pEpgEvent->time); + p.writeInt32(pEpgEvent->programID); + p.writeInt32(pEpgEvent->channelID); + currentClient->getTvClient()->notifyCallback(EPG_EVENT_CALLBACK, p); + } + } + } + break; + } + case CTvEv::TV_EVENT_HDMI_IN_CAP: { + CTvScreenCapture::CapEvent *pCapEvt = (CTvScreenCapture::CapEvent *)(&ev); + int client_size = m_v_Clients.size(); + wp<Client> client; + for (int i = 0; i < client_size; i++) { + client = m_v_Clients[i]; + if (client != 0) { + sp<Client> currentClient = client.promote(); + if (currentClient != 0) { + Parcel p; + p.writeInt32(pCapEvt->mFrameNum); + p.writeInt32(pCapEvt->mFrameSize); + p.writeInt32(pCapEvt->mFrameWide); + p.writeInt32(pCapEvt->mFrameHeight); + currentClient->getTvClient()->notifyCallback(VFRAME_BMP_EVENT_CALLBACK, p); + } + } + } + break; + } + case CTvEv::TV_EVENT_AV_PLAYBACK: { + TvEvent::AVPlaybackEvent *pEv = (TvEvent::AVPlaybackEvent *)(&ev); + int client_size = m_v_Clients.size(); + wp<Client> client; + for (int i = 0; i < client_size; i++) { + client = m_v_Clients[i]; + if (client != 0) { + sp<Client> currentClient = client.promote(); + if (currentClient != 0) { + Parcel p; + p.writeInt32(pEv->mMsgType); + p.writeInt32(pEv->mProgramId); + currentClient->getTvClient()->notifyCallback(DTV_AV_PLAYBACK_CALLBACK, p); + } + } + } + break; + } + case CTvEv::TV_EVENT_SIGLE_DETECT: { + TvEvent::SignalInfoEvent *pEv = (TvEvent::SignalInfoEvent *)(&ev); + + int client_size = m_v_Clients.size(); + wp<Client> client; + for (int i = 0; i < client_size; i++) { + client = m_v_Clients[i]; + if (client != 0) { + sp<Client> currentClient = client.promote(); + if (currentClient != 0) { + Parcel p; + p.writeInt32(pEv->mTrans_fmt); + p.writeInt32(pEv->mFmt); + p.writeInt32(pEv->mStatus); + p.writeInt32(pEv->mReserved); + currentClient->getTvClient()->notifyCallback(SIGLE_DETECT_CALLBACK, p); + } + } + } + break; + } + case CTvEv::TV_EVENT_SUBTITLE: { + TvEvent::SubtitleEvent *pEv = (TvEvent::SubtitleEvent *)(&ev); + sp<Client> pSubtitleClient = mpSubClient.promote(); + if (pSubtitleClient != NULL) { + Parcel p; + p.writeInt32(pEv->pic_width); + p.writeInt32(pEv->pic_height); + pSubtitleClient->notifyCallback(SUBTITLE_UPDATE_CALLBACK, p); + } + break; + } + case CTvEv::TV_EVENT_ADC_CALIBRATION: { + TvEvent::ADCCalibrationEvent *pEv = (TvEvent::ADCCalibrationEvent *)(&ev); + int client_size = m_v_Clients.size(); + wp<Client> client; + for (int i = 0; i < client_size; i++) { + client = m_v_Clients[i]; + if (client != 0) { + sp<Client> currentClient = client.promote(); + if (currentClient != 0) { + Parcel p; + p.writeInt32(pEv->mState); + currentClient->getTvClient()->notifyCallback(ADC_CALIBRATION_CALLBACK, p); + } + } + } + break; + } + case CTvEv::TV_EVENT_VGA: { //VGA + TvEvent::VGAEvent *pEv = (TvEvent::VGAEvent *)(&ev); + int client_size = m_v_Clients.size(); + wp<Client> client; + for (int i = 0; i < client_size; i++) { + client = m_v_Clients[i]; + if (client != 0) { + sp<Client> currentClient = client.promote(); + if (currentClient != 0) { + Parcel p; + p.writeInt32(pEv->mState); + currentClient->getTvClient()->notifyCallback(VGA_CALLBACK, p); + } + } + } + break; + } + case CTvEv::TV_EVENT_SOURCE_CONNECT: { + TvEvent::SourceConnectEvent *pEv = (TvEvent::SourceConnectEvent *)(&ev); + int client_size = m_v_Clients.size(); + wp<Client> client; + for (int i = 0; i < client_size; i++) { + client = m_v_Clients[i]; + if (client != 0) { + sp<Client> currentClient = client.promote(); + if (currentClient != 0) { + Parcel p; + p.writeInt32(pEv->mSourceInput); + p.writeInt32(pEv->connectionState); + currentClient->getTvClient()->notifyCallback(SOURCE_CONNECT_CALLBACK, p); + } + } + } + break; + } + case CTvEv::TV_EVENT_HDMIRX_CEC: { + TvEvent::HDMIRxCECEvent *pEv = (TvEvent::HDMIRxCECEvent *)(&ev); + int client_size = m_v_Clients.size(); + wp<Client> client; + for (int i = 0; i < client_size; i++) { + client = m_v_Clients[i]; + if (client != 0) { + sp<Client> currentClient = client.promote(); + if (currentClient != 0) { + Parcel p; + + p.writeInt32(pEv->mDataCount); + for (int j = 0; j < pEv->mDataCount; j++) { + p.writeInt32(pEv->mDataBuf[j]); + } + + currentClient->getTvClient()->notifyCallback(HDMIRX_CEC_CALLBACK, p); + } + } + } + break; + } + case CTvEv::TV_EVENT_UPGRADE_FBC: { + TvEvent::UpgradeFBCEvent *pEv = (TvEvent::UpgradeFBCEvent *)(&ev); + + int client_size = m_v_Clients.size(); + wp<Client> client; + for (int i = 0; i < client_size; i++) { + client = m_v_Clients[i]; + if (client != 0) { + sp<Client> currentClient = client.promote(); + if (currentClient != 0) { + Parcel p; + p.writeInt32(pEv->mState); + p.writeInt32(pEv->param); + currentClient->getTvClient()->notifyCallback(UPGRADE_FBC_CALLBACK, p); + } + } + } + break; + } + case CTvEv::TV_EVENT_SERIAL_COMMUNICATION: { + TvEvent::SerialCommunicationEvent *pEv = (TvEvent::SerialCommunicationEvent *)(&ev); + int client_size = m_v_Clients.size(); + wp<Client> client; + for (int i = 0; i < client_size; i++) { + client = m_v_Clients[i]; + if (client != 0) { + sp<Client> currentClient = client.promote(); + if (currentClient != 0) { + Parcel p; + p.writeInt32(pEv->mDevId); + p.writeInt32(pEv->mDataCount); + for (int j = 0; j < pEv->mDataCount; j++) { + p.writeInt32(pEv->mDataBuf[j]); + } + + currentClient->getTvClient()->notifyCallback(SERIAL_COMMUNICATION_CALLBACK, p); + } + } + } + break; + } + + case CTvEv::TV_EVENT_2d4G_HEADSET: { + TvEvent::HeadSetOf2d4GEvent *pEv = (TvEvent::HeadSetOf2d4GEvent *)(&ev); + LOGD("SendDtvStats status: =%d para2: =%d", pEv->state, pEv->para); + int client_size = m_v_Clients.size(); + wp<Client> client; + for (int i = 0; i < client_size; i++) { + client = m_v_Clients[i]; + if (client != 0) { + sp<Client> currentClient = client.promote(); + if (currentClient != 0) { + Parcel p; + p.writeInt32(pEv->state); + p.writeInt32(pEv->para); + currentClient->getTvClient()->notifyCallback(HEADSET_STATUS_CALLBACK, p); + } + } + } + break; + } + + default: + break; + } } sp<ITv> TvService::connect(const sp<ITvClient> &tvClient) { - int callingPid = getCallingPid(); - LOGD("TvService::connect E (pid %d, client %p)", callingPid, IInterface::asBinder(tvClient).get()); - - Mutex::Autolock lock(mServiceLock); - - int client_size = m_v_Clients.size(); - wp<Client> client; - for (int i = 0; i < client_size; i++) { - client = m_v_Clients[i]; - if (client != 0) { - sp<Client> currentClient = client.promote(); - if (currentClient != 0) { - sp<ITvClient> currentTvClient(currentClient->getTvClient()); - if (IInterface::asBinder(tvClient) == IInterface::asBinder(currentTvClient)) { - LOGD("TvService::connect X (pid %d, same client %p) is reconnecting...", callingPid, IInterface::asBinder(tvClient).get()); - return currentClient; - } else { - //LOGD("TvService::connect X (pid %d, new client %p) rejected. " - // "(old pid %d, old client %p)", callingPid, tvClient->asBinder().get(), currentClient->mClientPid, currentTvClient->asBinder().get()); - // if (kill(currentClient->mClientPid, 0) == -1 && errno == ESRCH) { - // LOGE("The old client is dead!"); - // } - //return client; - //return currentClient; - continue; - } - } else { - LOGE("client (pid %d) have delete ------------not exist", callingPid); - client.clear(); - m_v_Clients.removeAt(i); - client_size--; - continue; - } - } - } - - if (mUsers > 0) { - LOGE("Still have client, rejected"); - //return client; - } - LOGD("TvService::connect X 3"); - // client = new Client(this, tvClient, callingPid); - //mClient = client; - - sp<Client> newclient = new Client(this, tvClient, callingPid, mpTv); - m_v_Clients.add(newclient); + int callingPid = getCallingPid(); + LOGD("TvService::connect E (pid %d, client %p)", callingPid, IInterface::asBinder(tvClient).get()); + + Mutex::Autolock lock(mServiceLock); + + int client_size = m_v_Clients.size(); + wp<Client> client; + for (int i = 0; i < client_size; i++) { + client = m_v_Clients[i]; + if (client != 0) { + sp<Client> currentClient = client.promote(); + if (currentClient != 0) { + sp<ITvClient> currentTvClient(currentClient->getTvClient()); + if (IInterface::asBinder(tvClient) == IInterface::asBinder(currentTvClient)) { + LOGD("TvService::connect X (pid %d, same client %p) is reconnecting...", callingPid, IInterface::asBinder(tvClient).get()); + return currentClient; + } else { + //LOGD("TvService::connect X (pid %d, new client %p) rejected. " + // "(old pid %d, old client %p)", callingPid, tvClient->asBinder().get(), currentClient->mClientPid, currentTvClient->asBinder().get()); + // if (kill(currentClient->mClientPid, 0) == -1 && errno == ESRCH) { + // LOGE("The old client is dead!"); + // } + //return client; + //return currentClient; + continue; + } + } else { + LOGE("client (pid %d) have delete ------------not exist", callingPid); + client.clear(); + m_v_Clients.removeAt(i); + client_size--; + continue; + } + } + } + + if (mUsers > 0) { + LOGE("Still have client, rejected"); + //return client; + } + LOGD("TvService::connect X 3"); + // client = new Client(this, tvClient, callingPid); + //mClient = client; + + sp<Client> newclient = new Client(this, tvClient, callingPid, mpTv); + m_v_Clients.add(newclient); #if DEBUG_CLIENT_REFERENCES - //client->trackMe(true, true); + //client->trackMe(true, true); #endif - //mCurClient = client; - LOGD("TvService::connect X 4"); - return newclient; + //mCurClient = client; + LOGD("TvService::connect X 4"); + return newclient; } void TvService::removeClient(const sp<ITvClient> &tvClient) { - int callingPid = getCallingPid(); - - Mutex::Autolock lock(mServiceLock); - - int client_size = m_v_Clients.size(); - wp<Client> client; - for (int i = 0; i < client_size; i++) { - client = m_v_Clients[i]; - if (client != 0) { - sp<Client> currentClient = client.promote(); - if (currentClient != 0) { - sp<ITvClient> currentTvClient(currentClient->getTvClient()); - if (IInterface::asBinder(tvClient) == IInterface::asBinder(currentTvClient)) { - LOGD("find client , and remove it pid = %d, client = %p i=%d", callingPid, IInterface::asBinder(tvClient).get(), i); - client.clear(); - LOGD("find client , and remove it pid1 "); - m_v_Clients.removeAt(i); - LOGD("find client , and remove it pid2 "); - break; - } else { - LOGW("removeClient (pid %d): mClient doesn't match!", callingPid); - continue; - } - } else { - LOGW("removeclient currentClient == 0 (pid %d)", callingPid); - client.clear(); - m_v_Clients.removeAt(i); - client_size--; - continue; - } - } else { - LOGW("removeclient client == 0 (pid %d)", callingPid); - client.clear(); - m_v_Clients.removeAt(i); - client_size--; - continue; - } - } - - LOGD("removeClient (pid %d) done", callingPid); + int callingPid = getCallingPid(); + + Mutex::Autolock lock(mServiceLock); + + int client_size = m_v_Clients.size(); + wp<Client> client; + for (int i = 0; i < client_size; i++) { + client = m_v_Clients[i]; + if (client != 0) { + sp<Client> currentClient = client.promote(); + if (currentClient != 0) { + sp<ITvClient> currentTvClient(currentClient->getTvClient()); + if (IInterface::asBinder(tvClient) == IInterface::asBinder(currentTvClient)) { + LOGD("find client , and remove it pid = %d, client = %p i=%d", callingPid, IInterface::asBinder(tvClient).get(), i); + client.clear(); + LOGD("find client , and remove it pid1 "); + m_v_Clients.removeAt(i); + LOGD("find client , and remove it pid2 "); + break; + } else { + LOGW("removeClient (pid %d): mClient doesn't match!", callingPid); + continue; + } + } else { + LOGW("removeclient currentClient == 0 (pid %d)", callingPid); + client.clear(); + m_v_Clients.removeAt(i); + client_size--; + continue; + } + } else { + LOGW("removeclient client == 0 (pid %d)", callingPid); + client.clear(); + m_v_Clients.removeAt(i); + client_size--; + continue; + } + } + + LOGD("removeClient (pid %d) done", callingPid); } void TvService::incUsers() { - android_atomic_inc(&mUsers); + android_atomic_inc(&mUsers); } void TvService::decUsers() { - android_atomic_dec(&mUsers); + android_atomic_dec(&mUsers); } TvService::Client::Client(const sp<TvService> &tvService, const sp<ITvClient> &tvClient, pid_t clientPid, CTv *pTv) { - int callingPid = getCallingPid(); - LOGD("Client::Client E (pid %d)", callingPid); - mTvService = tvService; - mTvClient = tvClient; - mClientPid = clientPid; - tvService->incUsers(); - mpTv = pTv; - mIsStartTv = false; + int callingPid = getCallingPid(); + LOGD("Client::Client E (pid %d)", callingPid); + mTvService = tvService; + mTvClient = tvClient; + mClientPid = clientPid; + tvService->incUsers(); + mpTv = pTv; + mIsStartTv = false; } status_t TvService::Client::checkPid() { - int callingPid = getCallingPid(); - if (mClientPid == callingPid) - return NO_ERROR; - LOGD("Attempt to use locked tv (client %p) from different process " - " (old pid %d, new pid %d)", IInterface::asBinder(getTvClient()).get(), mClientPid, callingPid); - return -EBUSY; + int callingPid = getCallingPid(); + if (mClientPid == callingPid) + return NO_ERROR; + LOGD("Attempt to use locked tv (client %p) from different process " + " (old pid %d, new pid %d)", IInterface::asBinder(getTvClient()).get(), mClientPid, callingPid); + return -EBUSY; } status_t TvService::Client::lock() { - int callingPid = getCallingPid(); - LOGD("lock from pid %d (mClientPid %d)", callingPid, mClientPid); - Mutex::Autolock _l(mLock); - // lock tv to this client if the the tv is unlocked - if (mClientPid == 0) { - mClientPid = callingPid; - return NO_ERROR; - } - // returns NO_ERROR if the client already owns the tv, -EBUSY otherwise - return checkPid(); + int callingPid = getCallingPid(); + LOGD("lock from pid %d (mClientPid %d)", callingPid, mClientPid); + Mutex::Autolock _l(mLock); + // lock tv to this client if the the tv is unlocked + if (mClientPid == 0) { + mClientPid = callingPid; + return NO_ERROR; + } + // returns NO_ERROR if the client already owns the tv, -EBUSY otherwise + return checkPid(); } status_t TvService::Client::unlock() { - int callingPid = getCallingPid(); - LOGD("unlock from pid %d (mClientPid %d)", callingPid, mClientPid); - Mutex::Autolock _l(mLock); - // allow anyone to use tv - status_t result = checkPid(); - if (result == NO_ERROR) { - mClientPid = 0; - LOGD("clear mTvClient (pid %d)", callingPid); - // we need to remove the reference so that when app goes - // away, the reference count goes to 0. - mTvClient.clear(); - } - return result; + int callingPid = getCallingPid(); + LOGD("unlock from pid %d (mClientPid %d)", callingPid, mClientPid); + Mutex::Autolock _l(mLock); + // allow anyone to use tv + status_t result = checkPid(); + if (result == NO_ERROR) { + mClientPid = 0; + LOGD("clear mTvClient (pid %d)", callingPid); + // we need to remove the reference so that when app goes + // away, the reference count goes to 0. + mTvClient.clear(); + } + return result; } status_t TvService::Client::connect(const sp<ITvClient> &client) { - int callingPid = getCallingPid(); - LOGD("Client::connect E (pid %d, client %p)", callingPid, IInterface::asBinder(client).get()); - { - sp<ITvClient> oldClient; - { - Mutex::Autolock _l(mLock); - if (mClientPid != 0 && checkPid() != NO_ERROR) { - LOGW("Tried to connect to locked tv (old pid %d, new pid %d)", mClientPid, callingPid); - return -EBUSY; - } - oldClient = mTvClient; - - // did the client actually change? - if ((mTvClient != NULL) && (IInterface::asBinder(client) == IInterface::asBinder(mTvClient))) { - LOGD("Connect to the same client"); - return NO_ERROR; - } - - mTvClient = client; - mClientPid = -1; - LOGD("Connect to the new client (pid %d, client %p)", callingPid, IInterface::asBinder(mTvClient).get()); - } - - } - mClientPid = callingPid; - return NO_ERROR; + int callingPid = getCallingPid(); + LOGD("Client::connect E (pid %d, client %p)", callingPid, IInterface::asBinder(client).get()); + { + sp<ITvClient> oldClient; + { + Mutex::Autolock _l(mLock); + if (mClientPid != 0 && checkPid() != NO_ERROR) { + LOGW("Tried to connect to locked tv (old pid %d, new pid %d)", mClientPid, callingPid); + return -EBUSY; + } + oldClient = mTvClient; + + // did the client actually change? + if ((mTvClient != NULL) && (IInterface::asBinder(client) == IInterface::asBinder(mTvClient))) { + LOGD("Connect to the same client"); + return NO_ERROR; + } + + mTvClient = client; + mClientPid = -1; + LOGD("Connect to the new client (pid %d, client %p)", callingPid, IInterface::asBinder(mTvClient).get()); + } + + } + mClientPid = callingPid; + return NO_ERROR; } TvService::Client::~Client() { - if (mIsStartTv) mpTv->StopTvLock(); - - int callingPid = getCallingPid(); - // tear down client - LOGD("Client::~Client E (pid %d, client %p)", callingPid, IInterface::asBinder(getTvClient()).get()); - // make sure we tear down the hardware - mClientPid = callingPid; - disconnect(); - LOGD("Client::~Client X (pid %d)", mClientPid); + if (mIsStartTv) mpTv->StopTvLock(); + + int callingPid = getCallingPid(); + // tear down client + LOGD("Client::~Client E (pid %d, client %p)", callingPid, IInterface::asBinder(getTvClient()).get()); + // make sure we tear down the hardware + mClientPid = callingPid; + disconnect(); + LOGD("Client::~Client X (pid %d)", mClientPid); } void TvService::Client::disconnect() { - int callingPid = getCallingPid(); + int callingPid = getCallingPid(); - LOGD("Client::disconnect() E (pid %d client %p)", callingPid, IInterface::asBinder(getTvClient()).get()); + LOGD("Client::disconnect() E (pid %d client %p)", callingPid, IInterface::asBinder(getTvClient()).get()); - Mutex::Autolock lock(mLock); - if (mClientPid <= 0) { - LOGE("tv is unlocked (mClientPid = %d), don't tear down hardware", mClientPid); - return; - } - if (checkPid() != NO_ERROR) { - LOGE("Different client - don't disconnect"); - return; - } + Mutex::Autolock lock(mLock); + if (mClientPid <= 0) { + LOGE("tv is unlocked (mClientPid = %d), don't tear down hardware", mClientPid); + return; + } + if (checkPid() != NO_ERROR) { + LOGE("Different client - don't disconnect"); + return; + } - mTvService->removeClient(mTvClient); - mTvService->decUsers(); + mTvService->removeClient(mTvClient); + mTvService->decUsers(); - LOGD("Client::disconnect() X (pid %d)", callingPid); + LOGD("Client::disconnect() X (pid %d)", callingPid); } status_t TvService::Client::createVideoFrame(const sp<IMemory> &share_mem, int iSourceMode, int iCapVideoLayerOnly) { - LOGD(" mem=%p size=%d", share_mem->pointer() == NULL, share_mem->size()); - LOGD("iSourceMode :%d iCapVideoLayerOnly = %d \n", iSourceMode, iCapVideoLayerOnly); - int Len = 0; - Mutex::Autolock lock(mLock); - mTvService->mCapVidFrame.InitVCap(share_mem); - - if ((1 == iSourceMode) && (1 == iCapVideoLayerOnly)) { - mTvService->mCapVidFrame.CapMediaPlayerVideoLayerOnly(1920, 1080); + LOGD(" mem=%p size=%d", share_mem->pointer() == NULL, share_mem->size()); + LOGD("iSourceMode :%d iCapVideoLayerOnly = %d \n", iSourceMode, iCapVideoLayerOnly); + int Len = 0; + Mutex::Autolock lock(mLock); + mTvService->mCapVidFrame.InitVCap(share_mem); + + if ((1 == iSourceMode) && (1 == iCapVideoLayerOnly)) { + mTvService->mCapVidFrame.CapMediaPlayerVideoLayerOnly(1920, 1080); #if 0 - mTvService->mCapVidFrame.SetVideoParameter(1920, 1080, 50); - mTvService->mCapVidFrame.VideoStart(); - mTvService->mCapVidFrame.GetVideoData(&Len); - mTvService->mCapVidFrame.VideoStop(); + mTvService->mCapVidFrame.SetVideoParameter(1920, 1080, 50); + mTvService->mCapVidFrame.VideoStart(); + mTvService->mCapVidFrame.GetVideoData(&Len); + mTvService->mCapVidFrame.VideoStop(); #endif - } else if (2 == iSourceMode && 0 == iCapVideoLayerOnly) { - mTvService->mCapVidFrame.CapOsdAndVideoLayer(1920, 1080); - } else if (2 == iSourceMode && 1 == iCapVideoLayerOnly) { - mTvService->mCapVidFrame.CapMediaPlayerVideoLayerOnly(1920, 1080); - } else { - LOGD("=============== NOT SUPPORT=======================\n"); - } - mTvService->mCapVidFrame.DeinitVideoCap(); - - return 0; + } else if (2 == iSourceMode && 0 == iCapVideoLayerOnly) { + mTvService->mCapVidFrame.CapOsdAndVideoLayer(1920, 1080); + } else if (2 == iSourceMode && 1 == iCapVideoLayerOnly) { + mTvService->mCapVidFrame.CapMediaPlayerVideoLayerOnly(1920, 1080); + } else { + LOGD("=============== NOT SUPPORT=======================\n"); + } + mTvService->mCapVidFrame.DeinitVideoCap(); + + return 0; } status_t TvService::Client::createSubtitle(const sp<IMemory> &share_mem) { - mSubBmpBuf = share_mem; - LOGD("createSubtitle pid = %d, mem=%d size=%d", getCallingPid(), share_mem->pointer() == NULL, share_mem->size()); - mpTv->setSubtitleBuffer((char *)mSubBmpBuf->pointer()); - mTvService->mpSubClient = this; - //pSub = new CTvSubtitle(share_mem, this); - //pSub->run(); - return 0; + mSubBmpBuf = share_mem; + LOGD("createSubtitle pid = %d, mem=%d size=%d", getCallingPid(), share_mem->pointer() == NULL, share_mem->size()); + mpTv->setSubtitleBuffer((char *)mSubBmpBuf->pointer()); + mTvService->mpSubClient = this; + //pSub = new CTvSubtitle(share_mem, this); + //pSub->run(); + return 0; } status_t TvService::Client::processCmd(const Parcel &p, Parcel *r) { - int tmp_i_buf[128] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}; - unsigned char tmp_uc_buf[512] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}; - unsigned char tmp_uc_buf2[512] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}; - int8_t tmp_int8_buf[512] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}; - static int source_input = 0; - int *data_ptr = NULL; - - int cmd = p.readInt32(); - - LOGD("enter client=%d cmd=%d", getCallingPid(), cmd); - switch (cmd) { - // Tv function - case OPEN_TV: { - break; - } - case CLOSE_TV: { - int ret = mpTv->CloseTv(); - r->writeInt32(ret); - break; - } - case START_TV: { - int mode = p.readInt32(); - int ret = mpTv->StartTvLock(); - //mTvService->mpStartTvClient = this; - mIsStartTv = true; - r->writeInt32(ret); - break; - } - case STOP_TV: { - int ret = mpTv->StopTvLock(); - r->writeInt32(ret); - mIsStartTv = false; - break; - } - case GET_TV_STATUS: { - int ret = 0; - ret = (int)mpTv->GetTvStatus(); - r->writeInt32(ret); - break; - } - case GET_LAST_SOURCE_INPUT: { - int ret = (int)mpTv->GetLastSourceInput(); - r->writeInt32(ret); - break; - } - case GET_CURRENT_SOURCE_INPUT: { - int ret = (int)mpTv->GetCurrentSourceInputLock(); - r->writeInt32(ret); - break; - } - case GET_CURRENT_SOURCE_INPUT_TYPE: { - int ret = 0;//(int)mpTv->Tvin_GetSrcInputType(); - r->writeInt32(ret); - break; - } - case GET_CURRENT_SIGNAL_INFO: { - tvin_info_t siginfo = mpTv->GetCurrentSignalInfo(); - int frame_rate = mpTv->getHDMIFrameRate(); - r->writeInt32(siginfo.trans_fmt); - r->writeInt32(siginfo.fmt); - r->writeInt32(siginfo.status); - r->writeInt32(frame_rate); - break; - } - case IS_SOURCE_SWTICH_DONE: { - //int ret = mpTv->Tv_IsSourceSwtichDone(); - r->writeInt32(0); - break; - } - case SET_SOURCE_INPUT: { - int sourceinput = p.readInt32(); - tvin_window_pos_t win_pos; - LOGD(" SetSourceInput sourceId= %x", sourceinput); - source_input = sourceinput; - int ret = mpTv->SetSourceSwitchInput((tv_source_input_t)sourceinput); - r->writeInt32(ret); - break; - } - case DO_SUSPEND: { - int type = p.readInt32(); - int ret = mpTv->DoSuspend(type); - r->writeInt32(ret); - break; - } - case DO_RESUME: { - int type = p.readInt32(); - int ret = mpTv->DoResume(type); - r->writeInt32(ret); - break; - } - case RUN_ADC_AUTO_CALIBRATION: { - // int ret = mpTv->Tv_RunADCAutoCalibration(); - // r->writeInt32(ret); - break; - } - case IS_DVI_SIGNAL: { - int ret = mpTv->IsDVISignal(); - r->writeInt32(ret); - break; - } - case IS_VGA_TIMEING_IN_HDMI: { - int ret = mpTv->isVgaFmtInHdmi(); - r->writeInt32(ret); - break; - } - case GET_VIDEO_PATH_STATUS: { - int path_type = p.readInt32(); - int ret = 0;//(int)mpTv->Tvin_CheckPathActive((tv_path_type_t)path_type); - r->writeInt32(ret); - break; - } - case GET_VIDEO_STREAM_STATUS: { - // int ret = (int)mpTv->Tvin_CheckVideoStreamStatus(); - // r->writeInt32(ret); - break; - } - case GET_FIRST_START_SWITCH_TYPE: { - //int tmp_val = 0; - //int ret = (int)mpTv->Tv_GetFirstStartSwitchType(&tmp_val); - //r->writeInt32(ret); - r->writeInt32(1); - break; - } - case SET_PREVIEW_WINDOW: { - tvin_window_pos_t win_pos; - win_pos.x1 = p.readInt32(); - win_pos.y1 = p.readInt32(); - win_pos.x2 = p.readInt32(); - win_pos.y2 = p.readInt32(); - int ret = (int)mpTv->SetPreviewWindow(win_pos); - r->writeInt32(ret); - break; - } - - case SET_VIDEO_DISABLE: { - int value = p.readInt32(); - int ret = 0;//(int)mpTv->Tv_SetVideoDisable(value); - r->writeInt32(ret); - break; - } - - case GET_SOURCE_CONNECT_STATUS: { - int source_input = p.readInt32(); - int ret = mpTv->GetSourceConnectStatus((tv_source_input_t)source_input); - r->writeInt32(ret); - break; - } - //Tv function END - - //VGA - case RUN_VGA_AUTO_ADJUST: { - //int ret = mpTv->Tv_RunVGAAutoAdjust(); - int ret = 0; - r->writeInt32(ret); - break; - } - case GET_VGA_AUTO_ADJUST_STATUS: { - // int fmt = p.readInt32(); - //int ret = (int) mpTv->Tv_GetVagAutoAdjustStatus(); - int ret = 0; - r->writeInt32(ret); - break; - } - case IS_VGA_AUTO_ADJUST_DONE: { - int fmt = p.readInt32(); - int ret = 0;//mpTv->Tv_IsVGAAutoAdjustDone((tvin_sig_fmt_t)fmt); - r->writeInt32(ret); - break; - } - case SET_VGA_HPOS: { - // int value = p.readInt32(); - // int fmt = p.readInt32(); - //int ret = mpTv->Tv_SetVGAHPos(value, (tvin_sig_fmt_t)fmt); - int ret = 0; - r->writeInt32(ret); - break; - } - case GET_VGA_HPOS: { - // int fmt = p.readInt32(); - // int ret = mpTv->Tv_GetVGAHPos((tvin_sig_fmt_t)fmt); - int ret = 0; - r->writeInt32(ret); - break; - } - - case SET_VGA_VPOS: { - // int value = p.readInt32(); - // int fmt = p.readInt32(); - // int ret = mpTv->Tv_SetVGAVPos(value, (tvin_sig_fmt_t)fmt); - int ret = 0; - r->writeInt32(ret); - break; - } - case GET_VGA_VPOS: { - // int fmt = p.readInt32(); - // int ret = mpTv->Tv_GetVGAVPos((tvin_sig_fmt_t)fmt); - int ret = 0; - r->writeInt32(ret); - break; - } - - case SET_VGA_CLOCK: { - // int value = p.readInt32(); - // int fmt = p.readInt32(); - // int ret = mpTv->Tv_SetVGAClock(value, (tvin_sig_fmt_t)fmt); - int ret = 0; - r->writeInt32(ret); - break; - } - case GET_VGA_CLOCK: { - // int fmt = p.readInt32(); - // int ret = mpTv->Tv_GetVGAClock((tvin_sig_fmt_t)fmt); - int ret = 0; - r->writeInt32(ret); - break; - } - - case SET_VGA_PHASE: { - // int value = p.readInt32(); - // int fmt = p.readInt32(); - // int ret = mpTv->Tv_SetVGAPhase(value, (tvin_sig_fmt_t)fmt); - int ret = 0; - r->writeInt32(ret); - break; - } - case GET_VGA_PHASE: { - // int fmt = p.readInt32(); - // int ret = mpTv->Tv_GetVGAPhase((tvin_sig_fmt_t)fmt); - int ret = 0; - r->writeInt32(ret); - break; - } - case SET_VGA_AJUST_PARA: { - tvafe_vga_parm_t adjparam; - adjparam.clk_step = p.readInt32(); - adjparam.phase = p.readInt32(); - adjparam.hpos_step = p.readInt32(); - adjparam.vpos_step = p.readInt32(); - adjparam.vga_in_clean = p.readInt32(); - int fmt = p.readInt32(); - int ret = 0/*SetVGAAjustPara(adjparam, (tvin_sig_fmt_t)fmt)*/; - r->writeInt32(ret); - break; - } - case GET_VGA_AJUST_PARA: { - tvafe_vga_parm_t adjparam; - int fmt = p.readInt32(); - int ret = 0/*GetVGAAjustPara(&adjparam, (tvin_sig_fmt_t)fmt)*/; - r->writeInt32(adjparam.clk_step); - r->writeInt32(adjparam.phase); - r->writeInt32(adjparam.hpos_step); - r->writeInt32(adjparam.vpos_step); - r->writeInt32(adjparam.vga_in_clean); - r->writeInt32(ret); - break; - } - case SET_VGAPARAM_DEFAULT: { - // int ret = (int)mpTv->TvinResetVgaAjustParam(); - // r->writeInt32(ret); - break; - } - // VGA END - - // 3D - - case SET_3D_MODE: { - int mode = p.readInt32(); - int ret = mpTv->Tv_Set3DMode((VIDEO_3D_MODE_T)mode); - r->writeInt32(ret); - break; - } - case GET_3D_MODE: { - int ret = (int)mpTv->Tv_Get3DMode(); - r->writeInt32(ret); - break; - } - case SET_3D_LR_SWITH: { - int on_off = p.readInt32(); - //int status = p.readInt32(); - int ret = mpTv->Tv_Set3DLRSwith(on_off); - r->writeInt32(ret); - break; - } - case GET_3D_LR_SWITH: { - int ret = mpTv->Tv_Get3DLRSwith(); - r->writeInt32(ret); - break; - } - case SET_3D_TO_2D_MODE: { - int mode = p.readInt32(); - //int status = p.readInt32(); - int ret = mpTv->Tv_Set3DTo2DMode(mode); - r->writeInt32(ret); - break; - } - case GET_3D_TO_2D_MODE: { - int ret = mpTv->Tv_Get3DTo2DMode(); - r->writeInt32(ret); - break; - } - case SET_3D_DEPTH: { - int value = p.readInt32(); - int ret = mpTv->Tv_Set3DDepth(value); - r->writeInt32(ret); - break; - } - case GET_3D_DEPTH: { - int ret = mpTv->GetSave3DDepth(); - r->writeInt32(ret); - break; - } - // 3D END - - // PQ - case SET_BRIGHTNESS: { - int brightness = p.readInt32(); - int source_type = p.readInt32(); - int is_save = p.readInt32(); - int ret = mpTv->Tv_SetBrightness(brightness, (tv_source_input_type_t)source_type, is_save); - r->writeInt32(ret); - break; - } - case GET_BRIGHTNESS: { - int source_type = p.readInt32(); - LOGD("GET_BRIGHTNESS------------=%d", source_type); - int ret = mpTv->Tv_GetBrightness((tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SAVE_BRIGHTNESS: { - int brightness = p.readInt32(); - int source_type = p.readInt32(); - int ret = mpTv->Tv_SaveBrightness(brightness, (tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - - case SET_CONTRAST: { - int contrast = p.readInt32(); - int source_type = p.readInt32(); - int is_save = p.readInt32(); - int ret = mpTv->Tv_SetContrast(contrast, (tv_source_input_type_t)source_type, is_save); - r->writeInt32(ret); - break; - } - case GET_CONTRAST: { - int source_type = p.readInt32(); - int ret = mpTv->Tv_GetContrast((tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SAVE_CONTRAST: { - int contrast = p.readInt32(); - int source_type = p.readInt32(); - int ret = mpTv->Tv_SaveContrast(contrast, (tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SET_SATUATION: { - int satuation = p.readInt32(); - int source_type = p.readInt32(); - int fmt = p.readInt32(); - int is_save = p.readInt32(); - int ret = mpTv->Tv_SetSaturation(satuation, (tv_source_input_type_t)source_type, (tvin_sig_fmt_t)fmt, is_save); - r->writeInt32(ret); - break; - } - case GET_SATUATION: { - int source_type = p.readInt32(); - int ret = mpTv->Tv_GetSaturation((tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SAVE_SATUATION: { - int satuation = p.readInt32(); - int source_type = p.readInt32(); - int ret = mpTv->Tv_SaveSaturation(satuation, (tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SET_HUE: { - int hue = p.readInt32(); - int source_type = p.readInt32(); - int fmt = p.readInt32(); - int is_save = p.readInt32(); - int ret = mpTv->Tv_SetHue(hue, (tv_source_input_type_t)source_type, (tvin_sig_fmt_t)fmt, is_save); - r->writeInt32(ret); - break; - } - case GET_HUE: { - int source_type = p.readInt32(); - int ret = mpTv->Tv_GetHue((tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SAVE_HUE: { - int hue = p.readInt32(); - int source_type = p.readInt32(); - int ret = mpTv->Tv_SaveHue(hue, (tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SET_SCENEMODE: { - int mode = p.readInt32(); - int is_save = p.readInt32(); - int ret = 0;//mpTv->Tv_SetSceneMode((vpp_scene_mode_t)mode,is_save); - r->writeInt32(ret); - break; - } - case GET_SCENEMODE: { - int ret = 0;//(int)mpTv->Tv_GetSceneMode(); - r->writeInt32(ret); - break; - } - case SET_PQMODE: { - int mode = p.readInt32(); - int source_type = p.readInt32(); - int is_save = p.readInt32(); - int ret = mpTv->Tv_SetPQMode((vpp_picture_mode_t)mode, (tv_source_input_type_t)source_type, is_save); - r->writeInt32(ret); - break; - } - case GET_PQMODE: { - int source_type = p.readInt32(); - int ret = (int)mpTv->Tv_GetPQMode((tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SAVE_PQMODE: { - int mode = p.readInt32(); - int source_type = p.readInt32(); - int ret = mpTv->Tv_SavePQMode((vpp_picture_mode_t)mode, (tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SET_SHARPNESS: { - int value = p.readInt32(); - int source_type = p.readInt32(); - int en = p.readInt32(); - int status_3d = p.readInt32(); - int is_save = p.readInt32(); - int ret = mpTv->Tv_SetSharpness(value, (tv_source_input_type_t)source_type, en, is_save); - r->writeInt32(ret); - break; - } - case GET_SHARPNESS: { - int source_type = p.readInt32(); - int ret = mpTv->Tv_GetSharpness((tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SAVE_SHARPNESS: { - int value = p.readInt32(); - int source_type = p.readInt32(); - int is_save = p.readInt32(); - int ret = mpTv->Tv_SaveSharpness(value, (tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SET_BACKLIGHT: { - int value = p.readInt32(); - int source_type = p.readInt32(); - int is_save = p.readInt32(); - int ret = mpTv->Tv_SetBacklight(value, (tv_source_input_type_t)source_type, is_save); - r->writeInt32(ret); - break; - } - case GET_BACKLIGHT: { - int source_type = p.readInt32(); - int ret = mpTv->Tv_GetBacklight((tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SAVE_BACKLIGHT: { - int value = p.readInt32(); - int source_type = p.readInt32(); - int ret = mpTv->Tv_SaveBacklight ( value, (tv_source_input_type_t)source_type ); - r->writeInt32(ret); - break; - } - case SET_BACKLIGHT_SWITCH: { - int value = p.readInt32(); - int ret = mpTv->Tv_SetBacklight_Switch(value); - r->writeInt32(ret); - break; - } - case GET_BACKLIGHT_SWITCH: { - int ret = mpTv->Tv_GetBacklight_Switch(); - r->writeInt32(ret); - break; - } - case SET_COLOR_TEMPERATURE: { - int mode = p.readInt32(); - int source_type = p.readInt32(); - int is_save = p.readInt32(); - int ret = mpTv->Tv_SetColorTemperature((vpp_color_temperature_mode_t)mode, (tv_source_input_type_t)source_type, is_save); - r->writeInt32(ret); - break; - } - case GET_COLOR_TEMPERATURE: { - int source_type = p.readInt32(); - int ret = mpTv->Tv_GetColorTemperature((tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SAVE_COLOR_TEMPERATURE: { - int mode = p.readInt32(); - int source_type = p.readInt32(); - int ret = mpTv->Tv_SaveColorTemperature ( (vpp_color_temperature_mode_t)mode, (tv_source_input_type_t)source_type ); - r->writeInt32(ret); - break; - } - case SET_DISPLAY_MODE: { - int mode = p.readInt32(); - int source_type = p.readInt32(); - int fmt = p.readInt32(); - int is_save = p.readInt32(); - int ret = mpTv->Tv_SetDisplayMode((vpp_display_mode_t)mode, (tv_source_input_type_t)source_type, (tvin_sig_fmt_t)fmt, is_save); - r->writeInt32(ret); - break; - } - case GET_DISPLAY_MODE: { - int source_type = p.readInt32(); - int ret = (int)mpTv->Tv_GetDisplayMode((tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SAVE_DISPLAY_MODE: { - int mode = p.readInt32(); - int source_type = p.readInt32(); - int ret = mpTv->Tv_SaveDisplayMode((vpp_display_mode_t)mode, (tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SET_NOISE_REDUCTION_MODE: { - int mode = p.readInt32(); - int source_type = p.readInt32(); - int is_save = p.readInt32(); - int ret = mpTv->Tv_SetNoiseReductionMode((vpp_noise_reduction_mode_t)mode, (tv_source_input_type_t)source_type, is_save); - r->writeInt32(ret); - break; - } - case GET_NOISE_REDUCTION_MODE: { - int source_type = p.readInt32(); - int ret = mpTv->Tv_GetNoiseReductionMode((tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case SAVE_NOISE_REDUCTION_MODE: { - int mode = p.readInt32(); - int source_type = p.readInt32(); - int ret = mpTv->Tv_SaveNoiseReductionMode((vpp_noise_reduction_mode_t)mode, (tv_source_input_type_t)source_type); - r->writeInt32(ret); - break; - } - case VPP_SPLIT_SCREEN_EFFECT: { - int mode = p.readInt32(); - int width = p.readInt32(); - int reverse = p.readInt32(); - int ret = mpTv->Tv_SplitScreenEffect(mode, width, reverse); - r->writeInt32(ret); - break; - } - // PQ END - - // FACTORY - case FACTORY_SETPQMODE_BRIGHTNESS: { - int source_type = p.readInt32(); - int pq_mode = p.readInt32(); - int brightness = p.readInt32(); - int ret = mpTv->Tv_FactorySetPQMode_Brightness(source_type, pq_mode, brightness); - r->writeInt32(ret); - break; - } - case FACTORY_GETPQMODE_BRIGHTNESS: { - int source_type = p.readInt32(); - int pq_mode = p.readInt32(); - int ret = mpTv->Tv_FactoryGetPQMode_Brightness(source_type, pq_mode); - r->writeInt32(ret); - break; - } - case FACTORY_SETPQMODE_CONTRAST: { - int source_type = p.readInt32(); - int pq_mode = p.readInt32(); - int contrast = p.readInt32(); - int ret = mpTv->Tv_FactorySetPQMode_Contrast(source_type, pq_mode, contrast); - r->writeInt32(ret); - break; - } - case FACTORY_GETPQMODE_CONTRAST: { - int source_type = p.readInt32(); - int pq_mode = p.readInt32(); - int ret = mpTv->Tv_FactoryGetPQMode_Contrast(source_type, pq_mode); - r->writeInt32(ret); - break; - } - case FACTORY_SETPQMODE_SATURATION: { - int source_type = p.readInt32(); - int pq_mode = p.readInt32(); - int saturation = p.readInt32(); - int ret = mpTv->Tv_FactorySetPQMode_Saturation(source_type, pq_mode, saturation); - r->writeInt32(ret); - break; - } - case FACTORY_GETPQMODE_SATURATION: { - int source_type = p.readInt32(); - int pq_mode = p.readInt32(); - int ret = mpTv->Tv_FactoryGetPQMode_Saturation(source_type, pq_mode); - r->writeInt32(ret); - break; - } - case FACTORY_SETPQMODE_HUE: { - int source_type = p.readInt32(); - int pq_mode = p.readInt32(); - int hue = p.readInt32(); - int ret = mpTv->Tv_FactorySetPQMode_Hue(source_type, pq_mode, hue); - r->writeInt32(ret); - break; - } - case FACTORY_GETPQMODE_HUE: { - int source_type = p.readInt32(); - int pq_mode = p.readInt32(); - int ret = mpTv->Tv_FactoryGetPQMode_Hue(source_type, pq_mode); - r->writeInt32(ret); - break; - } - case FACTORY_SETPQMODE_SHARPNESS: { - int source_type = p.readInt32(); - int pq_mode = p.readInt32(); - int sharpness = p.readInt32(); - int ret = mpTv->Tv_FactorySetPQMode_Sharpness(source_type, pq_mode, sharpness); - r->writeInt32(ret); - break; - } - case FACTORY_GETPQMODE_SHARPNESS: { - int source_type = p.readInt32(); - int pq_mode = p.readInt32(); - int ret = mpTv->Tv_FactoryGetPQMode_Sharpness(source_type, pq_mode); - - r->writeInt32(ret); - break; - } - case FACTORY_SETTESTPATTERN: { - int pattern = p.readInt32(); - int ret = mpTv->Tv_FactorySetTestPattern(pattern); - r->writeInt32(ret); - break; - } - case FACTORY_GETTESTPATTERN: { - int ret = mpTv->Tv_FactoryGetTestPattern(); - r->writeInt32(ret); - break; - } - case FACTORY_SETPATTERN_YUV: { - int blend = p.readInt32(); - int y = p.readInt32(); - int u = p.readInt32(); - int v = p.readInt32(); - int ret = mpTv->Tv_FactorySetScreenColor(blend,y,u,v); - r->writeInt32(ret); - break; - } - case FACTORY_RESETPQMODE: { - int ret = mpTv->Tv_FactoryResetPQMode(); - r->writeInt32(ret); - break; - } - case FACTORY_RESETCOLORTEMP: { - int ret = mpTv->Tv_FactoryResetColorTemp(); - r->writeInt32(ret); - break; - } - case FACTORY_RESETPAMAMSDEFAULT: { - int ret = mpTv->Tv_FactorySetParamsDefault(); - r->writeInt32(ret); - break; - } - case FACTORY_SETDDRSSC: { - int setp = p.readInt32(); - int ret = mpTv->Tv_FactorySetDDRSSC(setp); - r->writeInt32(ret); - break; - } - case FACTORY_GETDDRSSC: { - int ret = mpTv->Tv_FactoryGetDDRSSC(); - r->writeInt32(ret); - break; - } - case FACTORY_SETLVDSSSC: { - int setp = p.readInt32(); - int ret = mpTv->Tv_FactorySetLVDSSSC(setp); - r->writeInt32(ret); - break; - } - case FACTORY_GETLVDSSSC: { - int ret = mpTv->Tv_FactoryGetLVDSSSC(); - r->writeInt32(ret); - break; - } - case FACTORY_SETNOLINEPARAMS: { - noline_params_t params; - int noline_params_type = p.readInt32(); - int source_type = p.readInt32(); - params.osd0 = p.readInt32(); - params.osd25 = p.readInt32(); - params.osd50 = p.readInt32(); - params.osd75 = p.readInt32(); - params.osd100 = p.readInt32(); - int ret = mpTv->Tv_FactorySetNolineParams(noline_params_type, source_type, params); - r->writeInt32(ret); - break; - } - case FACTORY_GETNOLINEPARAMS: { - int noline_params_type = p.readInt32(); - int source_type = p.readInt32(); - noline_params_t params = mpTv->Tv_FactoryGetNolineParams(noline_params_type, source_type); - r->writeInt32(params.osd0); - r->writeInt32(params.osd25); - r->writeInt32(params.osd50); - r->writeInt32(params.osd75); - r->writeInt32(params.osd100); - break; - } - case FACTORY_SETOVERSCAN: { - tvin_cutwin_t cutwin_t; - int source_type = p.readInt32(); - int fmt = p.readInt32(); - int status_3d = p.readInt32(); - int trans_fmt = p.readInt32(); - cutwin_t.hs = p.readInt32(); - cutwin_t.he = p.readInt32(); - cutwin_t.vs = p.readInt32(); - cutwin_t.ve = p.readInt32(); - int ret = mpTv->Tv_FactorySetOverscan(source_type, fmt, status_3d, trans_fmt, cutwin_t); - r->writeInt32(ret); - break; - } - case FACTORY_GETOVERSCAN: { - int source_type = p.readInt32(); - int fmt = p.readInt32(); - int status_3d = p.readInt32(); - int trans_fmt = p.readInt32(); - tvin_cutwin_t cutwin_t = mpTv->Tv_FactoryGetOverscan(source_type, fmt, status_3d, trans_fmt); - r->writeInt32(cutwin_t.hs); - r->writeInt32(cutwin_t.he); - r->writeInt32(cutwin_t.vs); - r->writeInt32(cutwin_t.ve); - break; - } - case DELETE_PARAM_PQ_DB: { - int tmpRet = mpTv->Tv_ReplacePqDb(); - r->writeInt32(tmpRet); - } - case REPLACE_PARAM_PQ_DB: { - int tmpRet; - String16 tmp_str16; - String8 value_str; - - tmp_str16 = p.readString16(); - value_str = String8(tmp_str16); - - tmpRet = mpTv->Tv_ReplacePqDb(value_str.string()); - r->writeInt32(tmpRet); - break; - } - case FACTORY_SET_OUT_DEFAULT: { - int ret = 0; - ret = mpTv->Tv_SSMFacRestoreDefaultSetting(); - r->writeInt32(ret); - break; - } - case FACTORY_GETGLOBALOGO_RGAIN: { - int ret = 0; - r->writeInt32(ret); - break; - } - case FACTORY_GETGLOBALOGO_GGAIN: { - int ret = 0; - r->writeInt32(ret); - break; - } - case FACTORY_GETGLOBALOGO_BGAIN: { - int ret = 0; - r->writeInt32(ret); - break; - } - case FACTORY_GETGLOBALOGO_ROFFSET: { - int ret = 0; - r->writeInt32(ret); - break; - } - case FACTORY_GETGLOBALOGO_GOFFSET: { - int ret = 0; - r->writeInt32(ret); - break; - } - case FACTORY_GETGLOBALOGO_BOFFSET: { - int ret = 0; - r->writeInt32(ret); - break; - } - case FACTORY_SETGLOBALOGO_RGAIN: { - int ret = 0; - r->writeInt32(ret); - break; - } - case FACTORY_SETGLOBALOGO_GGAIN: { - int p1 = p.readInt32(); - int ret = 0; - r->writeInt32(ret); - break; - } - case FACTORY_SETGLOBALOGO_BGAIN: { - int p1 = p.readInt32(); - int ret = 0; - r->writeInt32(ret); - break; - } - case FACTORY_SETGLOBALOGO_ROFFSET: { - int p1 = p.readInt32(); - int ret = 0; - r->writeInt32(ret); - break; - } - case FACTORY_SETGLOBALOGO_GOFFSET: { - int p1 = p.readInt32(); - int ret = 0; - r->writeInt32(ret); - break; - } - case FACTORY_SETGLOBALOGO_BOFFSET: { - int p1 = p.readInt32(); - int ret = 0; - r->writeInt32(ret); - break; - } - case FACTORY_CLEAN_ALL_TABLE_FOR_PROGRAM: { - int ret = mpTv->ClearAnalogFrontEnd(); - mpTv->clearDbAllProgramInfoTable(); - r->writeInt32(ret); - break; - } - case FACTORY_SETBACKLIGHT_PWM_FREQUENCY: { - int value = p.readInt32(); - int ret = 0;//mpTv->GetVpp().Tv_FactorySetBacklightPWM_Frequency(value); - r->writeInt32(ret); - break; - } - case FACTORY_GETBACKLIGHT_PWM_FREQUENCY: { - int ret = 0;//mpTv->GetVpp().Tv_FactoryGetBacklightPWM_Frequency(); - r->writeInt32(ret); - break; - } - case FACTORY_SETBACKLIGHT_SWITCH_STATUS: { - int value = p.readInt32(); - int ret = 0;//mpTv->GetVpp().Tv_FactorySetBacklight_Switch_status(value); - r->writeInt32(ret); - break; - } - case FACTORY_GETBACKLIGHT_SWITCH_STATUS: { - int ret = 0;//mpTv->GetVpp().Tv_FactoryGetBacklight_Switch_status(); - r->writeInt32(ret); - break; - } - case FACTORY_SETBACKLIGHT_PWM_DUTY: { - int value = p.readInt32(); - int ret = 0;//mpTv->GetVpp().Tv_FactorySetBacklightPWM_Duty(value); - r->writeInt32(ret); - break; - } - case FACTORY_GETBACKLIGHT_PWM_DUTY: { - int ret = 0;//mpTv->GetVpp().Tv_FactoryGetBacklightPWM_Duty(); - r->writeInt32(ret); - break; - } - - case FACTORY_SETLVDS_COLOR_DEPTH: { - int value = p.readInt32(); - int ret = 0;//mpTv->GetVpp().Tv_FactorySetLVDS_ColorDepth(value); - r->writeInt32(ret); - break; - } - case FACTORY_GETLVDS_COLOR_DEPTH: { - int ret = 0;//mpTv->GetVpp().Tv_FactoryGetLVDS_ColorDepth(); - r->writeInt32(ret); - break; - } - case FACTORY_SETLVDS_DITHER_STATUS: { - int value = p.readInt32(); - int ret = 0;//mpTv->GetVpp().Tv_FactorySetLVDS_ColorDither_status(value); - r->writeInt32(ret); - break; - } - case FACTORY_GETLVDS_DITHER_STATUS: { - int ret = 0;//mpTv->GetVpp().Tv_FactoryGetLVDS_ColorDither_status(); - r->writeInt32(ret); - break; - } - case FACTORY_SETLVDS_MAPPING_STATUS: { - int value = p.readInt32(); - int ret = 0;//mpTv->GetVpp().Tv_FactorySetLVDS_Mapping_status(value); - r->writeInt32(ret); - break; - } - case FACTORY_GETLVDS_MAPPING_STATUS: { - int ret = 0;//mpTv->GetVpp().Tv_FactoryGetLVDS_Mapping_status(); - r->writeInt32(ret); - break; - } - case FACTORY_SETLVDS_PORT_SWAP_STATUS: { - int value = p.readInt32(); - int ret = 0;//mpTv->GetVpp().Tv_FactorySetLVDS_PortSwap_status(value); - r->writeInt32(ret); - break; - } - case FACTORY_GETLVDS_PORT_SWAP_STATUS: { - int ret = 0;//mpTv->GetVpp().Tv_FactoryGetLVDS_PortSwap_status(); - r->writeInt32(ret); - break; - } - // FACTORY END - - // AUDIO - // AUDIO MUTE - case SET_AUDIO_MUTEKEY_STATUS: { - int status = p.readInt32(); - int ret = mpTv->SetAudioMuteForSystem(status); - r->writeInt32(ret); - break; - } - case GET_AUDIO_MUTEKEY_STATUS: { - int ret = mpTv->GetAudioMuteForSystem(); - r->writeInt32(ret); - break; - } - case SET_AUDIO_FORCE_MUTE_STATUS: { - int status = p.readInt32(); - int ret = 0;//pTv->getTvAudio().AudioSetForceMuteStatus(status); - r->writeInt32(ret); - break; - } - case GET_AUDIO_FORCE_MUTE_STATUS: { - int ret = 0;//mpTv->AudioGetForceMuteStatus(); - r->writeInt32(ret); - break; - } - case SET_AUDIO_AVOUT_MUTE_STATUS: { - int status = p.readInt32(); - int ret = mpTv->SetAudioAVOutMute(status); - r->writeInt32(ret); - break; - } - case GET_AUDIO_AVOUT_MUTE_STATUS: { - int ret = mpTv->GetAudioAVOutMute(); - r->writeInt32(ret); - break; - } - case SET_AUDIO_SPDIF_MUTE_STATUS: { - int status = p.readInt32(); - int ret = mpTv->SetAudioSPDIFMute(status); - r->writeInt32(ret); - break; - } - case GET_AUDIO_SPDIF_MUTE_STATUS: { - int ret = mpTv->GetAudioSPDIFMute(); - r->writeInt32(ret); - break; - } - // AUDIO MASTER VOLUME - case SET_AUDIO_MASTER_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioMasterVolume(vol); - r->writeInt32(ret); - break; - } - case GET_AUDIO_MASTER_VOLUME: { - int ret = mpTv->GetAudioMasterVolume(); - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_MASTER_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioMasterVolume(vol); - r->writeInt32(ret); - break; - } - case GET_CUR_AUDIO_MASTER_VOLUME: { - int ret = mpTv->GetCurAudioMasterVolume(); - r->writeInt32(ret); - break; - } - //AUDIO BALANCE - case SET_AUDIO_BALANCE: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioBalance(vol); - r->writeInt32(ret); - break; - } - case GET_AUDIO_BALANCE: { - int ret = mpTv->GetAudioBalance(); - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_BALANCE: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioBalance(vol); - r->writeInt32(ret); - break; - } - case GET_CUR_AUDIO_BALANCE: { - int ret = mpTv->GetCurAudioBalance(); - r->writeInt32(ret); - break; - } - //AUDIO SUPPERBASS VOLUME - case SET_AUDIO_SUPPER_BASS_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioSupperBassVolume(vol); - r->writeInt32(ret); - break; - } - case GET_AUDIO_SUPPER_BASS_VOLUME: { - int ret = mpTv->GetAudioSupperBassVolume(); - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_SUPPER_BASS_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioSupperBassVolume(vol); - r->writeInt32(ret); - break; - } - case GET_CUR_AUDIO_SUPPER_BASS_VOLUME: { - int ret = mpTv->GetCurAudioSupperBassVolume(); - r->writeInt32(ret); - break; - } - //AUDIO SUPPERBASS SWITCH - case SET_AUDIO_SUPPER_BASS_SWITCH: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioSupperBassSwitch(vol); - r->writeInt32(ret); - break; - } - case GET_AUDIO_SUPPER_BASS_SWITCH: { - int ret = mpTv->GetAudioSupperBassSwitch(); - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_SUPPER_BASS_SWITCH: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioSupperBassSwitch(vol); - r->writeInt32(ret); - break; - } - case GET_CUR_AUDIO_SUPPER_BASS_SWITCH: { - int ret = mpTv->GetCurAudioSupperBassSwitch(); - r->writeInt32(ret); - break; - } - //AUDIO SRS SURROUND SWITCH - case SET_AUDIO_SRS_SURROUND: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioSRSSurround(vol); - mpTv->RefreshAudioMasterVolume(SOURCE_MAX); - r->writeInt32(ret); - break; - } - case GET_AUDIO_SRS_SURROUND: { - int ret = mpTv->GetAudioSRSSurround(); - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_SRS_SURROUND: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioSrsSurround(vol); - r->writeInt32(ret); - break; - } - case GET_CUR_AUDIO_SRS_SURROUND: { - int ret = mpTv->GetCurAudioSRSSurround(); - r->writeInt32(ret); - break; - } - //AUDIO SRS DIALOG CLARITY - case SET_AUDIO_SRS_DIALOG_CLARITY: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioSrsDialogClarity(vol); - mpTv->RefreshAudioMasterVolume(SOURCE_MAX); - r->writeInt32(ret); - break; - } - case GET_AUDIO_SRS_DIALOG_CLARITY: { - int ret = mpTv->GetAudioSrsDialogClarity(); - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_SRS_DIALOG_CLARITY: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioSrsDialogClarity(vol); - r->writeInt32(ret); - break; - } - case GET_CUR_AUDIO_SRS_DIALOG_CLARITY: { - int ret = mpTv->GetCurAudioSrsDialogClarity(); - r->writeInt32(ret); - break; - } - //AUDIO SRS TRUBASS - case SET_AUDIO_SRS_TRU_BASS: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioSrsTruBass(vol); - mpTv->RefreshAudioMasterVolume(SOURCE_MAX); - r->writeInt32(ret); - break; - } - case GET_AUDIO_SRS_TRU_BASS: { - int ret = mpTv->GetAudioSrsTruBass(); - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_SRS_TRU_BASS: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioSrsTruBass(vol); - r->writeInt32(ret); - break; - } - case GET_CUR_AUDIO_SRS_TRU_BASS: { - int ret = mpTv->GetCurAudioSrsTruBass(); - r->writeInt32(ret); - break; - } - //AUDIO BASS - case SET_AUDIO_BASS_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioBassVolume(vol); - r->writeInt32(ret); - break; - } - case GET_AUDIO_BASS_VOLUME: { - int ret = mpTv->GetAudioBassVolume(); - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_BASS_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioBassVolume(vol); - r->writeInt32(ret); - break; - } - case GET_CUR_AUDIO_BASS_VOLUME: { - int ret = mpTv->GetCurAudioBassVolume(); - r->writeInt32(ret); - break; - } - //AUDIO TREBLE - case SET_AUDIO_TREBLE_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioTrebleVolume(vol); - r->writeInt32(ret); - break; - } - case GET_AUDIO_TREBLE_VOLUME: { - int ret = mpTv->GetAudioTrebleVolume(); - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_TREBLE_VOLUME: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioTrebleVolume(vol); - r->writeInt32(ret); - break; - } - case GET_CUR_AUDIO_TREBLE_VOLUME: { - int ret = mpTv->GetCurAudioTrebleVolume(); - r->writeInt32(ret); - break; - } - //AUDIO SOUND MODE - case SET_AUDIO_SOUND_MODE: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioSoundMode(vol); - r->writeInt32(ret); - break; - } - case GET_AUDIO_SOUND_MODE: { - int ret = mpTv->GetAudioSoundMode(); - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_SOUND_MODE: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioSoundMode(vol); - r->writeInt32(ret); - break; - } - case GET_CUR_AUDIO_SOUND_MODE: { - int ret = mpTv->GetCurAudioSoundMode(); - r->writeInt32(ret); - break; - } - //AUDIO WALL EFFECT - case SET_AUDIO_WALL_EFFECT: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioWallEffect(vol); - r->writeInt32(ret); - break; - } - case GET_AUDIO_WALL_EFFECT: { - int ret = mpTv->GetAudioWallEffect(); - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_WALL_EFFECT: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioWallEffect(vol); - r->writeInt32(ret); - break; - } - case GET_CUR_AUDIO_WALL_EFFECT: { - int ret = mpTv->GetCurAudioWallEffect(); - r->writeInt32(ret); - break; - } - //AUDIO EQ MODE - case SET_AUDIO_EQ_MODE: { - int vol = p.readInt32(); - int ret = mpTv->SetAudioEQMode(vol); - r->writeInt32(ret); - break; - } - case GET_AUDIO_EQ_MODE: { - int ret = mpTv->GetAudioEQMode(); - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_EQ_MODE: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioEQMode(vol); - r->writeInt32(ret); - break; - } - case GET_CUR_AUDIO_EQ_MODE: { - int ret = mpTv->GetCurAudioEQMode(); - r->writeInt32(ret); - break; - } - //AUDIO EQ GAIN - case GET_AUDIO_EQ_RANGE: { - int buf[2]; - int ret = mpTv->GetAudioEQRange(buf); - r->writeInt32(2); - r->writeInt32(buf[0]); - r->writeInt32(buf[1]); - r->writeInt32(ret); - break; - } - case GET_AUDIO_EQ_BAND_COUNT: { - int ret = mpTv->GetAudioEQBandCount(); - r->writeInt32(ret); - break; - } - case SET_AUDIO_EQ_GAIN: { - int i = 0, tmp_buf_size = 0, ret = 0; - tmp_buf_size = p.readInt32(); - for (i = 0; i < tmp_buf_size; i++) { - tmp_i_buf[i] = p.readInt32(); - } - ret = mpTv->SetAudioEQGain(tmp_i_buf); - r->writeInt32(ret); - break; - } - case GET_AUDIO_EQ_GAIN: { - int i = 0, tmp_buf_size = 0, ret = 0; - ret = mpTv->GetAudioEQGain(tmp_i_buf); - tmp_buf_size = mpTv->GetAudioEQBandCount(); - r->writeInt32(tmp_buf_size); - for (i = 0; i < tmp_buf_size; i++) { - r->writeInt32(tmp_i_buf[i]); - } - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_EQ_GAIN: { - int i = 0, tmp_buf_size = 0, ret = 0; - tmp_buf_size = p.readInt32(); - for (i = 0; i < tmp_buf_size; i++) { - tmp_i_buf[i] = p.readInt32(); - } - ret = mpTv->SaveCurAudioEQGain(tmp_i_buf); - r->writeInt32(ret); - break; - } - case GET_CUR_EQ_GAIN: { - int i = 0, tmp_buf_size = 0, ret = 0; - ret = mpTv->GetCurAudioEQGain(tmp_i_buf); - tmp_buf_size = mpTv->GetAudioEQBandCount(); - r->writeInt32(tmp_buf_size); - for (i = 0; i < tmp_buf_size; i++) { - r->writeInt32(tmp_i_buf[i]); - } - r->writeInt32(ret); - break; - } - case SET_AUDIO_EQ_SWITCH: { - int tmpVal = p.readInt32(); - int ret = mpTv->SetAudioEQSwitch(tmpVal); - r->writeInt32(ret); - break; - } - // AUDIO SPDIF SWITCH - case SET_AUDIO_SPDIF_SWITCH: { - int tmp_val = p.readInt32(); - int ret = mpTv->SetAudioSPDIFSwitch(tmp_val); - r->writeInt32(ret); - break; - } - case GET_AUDIO_SPDIF_SWITCH: { - int ret = 0;//mpTv->GetAudioSPDIFSwitch(); - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_SPDIF_SWITCH: { - int tmp_val = p.readInt32(); - int ret = mpTv->SaveCurAudioSPDIFSwitch(tmp_val); - r->writeInt32(ret); - break; - } - case GET_CUR_AUDIO_SPDIF_SWITCH: { - int ret = mpTv->GetCurAudioSPDIFSwitch(); - r->writeInt32(ret); - break; - } - //AUDIO SPDIF MODE - case SET_AUDIO_SPDIF_MODE: { - int vol = p.readInt32(); - int progId = p.readInt32(); - int audioTrackId = p.readInt32(); - int ret = mpTv->SetAudioSPDIFMode(vol); - mpTv->ResetAudioDecoderForPCMOutput(); - r->writeInt32(ret); - break; - } - case GET_AUDIO_SPDIF_MODE: { - int ret = 0;//mpTv->GetAudioSPDIFMode(); - r->writeInt32(ret); - break; - } - case SAVE_CUR_AUDIO_SPDIF_MODE: { - int vol = p.readInt32(); - int ret = mpTv->SaveCurAudioSPDIFMode(vol); - r->writeInt32(ret); - break; - } - case GET_CUR_AUDIO_SPDIF_MODE: { - int ret = mpTv->GetCurAudioSPDIFMode(); - r->writeInt32(ret); - break; - } - case OPEN_AMAUDIO: { - int sr = p.readInt32(); - int output_dev = p.readInt32(); - int ret = 0;//mpTv->OpenAmAudio(sr, output_dev); - r->writeInt32(ret); - break; - } - case CLOSE_AMAUDIO: { - int ret = 0;//mpTv->CloseAmAudio(); - r->writeInt32(ret); - break; - } - case SET_AMAUDIO_INPUT_SR: { - int sr = p.readInt32(); - int output_dev = p.readInt32(); - int ret = 0;//mpTv->SetAmAudioInputSr(sr, output_dev); - r->writeInt32(ret); - break; - } - case SET_AMAUDIO_OUTPUT_MODE: { - int tmp_val = p.readInt32(); - int ret = mpTv->SetAmAudioOutputMode(tmp_val); - r->writeInt32(ret); - break; - } - case SET_AMAUDIO_MUSIC_GAIN: { - int tmp_val = p.readInt32(); - int ret = mpTv->SetAmAudioMusicGain(tmp_val); - r->writeInt32(ret); - break; - } - case SET_AMAUDIO_LEFT_GAIN: { - int tmp_val = p.readInt32(); - int ret = mpTv->SetAmAudioLeftGain(tmp_val); - r->writeInt32(ret); - break; - } - case SET_AMAUDIO_RIGHT_GAIN: { - int tmp_val = p.readInt32(); - int ret = mpTv->SetAmAudioRightGain(tmp_val); - r->writeInt32(ret); - break; - } - case SELECT_LINE_IN_CHANNEL: { - int channel = p.readInt32(); - int ret = mpTv->AudioLineInSelectChannel(channel); - r->writeInt32(ret); - LOGD("SELECT_LINE_IN_CHANNEL: channel = %d; ret = %d.\n", channel, ret); - break; - } - case SET_KALAOK_IO_LEVEL: { - int level = p.readInt32(); - int ret = mpTv->SetKalaokIO(level); - ret =mpTv->AudioSetAudioInSource(CC_AUDIO_IN_SOURCE_LINEIN); - r->writeInt32(ret); - LOGD("set line in source CC_AUDIO_IN_SOURCE_LINEIN\n"); - break; - } - - case SET_LINE_IN_CAPTURE_VOL: { - int l_vol = p.readInt32(); - int r_vol = p.readInt32(); - int ret = mpTv->AudioSetLineInCaptureVolume(l_vol, r_vol); - r->writeInt32(ret); - break; - } - case HANDLE_AUDIO_HEADSET_PLUG_IN: { - int ret = mpTv->AudioHandleHeadsetPlugIn(); - r->writeInt32(ret); - break; - } - case HANDLE_AUDIO_HEADSET_PULL_OUT: { - int ret = mpTv->AudioHandleHeadsetPullOut(); - r->writeInt32(ret); - break; - } - case SET_AUDIO_VOL_COMP: { - int tmpVal = p.readInt32(); - int ret = mpTv->SetCurProgramAudioVolumeCompensationVal(tmpVal); - r->writeInt32(ret); - break; - } - case GET_AUDIO_VOL_COMP: { - int ret = mpTv->GetAudioVolumeCompensationVal(-1); - r->writeInt32(ret); - break; - } - case SAVE_AUDIO_VOL_COMP: { - int tmpVal = p.readInt32(); - int ret = -1;//mpTv->atvSaveAudioVolumeCompensationVal(tmpVal); - LOGD("this cmd is empty!!!!!!!!!!!!!!!!!!!"); - r->writeInt32(ret); - break; - } - case SET_NOISE_GATE_THRESHOLD: { - int ret = 0; - r->writeInt32(ret); - break; - } - case SET_AUDIO_SOURCE_FOR_KARAOKE: { - int sourceinput = p.readInt32(); - int ret = mpTv->Tv_SetAudioSourceType((tv_source_input_t)sourceinput); - r->writeInt32(ret); - break; - } - case SET_DBX_TV_MODE: { - int mode = p.readInt32(); - int son_value = p.readInt32(); - int vol_value = p.readInt32(); - int sur_value = p.readInt32(); - int ret = mpTv->SetDbxTvMode(mode, son_value, vol_value, sur_value); - r->writeInt32(ret); - break; - } - case GET_DBX_TV_MODE: { - int mode ; - int son_value ; - int vol_value ; - int sur_value ; - int ret = mpTv->GetDbxTvMode(&mode, &son_value, &vol_value, &sur_value); - r->writeInt32(mode); - r->writeInt32(son_value); - r->writeInt32(vol_value); - r->writeInt32(sur_value); - r->writeInt32(ret); - break; - } - - case SET_DRC_ONOFF: { - int val = p.readInt32(); - int ret = mpTv->Tv_SetDRC_OnOff(val); - r->writeInt32(ret); - break; - } - case GET_DRC_ONOFF: { - int ret = mpTv->Tv_GetDRC_OnOff(); - r->writeInt32(ret); - break; - } - // AUDIO END - - // SSM - case SSM_INIT_DEVICE: { - int tmpRet = 0; - tmpRet = mpTv->Tv_SSMRestoreDefaultSetting();//mpTv->Tv_SSMInitDevice(); - r->writeInt32(tmpRet); - break; - } - /*case SSM_SAVE_ONE_BYTE: { - int tmpOffset = p.readInt32(); - int tmpVal = p.readInt32(); - int tmpRet; - tmpRet = SSMWriteOneByte(tmpOffset, tmpVal); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_ONE_BYTE: { - int tmpOffset = p.readInt32(); - int tmpRet = 0; - SSMReadOneByte(tmpOffset, &tmpRet); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_N_BYTES: { - int i = 0, tmp_offset = 0, tmp_data_len = 0, ret = -1; - - tmp_offset = p.readInt32(); - tmp_data_len = p.readInt32(); - - if (tmp_data_len > 0) { - data_ptr = new int[tmp_data_len]; - - if (data_ptr != NULL) { - for (i = 0; i < tmp_data_len; i++) { - data_ptr[i] = p.readInt32(); - } - - ret = SSMWriteNTypes(tmp_offset, tmp_data_len, data_ptr); - - delete data_ptr; - data_ptr = NULL; - } - } - - r->writeInt32(ret); - break; - } - case SSM_READ_N_BYTES: { - int i = 0, tmp_offset = 0, tmp_data_len = 0, ret = -1; - tmp_offset = p.readInt32(); - tmp_data_len = p.readInt32(); - - if (tmp_data_len > 0) { - data_ptr = new int[tmp_data_len]; - if (data_ptr != NULL) { - ret = SSMReadNTypes(tmp_offset, tmp_data_len, data_ptr); - if (ret < 0) { - tmp_data_len = 0; - } - r->writeInt32(tmp_data_len); - for (i = 0; i < tmp_data_len; i++) { - r->writeInt32(data_ptr[i]); - } - delete data_ptr; - data_ptr = NULL; - } - } - r->writeInt32(ret); - break; - }*/ - case SSM_SAVE_POWER_ON_OFF_CHANNEL: { - int tmpPowerChanNum = p.readInt32(); - int tmpRet; - tmpRet = SSMSavePowerOnOffChannel(tmpPowerChanNum); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_POWER_ON_OFF_CHANNEL: { - int tmpRet = 0; - tmpRet = SSMReadPowerOnOffChannel(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_SOURCE_INPUT: { - int tmpSouceInput = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveSourceInput(tmpSouceInput); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_SOURCE_INPUT: { - int tmpRet = 0; - tmpRet = SSMReadSourceInput(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_LAST_SOURCE_INPUT: { - int tmpLastSouceInput = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveLastSelectSourceInput(tmpLastSouceInput); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_LAST_SOURCE_INPUT: { - int tmpRet = 0; - tmpRet = SSMReadLastSelectSourceInput(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_SYS_LANGUAGE: { - int tmpVal = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveSystemLanguage(tmpVal); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_SYS_LANGUAGE: { - int tmpRet = 0; - tmpRet = SSMReadSystemLanguage(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_AGING_MODE: { - int tmpVal = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveAgingMode(tmpVal); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_AGING_MODE: { - int tmpRet = 0; - tmpRet = SSMReadAgingMode(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_PANEL_TYPE: { - int tmpVal = p.readInt32(); - int tmpRet; - tmpRet = SSMSavePanelType(tmpVal); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_PANEL_TYPE: { - int tmpRet = 0; - tmpRet = SSMReadPanelType(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_MAC_ADDR: { - int i = 0, tmp_buf_size = 0, ret = 0; - tmp_buf_size = p.readInt32(); - for (i = 0; i < tmp_buf_size; i++) { - tmp_uc_buf[i] = p.readInt32(); - } - ret = KeyData_SaveMacAddress(tmp_uc_buf); - r->writeInt32(ret); - break; - } - case SSM_READ_MAC_ADDR: { - int i = 0, tmp_buf_size = 0, ret = 0; - ret = KeyData_ReadMacAddress(tmp_uc_buf); - tmp_buf_size = KeyData_GetMacAddressDataLen(); - r->writeInt32(tmp_buf_size); - for (i = 0; i < tmp_buf_size; i++) { - r->writeInt32(tmp_uc_buf[i]); - } - r->writeInt32(ret); - break; - } - case SSM_SAVE_BAR_CODE: { - int i = 0, tmp_buf_size = 0, ret = 0; - tmp_buf_size = p.readInt32(); - for (i = 0; i < tmp_buf_size; i++) { - tmp_uc_buf[i] = p.readInt32(); - } - ret = KeyData_SaveBarCode(tmp_uc_buf); - r->writeInt32(ret); - break; - } - case SSM_READ_BAR_CODE: { - int i = 0, tmp_buf_size = 0, ret = 0; - ret = KeyData_ReadBarCode(tmp_uc_buf); - tmp_buf_size = KeyData_GetBarCodeDataLen(); - r->writeInt32(tmp_buf_size); - for (i = 0; i < tmp_buf_size; i++) { - r->writeInt32(tmp_uc_buf[i]); - } - r->writeInt32(ret); - break; - } - case SSM_SAVE_PROJECT_ID: { - int tmpVal = p.readInt32(); - int tmpRet; - tmpRet = KeyData_SaveProjectID(tmpVal); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_PROJECT_ID: { - int tmpRet = 0; - tmpRet = KeyData_ReadProjectID(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_HDCPKEY: { - int i = 0, tmp_buf_size = 0, ret = 0; - tmp_buf_size = p.readInt32(); - for (i = 0; i < tmp_buf_size; i++) { - tmp_uc_buf[i] = p.readInt32(); - } - ret = SSMSaveHDCPKey(tmp_uc_buf); - r->writeInt32(ret); - break; - } - case SSM_READ_HDCPKEY: { - int i = 0, tmp_buf_size = 0, ret = 0; - ret = SSMReadHDCPKey(tmp_uc_buf); - tmp_buf_size = SSMGetHDCPKeyDataLen(); - r->writeInt32(tmp_buf_size); - for (i = 0; i < tmp_buf_size; i++) { - r->writeInt32(tmp_uc_buf[i]); - } - r->writeInt32(ret); - break; - } - case SSM_SAVE_POWER_ON_MUSIC_SWITCH: { - int tmpVal = p.readInt32(); - int tmpRet; - tmpRet = SSMSavePowerOnMusicSwitch(tmpVal); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_POWER_ON_MUSIC_SWITCH: { - int tmpRet = 0; - tmpRet = SSMReadPowerOnMusicSwitch(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_POWER_ON_MUSIC_VOL: { - int tmpVal = p.readInt32(); - int tmpRet; - tmpRet = SSMSavePowerOnMusicVolume(tmpVal); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_POWER_ON_MUSIC_VOL: { - int tmpRet = 0; - tmpRet = SSMReadPowerOnMusicVolume(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_SYS_SLEEP_TIMER: { - int tmpVal = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveSystemSleepTimer(tmpVal); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_SYS_SLEEP_TIMER: { - int tmpRet = 0; - tmpRet = SSMReadSystemSleepTimer(); - r->writeInt32(tmpRet); - break; - } - case SSM_SET_BUS_STATUS: { - int tmpVal = p.readInt32(); - int tmpRet = 0; - //showboz - //tmpRet = SSMSetBusStatus(tmpVal); - r->writeInt32(tmpRet); - break; - } - case SSM_GET_BUS_STATUS: { - int tmpRet = 0; - //showboz - //tmpRet = SSMGetBusStatus(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_INPUT_SRC_PARENTAL_CTL: { - int tmpSourceIndex = p.readInt32(); - int tmpCtlFlag = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveInputSourceParentalControl(tmpSourceIndex, tmpCtlFlag); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_INPUT_SRC_PARENTAL_CTL: { - int tmpSourceIndex = p.readInt32(); - int tmpRet = 0; - tmpRet = SSMReadInputSourceParentalControl(tmpSourceIndex); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_PARENTAL_CTL_SWITCH: { - int tmpSwitchFlag = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveParentalControlSwitch(tmpSwitchFlag); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_PARENTAL_CTL_SWITCH: { - int tmpRet = 0; - tmpRet = SSMReadParentalControlSwitch(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_PARENTAL_CTL_PASS_WORD: { - String16 pass_wd_str = p.readString16(); - int tmpRet; - tmpRet = SSMSaveParentalControlPassWord((unsigned char *)pass_wd_str.string(), pass_wd_str.size() * sizeof(unsigned short)); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_PARENTAL_CTL_PASS_WORD: { - int tmpChanID = p.readInt32(); - unsigned short tmp_buf [SSM_RW_PARENTAL_CTL_PASSWORD_LEN + 1]; - String16 pass_wd_str; - SSMReadParentalControlPassWord(tmp_buf); - tmp_buf[SSM_RW_PARENTAL_CTL_PASSWORD_LEN / sizeof(unsigned short)] = 0; - //pass_wd_str.setTo((const unsigned short *) tmp_buf); - //r->writeString16(pass_wd_str); - break; - } - case SSM_SAVE_USING_DEF_HDCP_KEY_FLAG: { - break; - } - case SSM_READ_USING_DEF_HDCP_KEY_FLAG: { - break; - } - case SSM_GET_CUSTOMER_DATA_START: { - int tmpRet = 0; - tmpRet = SSMGetCustomerDataStart(); - r->writeInt32(tmpRet); - break; - } - case SSM_GET_CUSTOMER_DATA_LEN: { - int tmpRet = 0; - tmpRet = SSMGetCustomerDataLen(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_STANDBY_MODE: { - int tmp_val = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveStandbyMode(tmp_val); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_STANDBY_MODE: { - int tmpRet = 0; - tmpRet = SSMReadStandbyMode(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_LOGO_ON_OFF_FLAG: { - int tmpSwitchFlag = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveLogoOnOffFlag(tmpSwitchFlag); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_LOGO_ON_OFF_FLAG: { - int tmpRet = 0; - tmpRet = SSMReadLogoOnOffFlag(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_HDMIEQ_MODE: { - int tmpSwitchFlag = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveHDMIEQMode(tmpSwitchFlag); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_HDMIEQ_MODE: { - int tmpRet = 0; - tmpRet = SSMReadHDMIEQMode(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_HDMIINTERNAL_MODE: { - int tmp_val = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveHDMIInternalMode(tmp_val); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_HDMIINTERNAL_MODE: { - int tmpRet = 0; - tmpRet = SSMReadHDMIInternalMode(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_DISABLE_3D: { - int tmp_val = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveDisable3D(tmp_val); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_DISABLE_3D: { - int tmpRet = 0; - tmpRet = SSMReadDisable3D(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_GLOBAL_OGOENABLE: { - int tmp_val = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveGlobalOgoEnable(tmp_val); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_GLOBAL_OGOENABLE: { - int tmpRet = 0; - tmpRet = SSMReadGlobalOgoEnable(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_NON_STANDARD_STATUS: { - int tmp_val = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveNonStandardValue(tmp_val); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_NON_STANDARD_STATUS: { - int tmpRet = 0; - tmpRet = SSMReadNonStandardValue(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_ADB_SWITCH_STATUS: { - int tmp_val = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveAdbSwitchValue(tmp_val); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_ADB_SWITCH_STATUS: { - int tmpRet = 0; - tmpRet = SSMReadAdbSwitchValue(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_SERIAL_CMD_SWITCH_STATUS: { - int tmp_val = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveSerialCMDSwitchValue(tmp_val); - tmpRet |= mpTv->SetSerialSwitch(SERIAL_A, tmp_val); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_SERIAL_CMD_SWITCH_STATUS: { - int tmpRet = 0; - tmpRet = SSMReadSerialCMDSwitchValue(); - r->writeInt32(tmpRet); - break; - } - case SSM_SET_HDCP_KEY: { - int tmpRet = 0; - tmpRet = SSMSetHDCPKey(); - r->writeInt32(tmpRet); - break; - } - case SSM_REFRESH_HDCPKEY: { - int tmpRet = 0; - tmpRet = SSMRefreshHDCPKey(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_CHROMA_STATUS: { - int tmp_val = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveChromaStatus(tmp_val); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_CA_BUFFER_SIZE: { - int tmp_val = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveCABufferSizeValue(tmp_val); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_CA_BUFFER_SIZE: { - int tmpRet = 0; - tmpRet = SSMReadCABufferSizeValue(); - r->writeInt32(tmpRet); - break; - } - case SSM_GET_ATV_DATA_START: { - int tmpRet = 0; - tmpRet = SSMGetATVDataStart(); - r->writeInt32(tmpRet); - break; - } - case SSM_GET_ATV_DATA_LEN: { - int tmpRet = 0; - tmpRet = SSMGetATVDataLen(); - r->writeInt32(tmpRet); - break; - } - case SSM_GET_VPP_DATA_START: { - int tmpRet = 0; - tmpRet = SSMGetVPPDataStart(); - r->writeInt32(tmpRet); - break; - } - case SSM_GET_VPP_DATA_LEN: { - int tmpRet = 0; - tmpRet = SSMGetVPPDataLen(); - r->writeInt32(tmpRet); - break; - } - case SSM_SAVE_NOISE_GATE_THRESHOLD_STATUS: { - int tmp_val = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveNoiseGateThresholdValue(tmp_val); - r->writeInt32(tmpRet); - break; - } - case SSM_READ_NOISE_GATE_THRESHOLD_STATUS: { - int tmpRet = 0; - tmpRet = SSMReadNoiseGateThresholdValue(); - r->writeInt32(tmpRet); - break; - } - case SSM_EEPROM_SAVE_ONE_BYTE_N310_N311: { - int tmpOffset = p.readInt32(); - int tmpVal = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveEEP_One_N310_N311(tmpOffset, tmpVal); - r->writeInt32(tmpRet); - break; - } - case SSM_EEPROM_READ_ONE_BYTE_N310_N311: { - int tmpOffset = p.readInt32(); - int tmpRet = 0; - tmpRet = SSMReadEEP_One_N310_N311(tmpOffset); - r->writeInt32(tmpRet); - break; - } - case SSM_EEPROM_SAVE_N_BYTES_N310_N311: { - int i = 0, tmp_offset = 0, tmp_data_len = 0, ret = -1; - - tmp_offset = p.readInt32(); - tmp_data_len = p.readInt32(); - - if (tmp_data_len > 0) { - data_ptr = new int[tmp_data_len]; - - if (data_ptr != NULL) { - for (i = 0; i < tmp_data_len; i++) { - data_ptr[i] = p.readInt32(); - } - - ret = SSMSaveEEP_N_N310_N311(tmp_offset, tmp_data_len, data_ptr); - - delete data_ptr; - data_ptr = NULL; - } - } - - r->writeInt32(ret); - break; - } - case SSM_EEPROM_READ_N_BYTES_N310_N311: { - int i = 0, tmp_offset = 0, tmp_data_len = 0, ret = -1; - tmp_offset = p.readInt32(); - tmp_data_len = p.readInt32(); - - if (tmp_data_len > 0) { - data_ptr = new int[tmp_data_len]; - if (data_ptr != NULL) { - ret = SSMReadEEP_N_N310_N311(tmp_offset, tmp_data_len, data_ptr); - if (ret < 0) { - tmp_data_len = 0; - } - r->writeInt32(tmp_data_len); - for (i = 0; i < tmp_data_len; i++) { - r->writeInt32(data_ptr[i]); - } - delete data_ptr; - data_ptr = NULL; - } - } - r->writeInt32(ret); - break; - } - case SSM_FLASH_SAVE_ONE_BYTE_N310_N311: { - int tmpOffset = p.readInt32(); - int tmpVal = p.readInt32(); - int tmpRet; - tmpRet = SSMSaveFlash_One_N310_N311(tmpOffset, tmpVal); - r->writeInt32(tmpRet); - break; - } - case SSM_FLASH_READ_ONE_BYTE_N310_N311: { - int tmpOffset = p.readInt32(); - int tmpRet = 0; - tmpRet = SSMReadFlash_One_N310_N311(tmpOffset); - r->writeInt32(tmpRet); - break; - } - case SSM_FLASH_SAVE_N_BYTES_N310_N311: { - int i = 0, tmp_offset = 0, tmp_data_len = 0, ret = -1; - - tmp_offset = p.readInt32(); - tmp_data_len = p.readInt32(); - - if (tmp_data_len > 0) { - data_ptr = new int[tmp_data_len]; - - if (data_ptr != NULL) { - for (i = 0; i < tmp_data_len; i++) { - data_ptr[i] = p.readInt32(); - } - - ret = SSMSaveFlash_N_N310_N311(tmp_offset, tmp_data_len, data_ptr); - - delete data_ptr; - data_ptr = NULL; - } - } - - r->writeInt32(ret); - break; - } - case SSM_FLASH_READ_N_BYTES_N310_N311: { - int i = 0, tmp_offset = 0, tmp_data_len = 0, ret = -1; - tmp_offset = p.readInt32(); - tmp_data_len = p.readInt32(); - - if (tmp_data_len > 0) { - data_ptr = new int[tmp_data_len]; - if (data_ptr != NULL) { - ret = SSMReadFlash_N_N310_N311(tmp_offset, tmp_data_len, data_ptr); - if (ret < 0) { - tmp_data_len = 0; - } - r->writeInt32(tmp_data_len); - for (i = 0; i < tmp_data_len; i++) { - r->writeInt32(data_ptr[i]); - } - delete data_ptr; - data_ptr = NULL; - } - } - r->writeInt32(ret); - break; - } - // SSM END - - //MISC - case MISC_PROP_SET: { - int tmpRet; - String16 tmp_str16; - String8 key_str, value_str; - - tmp_str16 = p.readString16(); - key_str = String8(tmp_str16); - tmp_str16 = p.readString16(); - value_str = String8(tmp_str16); - - tmpRet = property_set(key_str.string(), value_str.string()); - r->writeInt32(tmpRet); - break; - } - case MISC_PROP_GET: { - char prop_value[PROPERTY_VALUE_MAX]; - String16 tmp_str16; - String8 key_str, def_str; - - tmp_str16 = p.readString16(); - key_str = String8(tmp_str16); - tmp_str16 = p.readString16(); - def_str = String8(tmp_str16); - - memset(prop_value, '\0', PROPERTY_VALUE_MAX); - property_get(key_str.string(), prop_value, def_str.string()); - tmp_str16 = String16(prop_value); - - r->writeString16(tmp_str16); - break; - } - case MISC_CFG_SET: { - int tmpRet; - String16 tmp_str16; - String8 key_str, value_str; - - tmp_str16 = p.readString16(); - key_str = String8(tmp_str16); - tmp_str16 = p.readString16(); - value_str = String8(tmp_str16); - - tmpRet = config_set_str(CFG_SECTION_TV, key_str.string(), value_str.string()); - r->writeInt32(tmpRet); - break; - } - case MISC_CFG_GET: { - const char *prop_value; - String16 tmp_str16; - String8 key_str, def_str; - - tmp_str16 = p.readString16(); - key_str = String8(tmp_str16); - tmp_str16 = p.readString16(); - def_str = String8(tmp_str16); - - prop_value = config_get_str(CFG_SECTION_TV, key_str.string(), def_str.string()); - tmp_str16 = String16(prop_value); - - r->writeString16(tmp_str16); - break; - } - case MISC_READ_ADC_VAL: { - int tmpChanNum = p.readInt32(); - int tmpRet = 0; - tmpRet = ReadADCSpecialChannelValue(tmpChanNum); - r->writeInt32(tmpRet); - break; - } - case MISC_SET_WDT_USER_PET: { - int counter = p.readInt32(); - int ret = TvMisc_SetUserCounter(counter); - r->writeInt32(ret); - break; - } - case MISC_SET_WDT_USER_COUNTER: { - int counter_time_out = p.readInt32(); - int ret = TvMisc_SetUserCounterTimeOut(counter_time_out); - r->writeInt32(ret); - break; - } - case MISC_SET_WDT_USER_PET_RESET_ENABLE: { - int enable = p.readInt32(); - int ret = TvMisc_SetUserPetResetEnable(enable); - r->writeInt32(ret); - break; - } - case MISC_GET_TV_API_VERSION: { - const char *tmp_str8; - String16 tmp_str16; - - // write tvapi version info - tmp_str8 = tvservice_get_git_branch_info(); - tmp_str16 = String16(tmp_str8); - r->writeString16(tmp_str16); - - tmp_str8 = tvservice_get_git_version_info(); - tmp_str16 = String16(tmp_str8); - r->writeString16(tmp_str16); - - tmp_str8 = tvservice_get_last_chaned_time_info(); - tmp_str16 = String16(tmp_str8); - r->writeString16(tmp_str16); - - tmp_str8 = tvservice_get_build_time_info(); - tmp_str16 = String16(tmp_str8); - r->writeString16(tmp_str16); - - tmp_str8 = tvservice_get_build_name_info(); - tmp_str16 = String16(tmp_str8); - r->writeString16(tmp_str16); - break; - } - case MISC_GET_DVB_API_VERSION: { - const char *tmp_str8; - String16 tmp_str16; - - // write dvb version info - tmp_str8 = dvb_get_git_branch_info(); - tmp_str16 = String16(tmp_str8); - r->writeString16(tmp_str16); - - tmp_str8 = dvb_get_git_version_info(); - tmp_str16 = String16(tmp_str8); - r->writeString16(tmp_str16); - - tmp_str8 = dvb_get_last_chaned_time_info(); - tmp_str16 = String16(tmp_str8); - r->writeString16(tmp_str16); - - tmp_str8 = dvb_get_build_time_info(); - tmp_str16 = String16(tmp_str8); - r->writeString16(tmp_str16); - - tmp_str8 = dvb_get_build_name_info(); - tmp_str16 = String16(tmp_str8); - r->writeString16(tmp_str16); - - break; - } - case MISC_SERIAL_SWITCH: { - int dev_id = p.readInt32(); - int switch_val = p.readInt32(); - int ret = mpTv->SetSerialSwitch(dev_id, switch_val); - r->writeInt32(ret); - break; - } - case MISC_SERIAL_SEND_DATA: { - int i = 0, tmp_buf_size = 0, ret = 0; - - int dev_id = p.readInt32(); - - tmp_buf_size = p.readInt32(); - if (tmp_buf_size > sizeof(tmp_uc_buf)) { - tmp_buf_size = sizeof(tmp_uc_buf); - } - - for (i = 0; i < tmp_buf_size; i++) { - tmp_uc_buf[i] = p.readInt32() & 0xFF; - } - - ret = mpTv->SendSerialData(dev_id, tmp_buf_size, tmp_uc_buf); - r->writeInt32(ret); - break; - } - case MISC_CHANNEL_EXPORT: { - LOGD("MISC_CHANNEL_EXPORT"); - int ret = 0; - String16 tmp_str16; - String8 tmp_str; - - tmp_str16 = p.readString16(); - tmp_str = String8(tmp_str16); - - ret = mpTv->ChannelExport(tmp_str.string()); - r->writeInt32(ret); - break; - } - case MISC_CHANNEL_IMPORT: { - LOGD("MISC_CHANNEL_IMPORT"); - String16 tmp_str16; - String8 tmp_str; - - tmp_str16 = p.readString16(); - tmp_str = String8(tmp_str16); - int ret = 0; - ret = mpTv->ChannelImport(tmp_str.string()); - r->writeInt32(ret); - break; - } - case MISC_GET_PROJECT_INFO: { - String16 tmp_str16; - project_info_t tmpInfo; - - if (mpTv->Tv_GetProjectInfo(&tmpInfo) < 0) { - strcpy(tmpInfo.version, "UNKOWN"); - strcpy(tmpInfo.panel_type, "UNKOWN"); - strcpy(tmpInfo.panel_outputmode, "UNKOWN"); - strcpy(tmpInfo.panel_rev, "UNKOWN"); - strcpy(tmpInfo.panel_name, "UNKOWN"); - strcpy(tmpInfo.amp_curve_name, "UNKOWN"); - } - - r->writeString16(String16(tmpInfo.version)); - r->writeString16(String16(tmpInfo.panel_type)); - r->writeString16(String16(tmpInfo.panel_outputmode)); - r->writeString16(String16(tmpInfo.panel_rev)); - r->writeString16(String16(tmpInfo.panel_name)); - r->writeString16(String16(tmpInfo.amp_curve_name)); - break; - } - case MISC_GET_PLATFORM_TYPE: { - int ret = mpTv->Tv_GetPlatformType(); - r->writeInt32(ret); - break; - } - //MISC END - - // EXTAR - case SET_DEBUG_SERIAL_PORT_ONOFF: { - int on_off = p.readInt32(); - int ret = mpTv->SetDebugSerialOnOff(on_off); - r->writeInt32(ret); - break; - } - - case GET_DEBUG_SERIAL_PORT_ONOFF: { - int ret = mpTv->GetDebugSerialOnOff(); - r->writeInt32(ret); - break; - } - case DELETE_DIR_FILES: { - String16 strPath = p.readString16(); - if (strPath.size() <= 0) { - r->writeInt32(-1); - break; - } - String8 strP8 = String8(strPath); - int tmp_flag = p.readInt32(); - int ret = TvMisc_DeleteDirFiles(strP8.string(), tmp_flag); - r->writeInt32(ret); - break; - } - case DTV_SUBTITLE_INIT: { - int bitmapWidth = p.readInt32(); - int bitmapHeight = p.readInt32(); - r->writeInt32(mpTv->initSubtitle(bitmapWidth, bitmapHeight)); - break; - } - case DTV_SUBTITLE_LOCK: { - r->writeInt32(mpTv->lockSubtitle()); - break; - } - case DTV_SUBTITLE_UNLOCK: { - r->writeInt32(mpTv->unlockSubtitle()); - break; - } - case DTV_GET_SUBTITLE_SWITCH: { - r->writeInt32(mpTv->getSubSwitchStatus()); - break; - } - case DTV_START_SUBTITLE: { - int dmx_id = p.readInt32(); - int pid = p.readInt32(); - int page_id = p.readInt32(); - int anc_page_id = p.readInt32(); - r->writeInt32(mpTv->startSubtitle(dmx_id, pid, page_id, anc_page_id)); - break; - } - case DTV_STOP_SUBTITLE: { - r->writeInt32(mpTv->stopSubtitle()); - break; - } - case DTV_GET_SUBTITLE_INDEX: { - int progId = p.readInt32(); - CTvProgram prog; - CTvProgram::selectByID(progId, prog); - r->writeInt32(prog.getSubtitleIndex(progId)); - break; - } - case DTV_SET_SUBTITLE_INDEX: { - int progId = p.readInt32(); - int index = p.readInt32(); - CTvProgram prog; - CTvProgram::selectByID(progId, prog); - r->writeInt32(prog.setSubtitleIndex(progId, index)); - break; - } - case ATV_GET_CURRENT_PROGRAM_ID: { - int atvLastProgramId = mpTv->getATVProgramID(); - r->writeInt32(atvLastProgramId); - break; - } - case DTV_GET_CURRENT_PROGRAM_ID: { - int dtvLastProgramId = mpTv->getDTVProgramID(); - r->writeInt32(dtvLastProgramId); - break; - } - case ATV_SAVE_PROGRAM_ID: { - int progID = p.readInt32(); - int retCnt = 0; - mpTv->saveATVProgramID(progID); - r->writeInt32(retCnt); - break; - } - case ATV_GET_MIN_MAX_FREQ: { - int min, max; - int tmpRet = mpTv->getATVMinMaxFreq(&min, &max); - r->writeInt32(min); - r->writeInt32(max); - r->writeInt32(tmpRet); - break; - } - case DTV_GET_SCAN_FREQUENCY_LIST: { - Vector<sp<CTvChannel> > out; - int tmpRet = CTvRegion::getChannelListByName("CHINA,Default DTMB ALL", out); - r->writeInt32(out.size()); - for (int i = 0; i < (int)out.size(); i++) { - r->writeInt32(out[i]->getID()); - r->writeInt32(out[i]->getFrequency()); - } - r->writeInt32(tmpRet); - break; - } - case DTV_GET_CHANNEL_INFO: { - int dbID = p.readInt32(); - channel_info_t chan_info; - int ret = mpTv->getChannelInfoBydbID(dbID, chan_info); - r->writeInt32(chan_info.freq); - r->writeInt32(chan_info.uInfo.dtvChanInfo.strength); - r->writeInt32(chan_info.uInfo.dtvChanInfo.quality); - r->writeInt32(chan_info.uInfo.dtvChanInfo.ber); - r->writeInt32(ret); - break; - } - case ATV_GET_CHANNEL_INFO: { - int dbID = p.readInt32(); - channel_info_t chan_info; - int ret = mpTv->getChannelInfoBydbID(dbID, chan_info); - r->writeInt32(chan_info.freq); - r->writeInt32(chan_info.uInfo.atvChanInfo.finefreq); - r->writeInt32(chan_info.uInfo.atvChanInfo.videoStd); - r->writeInt32(chan_info.uInfo.atvChanInfo.audioStd); - r->writeInt32(chan_info.uInfo.atvChanInfo.isAutoStd); - r->writeInt32(ret); - break; - } - case ATV_SCAN_MANUAL: { - int tmpRet = 0; - int startFreq = p.readInt32(); - int endFreq = p.readInt32(); - int videoStd = p.readInt32(); - int audioStd = p.readInt32(); - tmpRet = mpTv->atvMunualScan(startFreq, endFreq, videoStd, audioStd); - mTvService->mpScannerClient = this; - r->writeInt32(tmpRet); - break; - } - - - case ATV_SCAN_AUTO: { - int tmpRet = 0; - LOGD("%s, atv auto scan!!!\n", "TV"); - int videoStd = p.readInt32(); - int audioStd = p.readInt32(); - int searchType = p.readInt32(); - tmpRet = mpTv->atvAutoScan(videoStd, audioStd, searchType); - mTvService->mpScannerClient = this; - r->writeInt32(tmpRet); - break; - } - case DTV_SCAN_MANUAL: { - int tmpRet = 0; - int freq = p.readInt32(); - tmpRet = mpTv->dtvManualScan(freq, freq); - mTvService->mpScannerClient = this; - r->writeInt32(tmpRet); - break; - } - case DTV_SCAN_MANUAL_BETWEEN_FREQ: { - int tmpRet = 0; - int beginFreq = p.readInt32(); - int endFreq = p.readInt32(); - int modulation = p.readInt32(); - tmpRet = mpTv->dtvManualScan(beginFreq, endFreq, modulation); - mTvService->mpScannerClient = this; - r->writeInt32(tmpRet); - break; - } - case DTV_SCAN_AUTO: { - int tmpRet = 0; - tmpRet = mpTv->dtvAutoScan(); - mTvService->mpScannerClient = this; - r->writeInt32(tmpRet); - break; - } - case DTV_SCAN_AUTO_ATSC: { - int tmpRet = 0; - int attenna = p.readInt32(); - int vstd = p.readInt32(); - int astd = p.readInt32(); - tmpRet = mpTv->dtvAutoScanAtscLock(attenna, vstd, astd); - mTvService->mpScannerClient = this; - r->writeInt32(tmpRet); - break; - } - case TV_SUBTITLE_DRAW_END: { - int tmpRet = 0; - //if(pSub)pSub->lock.unlock(); - r->writeInt32(tmpRet); - break; - } - case STOP_PROGRAM_PLAY: { - int tmpRet = -1; - tmpRet = mpTv->stopPlayingLock(); - r->writeInt32(tmpRet); - break; - } - case DTV_TEST_1: { - // int progid = p.readInt32(); - //CTvProgram prog; - // int ret = CTvProgram::selectByID(progid, prog); - //CTvEvent ev; - //ret = ev.getProgPresentEvent(prog.getSrc(), prog.getID(), mpTv->getTvTime(), ev); - //r->writeString16(String16(ev.getName())); - break; - } - case DTV_TEST_2: { - //int cmd = p.readInt32(); - //CTvDatabase::GetTvDb()->importXmlToDB("/etc/tv_default.xml"); - //r->writeString16(String16("xml")); - break; - } - - case TV_CLEAR_ALL_PROGRAM: { - int tmpRet = 0; - int arg0 = p.readInt32(); - - tmpRet = mpTv->clearAllProgram(arg0); - mTvService->mpScannerClient = this; - r->writeInt32(tmpRet); - break; - } - - case GET_DISPLAY_RESOLUTION_CONFIG: { - int tmpRet = 0; - tmpRet = mpTv->GetDisplayResolutionConfig(); - r->writeInt32(tmpRet); - break; - } - - case GET_DISPLAY_RESOLUTION_INFO: { - int tmpRet = 0; - tmpRet = mpTv->GetDisplayResolutionInfo(); - r->writeInt32(tmpRet); - break; - } - - case HDMIRX_CEC_SEND_CUSTOM_MESSAGE: { - int i = 0, tmp_buf_size = 0, ret = 0; - tmp_buf_size = p.readInt32(); - for (i = 0; i < tmp_buf_size; i++) { - tmp_uc_buf[i] = p.readInt32(); - } - - int tmpRet = 0; - tmpRet = mpTv->SendHDMIRxCECCustomMessage(tmp_uc_buf); - r->writeInt32(tmpRet); - break; - } - - case HDMIRX_CEC_SEND_CUSTOM_WAIT_REPLY_MESSAGE: { - int i = 0, tmp_buf_size = 0, ret = 0; - int WaitCmd = 0, timeout = 0; - tmp_buf_size = p.readInt32(); - for (i = 0; i < tmp_buf_size; i++) { - tmp_uc_buf[i] = p.readInt32(); - } - - WaitCmd = p.readInt32(); - timeout = p.readInt32(); - - int tmpRet = 0; - tmpRet = mpTv->SendHDMIRxCECCustomMessageAndWaitReply(tmp_uc_buf, tmp_uc_buf2, WaitCmd, timeout); - - r->writeInt32(tmpRet); - if (tmpRet > 0) { - for (i = 0; i < tmpRet; i++) { - r->writeInt32(tmp_uc_buf2[i]); - } - } - - r->writeInt32(tmpRet); - break; - } - - case HDMIRX_CEC_SEND_BROADCAST_STANDBY_MESSAGE: { - int tmpRet = 0; - tmpRet = mpTv->SendHDMIRxCECBoradcastStandbyMessage(); - r->writeInt32(tmpRet); - break; - } - - case HDMIRX_CEC_SEND_GIVE_CEC_VERSION_MESSAGE: { - int i = 0, tmp_buf_size = 0, ret = 0; - int sourceinput = p.readInt32(); - LOGD("HDMIRX_CEC_SEND_GIVE_CEC_VERSION_MESSAGE: sourceinput = %x", sourceinput); - tmp_buf_size = mpTv->SendHDMIRxCECGiveCECVersionMessage((tv_source_input_t)sourceinput, tmp_uc_buf); - r->writeInt32(tmp_buf_size); - for (i = 0; i < tmp_buf_size; i++) { - r->writeInt32(tmp_uc_buf[i]); - } - r->writeInt32(tmp_buf_size); - break; - } - - case HDMIRX_CEC_SEND_GIVE_DEV_VENDOR_ID_MESSAGE: { - int i = 0, tmp_buf_size = 0, ret = 0; - int sourceinput = p.readInt32(); - LOGD("HDMIRX_CEC_SEND_GIVE_DEV_VENDOR_ID_MESSAGE: sourceinput = %x", sourceinput); - tmp_buf_size = mpTv->SendHDMIRxCECGiveDeviceVendorIDMessage((tv_source_input_t)sourceinput, tmp_uc_buf); - r->writeInt32(tmp_buf_size); - for (i = 0; i < tmp_buf_size; i++) { - r->writeInt32(tmp_uc_buf[i]); - } - r->writeInt32(tmp_buf_size); - break; - } - - case HDMIRX_CEC_SEND_GIVE_OSD_NAME_MESSAGE: { - int i = 0, tmp_buf_size = 0, ret = 0; - int sourceinput = p.readInt32(); - LOGD("HDMIRX_CEC_SEND_GIVE_OSD_NAME_MESSAGE: sourceinput = %x", sourceinput); - tmp_buf_size = mpTv->SendHDMIRxCECGiveOSDNameMessage((tv_source_input_t)sourceinput, tmp_uc_buf); - r->writeInt32(tmp_buf_size); - for (i = 0; i < tmp_buf_size; i++) { - r->writeInt32(tmp_uc_buf[i]); - } - r->writeInt32(tmp_buf_size); - break; - } - - case GET_HDMI_KSV_INFO: { - int tmpRet = 0; - int ksv_data[2] = {0, 0}; - tmpRet = mpTv->GetHdmiHdcpKeyKsvInfo(ksv_data); - r->writeInt32(tmpRet); - r->writeInt32(ksv_data[0]); - r->writeInt32(ksv_data[1]); - break; - } - - case HDMI_OUT_TOWHAT: { - r->writeInt32(mpTv->hdmiOutWithFbc()?1:0); - break; - } - case FACTORY_FBC_UPGRADE: { - String16 tmpName = p.readString16(); - String8 strName = String8(tmpName); - sprintf((char *)tmp_uc_buf, "%s", strName.string()); - int mode = p.readInt32(); - int upgrade_blk_size = p.readInt32(); - int ret = mpTv->StartUpgradeFBC((char *)tmp_uc_buf, mode, upgrade_blk_size); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_BRIGHTNESS: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_Brightness(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_BRIGHTNESS: { - int ret = mpTv->Tv_FactoryGet_FBC_Brightness(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_CONTRAST: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_Contrast(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_CONTRAST: { - int ret = mpTv->Tv_FactoryGet_FBC_Contrast(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_SATURATION: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_Saturation(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_SATURATION: { - int ret = mpTv->Tv_FactoryGet_FBC_Saturation(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_HUE: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_HueColorTint(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_HUE: { - int ret = mpTv->Tv_FactoryGet_FBC_HueColorTint(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_BACKLIGHT: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_Backlight(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_BACKLIGHT: { - int ret = mpTv->Tv_FactoryGet_FBC_Backlight(); - r->writeInt32(ret); - break; - } - case FACTROY_FBC_SET_LIGHT_SENSOR_STATUS_N310: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_LightSensor_Status_N310(value); - r->writeInt32(ret); - break; - } - - case FACTROY_FBC_GET_LIGHT_SENSOR_STATUS_N310: { - int ret = mpTv->Tv_FactoryGet_FBC_LightSensor_Status_N310(); - r->writeInt32(ret); - break; - } - case FACTROY_FBC_SET_DREAM_PANEL_STATUS_N310: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_Dream_Panel_Status_N310(value); - r->writeInt32(ret); - break; - } - - case FACTROY_FBC_GET_DREAM_PANEL_STATUS_N310: { - int ret = mpTv->Tv_FactoryGet_FBC_Dream_Panel_Status_N310(); - r->writeInt32(ret); - break; - } - case FACTROY_FBC_SET_MULT_PQ_STATUS_N310: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_MULT_PQ_Status_N310(value); - r->writeInt32(ret); - break; - } - - case FACTROY_FBC_GET_MULT_PQ_STATUS_N310: { - int ret = mpTv->Tv_FactoryGet_FBC_MULT_PQ_Status_N310(); - r->writeInt32(ret); - break; - } - case FACTROY_FBC_SET_MEMC_STATUS_N310: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_MEMC_Status_N310(value); - r->writeInt32(ret); - break; - } - - case FACTROY_FBC_GET_MEMC_STATUS_N310: { - int ret = mpTv->Tv_FactoryGet_FBC_MEMC_Status_N310(); - r->writeInt32(ret); - break; - } - - case MISC_SET_2K_TO_4K_SCALE_UP_MODE : { - int value = p.readInt32(); - int ret = mpTv->Tv_Set2k4k_ScalerUp_Mode(value); - r->writeInt32(ret); - break; - } - - case MISC_GET_2K_TO_4K_SCALE_UP_MODE: { - int ret = mpTv->Tv_Get2k4k_ScalerUp_Mode(); - r->writeInt32(ret); - break; - } - case FACTORY_FBC_SET_BACKLIGHT_EN : { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_backlight_onoff(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_BACKLIGHT_EN: { - int ret = mpTv->Tv_FactoryGet_FBC_backlight_onoff(); - r->writeInt32(ret); - break; - } - case FACTORY_FBC_TEST_PATTERN: { - int value = p.readInt32(); - int ret = mpTv->Tv_SetTestPattern(value); - r->writeInt32(ret); - break; - } - case FACTORY_FBC_SET_LVDS_SSG: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_LVDS_SSG_Set(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_ELEC_MODE: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_ELEC_MODE(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_ELEC_MODE: { - int ret = mpTv->Tv_FactoryGet_FBC_ELEC_MODE(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_BACKLIGHT_N360: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_BACKLIGHT_N360(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_BACKLIGHT_N360: { - int ret = mpTv->Tv_FactoryGet_FBC_BACKLIGHT_N360(); - r->writeInt32(ret); - break; - } - - - case FACTORY_FBC_SET_PIC_MODE: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_Picture_Mode(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_PIC_MODE: { - int ret = mpTv->Tv_FactoryGet_FBC_Picture_Mode(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_TEST_PATTERN: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_Set_Test_Pattern(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_TEST_PATTERN: { - int ret = mpTv->Tv_FactoryGet_FBC_Get_Test_Pattern(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_GAIN_RED: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_Gain_Red(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_GAIN_RED: { - int ret = mpTv->Tv_FactoryGet_FBC_Gain_Red(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_GAIN_GREEN: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_Gain_Green(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_GAIN_GREEN: { - int ret = mpTv->Tv_FactoryGet_FBC_Gain_Green(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_GAIN_BLUE: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_Gain_Blue(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_GAIN_BLUE: { - int ret = mpTv->Tv_FactoryGet_FBC_Gain_Blue(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_OFFSET_RED: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_Offset_Red(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_OFFSET_RED: { - int ret = mpTv->Tv_FactoryGet_FBC_Offset_Red(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_OFFSET_GREEN: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_Offset_Green(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_OFFSET_GREEN: { - int ret = mpTv->Tv_FactoryGet_FBC_Offset_Green(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_OFFSET_BLUE: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_Offset_Blue(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_OFFSET_BLUE: { - int ret = mpTv->Tv_FactoryGet_FBC_Offset_Blue(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_COLORTEMP_MODE: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_ColorTemp_Mode(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_COLORTEMP_MODE: { - int ret = mpTv->Tv_FactoryGet_FBC_ColorTemp_Mode(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_COLORTEMP_MODE_N360: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_ColorTemp_Mode_N360(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_COLORTEMP_MODE_N360: { - int ret = mpTv->Tv_FactoryGet_FBC_ColorTemp_Mode_N360(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_SET_WB_INIT: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySet_FBC_WB_Initial(value); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_WB_INIT: { - int ret = mpTv->Tv_FactoryGet_FBC_WB_Initial(); - r->writeInt32(ret); - break; - } - - case FACTORY_FBC_GET_MAINCODE_VERSION: { - char sw_version[64]; - char build_time[64]; - char git_version[64]; - char git_branch[64]; - char build_name[64]; - CFbcCommunication *fbcIns = GetSingletonFBC(); - if (fbcIns != NULL) { - fbcIns->cfbc_Get_FBC_MAINCODE_Version(COMM_DEV_SERIAL, sw_version, build_time, git_version, git_branch, build_name); - r->writeString16(String16(sw_version)); - r->writeString16(String16(build_time)); - r->writeString16(String16(git_version)); - r->writeString16(String16(git_branch)); - r->writeString16(String16(build_name)); - } else { - r->writeString16(String16("No FBC")); - r->writeString16(String16("No FBC")); - r->writeString16(String16("No FBC")); - r->writeString16(String16("No FBC")); - r->writeString16(String16("No FBC")); - } - break; - } - case FACTORY_SET_SN: { - char StrFactSN[256] = {0}; - String16 strTemFactorySn = p.readString16(); - String8 strFactorySn = String8(strTemFactorySn); - sprintf((char *)StrFactSN, "%s", strFactorySn.string()); - CFbcCommunication *fbcIns = GetSingletonFBC(); - if (fbcIns != NULL) { - int iRet = fbcIns->cfbc_Set_FBC_Factory_SN(COMM_DEV_SERIAL, (const char *)StrFactSN); - r->writeInt32(iRet); - } else { - r->writeInt32(-1); - } - break; - } - case FACTORY_GET_SN: { - char factorySerialNumber[256] = {0}; - memset((void *)factorySerialNumber, 0, 256); - CFbcCommunication *fbcIns = GetSingletonFBC(); - if (fbcIns != NULL) { - fbcIns->cfbc_Get_FBC_Factory_SN(COMM_DEV_SERIAL, factorySerialNumber); - r->writeString16(String16(factorySerialNumber)); - } else { - r->writeString16(String16("No FBC")); - } - break; - } - case FACTORY_FBC_PANEL_GET_INFO: { - char panel_model[64]; - CFbcCommunication *fbcIns = GetSingletonFBC(); - if (fbcIns != NULL) { - fbcIns->cfbc_Get_FBC_Get_PANel_INFO(COMM_DEV_SERIAL, panel_model); - r->writeString16(String16(panel_model)); - } else { - r->writeString16(String16("")); - } - break; - } - case FACTORY_FBC_PANEL_POWER_SWITCH: { - int value = p.readInt32(); - CFbcCommunication *fbcIns = GetSingletonFBC(); - if (fbcIns != NULL) { - int ret = fbcIns->cfbc_Set_FBC_panel_power_switch(COMM_DEV_SERIAL, value); - r->writeInt32(ret); - } else { - r->writeInt32(-1); - } - break; - } - case FACTORY_FBC_PANEL_SUSPEND: { - int value = p.readInt32(); - CFbcCommunication *fbcIns = GetSingletonFBC(); - if (fbcIns != NULL) { - int ret = fbcIns->cfbc_Set_FBC_suspend(COMM_DEV_SERIAL, value); - r->writeInt32(ret); - } else { - r->writeInt32(-1); - } - break; - } - case FACTORY_FBC_PANEL_USER_SETTING_DEFAULT: { - int value = p.readInt32(); - CFbcCommunication *fbcIns = GetSingletonFBC(); - if (fbcIns != NULL) { - int ret = fbcIns->cfbc_Set_FBC_User_Setting_Default(COMM_DEV_SERIAL, value); - r->writeInt32(ret); - } else { - r->writeInt32(-1); - } - break; - } - case FACTORY_FBC_VIDEO_MUTE: { - CFbcCommunication *fbcIns = GetSingletonFBC(); - if (fbcIns != NULL) { - int ret = fbcIns->cfbc_Set_VMute(COMM_DEV_SERIAL, 1); - r->writeInt32(ret); - } else { - r->writeInt32(-1); - } - break; - } - case FACTORY_FBC_POWER_REBOOT: { - int value = p.readInt32(); - CFbcCommunication *fbcIns = GetSingletonFBC(); - if (fbcIns != NULL) { - int ret = fbcIns->cfbc_SendRebootToUpgradeCmd(COMM_DEV_SERIAL, value); - r->writeInt32(ret); - } else { - r->writeInt32(-1); - } - break; - } - case FACTORY_FBC_SEND_KEY_TO_FBC: { - int keyCode = p.readInt32(); - int param = p.readInt32(); - CFbcCommunication *fbcIns = GetSingletonFBC(); - if (fbcIns != NULL) { - int ret = fbcIns->cfbc_FBC_Send_Key_To_Fbc(COMM_DEV_SERIAL, keyCode, param); - r->writeInt32(ret); - } else { - r->writeInt32(-1); - } - break; - } - case FACTORY_WHITE_BALANCE_SET_GAIN_RED: { - int source_type = p.readInt32(); - int colortemp_mode = p.readInt32(); - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySetWhiteBalanceRedGain(source_type, colortemp_mode, value); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_GET_GAIN_RED: { - int source_type = p.readInt32(); - int colortemp_mode = p.readInt32(); - int ret = mpTv->Tv_FactoryGetWhiteBalanceRedGain(source_type, colortemp_mode); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_SET_GAIN_GREEN: { - int source_type = p.readInt32(); - int colortemp_mode = p.readInt32(); - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySetWhiteBalanceGreenGain(source_type, colortemp_mode, value); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_GET_GAIN_GREEN: { - int source_type = p.readInt32(); - int colortemp_mode = p.readInt32(); - int ret = mpTv->Tv_FactoryGetWhiteBalanceGreenGain(source_type, colortemp_mode); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_SET_GAIN_BLUE: { - int source_type = p.readInt32(); - int colortemp_mode = p.readInt32(); - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySetWhiteBalanceBlueGain(source_type, colortemp_mode, value); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_GET_GAIN_BLUE: { - int source_type = p.readInt32(); - int colortemp_mode = p.readInt32(); - int ret = mpTv->Tv_FactoryGetWhiteBalanceBlueGain(source_type, colortemp_mode); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_SET_OFFSET_RED: { - int source_type = p.readInt32(); - int colortemp_mode = p.readInt32(); - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySetWhiteBalanceRedOffset(source_type, colortemp_mode, value); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_GET_OFFSET_RED: { - int source_type = p.readInt32(); - int colortemp_mode = p.readInt32(); - int ret = mpTv->Tv_FactoryGetWhiteBalanceRedOffset(source_type, colortemp_mode); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_SET_OFFSET_GREEN: { - int source_type = p.readInt32(); - int colortemp_mode = p.readInt32(); - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySetWhiteBalanceGreenOffset(source_type, colortemp_mode, value); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_GET_OFFSET_GREEN: { - int source_type = p.readInt32(); - int colortemp_mode = p.readInt32(); - int ret = mpTv->Tv_FactoryGetWhiteBalanceGreenOffset(source_type, colortemp_mode); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_SET_OFFSET_BLUE: { - int source_type = p.readInt32(); - int colortemp_mode = p.readInt32(); - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySetWhiteBalanceBlueOffset(source_type, colortemp_mode, value); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_GET_OFFSET_BLUE: { - int source_type = p.readInt32(); - int colortemp_mode = p.readInt32(); - int ret = mpTv->Tv_FactoryGetWhiteBalanceBlueOffset(source_type, colortemp_mode); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_GET_COLOR_TMP: { - int source_type = p.readInt32(); - int ret = mpTv->Tv_FactoryGetWhiteBalanceColorTempMode(source_type); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_SET_COLOR_TMP: { - int source_type = p.readInt32(); - int Tempmode = p.readInt32(); - int is_save = p.readInt32(); - int ret = mpTv->Tv_FactorySetWhiteBalanceColorTempMode(source_type, Tempmode, is_save); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_SAVE_PRAMAS: { - int source_type = p.readInt32(); - int mode = p.readInt32(); - int r_gain = p.readInt32(); - int g_gain = p.readInt32(); - int b_gain = p.readInt32(); - int r_offset = p.readInt32(); - int g_offset = p.readInt32(); - int b_offset = p.readInt32(); - int ret = mpTv->Tv_FactorySaveWhiteBalancePramas(source_type, mode, r_gain, g_gain, b_gain, r_offset, g_offset, b_offset); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_OPEN_GRAY_PATTERN: { - int ret = mpTv->Tv_FactoryOpenWhiteBalanceGrayPattern(); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_CLOSE_GRAY_PATTERN: { - int ret = mpTv->Tv_FactoryCloseWhiteBalanceGrayPattern(); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_SET_GRAY_PATTERN: { - int value = p.readInt32(); - int ret = mpTv->Tv_FactorySetWhiteBalanceGrayPattern(value); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_GET_GRAY_PATTERN: { - int ret = mpTv->Tv_FactoryGetWhiteBalanceGrayPattern(); - r->writeInt32(ret); - break; - } - case FACTORY_WHITE_BALANCE_GET_ALL_PRAMAS: { - int Tempmode = p.readInt32(); - tcon_rgb_ogo_t params; - int ret = mpTv->GetColorTemperatureParams((vpp_color_temperature_mode_t)Tempmode, ¶ms); - r->writeInt32(ret); - r->writeInt32(params.r_gain); - r->writeInt32(params.g_gain); - r->writeInt32(params.b_gain); - r->writeInt32(params.r_post_offset); - r->writeInt32(params.g_post_offset); - r->writeInt32(params.b_post_offset); - } - case STOP_SCAN: { - mpTv->stopScanLock(); - break; - } - case DTV_GET_SNR: { - int tmpRet = 0; - tmpRet = mpTv->getFrontendSNR(); - r->writeInt32(tmpRet); - break; - } - case DTV_GET_BER: { - int tmpRet = 0; - tmpRet = mpTv->getFrontendBER(); - r->writeInt32(tmpRet); - break; - } - case DTV_GET_STRENGTH: { - int tmpRet = 0; - tmpRet = mpTv->getFrontendSignalStrength(); - r->writeInt32(tmpRet); - break; - } - case DTV_GET_AUDIO_TRACK_NUM: { - int programId = p.readInt32(); - int retCnt = 0; - retCnt = mpTv->getAudioTrackNum(programId); - r->writeInt32(retCnt); - break; - } - case DTV_GET_AUDIO_TRACK_INFO: { - int progId = p.readInt32(); - int aIdx = p.readInt32(); - int aFmt = -1; - int iRet = -1; - String8 lang; - iRet = mpTv->getAudioInfoByIndex(progId, aIdx, &aFmt, lang); - r->writeInt32(aFmt); - r->writeString16(String16(lang)); - break; - } - case DTV_SWITCH_AUDIO_TRACK: { - int aPid = p.readInt32(); - int aFmt = p.readInt32(); - int aParam = p.readInt32(); - int ret = -1; - ret = mpTv->switchAudioTrack(aPid, aFmt, aParam); - r->writeInt32(ret); - break; - } - case DTV_GET_CURR_AUDIO_TRACK_INDEX: { - int currAduIdx = -1; - int progId = p.readInt32(); - CTvProgram prog; - CTvProgram::selectByID(progId, prog); - currAduIdx = prog.getCurrAudioTrackIndex(); - r->writeInt32(currAduIdx); - break; - } - case DTV_SET_AUDIO_CHANNEL_MOD: { - int audioChannelIdx = p.readInt32(); - mpTv->setAudioChannel(audioChannelIdx); - break; - } - case DTV_GET_AUDIO_CHANNEL_MOD: { - int currChannelMod; - currChannelMod = mpTv->getAudioChannel(); - r->writeInt32(currChannelMod); - break; - } - case DTV_GET_CUR_FREQ: { - int progId = p.readInt32(); - int freq = 0; - int iRet = -1; - CTvProgram prog; - CTvChannel channel; - - iRet = CTvProgram::selectByID(progId, prog); - if (0 != iRet) return -1; - prog.getChannel(channel); - freq = channel.getFrequency(); - r->writeInt32(freq); - break; - } - case DTV_GET_EPG_UTC_TIME: { - int iRet = -1; - int utcTime = 0; - - utcTime = mpTv->getTvTime(); - - r->writeInt32(utcTime); - break; - } - case DTV_GET_EPG_INFO_POINT_IN_TIME: { - int progid = p.readInt32(); - int utcTime = p.readInt32(); - CTvProgram prog; - int ret = CTvProgram::selectByID(progid, prog); - CTvEvent ev; - ret = ev.getProgPresentEvent(prog.getSrc(), prog.getID(), utcTime, ev); - r->writeString16(String16(ev.getName())); - r->writeString16(String16(ev.getDescription())); - r->writeString16(String16(ev.getExtDescription())); - r->writeInt32(ev.getStartTime()); - r->writeInt32(ev.getEndTime()); - r->writeInt32(ev.getSubFlag()); - r->writeInt32(ev.getEventId()); - break; - } - case DTV_GET_EPG_INFO_DURATION: { - int iRet = -1; - int iObOutSize = 0; - Vector<sp<CTvEvent> > epgOut; - int progid = p.readInt32(); - int iUtcStartTime = p.readInt32(); - int iDurationTime = p.readInt32(); - CTvProgram prog; - CTvEvent ev; - iRet = CTvProgram::selectByID(progid, prog); - if (0 != iRet) { - break; - } - iRet = ev.getProgScheduleEvents(prog.getSrc(), prog.getID(), iUtcStartTime, iDurationTime, epgOut); - if (0 != iRet) { - break; - } - iObOutSize = epgOut.size(); - if (0 == iObOutSize) { - break; - } - - r->writeInt32(iObOutSize); - for (int i = 0; i < iObOutSize; i ++) { - r->writeString16(String16(epgOut[i]->getName())); - r->writeString16(String16(epgOut[i]->getDescription())); - r->writeString16(String16(ev.getExtDescription())); - r->writeInt32(epgOut[i]->getStartTime()); - r->writeInt32(epgOut[i]->getEndTime()); - r->writeInt32(epgOut[i]->getSubFlag()); - r->writeInt32(epgOut[i]->getEventId()); - } - break; - } - case DTV_SET_PROGRAM_NAME: { - CTvProgram prog; - int progid = p.readInt32(); - String16 tmpName = p.readString16(); - String8 strName = String8(tmpName); - prog.updateProgramName(progid, strName); - break; - } - case DTV_SET_PROGRAM_SKIPPED: { - CTvProgram prog; - int progid = p.readInt32(); - bool bSkipFlag = p.readInt32(); - prog.setSkipFlag(progid, bSkipFlag); - break; - } - case DTV_SET_PROGRAM_FAVORITE: { - CTvProgram prog; - int progid = p.readInt32(); - bool bFavorite = p.readInt32(); - prog.setFavoriteFlag(progid, bFavorite); - break; - } - case DTV_DETELE_PROGRAM: { - CTvProgram prog; - int progid = p.readInt32(); - prog.deleteProgram(progid); - break; - } - case SET_BLACKOUT_ENABLE: { - int enable = p.readInt32(); - mpTv->setBlackoutEnable(enable); - break; - } - case START_AUTO_BACKLIGHT: { - mpTv->startAutoBackLight(); - break; - } - case STOP_AUTO_BACKLIGHT: { - mpTv->stopAutoBackLight(); - break; - } - case IS_AUTO_BACKLIGHTING: { - int on = mpTv->getAutoBackLight_on_off(); - r->writeInt32(on); - break; - } - case GET_AVERAGE_LUMA: { - int ret = mpTv->getAverageLuma(); - r->writeInt32(ret); - break; - } - case GET_AUTO_BACKLIGHT_DATA: { - int i; - int size = mpTv->getAutoBacklightData(tmp_i_buf); - r->writeInt32(size); - for (i = 0; i < size; i++) { - r->writeInt32(tmp_i_buf[i]); - } - break; - } - case SET_AUTO_BACKLIGHT_DATA: { - String16 tmp_str16; - String8 value_str; - - tmp_str16 = p.readString16(); - value_str = String8(tmp_str16); - - int ret = mpTv->setAutobacklightData(value_str); - r->writeInt32(ret); - break; - } - - case SSM_READ_BLACKOUT_ENABLE: { - int enable = mpTv->getSaveBlackoutEnable(); - r->writeInt32(enable); - break; - } - case DTV_SWAP_PROGRAM: { - CTvProgram prog; - int firstProgId = p.readInt32(); - int secondProgId = p.readInt32(); - CTvProgram::selectByID(firstProgId, prog); - int firstChanOrderNum = prog.getChanOrderNum(); - CTvProgram::selectByID(secondProgId, prog); - int secondChanOrderNum = prog.getChanOrderNum(); - prog.swapChanOrder(firstProgId, firstChanOrderNum, secondProgId, secondChanOrderNum); - break; - } - case DTV_SET_PROGRAM_LOCKED: { - CTvProgram prog; - int progid = p.readInt32(); - bool bLocked = p.readInt32(); - prog.setLockFlag(progid, bLocked); - break; - } - case DTV_SET_BOOKING_FLAG: { - CTvEvent ev; - int iEvtId = p.readInt32(); - bool iBookFlag = (bool)p.readInt32(); - ev.bookEvent(iEvtId, iBookFlag); - break; - } - case DTV_GET_FREQ_BY_PROG_ID: { - int freq = 0; - int progid = p.readInt32(); - CTvProgram prog; - int ret = CTvProgram::selectByID(progid, prog); - if (ret != 0) return -1; - CTvChannel channel; - prog.getChannel(channel); - freq = channel.getFrequency(); - r->writeInt32(freq); - break; - } - case DTV_GET_BOOKED_EVENT: { - CTvBooking tvBook; - Vector<sp<CTvBooking> > vTvBookOut; - tvBook.getBookedEventList(vTvBookOut); - int iObOutSize = vTvBookOut.size(); - if (0 == iObOutSize) { - break; - } - r->writeInt32(iObOutSize); - for (int i = 0; i < iObOutSize; i ++) { - r->writeString16(String16(vTvBookOut[i]->getProgName())); - r->writeString16(String16(vTvBookOut[i]->getEvtName())); - r->writeInt32(vTvBookOut[i]->getStartTime()); - r->writeInt32(vTvBookOut[i]->getDurationTime()); - r->writeInt32(vTvBookOut[i]->getBookId()); - r->writeInt32(vTvBookOut[i]->getProgramId()); - r->writeInt32(vTvBookOut[i]->getEventId()); - } - break; - } - case SET_FRONTEND_PARA: { - int ret = -1; - frontend_para_set_t feParms; - feParms.mode = (fe_type_t)p.readInt32(); - feParms.freq = p.readInt32(); - feParms.videoStd = (atv_video_std_t)p.readInt32(); - feParms.audioStd = (atv_audio_std_t)p.readInt32(); - feParms.para1 = p.readInt32(); - feParms.para2 = p.readInt32(); - mpTv->resetFrontEndPara(feParms); - r->writeInt32(ret); - break; - } - case PLAY_PROGRAM: { - int mode = p.readInt32(); - int freq = p.readInt32(); - if (mode == FE_ANALOG) { - int videoStd = p.readInt32(); - int audioStd = p.readInt32(); - int fineTune = p.readInt32(); - int audioCompetation = p.readInt32(); - mpTv->playAtvProgram(freq, videoStd, audioStd, fineTune, audioCompetation); - } else { - int para1 = p.readInt32(); - int para2 = p.readInt32(); - int vid = p.readInt32(); - int vfmt = p.readInt32(); - int aid = p.readInt32(); - int afmt = p.readInt32(); - int pcr = p.readInt32(); - int audioCompetation = p.readInt32(); - mpTv->playDtvProgram(mode, freq, para1, para2, vid, vfmt, aid, afmt, pcr, audioCompetation); - } - break; - } - case GET_PROGRAM_LIST: { - Vector<sp<CTvProgram> > out; - int type = p.readInt32(); - int skip = p.readInt32(); - CTvProgram::selectByType(type, skip, out); - r->writeInt32(out.size()); - for (int i = 0; i < (int)out.size(); i++) { - r->writeInt32(out[i]->getID()); - r->writeInt32(out[i]->getChanOrderNum()); - r->writeInt32(out[i]->getMajor()); - r->writeInt32(out[i]->getMinor()); - r->writeInt32(out[i]->getProgType()); - r->writeString16(String16(out[i]->getName())); - r->writeInt32(out[i]->getProgSkipFlag()); - r->writeInt32(out[i]->getFavoriteFlag()); - r->writeInt32(out[i]->getVideo()->getFormat()); - CTvChannel ch; - out[i]->getChannel(ch); - r->writeInt32(ch.getDVBTSID()); - r->writeInt32(out[i]->getServiceId()); - r->writeInt32(out[i]->getVideo()->getPID()); - r->writeInt32(out[i]->getVideo()->getPID()); - - int audioTrackSize = out[i]->getAudioTrackSize(); - r->writeInt32(audioTrackSize); - for (int j = 0; j < audioTrackSize; j++) { - r->writeString16(String16(out[i]->getAudio(j)->getLang())); - r->writeInt32(out[i]->getAudio(j)->getFormat()); - r->writeInt32(out[i]->getAudio(j)->getPID()); - } - Vector<CTvProgram::Subtitle *> mvSubtitles = out[i]->getSubtitles(); - int subTitleSize = mvSubtitles.size(); - r->writeInt32(subTitleSize); - if (subTitleSize > 0) { - for (int k = 0; k < subTitleSize; k++) { - r->writeInt32(mvSubtitles[k]->getPID()); - r->writeString16(String16(mvSubtitles[k]->getLang())); - r->writeInt32(mvSubtitles[k]->getCompositionPageID()); - r->writeInt32(mvSubtitles[k]->getAncillaryPageID()); - } - } - r->writeInt32(ch.getFrequency()); - } - break; - } - case DTV_GET_VIDEO_FMT_INFO: { - int srcWidth = 0; - int srcHeight = 0; - int srcFps = 0; - int srcInterlace = 0; - int iRet = -1; - - iRet == mpTv->getVideoFormatInfo(&srcWidth, &srcHeight, &srcFps, &srcInterlace); - r->writeInt32(srcWidth); - r->writeInt32(srcHeight); - r->writeInt32(srcFps); - r->writeInt32(srcInterlace); - r->writeInt32(iRet); - } - break; - - case DTV_START_RECORD: { - char buf[256]; - String16 tmpName = p.readString16(); - String8 strName = String8(tmpName); - sprintf(buf, "%s", strName.string()); - mpTv->SetRecordFileName(buf); - mpTv->StartToRecord(); - } - break; - case DTV_STOP_RECORD: - mpTv->StopRecording(); - break; - case DTV_SET_RECORD_ALL_TS: { - int sel = p.readInt32(); - mpTv->SetRecCurTsOrCurProgram(sel); - } - break; - case TV_PRINT_DEBUG_INFO: - mpTv->printDebugInfo(); - break; - case HDMIAV_HOTPLUGDETECT_ONOFF: { - int flag = mpTv->GetHdmiAvHotplugDetectOnoff(); - r->writeInt32(flag); - } - break; - - // 2.4G headset - case START_OPEN_HEADSET_DETECT: { - int flag = mpTv->StartHeadSetDetect(); - r->writeInt32(flag); - } - break; - - // EXTAR END - default: - LOGD("default"); - break; - } - - LOGD("exit client=%d cmd=%d", getCallingPid(), cmd); - return 0; + int tmp_i_buf[128] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}; + unsigned char tmp_uc_buf[512] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}; + unsigned char tmp_uc_buf2[512] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}; + int8_t tmp_int8_buf[512] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,}; + static int source_input = 0; + int *data_ptr = NULL; + + int cmd = p.readInt32(); + + LOGD("enter client=%d cmd=%d", getCallingPid(), cmd); + switch (cmd) { + // Tv function + case OPEN_TV: { + break; + } + case CLOSE_TV: { + int ret = mpTv->CloseTv(); + r->writeInt32(ret); + break; + } + case START_TV: { + int mode = p.readInt32(); + int ret = mpTv->StartTvLock(); + //mTvService->mpStartTvClient = this; + mIsStartTv = true; + r->writeInt32(ret); + break; + } + case STOP_TV: { + int ret = mpTv->StopTvLock(); + r->writeInt32(ret); + mIsStartTv = false; + break; + } + case GET_TV_STATUS: { + int ret = 0; + ret = (int)mpTv->GetTvStatus(); + r->writeInt32(ret); + break; + } + case GET_LAST_SOURCE_INPUT: { + int ret = (int)mpTv->GetLastSourceInput(); + r->writeInt32(ret); + break; + } + case GET_CURRENT_SOURCE_INPUT: { + int ret = (int)mpTv->GetCurrentSourceInputLock(); + r->writeInt32(ret); + break; + } + case GET_CURRENT_SOURCE_INPUT_TYPE: { + int ret = 0;//(int)mpTv->Tvin_GetSrcInputType(); + r->writeInt32(ret); + break; + } + case GET_CURRENT_SIGNAL_INFO: { + tvin_info_t siginfo = mpTv->GetCurrentSignalInfo(); + int frame_rate = mpTv->getHDMIFrameRate(); + r->writeInt32(siginfo.trans_fmt); + r->writeInt32(siginfo.fmt); + r->writeInt32(siginfo.status); + r->writeInt32(frame_rate); + break; + } + case IS_SOURCE_SWTICH_DONE: { + //int ret = mpTv->Tv_IsSourceSwtichDone(); + r->writeInt32(0); + break; + } + case SET_SOURCE_INPUT: { + int sourceinput = p.readInt32(); + tvin_window_pos_t win_pos; + LOGD(" SetSourceInput sourceId= %x", sourceinput); + source_input = sourceinput; + int ret = mpTv->SetSourceSwitchInput((tv_source_input_t)sourceinput); + r->writeInt32(ret); + break; + } + case DO_SUSPEND: { + int type = p.readInt32(); + int ret = mpTv->DoSuspend(type); + r->writeInt32(ret); + break; + } + case DO_RESUME: { + int type = p.readInt32(); + int ret = mpTv->DoResume(type); + r->writeInt32(ret); + break; + } + case RUN_ADC_AUTO_CALIBRATION: { + // int ret = mpTv->Tv_RunADCAutoCalibration(); + // r->writeInt32(ret); + break; + } + case IS_DVI_SIGNAL: { + int ret = mpTv->IsDVISignal(); + r->writeInt32(ret); + break; + } + case IS_VGA_TIMEING_IN_HDMI: { + int ret = mpTv->isVgaFmtInHdmi(); + r->writeInt32(ret); + break; + } + case GET_VIDEO_PATH_STATUS: { + int path_type = p.readInt32(); + int ret = 0;//(int)mpTv->Tvin_CheckPathActive((tv_path_type_t)path_type); + r->writeInt32(ret); + break; + } + case GET_VIDEO_STREAM_STATUS: { + // int ret = (int)mpTv->Tvin_CheckVideoStreamStatus(); + // r->writeInt32(ret); + break; + } + case GET_FIRST_START_SWITCH_TYPE: { + //int tmp_val = 0; + //int ret = (int)mpTv->Tv_GetFirstStartSwitchType(&tmp_val); + //r->writeInt32(ret); + r->writeInt32(1); + break; + } + case SET_PREVIEW_WINDOW: { + tvin_window_pos_t win_pos; + win_pos.x1 = p.readInt32(); + win_pos.y1 = p.readInt32(); + win_pos.x2 = p.readInt32(); + win_pos.y2 = p.readInt32(); + int ret = (int)mpTv->SetPreviewWindow(win_pos); + r->writeInt32(ret); + break; + } + + case SET_VIDEO_DISABLE: { + int value = p.readInt32(); + int ret = 0;//(int)mpTv->Tv_SetVideoDisable(value); + r->writeInt32(ret); + break; + } + + case GET_SOURCE_CONNECT_STATUS: { + int source_input = p.readInt32(); + int ret = mpTv->GetSourceConnectStatus((tv_source_input_t)source_input); + r->writeInt32(ret); + break; + } + //Tv function END + + //VGA + case RUN_VGA_AUTO_ADJUST: { + //int ret = mpTv->Tv_RunVGAAutoAdjust(); + int ret = 0; + r->writeInt32(ret); + break; + } + case GET_VGA_AUTO_ADJUST_STATUS: { + // int fmt = p.readInt32(); + //int ret = (int) mpTv->Tv_GetVagAutoAdjustStatus(); + int ret = 0; + r->writeInt32(ret); + break; + } + case IS_VGA_AUTO_ADJUST_DONE: { + int fmt = p.readInt32(); + int ret = 0;//mpTv->Tv_IsVGAAutoAdjustDone((tvin_sig_fmt_t)fmt); + r->writeInt32(ret); + break; + } + case SET_VGA_HPOS: { + // int value = p.readInt32(); + // int fmt = p.readInt32(); + //int ret = mpTv->Tv_SetVGAHPos(value, (tvin_sig_fmt_t)fmt); + int ret = 0; + r->writeInt32(ret); + break; + } + case GET_VGA_HPOS: { + // int fmt = p.readInt32(); + // int ret = mpTv->Tv_GetVGAHPos((tvin_sig_fmt_t)fmt); + int ret = 0; + r->writeInt32(ret); + break; + } + + case SET_VGA_VPOS: { + // int value = p.readInt32(); + // int fmt = p.readInt32(); + // int ret = mpTv->Tv_SetVGAVPos(value, (tvin_sig_fmt_t)fmt); + int ret = 0; + r->writeInt32(ret); + break; + } + case GET_VGA_VPOS: { + // int fmt = p.readInt32(); + // int ret = mpTv->Tv_GetVGAVPos((tvin_sig_fmt_t)fmt); + int ret = 0; + r->writeInt32(ret); + break; + } + + case SET_VGA_CLOCK: { + // int value = p.readInt32(); + // int fmt = p.readInt32(); + // int ret = mpTv->Tv_SetVGAClock(value, (tvin_sig_fmt_t)fmt); + int ret = 0; + r->writeInt32(ret); + break; + } + case GET_VGA_CLOCK: { + // int fmt = p.readInt32(); + // int ret = mpTv->Tv_GetVGAClock((tvin_sig_fmt_t)fmt); + int ret = 0; + r->writeInt32(ret); + break; + } + + case SET_VGA_PHASE: { + // int value = p.readInt32(); + // int fmt = p.readInt32(); + // int ret = mpTv->Tv_SetVGAPhase(value, (tvin_sig_fmt_t)fmt); + int ret = 0; + r->writeInt32(ret); + break; + } + case GET_VGA_PHASE: { + // int fmt = p.readInt32(); + // int ret = mpTv->Tv_GetVGAPhase((tvin_sig_fmt_t)fmt); + int ret = 0; + r->writeInt32(ret); + break; + } + case SET_VGA_AJUST_PARA: { + tvafe_vga_parm_t adjparam; + adjparam.clk_step = p.readInt32(); + adjparam.phase = p.readInt32(); + adjparam.hpos_step = p.readInt32(); + adjparam.vpos_step = p.readInt32(); + adjparam.vga_in_clean = p.readInt32(); + int fmt = p.readInt32(); + int ret = 0/*SetVGAAjustPara(adjparam, (tvin_sig_fmt_t)fmt)*/; + r->writeInt32(ret); + break; + } + case GET_VGA_AJUST_PARA: { + tvafe_vga_parm_t adjparam; + int fmt = p.readInt32(); + int ret = 0/*GetVGAAjustPara(&adjparam, (tvin_sig_fmt_t)fmt)*/; + r->writeInt32(adjparam.clk_step); + r->writeInt32(adjparam.phase); + r->writeInt32(adjparam.hpos_step); + r->writeInt32(adjparam.vpos_step); + r->writeInt32(adjparam.vga_in_clean); + r->writeInt32(ret); + break; + } + case SET_VGAPARAM_DEFAULT: { + // int ret = (int)mpTv->TvinResetVgaAjustParam(); + // r->writeInt32(ret); + break; + } + // VGA END + + // 3D + + case SET_3D_MODE: { + int mode = p.readInt32(); + int ret = mpTv->Tv_Set3DMode((VIDEO_3D_MODE_T)mode); + r->writeInt32(ret); + break; + } + case GET_3D_MODE: { + int ret = (int)mpTv->Tv_Get3DMode(); + r->writeInt32(ret); + break; + } + case SET_3D_LR_SWITH: { + int on_off = p.readInt32(); + //int status = p.readInt32(); + int ret = mpTv->Tv_Set3DLRSwith(on_off); + r->writeInt32(ret); + break; + } + case GET_3D_LR_SWITH: { + int ret = mpTv->Tv_Get3DLRSwith(); + r->writeInt32(ret); + break; + } + case SET_3D_TO_2D_MODE: { + int mode = p.readInt32(); + //int status = p.readInt32(); + int ret = mpTv->Tv_Set3DTo2DMode(mode); + r->writeInt32(ret); + break; + } + case GET_3D_TO_2D_MODE: { + int ret = mpTv->Tv_Get3DTo2DMode(); + r->writeInt32(ret); + break; + } + case SET_3D_DEPTH: { + int value = p.readInt32(); + int ret = mpTv->Tv_Set3DDepth(value); + r->writeInt32(ret); + break; + } + case GET_3D_DEPTH: { + int ret = mpTv->GetSave3DDepth(); + r->writeInt32(ret); + break; + } + // 3D END + + // PQ + case SET_BRIGHTNESS: { + int brightness = p.readInt32(); + int source_type = p.readInt32(); + int is_save = p.readInt32(); + int ret = mpTv->Tv_SetBrightness(brightness, (tv_source_input_type_t)source_type, is_save); + r->writeInt32(ret); + break; + } + case GET_BRIGHTNESS: { + int source_type = p.readInt32(); + LOGD("GET_BRIGHTNESS------------=%d", source_type); + int ret = mpTv->Tv_GetBrightness((tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SAVE_BRIGHTNESS: { + int brightness = p.readInt32(); + int source_type = p.readInt32(); + int ret = mpTv->Tv_SaveBrightness(brightness, (tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + + case SET_CONTRAST: { + int contrast = p.readInt32(); + int source_type = p.readInt32(); + int is_save = p.readInt32(); + int ret = mpTv->Tv_SetContrast(contrast, (tv_source_input_type_t)source_type, is_save); + r->writeInt32(ret); + break; + } + case GET_CONTRAST: { + int source_type = p.readInt32(); + int ret = mpTv->Tv_GetContrast((tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SAVE_CONTRAST: { + int contrast = p.readInt32(); + int source_type = p.readInt32(); + int ret = mpTv->Tv_SaveContrast(contrast, (tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SET_SATUATION: { + int satuation = p.readInt32(); + int source_type = p.readInt32(); + int fmt = p.readInt32(); + int is_save = p.readInt32(); + int ret = mpTv->Tv_SetSaturation(satuation, (tv_source_input_type_t)source_type, (tvin_sig_fmt_t)fmt, is_save); + r->writeInt32(ret); + break; + } + case GET_SATUATION: { + int source_type = p.readInt32(); + int ret = mpTv->Tv_GetSaturation((tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SAVE_SATUATION: { + int satuation = p.readInt32(); + int source_type = p.readInt32(); + int ret = mpTv->Tv_SaveSaturation(satuation, (tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SET_HUE: { + int hue = p.readInt32(); + int source_type = p.readInt32(); + int fmt = p.readInt32(); + int is_save = p.readInt32(); + int ret = mpTv->Tv_SetHue(hue, (tv_source_input_type_t)source_type, (tvin_sig_fmt_t)fmt, is_save); + r->writeInt32(ret); + break; + } + case GET_HUE: { + int source_type = p.readInt32(); + int ret = mpTv->Tv_GetHue((tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SAVE_HUE: { + int hue = p.readInt32(); + int source_type = p.readInt32(); + int ret = mpTv->Tv_SaveHue(hue, (tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SET_SCENEMODE: { + int mode = p.readInt32(); + int is_save = p.readInt32(); + int ret = 0;//mpTv->Tv_SetSceneMode((vpp_scene_mode_t)mode,is_save); + r->writeInt32(ret); + break; + } + case GET_SCENEMODE: { + int ret = 0;//(int)mpTv->Tv_GetSceneMode(); + r->writeInt32(ret); + break; + } + case SET_PQMODE: { + int mode = p.readInt32(); + int source_type = p.readInt32(); + int is_save = p.readInt32(); + int ret = mpTv->Tv_SetPQMode((vpp_picture_mode_t)mode, (tv_source_input_type_t)source_type, is_save); + r->writeInt32(ret); + break; + } + case GET_PQMODE: { + int source_type = p.readInt32(); + int ret = (int)mpTv->Tv_GetPQMode((tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SAVE_PQMODE: { + int mode = p.readInt32(); + int source_type = p.readInt32(); + int ret = mpTv->Tv_SavePQMode((vpp_picture_mode_t)mode, (tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SET_SHARPNESS: { + int value = p.readInt32(); + int source_type = p.readInt32(); + int en = p.readInt32(); + int status_3d = p.readInt32(); + int is_save = p.readInt32(); + int ret = mpTv->Tv_SetSharpness(value, (tv_source_input_type_t)source_type, en, is_save); + r->writeInt32(ret); + break; + } + case GET_SHARPNESS: { + int source_type = p.readInt32(); + int ret = mpTv->Tv_GetSharpness((tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SAVE_SHARPNESS: { + int value = p.readInt32(); + int source_type = p.readInt32(); + int is_save = p.readInt32(); + int ret = mpTv->Tv_SaveSharpness(value, (tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SET_BACKLIGHT: { + int value = p.readInt32(); + int source_type = p.readInt32(); + int is_save = p.readInt32(); + int ret = mpTv->Tv_SetBacklight(value, (tv_source_input_type_t)source_type, is_save); + r->writeInt32(ret); + break; + } + case GET_BACKLIGHT: { + int source_type = p.readInt32(); + int ret = mpTv->Tv_GetBacklight((tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SAVE_BACKLIGHT: { + int value = p.readInt32(); + int source_type = p.readInt32(); + int ret = mpTv->Tv_SaveBacklight ( value, (tv_source_input_type_t)source_type ); + r->writeInt32(ret); + break; + } + case SET_BACKLIGHT_SWITCH: { + int value = p.readInt32(); + int ret = mpTv->Tv_SetBacklight_Switch(value); + r->writeInt32(ret); + break; + } + case GET_BACKLIGHT_SWITCH: { + int ret = mpTv->Tv_GetBacklight_Switch(); + r->writeInt32(ret); + break; + } + case SET_COLOR_TEMPERATURE: { + int mode = p.readInt32(); + int source_type = p.readInt32(); + int is_save = p.readInt32(); + int ret = mpTv->Tv_SetColorTemperature((vpp_color_temperature_mode_t)mode, (tv_source_input_type_t)source_type, is_save); + r->writeInt32(ret); + break; + } + case GET_COLOR_TEMPERATURE: { + int source_type = p.readInt32(); + int ret = mpTv->Tv_GetColorTemperature((tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SAVE_COLOR_TEMPERATURE: { + int mode = p.readInt32(); + int source_type = p.readInt32(); + int ret = mpTv->Tv_SaveColorTemperature ( (vpp_color_temperature_mode_t)mode, (tv_source_input_type_t)source_type ); + r->writeInt32(ret); + break; + } + case SET_DISPLAY_MODE: { + int mode = p.readInt32(); + int source_type = p.readInt32(); + int fmt = p.readInt32(); + int is_save = p.readInt32(); + int ret = mpTv->Tv_SetDisplayMode((vpp_display_mode_t)mode, (tv_source_input_type_t)source_type, (tvin_sig_fmt_t)fmt, is_save); + r->writeInt32(ret); + break; + } + case GET_DISPLAY_MODE: { + int source_type = p.readInt32(); + int ret = (int)mpTv->Tv_GetDisplayMode((tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SAVE_DISPLAY_MODE: { + int mode = p.readInt32(); + int source_type = p.readInt32(); + int ret = mpTv->Tv_SaveDisplayMode((vpp_display_mode_t)mode, (tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SET_NOISE_REDUCTION_MODE: { + int mode = p.readInt32(); + int source_type = p.readInt32(); + int is_save = p.readInt32(); + int ret = mpTv->Tv_SetNoiseReductionMode((vpp_noise_reduction_mode_t)mode, (tv_source_input_type_t)source_type, is_save); + r->writeInt32(ret); + break; + } + case GET_NOISE_REDUCTION_MODE: { + int source_type = p.readInt32(); + int ret = mpTv->Tv_GetNoiseReductionMode((tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case SAVE_NOISE_REDUCTION_MODE: { + int mode = p.readInt32(); + int source_type = p.readInt32(); + int ret = mpTv->Tv_SaveNoiseReductionMode((vpp_noise_reduction_mode_t)mode, (tv_source_input_type_t)source_type); + r->writeInt32(ret); + break; + } + case VPP_SPLIT_SCREEN_EFFECT: { + int mode = p.readInt32(); + int width = p.readInt32(); + int reverse = p.readInt32(); + int ret = mpTv->Tv_SplitScreenEffect(mode, width, reverse); + r->writeInt32(ret); + break; + } + // PQ END + + // FACTORY + case FACTORY_SETPQMODE_BRIGHTNESS: { + int source_type = p.readInt32(); + int pq_mode = p.readInt32(); + int brightness = p.readInt32(); + int ret = mpTv->Tv_FactorySetPQMode_Brightness(source_type, pq_mode, brightness); + r->writeInt32(ret); + break; + } + case FACTORY_GETPQMODE_BRIGHTNESS: { + int source_type = p.readInt32(); + int pq_mode = p.readInt32(); + int ret = mpTv->Tv_FactoryGetPQMode_Brightness(source_type, pq_mode); + r->writeInt32(ret); + break; + } + case FACTORY_SETPQMODE_CONTRAST: { + int source_type = p.readInt32(); + int pq_mode = p.readInt32(); + int contrast = p.readInt32(); + int ret = mpTv->Tv_FactorySetPQMode_Contrast(source_type, pq_mode, contrast); + r->writeInt32(ret); + break; + } + case FACTORY_GETPQMODE_CONTRAST: { + int source_type = p.readInt32(); + int pq_mode = p.readInt32(); + int ret = mpTv->Tv_FactoryGetPQMode_Contrast(source_type, pq_mode); + r->writeInt32(ret); + break; + } + case FACTORY_SETPQMODE_SATURATION: { + int source_type = p.readInt32(); + int pq_mode = p.readInt32(); + int saturation = p.readInt32(); + int ret = mpTv->Tv_FactorySetPQMode_Saturation(source_type, pq_mode, saturation); + r->writeInt32(ret); + break; + } + case FACTORY_GETPQMODE_SATURATION: { + int source_type = p.readInt32(); + int pq_mode = p.readInt32(); + int ret = mpTv->Tv_FactoryGetPQMode_Saturation(source_type, pq_mode); + r->writeInt32(ret); + break; + } + case FACTORY_SETPQMODE_HUE: { + int source_type = p.readInt32(); + int pq_mode = p.readInt32(); + int hue = p.readInt32(); + int ret = mpTv->Tv_FactorySetPQMode_Hue(source_type, pq_mode, hue); + r->writeInt32(ret); + break; + } + case FACTORY_GETPQMODE_HUE: { + int source_type = p.readInt32(); + int pq_mode = p.readInt32(); + int ret = mpTv->Tv_FactoryGetPQMode_Hue(source_type, pq_mode); + r->writeInt32(ret); + break; + } + case FACTORY_SETPQMODE_SHARPNESS: { + int source_type = p.readInt32(); + int pq_mode = p.readInt32(); + int sharpness = p.readInt32(); + int ret = mpTv->Tv_FactorySetPQMode_Sharpness(source_type, pq_mode, sharpness); + r->writeInt32(ret); + break; + } + case FACTORY_GETPQMODE_SHARPNESS: { + int source_type = p.readInt32(); + int pq_mode = p.readInt32(); + int ret = mpTv->Tv_FactoryGetPQMode_Sharpness(source_type, pq_mode); + + r->writeInt32(ret); + break; + } + case FACTORY_SETTESTPATTERN: { + int pattern = p.readInt32(); + int ret = mpTv->Tv_FactorySetTestPattern(pattern); + r->writeInt32(ret); + break; + } + case FACTORY_GETTESTPATTERN: { + int ret = mpTv->Tv_FactoryGetTestPattern(); + r->writeInt32(ret); + break; + } + case FACTORY_SETPATTERN_YUV: { + int blend = p.readInt32(); + int y = p.readInt32(); + int u = p.readInt32(); + int v = p.readInt32(); + int ret = mpTv->Tv_FactorySetScreenColor(blend, y, u, v); + r->writeInt32(ret); + break; + } + case FACTORY_RESETPQMODE: { + int ret = mpTv->Tv_FactoryResetPQMode(); + r->writeInt32(ret); + break; + } + case FACTORY_RESETCOLORTEMP: { + int ret = mpTv->Tv_FactoryResetColorTemp(); + r->writeInt32(ret); + break; + } + case FACTORY_RESETPAMAMSDEFAULT: { + int ret = mpTv->Tv_FactorySetParamsDefault(); + r->writeInt32(ret); + break; + } + case FACTORY_SETDDRSSC: { + int setp = p.readInt32(); + int ret = mpTv->Tv_FactorySetDDRSSC(setp); + r->writeInt32(ret); + break; + } + case FACTORY_GETDDRSSC: { + int ret = mpTv->Tv_FactoryGetDDRSSC(); + r->writeInt32(ret); + break; + } + case FACTORY_SETLVDSSSC: { + int setp = p.readInt32(); + int ret = mpTv->Tv_FactorySetLVDSSSC(setp); + r->writeInt32(ret); + break; + } + case FACTORY_GETLVDSSSC: { + int ret = mpTv->Tv_FactoryGetLVDSSSC(); + r->writeInt32(ret); + break; + } + case FACTORY_SETNOLINEPARAMS: { + noline_params_t params; + int noline_params_type = p.readInt32(); + int source_type = p.readInt32(); + params.osd0 = p.readInt32(); + params.osd25 = p.readInt32(); + params.osd50 = p.readInt32(); + params.osd75 = p.readInt32(); + params.osd100 = p.readInt32(); + int ret = mpTv->Tv_FactorySetNolineParams(noline_params_type, source_type, params); + r->writeInt32(ret); + break; + } + case FACTORY_GETNOLINEPARAMS: { + int noline_params_type = p.readInt32(); + int source_type = p.readInt32(); + noline_params_t params = mpTv->Tv_FactoryGetNolineParams(noline_params_type, source_type); + r->writeInt32(params.osd0); + r->writeInt32(params.osd25); + r->writeInt32(params.osd50); + r->writeInt32(params.osd75); + r->writeInt32(params.osd100); + break; + } + case FACTORY_SETOVERSCAN: { + tvin_cutwin_t cutwin_t; + int source_type = p.readInt32(); + int fmt = p.readInt32(); + int status_3d = p.readInt32(); + int trans_fmt = p.readInt32(); + cutwin_t.hs = p.readInt32(); + cutwin_t.he = p.readInt32(); + cutwin_t.vs = p.readInt32(); + cutwin_t.ve = p.readInt32(); + int ret = mpTv->Tv_FactorySetOverscan(source_type, fmt, status_3d, trans_fmt, cutwin_t); + r->writeInt32(ret); + break; + } + case FACTORY_GETOVERSCAN: { + int source_type = p.readInt32(); + int fmt = p.readInt32(); + int status_3d = p.readInt32(); + int trans_fmt = p.readInt32(); + tvin_cutwin_t cutwin_t = mpTv->Tv_FactoryGetOverscan(source_type, fmt, status_3d, trans_fmt); + r->writeInt32(cutwin_t.hs); + r->writeInt32(cutwin_t.he); + r->writeInt32(cutwin_t.vs); + r->writeInt32(cutwin_t.ve); + break; + } + case DELETE_PARAM_PQ_DB: { + int tmpRet = mpTv->Tv_ReplacePqDb(); + r->writeInt32(tmpRet); + } + case REPLACE_PARAM_PQ_DB: { + int tmpRet; + String16 tmp_str16; + String8 value_str; + + tmp_str16 = p.readString16(); + value_str = String8(tmp_str16); + + tmpRet = mpTv->Tv_ReplacePqDb(value_str.string()); + r->writeInt32(tmpRet); + break; + } + case FACTORY_SET_OUT_DEFAULT: { + int ret = 0; + ret = mpTv->Tv_SSMFacRestoreDefaultSetting(); + r->writeInt32(ret); + break; + } + case FACTORY_GETGLOBALOGO_RGAIN: { + int ret = 0; + r->writeInt32(ret); + break; + } + case FACTORY_GETGLOBALOGO_GGAIN: { + int ret = 0; + r->writeInt32(ret); + break; + } + case FACTORY_GETGLOBALOGO_BGAIN: { + int ret = 0; + r->writeInt32(ret); + break; + } + case FACTORY_GETGLOBALOGO_ROFFSET: { + int ret = 0; + r->writeInt32(ret); + break; + } + case FACTORY_GETGLOBALOGO_GOFFSET: { + int ret = 0; + r->writeInt32(ret); + break; + } + case FACTORY_GETGLOBALOGO_BOFFSET: { + int ret = 0; + r->writeInt32(ret); + break; + } + case FACTORY_SETGLOBALOGO_RGAIN: { + int ret = 0; + r->writeInt32(ret); + break; + } + case FACTORY_SETGLOBALOGO_GGAIN: { + int p1 = p.readInt32(); + int ret = 0; + r->writeInt32(ret); + break; + } + case FACTORY_SETGLOBALOGO_BGAIN: { + int p1 = p.readInt32(); + int ret = 0; + r->writeInt32(ret); + break; + } + case FACTORY_SETGLOBALOGO_ROFFSET: { + int p1 = p.readInt32(); + int ret = 0; + r->writeInt32(ret); + break; + } + case FACTORY_SETGLOBALOGO_GOFFSET: { + int p1 = p.readInt32(); + int ret = 0; + r->writeInt32(ret); + break; + } + case FACTORY_SETGLOBALOGO_BOFFSET: { + int p1 = p.readInt32(); + int ret = 0; + r->writeInt32(ret); + break; + } + case FACTORY_CLEAN_ALL_TABLE_FOR_PROGRAM: { + int ret = mpTv->ClearAnalogFrontEnd(); + mpTv->clearDbAllProgramInfoTable(); + r->writeInt32(ret); + break; + } + case FACTORY_SETBACKLIGHT_PWM_FREQUENCY: { + int value = p.readInt32(); + int ret = 0;//mpTv->GetVpp().Tv_FactorySetBacklightPWM_Frequency(value); + r->writeInt32(ret); + break; + } + case FACTORY_GETBACKLIGHT_PWM_FREQUENCY: { + int ret = 0;//mpTv->GetVpp().Tv_FactoryGetBacklightPWM_Frequency(); + r->writeInt32(ret); + break; + } + case FACTORY_SETBACKLIGHT_SWITCH_STATUS: { + int value = p.readInt32(); + int ret = 0;//mpTv->GetVpp().Tv_FactorySetBacklight_Switch_status(value); + r->writeInt32(ret); + break; + } + case FACTORY_GETBACKLIGHT_SWITCH_STATUS: { + int ret = 0;//mpTv->GetVpp().Tv_FactoryGetBacklight_Switch_status(); + r->writeInt32(ret); + break; + } + case FACTORY_SETBACKLIGHT_PWM_DUTY: { + int value = p.readInt32(); + int ret = 0;//mpTv->GetVpp().Tv_FactorySetBacklightPWM_Duty(value); + r->writeInt32(ret); + break; + } + case FACTORY_GETBACKLIGHT_PWM_DUTY: { + int ret = 0;//mpTv->GetVpp().Tv_FactoryGetBacklightPWM_Duty(); + r->writeInt32(ret); + break; + } + + case FACTORY_SETLVDS_COLOR_DEPTH: { + int value = p.readInt32(); + int ret = 0;//mpTv->GetVpp().Tv_FactorySetLVDS_ColorDepth(value); + r->writeInt32(ret); + break; + } + case FACTORY_GETLVDS_COLOR_DEPTH: { + int ret = 0;//mpTv->GetVpp().Tv_FactoryGetLVDS_ColorDepth(); + r->writeInt32(ret); + break; + } + case FACTORY_SETLVDS_DITHER_STATUS: { + int value = p.readInt32(); + int ret = 0;//mpTv->GetVpp().Tv_FactorySetLVDS_ColorDither_status(value); + r->writeInt32(ret); + break; + } + case FACTORY_GETLVDS_DITHER_STATUS: { + int ret = 0;//mpTv->GetVpp().Tv_FactoryGetLVDS_ColorDither_status(); + r->writeInt32(ret); + break; + } + case FACTORY_SETLVDS_MAPPING_STATUS: { + int value = p.readInt32(); + int ret = 0;//mpTv->GetVpp().Tv_FactorySetLVDS_Mapping_status(value); + r->writeInt32(ret); + break; + } + case FACTORY_GETLVDS_MAPPING_STATUS: { + int ret = 0;//mpTv->GetVpp().Tv_FactoryGetLVDS_Mapping_status(); + r->writeInt32(ret); + break; + } + case FACTORY_SETLVDS_PORT_SWAP_STATUS: { + int value = p.readInt32(); + int ret = 0;//mpTv->GetVpp().Tv_FactorySetLVDS_PortSwap_status(value); + r->writeInt32(ret); + break; + } + case FACTORY_GETLVDS_PORT_SWAP_STATUS: { + int ret = 0;//mpTv->GetVpp().Tv_FactoryGetLVDS_PortSwap_status(); + r->writeInt32(ret); + break; + } + // FACTORY END + + // AUDIO + // AUDIO MUTE + case SET_AUDIO_MUTEKEY_STATUS: { + int status = p.readInt32(); + int ret = mpTv->SetAudioMuteForSystem(status); + r->writeInt32(ret); + break; + } + case GET_AUDIO_MUTEKEY_STATUS: { + int ret = mpTv->GetAudioMuteForSystem(); + r->writeInt32(ret); + break; + } + case SET_AUDIO_FORCE_MUTE_STATUS: { + int status = p.readInt32(); + int ret = 0;//pTv->getTvAudio().AudioSetForceMuteStatus(status); + r->writeInt32(ret); + break; + } + case GET_AUDIO_FORCE_MUTE_STATUS: { + int ret = 0;//mpTv->AudioGetForceMuteStatus(); + r->writeInt32(ret); + break; + } + case SET_AUDIO_AVOUT_MUTE_STATUS: { + int status = p.readInt32(); + int ret = mpTv->SetAudioAVOutMute(status); + r->writeInt32(ret); + break; + } + case GET_AUDIO_AVOUT_MUTE_STATUS: { + int ret = mpTv->GetAudioAVOutMute(); + r->writeInt32(ret); + break; + } + case SET_AUDIO_SPDIF_MUTE_STATUS: { + int status = p.readInt32(); + int ret = mpTv->SetAudioSPDIFMute(status); + r->writeInt32(ret); + break; + } + case GET_AUDIO_SPDIF_MUTE_STATUS: { + int ret = mpTv->GetAudioSPDIFMute(); + r->writeInt32(ret); + break; + } + // AUDIO MASTER VOLUME + case SET_AUDIO_MASTER_VOLUME: { + int vol = p.readInt32(); + int ret = mpTv->SetAudioMasterVolume(vol); + r->writeInt32(ret); + break; + } + case GET_AUDIO_MASTER_VOLUME: { + int ret = mpTv->GetAudioMasterVolume(); + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_MASTER_VOLUME: { + int vol = p.readInt32(); + int ret = mpTv->SaveCurAudioMasterVolume(vol); + r->writeInt32(ret); + break; + } + case GET_CUR_AUDIO_MASTER_VOLUME: { + int ret = mpTv->GetCurAudioMasterVolume(); + r->writeInt32(ret); + break; + } + //AUDIO BALANCE + case SET_AUDIO_BALANCE: { + int vol = p.readInt32(); + int ret = mpTv->SetAudioBalance(vol); + r->writeInt32(ret); + break; + } + case GET_AUDIO_BALANCE: { + int ret = mpTv->GetAudioBalance(); + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_BALANCE: { + int vol = p.readInt32(); + int ret = mpTv->SaveCurAudioBalance(vol); + r->writeInt32(ret); + break; + } + case GET_CUR_AUDIO_BALANCE: { + int ret = mpTv->GetCurAudioBalance(); + r->writeInt32(ret); + break; + } + //AUDIO SUPPERBASS VOLUME + case SET_AUDIO_SUPPER_BASS_VOLUME: { + int vol = p.readInt32(); + int ret = mpTv->SetAudioSupperBassVolume(vol); + r->writeInt32(ret); + break; + } + case GET_AUDIO_SUPPER_BASS_VOLUME: { + int ret = mpTv->GetAudioSupperBassVolume(); + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_SUPPER_BASS_VOLUME: { + int vol = p.readInt32(); + int ret = mpTv->SaveCurAudioSupperBassVolume(vol); + r->writeInt32(ret); + break; + } + case GET_CUR_AUDIO_SUPPER_BASS_VOLUME: { + int ret = mpTv->GetCurAudioSupperBassVolume(); + r->writeInt32(ret); + break; + } + //AUDIO SUPPERBASS SWITCH + case SET_AUDIO_SUPPER_BASS_SWITCH: { + int vol = p.readInt32(); + int ret = mpTv->SetAudioSupperBassSwitch(vol); + r->writeInt32(ret); + break; + } + case GET_AUDIO_SUPPER_BASS_SWITCH: { + int ret = mpTv->GetAudioSupperBassSwitch(); + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_SUPPER_BASS_SWITCH: { + int vol = p.readInt32(); + int ret = mpTv->SaveCurAudioSupperBassSwitch(vol); + r->writeInt32(ret); + break; + } + case GET_CUR_AUDIO_SUPPER_BASS_SWITCH: { + int ret = mpTv->GetCurAudioSupperBassSwitch(); + r->writeInt32(ret); + break; + } + //AUDIO SRS SURROUND SWITCH + case SET_AUDIO_SRS_SURROUND: { + int vol = p.readInt32(); + int ret = mpTv->SetAudioSRSSurround(vol); + mpTv->RefreshAudioMasterVolume(SOURCE_MAX); + r->writeInt32(ret); + break; + } + case GET_AUDIO_SRS_SURROUND: { + int ret = mpTv->GetAudioSRSSurround(); + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_SRS_SURROUND: { + int vol = p.readInt32(); + int ret = mpTv->SaveCurAudioSrsSurround(vol); + r->writeInt32(ret); + break; + } + case GET_CUR_AUDIO_SRS_SURROUND: { + int ret = mpTv->GetCurAudioSRSSurround(); + r->writeInt32(ret); + break; + } + //AUDIO SRS DIALOG CLARITY + case SET_AUDIO_SRS_DIALOG_CLARITY: { + int vol = p.readInt32(); + int ret = mpTv->SetAudioSrsDialogClarity(vol); + mpTv->RefreshAudioMasterVolume(SOURCE_MAX); + r->writeInt32(ret); + break; + } + case GET_AUDIO_SRS_DIALOG_CLARITY: { + int ret = mpTv->GetAudioSrsDialogClarity(); + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_SRS_DIALOG_CLARITY: { + int vol = p.readInt32(); + int ret = mpTv->SaveCurAudioSrsDialogClarity(vol); + r->writeInt32(ret); + break; + } + case GET_CUR_AUDIO_SRS_DIALOG_CLARITY: { + int ret = mpTv->GetCurAudioSrsDialogClarity(); + r->writeInt32(ret); + break; + } + //AUDIO SRS TRUBASS + case SET_AUDIO_SRS_TRU_BASS: { + int vol = p.readInt32(); + int ret = mpTv->SetAudioSrsTruBass(vol); + mpTv->RefreshAudioMasterVolume(SOURCE_MAX); + r->writeInt32(ret); + break; + } + case GET_AUDIO_SRS_TRU_BASS: { + int ret = mpTv->GetAudioSrsTruBass(); + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_SRS_TRU_BASS: { + int vol = p.readInt32(); + int ret = mpTv->SaveCurAudioSrsTruBass(vol); + r->writeInt32(ret); + break; + } + case GET_CUR_AUDIO_SRS_TRU_BASS: { + int ret = mpTv->GetCurAudioSrsTruBass(); + r->writeInt32(ret); + break; + } + //AUDIO BASS + case SET_AUDIO_BASS_VOLUME: { + int vol = p.readInt32(); + int ret = mpTv->SetAudioBassVolume(vol); + r->writeInt32(ret); + break; + } + case GET_AUDIO_BASS_VOLUME: { + int ret = mpTv->GetAudioBassVolume(); + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_BASS_VOLUME: { + int vol = p.readInt32(); + int ret = mpTv->SaveCurAudioBassVolume(vol); + r->writeInt32(ret); + break; + } + case GET_CUR_AUDIO_BASS_VOLUME: { + int ret = mpTv->GetCurAudioBassVolume(); + r->writeInt32(ret); + break; + } + //AUDIO TREBLE + case SET_AUDIO_TREBLE_VOLUME: { + int vol = p.readInt32(); + int ret = mpTv->SetAudioTrebleVolume(vol); + r->writeInt32(ret); + break; + } + case GET_AUDIO_TREBLE_VOLUME: { + int ret = mpTv->GetAudioTrebleVolume(); + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_TREBLE_VOLUME: { + int vol = p.readInt32(); + int ret = mpTv->SaveCurAudioTrebleVolume(vol); + r->writeInt32(ret); + break; + } + case GET_CUR_AUDIO_TREBLE_VOLUME: { + int ret = mpTv->GetCurAudioTrebleVolume(); + r->writeInt32(ret); + break; + } + //AUDIO SOUND MODE + case SET_AUDIO_SOUND_MODE: { + int vol = p.readInt32(); + int ret = mpTv->SetAudioSoundMode(vol); + r->writeInt32(ret); + break; + } + case GET_AUDIO_SOUND_MODE: { + int ret = mpTv->GetAudioSoundMode(); + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_SOUND_MODE: { + int vol = p.readInt32(); + int ret = mpTv->SaveCurAudioSoundMode(vol); + r->writeInt32(ret); + break; + } + case GET_CUR_AUDIO_SOUND_MODE: { + int ret = mpTv->GetCurAudioSoundMode(); + r->writeInt32(ret); + break; + } + //AUDIO WALL EFFECT + case SET_AUDIO_WALL_EFFECT: { + int vol = p.readInt32(); + int ret = mpTv->SetAudioWallEffect(vol); + r->writeInt32(ret); + break; + } + case GET_AUDIO_WALL_EFFECT: { + int ret = mpTv->GetAudioWallEffect(); + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_WALL_EFFECT: { + int vol = p.readInt32(); + int ret = mpTv->SaveCurAudioWallEffect(vol); + r->writeInt32(ret); + break; + } + case GET_CUR_AUDIO_WALL_EFFECT: { + int ret = mpTv->GetCurAudioWallEffect(); + r->writeInt32(ret); + break; + } + //AUDIO EQ MODE + case SET_AUDIO_EQ_MODE: { + int vol = p.readInt32(); + int ret = mpTv->SetAudioEQMode(vol); + r->writeInt32(ret); + break; + } + case GET_AUDIO_EQ_MODE: { + int ret = mpTv->GetAudioEQMode(); + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_EQ_MODE: { + int vol = p.readInt32(); + int ret = mpTv->SaveCurAudioEQMode(vol); + r->writeInt32(ret); + break; + } + case GET_CUR_AUDIO_EQ_MODE: { + int ret = mpTv->GetCurAudioEQMode(); + r->writeInt32(ret); + break; + } + //AUDIO EQ GAIN + case GET_AUDIO_EQ_RANGE: { + int buf[2]; + int ret = mpTv->GetAudioEQRange(buf); + r->writeInt32(2); + r->writeInt32(buf[0]); + r->writeInt32(buf[1]); + r->writeInt32(ret); + break; + } + case GET_AUDIO_EQ_BAND_COUNT: { + int ret = mpTv->GetAudioEQBandCount(); + r->writeInt32(ret); + break; + } + case SET_AUDIO_EQ_GAIN: { + int i = 0, tmp_buf_size = 0, ret = 0; + tmp_buf_size = p.readInt32(); + for (i = 0; i < tmp_buf_size; i++) { + tmp_i_buf[i] = p.readInt32(); + } + ret = mpTv->SetAudioEQGain(tmp_i_buf); + r->writeInt32(ret); + break; + } + case GET_AUDIO_EQ_GAIN: { + int i = 0, tmp_buf_size = 0, ret = 0; + ret = mpTv->GetAudioEQGain(tmp_i_buf); + tmp_buf_size = mpTv->GetAudioEQBandCount(); + r->writeInt32(tmp_buf_size); + for (i = 0; i < tmp_buf_size; i++) { + r->writeInt32(tmp_i_buf[i]); + } + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_EQ_GAIN: { + int i = 0, tmp_buf_size = 0, ret = 0; + tmp_buf_size = p.readInt32(); + for (i = 0; i < tmp_buf_size; i++) { + tmp_i_buf[i] = p.readInt32(); + } + ret = mpTv->SaveCurAudioEQGain(tmp_i_buf); + r->writeInt32(ret); + break; + } + case GET_CUR_EQ_GAIN: { + int i = 0, tmp_buf_size = 0, ret = 0; + ret = mpTv->GetCurAudioEQGain(tmp_i_buf); + tmp_buf_size = mpTv->GetAudioEQBandCount(); + r->writeInt32(tmp_buf_size); + for (i = 0; i < tmp_buf_size; i++) { + r->writeInt32(tmp_i_buf[i]); + } + r->writeInt32(ret); + break; + } + case SET_AUDIO_EQ_SWITCH: { + int tmpVal = p.readInt32(); + int ret = mpTv->SetAudioEQSwitch(tmpVal); + r->writeInt32(ret); + break; + } + // AUDIO SPDIF SWITCH + case SET_AUDIO_SPDIF_SWITCH: { + int tmp_val = p.readInt32(); + int ret = mpTv->SetAudioSPDIFSwitch(tmp_val); + r->writeInt32(ret); + break; + } + case GET_AUDIO_SPDIF_SWITCH: { + int ret = 0;//mpTv->GetAudioSPDIFSwitch(); + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_SPDIF_SWITCH: { + int tmp_val = p.readInt32(); + int ret = mpTv->SaveCurAudioSPDIFSwitch(tmp_val); + r->writeInt32(ret); + break; + } + case GET_CUR_AUDIO_SPDIF_SWITCH: { + int ret = mpTv->GetCurAudioSPDIFSwitch(); + r->writeInt32(ret); + break; + } + //AUDIO SPDIF MODE + case SET_AUDIO_SPDIF_MODE: { + int vol = p.readInt32(); + int progId = p.readInt32(); + int audioTrackId = p.readInt32(); + int ret = mpTv->SetAudioSPDIFMode(vol); + mpTv->ResetAudioDecoderForPCMOutput(); + r->writeInt32(ret); + break; + } + case GET_AUDIO_SPDIF_MODE: { + int ret = 0;//mpTv->GetAudioSPDIFMode(); + r->writeInt32(ret); + break; + } + case SAVE_CUR_AUDIO_SPDIF_MODE: { + int vol = p.readInt32(); + int ret = mpTv->SaveCurAudioSPDIFMode(vol); + r->writeInt32(ret); + break; + } + case GET_CUR_AUDIO_SPDIF_MODE: { + int ret = mpTv->GetCurAudioSPDIFMode(); + r->writeInt32(ret); + break; + } + case OPEN_AMAUDIO: { + int sr = p.readInt32(); + int output_dev = p.readInt32(); + int ret = 0;//mpTv->OpenAmAudio(sr, output_dev); + r->writeInt32(ret); + break; + } + case CLOSE_AMAUDIO: { + int ret = 0;//mpTv->CloseAmAudio(); + r->writeInt32(ret); + break; + } + case SET_AMAUDIO_INPUT_SR: { + int sr = p.readInt32(); + int output_dev = p.readInt32(); + int ret = 0;//mpTv->SetAmAudioInputSr(sr, output_dev); + r->writeInt32(ret); + break; + } + case SET_AMAUDIO_OUTPUT_MODE: { + int tmp_val = p.readInt32(); + int ret = mpTv->SetAmAudioOutputMode(tmp_val); + r->writeInt32(ret); + break; + } + case SET_AMAUDIO_MUSIC_GAIN: { + int tmp_val = p.readInt32(); + int ret = mpTv->SetAmAudioMusicGain(tmp_val); + r->writeInt32(ret); + break; + } + case SET_AMAUDIO_LEFT_GAIN: { + int tmp_val = p.readInt32(); + int ret = mpTv->SetAmAudioLeftGain(tmp_val); + r->writeInt32(ret); + break; + } + case SET_AMAUDIO_RIGHT_GAIN: { + int tmp_val = p.readInt32(); + int ret = mpTv->SetAmAudioRightGain(tmp_val); + r->writeInt32(ret); + break; + } + case SELECT_LINE_IN_CHANNEL: { + int channel = p.readInt32(); + int ret = mpTv->AudioLineInSelectChannel(channel); + r->writeInt32(ret); + LOGD("SELECT_LINE_IN_CHANNEL: channel = %d; ret = %d.\n", channel, ret); + break; + } + case SET_KALAOK_IO_LEVEL: { + int level = p.readInt32(); + int ret = mpTv->SetKalaokIO(level); + ret = mpTv->AudioSetAudioInSource(CC_AUDIO_IN_SOURCE_LINEIN); + r->writeInt32(ret); + LOGD("set line in source CC_AUDIO_IN_SOURCE_LINEIN\n"); + break; + } + + case SET_LINE_IN_CAPTURE_VOL: { + int l_vol = p.readInt32(); + int r_vol = p.readInt32(); + int ret = mpTv->AudioSetLineInCaptureVolume(l_vol, r_vol); + r->writeInt32(ret); + break; + } + case HANDLE_AUDIO_HEADSET_PLUG_IN: { + int ret = mpTv->AudioHandleHeadsetPlugIn(); + r->writeInt32(ret); + break; + } + case HANDLE_AUDIO_HEADSET_PULL_OUT: { + int ret = mpTv->AudioHandleHeadsetPullOut(); + r->writeInt32(ret); + break; + } + case SET_AUDIO_VOL_COMP: { + int tmpVal = p.readInt32(); + int ret = mpTv->SetCurProgramAudioVolumeCompensationVal(tmpVal); + r->writeInt32(ret); + break; + } + case GET_AUDIO_VOL_COMP: { + int ret = mpTv->GetAudioVolumeCompensationVal(-1); + r->writeInt32(ret); + break; + } + case SAVE_AUDIO_VOL_COMP: { + int tmpVal = p.readInt32(); + int ret = -1;//mpTv->atvSaveAudioVolumeCompensationVal(tmpVal); + LOGD("this cmd is empty!!!!!!!!!!!!!!!!!!!"); + r->writeInt32(ret); + break; + } + case SET_NOISE_GATE_THRESHOLD: { + int ret = 0; + r->writeInt32(ret); + break; + } + case SET_AUDIO_SOURCE_FOR_KARAOKE: { + int sourceinput = p.readInt32(); + int ret = mpTv->Tv_SetAudioSourceType((tv_source_input_t)sourceinput); + r->writeInt32(ret); + break; + } + case SET_DBX_TV_MODE: { + int mode = p.readInt32(); + int son_value = p.readInt32(); + int vol_value = p.readInt32(); + int sur_value = p.readInt32(); + int ret = mpTv->SetDbxTvMode(mode, son_value, vol_value, sur_value); + r->writeInt32(ret); + break; + } + case GET_DBX_TV_MODE: { + int mode ; + int son_value ; + int vol_value ; + int sur_value ; + int ret = mpTv->GetDbxTvMode(&mode, &son_value, &vol_value, &sur_value); + r->writeInt32(mode); + r->writeInt32(son_value); + r->writeInt32(vol_value); + r->writeInt32(sur_value); + r->writeInt32(ret); + break; + } + + case SET_DRC_ONOFF: { + int val = p.readInt32(); + int ret = mpTv->Tv_SetDRC_OnOff(val); + r->writeInt32(ret); + break; + } + case GET_DRC_ONOFF: { + int ret = mpTv->Tv_GetDRC_OnOff(); + r->writeInt32(ret); + break; + } + // AUDIO END + + // SSM + case SSM_INIT_DEVICE: { + int tmpRet = 0; + tmpRet = mpTv->Tv_SSMRestoreDefaultSetting();//mpTv->Tv_SSMInitDevice(); + r->writeInt32(tmpRet); + break; + } + /*case SSM_SAVE_ONE_BYTE: { + int tmpOffset = p.readInt32(); + int tmpVal = p.readInt32(); + int tmpRet; + tmpRet = SSMWriteOneByte(tmpOffset, tmpVal); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_ONE_BYTE: { + int tmpOffset = p.readInt32(); + int tmpRet = 0; + SSMReadOneByte(tmpOffset, &tmpRet); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_N_BYTES: { + int i = 0, tmp_offset = 0, tmp_data_len = 0, ret = -1; + + tmp_offset = p.readInt32(); + tmp_data_len = p.readInt32(); + + if (tmp_data_len > 0) { + data_ptr = new int[tmp_data_len]; + + if (data_ptr != NULL) { + for (i = 0; i < tmp_data_len; i++) { + data_ptr[i] = p.readInt32(); + } + + ret = SSMWriteNTypes(tmp_offset, tmp_data_len, data_ptr); + + delete data_ptr; + data_ptr = NULL; + } + } + + r->writeInt32(ret); + break; + } + case SSM_READ_N_BYTES: { + int i = 0, tmp_offset = 0, tmp_data_len = 0, ret = -1; + tmp_offset = p.readInt32(); + tmp_data_len = p.readInt32(); + + if (tmp_data_len > 0) { + data_ptr = new int[tmp_data_len]; + if (data_ptr != NULL) { + ret = SSMReadNTypes(tmp_offset, tmp_data_len, data_ptr); + if (ret < 0) { + tmp_data_len = 0; + } + r->writeInt32(tmp_data_len); + for (i = 0; i < tmp_data_len; i++) { + r->writeInt32(data_ptr[i]); + } + delete data_ptr; + data_ptr = NULL; + } + } + r->writeInt32(ret); + break; + }*/ + case SSM_SAVE_POWER_ON_OFF_CHANNEL: { + int tmpPowerChanNum = p.readInt32(); + int tmpRet; + tmpRet = SSMSavePowerOnOffChannel(tmpPowerChanNum); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_POWER_ON_OFF_CHANNEL: { + int tmpRet = 0; + tmpRet = SSMReadPowerOnOffChannel(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_SOURCE_INPUT: { + int tmpSouceInput = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveSourceInput(tmpSouceInput); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_SOURCE_INPUT: { + int tmpRet = 0; + tmpRet = SSMReadSourceInput(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_LAST_SOURCE_INPUT: { + int tmpLastSouceInput = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveLastSelectSourceInput(tmpLastSouceInput); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_LAST_SOURCE_INPUT: { + int tmpRet = 0; + tmpRet = SSMReadLastSelectSourceInput(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_SYS_LANGUAGE: { + int tmpVal = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveSystemLanguage(tmpVal); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_SYS_LANGUAGE: { + int tmpRet = 0; + tmpRet = SSMReadSystemLanguage(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_AGING_MODE: { + int tmpVal = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveAgingMode(tmpVal); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_AGING_MODE: { + int tmpRet = 0; + tmpRet = SSMReadAgingMode(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_PANEL_TYPE: { + int tmpVal = p.readInt32(); + int tmpRet; + tmpRet = SSMSavePanelType(tmpVal); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_PANEL_TYPE: { + int tmpRet = 0; + tmpRet = SSMReadPanelType(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_MAC_ADDR: { + int i = 0, tmp_buf_size = 0, ret = 0; + tmp_buf_size = p.readInt32(); + for (i = 0; i < tmp_buf_size; i++) { + tmp_uc_buf[i] = p.readInt32(); + } + ret = KeyData_SaveMacAddress(tmp_uc_buf); + r->writeInt32(ret); + break; + } + case SSM_READ_MAC_ADDR: { + int i = 0, tmp_buf_size = 0, ret = 0; + ret = KeyData_ReadMacAddress(tmp_uc_buf); + tmp_buf_size = KeyData_GetMacAddressDataLen(); + r->writeInt32(tmp_buf_size); + for (i = 0; i < tmp_buf_size; i++) { + r->writeInt32(tmp_uc_buf[i]); + } + r->writeInt32(ret); + break; + } + case SSM_SAVE_BAR_CODE: { + int i = 0, tmp_buf_size = 0, ret = 0; + tmp_buf_size = p.readInt32(); + for (i = 0; i < tmp_buf_size; i++) { + tmp_uc_buf[i] = p.readInt32(); + } + ret = KeyData_SaveBarCode(tmp_uc_buf); + r->writeInt32(ret); + break; + } + case SSM_READ_BAR_CODE: { + int i = 0, tmp_buf_size = 0, ret = 0; + ret = KeyData_ReadBarCode(tmp_uc_buf); + tmp_buf_size = KeyData_GetBarCodeDataLen(); + r->writeInt32(tmp_buf_size); + for (i = 0; i < tmp_buf_size; i++) { + r->writeInt32(tmp_uc_buf[i]); + } + r->writeInt32(ret); + break; + } + case SSM_SAVE_PROJECT_ID: { + int tmpVal = p.readInt32(); + int tmpRet; + tmpRet = KeyData_SaveProjectID(tmpVal); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_PROJECT_ID: { + int tmpRet = 0; + tmpRet = KeyData_ReadProjectID(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_HDCPKEY: { + int i = 0, tmp_buf_size = 0, ret = 0; + tmp_buf_size = p.readInt32(); + for (i = 0; i < tmp_buf_size; i++) { + tmp_uc_buf[i] = p.readInt32(); + } + ret = SSMSaveHDCPKey(tmp_uc_buf); + r->writeInt32(ret); + break; + } + case SSM_READ_HDCPKEY: { + int i = 0, tmp_buf_size = 0, ret = 0; + ret = SSMReadHDCPKey(tmp_uc_buf); + tmp_buf_size = SSMGetHDCPKeyDataLen(); + r->writeInt32(tmp_buf_size); + for (i = 0; i < tmp_buf_size; i++) { + r->writeInt32(tmp_uc_buf[i]); + } + r->writeInt32(ret); + break; + } + case SSM_SAVE_POWER_ON_MUSIC_SWITCH: { + int tmpVal = p.readInt32(); + int tmpRet; + tmpRet = SSMSavePowerOnMusicSwitch(tmpVal); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_POWER_ON_MUSIC_SWITCH: { + int tmpRet = 0; + tmpRet = SSMReadPowerOnMusicSwitch(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_POWER_ON_MUSIC_VOL: { + int tmpVal = p.readInt32(); + int tmpRet; + tmpRet = SSMSavePowerOnMusicVolume(tmpVal); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_POWER_ON_MUSIC_VOL: { + int tmpRet = 0; + tmpRet = SSMReadPowerOnMusicVolume(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_SYS_SLEEP_TIMER: { + int tmpVal = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveSystemSleepTimer(tmpVal); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_SYS_SLEEP_TIMER: { + int tmpRet = 0; + tmpRet = SSMReadSystemSleepTimer(); + r->writeInt32(tmpRet); + break; + } + case SSM_SET_BUS_STATUS: { + int tmpVal = p.readInt32(); + int tmpRet = 0; + //showboz + //tmpRet = SSMSetBusStatus(tmpVal); + r->writeInt32(tmpRet); + break; + } + case SSM_GET_BUS_STATUS: { + int tmpRet = 0; + //showboz + //tmpRet = SSMGetBusStatus(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_INPUT_SRC_PARENTAL_CTL: { + int tmpSourceIndex = p.readInt32(); + int tmpCtlFlag = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveInputSourceParentalControl(tmpSourceIndex, tmpCtlFlag); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_INPUT_SRC_PARENTAL_CTL: { + int tmpSourceIndex = p.readInt32(); + int tmpRet = 0; + tmpRet = SSMReadInputSourceParentalControl(tmpSourceIndex); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_PARENTAL_CTL_SWITCH: { + int tmpSwitchFlag = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveParentalControlSwitch(tmpSwitchFlag); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_PARENTAL_CTL_SWITCH: { + int tmpRet = 0; + tmpRet = SSMReadParentalControlSwitch(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_PARENTAL_CTL_PASS_WORD: { + String16 pass_wd_str = p.readString16(); + int tmpRet; + tmpRet = SSMSaveParentalControlPassWord((unsigned char *)pass_wd_str.string(), pass_wd_str.size() * sizeof(unsigned short)); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_PARENTAL_CTL_PASS_WORD: { + int tmpChanID = p.readInt32(); + unsigned short tmp_buf [SSM_RW_PARENTAL_CTL_PASSWORD_LEN + 1]; + String16 pass_wd_str; + SSMReadParentalControlPassWord(tmp_buf); + tmp_buf[SSM_RW_PARENTAL_CTL_PASSWORD_LEN / sizeof(unsigned short)] = 0; + //pass_wd_str.setTo((const unsigned short *) tmp_buf); + //r->writeString16(pass_wd_str); + break; + } + case SSM_SAVE_USING_DEF_HDCP_KEY_FLAG: { + break; + } + case SSM_READ_USING_DEF_HDCP_KEY_FLAG: { + break; + } + case SSM_GET_CUSTOMER_DATA_START: { + int tmpRet = 0; + tmpRet = SSMGetCustomerDataStart(); + r->writeInt32(tmpRet); + break; + } + case SSM_GET_CUSTOMER_DATA_LEN: { + int tmpRet = 0; + tmpRet = SSMGetCustomerDataLen(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_STANDBY_MODE: { + int tmp_val = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveStandbyMode(tmp_val); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_STANDBY_MODE: { + int tmpRet = 0; + tmpRet = SSMReadStandbyMode(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_LOGO_ON_OFF_FLAG: { + int tmpSwitchFlag = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveLogoOnOffFlag(tmpSwitchFlag); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_LOGO_ON_OFF_FLAG: { + int tmpRet = 0; + tmpRet = SSMReadLogoOnOffFlag(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_HDMIEQ_MODE: { + int tmpSwitchFlag = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveHDMIEQMode(tmpSwitchFlag); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_HDMIEQ_MODE: { + int tmpRet = 0; + tmpRet = SSMReadHDMIEQMode(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_HDMIINTERNAL_MODE: { + int tmp_val = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveHDMIInternalMode(tmp_val); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_HDMIINTERNAL_MODE: { + int tmpRet = 0; + tmpRet = SSMReadHDMIInternalMode(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_DISABLE_3D: { + int tmp_val = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveDisable3D(tmp_val); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_DISABLE_3D: { + int tmpRet = 0; + tmpRet = SSMReadDisable3D(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_GLOBAL_OGOENABLE: { + int tmp_val = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveGlobalOgoEnable(tmp_val); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_GLOBAL_OGOENABLE: { + int tmpRet = 0; + tmpRet = SSMReadGlobalOgoEnable(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_NON_STANDARD_STATUS: { + int tmp_val = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveNonStandardValue(tmp_val); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_NON_STANDARD_STATUS: { + int tmpRet = 0; + tmpRet = SSMReadNonStandardValue(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_ADB_SWITCH_STATUS: { + int tmp_val = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveAdbSwitchValue(tmp_val); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_ADB_SWITCH_STATUS: { + int tmpRet = 0; + tmpRet = SSMReadAdbSwitchValue(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_SERIAL_CMD_SWITCH_STATUS: { + int tmp_val = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveSerialCMDSwitchValue(tmp_val); + tmpRet |= mpTv->SetSerialSwitch(SERIAL_A, tmp_val); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_SERIAL_CMD_SWITCH_STATUS: { + int tmpRet = 0; + tmpRet = SSMReadSerialCMDSwitchValue(); + r->writeInt32(tmpRet); + break; + } + case SSM_SET_HDCP_KEY: { + int tmpRet = 0; + tmpRet = SSMSetHDCPKey(); + r->writeInt32(tmpRet); + break; + } + case SSM_REFRESH_HDCPKEY: { + int tmpRet = 0; + tmpRet = SSMRefreshHDCPKey(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_CHROMA_STATUS: { + int tmp_val = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveChromaStatus(tmp_val); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_CA_BUFFER_SIZE: { + int tmp_val = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveCABufferSizeValue(tmp_val); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_CA_BUFFER_SIZE: { + int tmpRet = 0; + tmpRet = SSMReadCABufferSizeValue(); + r->writeInt32(tmpRet); + break; + } + case SSM_GET_ATV_DATA_START: { + int tmpRet = 0; + tmpRet = SSMGetATVDataStart(); + r->writeInt32(tmpRet); + break; + } + case SSM_GET_ATV_DATA_LEN: { + int tmpRet = 0; + tmpRet = SSMGetATVDataLen(); + r->writeInt32(tmpRet); + break; + } + case SSM_GET_VPP_DATA_START: { + int tmpRet = 0; + tmpRet = SSMGetVPPDataStart(); + r->writeInt32(tmpRet); + break; + } + case SSM_GET_VPP_DATA_LEN: { + int tmpRet = 0; + tmpRet = SSMGetVPPDataLen(); + r->writeInt32(tmpRet); + break; + } + case SSM_SAVE_NOISE_GATE_THRESHOLD_STATUS: { + int tmp_val = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveNoiseGateThresholdValue(tmp_val); + r->writeInt32(tmpRet); + break; + } + case SSM_READ_NOISE_GATE_THRESHOLD_STATUS: { + int tmpRet = 0; + tmpRet = SSMReadNoiseGateThresholdValue(); + r->writeInt32(tmpRet); + break; + } + case SSM_EEPROM_SAVE_ONE_BYTE_N310_N311: { + int tmpOffset = p.readInt32(); + int tmpVal = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveEEP_One_N310_N311(tmpOffset, tmpVal); + r->writeInt32(tmpRet); + break; + } + case SSM_EEPROM_READ_ONE_BYTE_N310_N311: { + int tmpOffset = p.readInt32(); + int tmpRet = 0; + tmpRet = SSMReadEEP_One_N310_N311(tmpOffset); + r->writeInt32(tmpRet); + break; + } + case SSM_EEPROM_SAVE_N_BYTES_N310_N311: { + int i = 0, tmp_offset = 0, tmp_data_len = 0, ret = -1; + + tmp_offset = p.readInt32(); + tmp_data_len = p.readInt32(); + + if (tmp_data_len > 0) { + data_ptr = new int[tmp_data_len]; + + if (data_ptr != NULL) { + for (i = 0; i < tmp_data_len; i++) { + data_ptr[i] = p.readInt32(); + } + + ret = SSMSaveEEP_N_N310_N311(tmp_offset, tmp_data_len, data_ptr); + + delete data_ptr; + data_ptr = NULL; + } + } + + r->writeInt32(ret); + break; + } + case SSM_EEPROM_READ_N_BYTES_N310_N311: { + int i = 0, tmp_offset = 0, tmp_data_len = 0, ret = -1; + tmp_offset = p.readInt32(); + tmp_data_len = p.readInt32(); + + if (tmp_data_len > 0) { + data_ptr = new int[tmp_data_len]; + if (data_ptr != NULL) { + ret = SSMReadEEP_N_N310_N311(tmp_offset, tmp_data_len, data_ptr); + if (ret < 0) { + tmp_data_len = 0; + } + r->writeInt32(tmp_data_len); + for (i = 0; i < tmp_data_len; i++) { + r->writeInt32(data_ptr[i]); + } + delete data_ptr; + data_ptr = NULL; + } + } + r->writeInt32(ret); + break; + } + case SSM_FLASH_SAVE_ONE_BYTE_N310_N311: { + int tmpOffset = p.readInt32(); + int tmpVal = p.readInt32(); + int tmpRet; + tmpRet = SSMSaveFlash_One_N310_N311(tmpOffset, tmpVal); + r->writeInt32(tmpRet); + break; + } + case SSM_FLASH_READ_ONE_BYTE_N310_N311: { + int tmpOffset = p.readInt32(); + int tmpRet = 0; + tmpRet = SSMReadFlash_One_N310_N311(tmpOffset); + r->writeInt32(tmpRet); + break; + } + case SSM_FLASH_SAVE_N_BYTES_N310_N311: { + int i = 0, tmp_offset = 0, tmp_data_len = 0, ret = -1; + + tmp_offset = p.readInt32(); + tmp_data_len = p.readInt32(); + + if (tmp_data_len > 0) { + data_ptr = new int[tmp_data_len]; + + if (data_ptr != NULL) { + for (i = 0; i < tmp_data_len; i++) { + data_ptr[i] = p.readInt32(); + } + + ret = SSMSaveFlash_N_N310_N311(tmp_offset, tmp_data_len, data_ptr); + + delete data_ptr; + data_ptr = NULL; + } + } + + r->writeInt32(ret); + break; + } + case SSM_FLASH_READ_N_BYTES_N310_N311: { + int i = 0, tmp_offset = 0, tmp_data_len = 0, ret = -1; + tmp_offset = p.readInt32(); + tmp_data_len = p.readInt32(); + + if (tmp_data_len > 0) { + data_ptr = new int[tmp_data_len]; + if (data_ptr != NULL) { + ret = SSMReadFlash_N_N310_N311(tmp_offset, tmp_data_len, data_ptr); + if (ret < 0) { + tmp_data_len = 0; + } + r->writeInt32(tmp_data_len); + for (i = 0; i < tmp_data_len; i++) { + r->writeInt32(data_ptr[i]); + } + delete data_ptr; + data_ptr = NULL; + } + } + r->writeInt32(ret); + break; + } + // SSM END + + //MISC + case MISC_PROP_SET: { + int tmpRet; + String16 tmp_str16; + String8 key_str, value_str; + + tmp_str16 = p.readString16(); + key_str = String8(tmp_str16); + tmp_str16 = p.readString16(); + value_str = String8(tmp_str16); + + tmpRet = property_set(key_str.string(), value_str.string()); + r->writeInt32(tmpRet); + break; + } + case MISC_PROP_GET: { + char prop_value[PROPERTY_VALUE_MAX]; + String16 tmp_str16; + String8 key_str, def_str; + + tmp_str16 = p.readString16(); + key_str = String8(tmp_str16); + tmp_str16 = p.readString16(); + def_str = String8(tmp_str16); + + memset(prop_value, '\0', PROPERTY_VALUE_MAX); + property_get(key_str.string(), prop_value, def_str.string()); + tmp_str16 = String16(prop_value); + + r->writeString16(tmp_str16); + break; + } + case MISC_CFG_SET: { + int tmpRet; + String16 tmp_str16; + String8 key_str, value_str; + + tmp_str16 = p.readString16(); + key_str = String8(tmp_str16); + tmp_str16 = p.readString16(); + value_str = String8(tmp_str16); + + tmpRet = config_set_str(CFG_SECTION_TV, key_str.string(), value_str.string()); + r->writeInt32(tmpRet); + break; + } + case MISC_CFG_GET: { + const char *prop_value; + String16 tmp_str16; + String8 key_str, def_str; + + tmp_str16 = p.readString16(); + key_str = String8(tmp_str16); + tmp_str16 = p.readString16(); + def_str = String8(tmp_str16); + + prop_value = config_get_str(CFG_SECTION_TV, key_str.string(), def_str.string()); + tmp_str16 = String16(prop_value); + + r->writeString16(tmp_str16); + break; + } + case MISC_READ_ADC_VAL: { + int tmpChanNum = p.readInt32(); + int tmpRet = 0; + tmpRet = ReadADCSpecialChannelValue(tmpChanNum); + r->writeInt32(tmpRet); + break; + } + case MISC_SET_WDT_USER_PET: { + int counter = p.readInt32(); + int ret = TvMisc_SetUserCounter(counter); + r->writeInt32(ret); + break; + } + case MISC_SET_WDT_USER_COUNTER: { + int counter_time_out = p.readInt32(); + int ret = TvMisc_SetUserCounterTimeOut(counter_time_out); + r->writeInt32(ret); + break; + } + case MISC_SET_WDT_USER_PET_RESET_ENABLE: { + int enable = p.readInt32(); + int ret = TvMisc_SetUserPetResetEnable(enable); + r->writeInt32(ret); + break; + } + case MISC_GET_TV_API_VERSION: { + const char *tmp_str8; + String16 tmp_str16; + + // write tvapi version info + tmp_str8 = tvservice_get_git_branch_info(); + tmp_str16 = String16(tmp_str8); + r->writeString16(tmp_str16); + + tmp_str8 = tvservice_get_git_version_info(); + tmp_str16 = String16(tmp_str8); + r->writeString16(tmp_str16); + + tmp_str8 = tvservice_get_last_chaned_time_info(); + tmp_str16 = String16(tmp_str8); + r->writeString16(tmp_str16); + + tmp_str8 = tvservice_get_build_time_info(); + tmp_str16 = String16(tmp_str8); + r->writeString16(tmp_str16); + + tmp_str8 = tvservice_get_build_name_info(); + tmp_str16 = String16(tmp_str8); + r->writeString16(tmp_str16); + break; + } + case MISC_GET_DVB_API_VERSION: { + const char *tmp_str8; + String16 tmp_str16; + + // write dvb version info + tmp_str8 = dvb_get_git_branch_info(); + tmp_str16 = String16(tmp_str8); + r->writeString16(tmp_str16); + + tmp_str8 = dvb_get_git_version_info(); + tmp_str16 = String16(tmp_str8); + r->writeString16(tmp_str16); + + tmp_str8 = dvb_get_last_chaned_time_info(); + tmp_str16 = String16(tmp_str8); + r->writeString16(tmp_str16); + + tmp_str8 = dvb_get_build_time_info(); + tmp_str16 = String16(tmp_str8); + r->writeString16(tmp_str16); + + tmp_str8 = dvb_get_build_name_info(); + tmp_str16 = String16(tmp_str8); + r->writeString16(tmp_str16); + + break; + } + case MISC_SERIAL_SWITCH: { + int dev_id = p.readInt32(); + int switch_val = p.readInt32(); + int ret = mpTv->SetSerialSwitch(dev_id, switch_val); + r->writeInt32(ret); + break; + } + case MISC_SERIAL_SEND_DATA: { + int i = 0, tmp_buf_size = 0, ret = 0; + + int dev_id = p.readInt32(); + + tmp_buf_size = p.readInt32(); + if (tmp_buf_size > sizeof(tmp_uc_buf)) { + tmp_buf_size = sizeof(tmp_uc_buf); + } + + for (i = 0; i < tmp_buf_size; i++) { + tmp_uc_buf[i] = p.readInt32() & 0xFF; + } + + ret = mpTv->SendSerialData(dev_id, tmp_buf_size, tmp_uc_buf); + r->writeInt32(ret); + break; + } + case MISC_CHANNEL_EXPORT: { + LOGD("MISC_CHANNEL_EXPORT"); + int ret = 0; + String16 tmp_str16; + String8 tmp_str; + + tmp_str16 = p.readString16(); + tmp_str = String8(tmp_str16); + + ret = mpTv->ChannelExport(tmp_str.string()); + r->writeInt32(ret); + break; + } + case MISC_CHANNEL_IMPORT: { + LOGD("MISC_CHANNEL_IMPORT"); + String16 tmp_str16; + String8 tmp_str; + + tmp_str16 = p.readString16(); + tmp_str = String8(tmp_str16); + int ret = 0; + ret = mpTv->ChannelImport(tmp_str.string()); + r->writeInt32(ret); + break; + } + case MISC_GET_PROJECT_INFO: { + String16 tmp_str16; + project_info_t tmpInfo; + + if (mpTv->Tv_GetProjectInfo(&tmpInfo) < 0) { + strcpy(tmpInfo.version, "UNKOWN"); + strcpy(tmpInfo.panel_type, "UNKOWN"); + strcpy(tmpInfo.panel_outputmode, "UNKOWN"); + strcpy(tmpInfo.panel_rev, "UNKOWN"); + strcpy(tmpInfo.panel_name, "UNKOWN"); + strcpy(tmpInfo.amp_curve_name, "UNKOWN"); + } + + r->writeString16(String16(tmpInfo.version)); + r->writeString16(String16(tmpInfo.panel_type)); + r->writeString16(String16(tmpInfo.panel_outputmode)); + r->writeString16(String16(tmpInfo.panel_rev)); + r->writeString16(String16(tmpInfo.panel_name)); + r->writeString16(String16(tmpInfo.amp_curve_name)); + break; + } + case MISC_GET_PLATFORM_TYPE: { + int ret = mpTv->Tv_GetPlatformType(); + r->writeInt32(ret); + break; + } + //MISC END + + // EXTAR + case SET_DEBUG_SERIAL_PORT_ONOFF: { + int on_off = p.readInt32(); + int ret = mpTv->SetDebugSerialOnOff(on_off); + r->writeInt32(ret); + break; + } + + case GET_DEBUG_SERIAL_PORT_ONOFF: { + int ret = mpTv->GetDebugSerialOnOff(); + r->writeInt32(ret); + break; + } + case DELETE_DIR_FILES: { + String16 strPath = p.readString16(); + if (strPath.size() <= 0) { + r->writeInt32(-1); + break; + } + String8 strP8 = String8(strPath); + int tmp_flag = p.readInt32(); + int ret = TvMisc_DeleteDirFiles(strP8.string(), tmp_flag); + r->writeInt32(ret); + break; + } + case DTV_SUBTITLE_INIT: { + int bitmapWidth = p.readInt32(); + int bitmapHeight = p.readInt32(); + r->writeInt32(mpTv->initSubtitle(bitmapWidth, bitmapHeight)); + break; + } + case DTV_SUBTITLE_LOCK: { + r->writeInt32(mpTv->lockSubtitle()); + break; + } + case DTV_SUBTITLE_UNLOCK: { + r->writeInt32(mpTv->unlockSubtitle()); + break; + } + case DTV_GET_SUBTITLE_SWITCH: { + r->writeInt32(mpTv->getSubSwitchStatus()); + break; + } + case DTV_START_SUBTITLE: { + int dmx_id = p.readInt32(); + int pid = p.readInt32(); + int page_id = p.readInt32(); + int anc_page_id = p.readInt32(); + r->writeInt32(mpTv->startSubtitle(dmx_id, pid, page_id, anc_page_id)); + break; + } + case DTV_STOP_SUBTITLE: { + r->writeInt32(mpTv->stopSubtitle()); + break; + } + case DTV_GET_SUBTITLE_INDEX: { + int progId = p.readInt32(); + CTvProgram prog; + CTvProgram::selectByID(progId, prog); + r->writeInt32(prog.getSubtitleIndex(progId)); + break; + } + case DTV_SET_SUBTITLE_INDEX: { + int progId = p.readInt32(); + int index = p.readInt32(); + CTvProgram prog; + CTvProgram::selectByID(progId, prog); + r->writeInt32(prog.setSubtitleIndex(progId, index)); + break; + } + case ATV_GET_CURRENT_PROGRAM_ID: { + int atvLastProgramId = mpTv->getATVProgramID(); + r->writeInt32(atvLastProgramId); + break; + } + case DTV_GET_CURRENT_PROGRAM_ID: { + int dtvLastProgramId = mpTv->getDTVProgramID(); + r->writeInt32(dtvLastProgramId); + break; + } + case ATV_SAVE_PROGRAM_ID: { + int progID = p.readInt32(); + int retCnt = 0; + mpTv->saveATVProgramID(progID); + r->writeInt32(retCnt); + break; + } + case ATV_GET_MIN_MAX_FREQ: { + int min, max; + int tmpRet = mpTv->getATVMinMaxFreq(&min, &max); + r->writeInt32(min); + r->writeInt32(max); + r->writeInt32(tmpRet); + break; + } + case DTV_GET_SCAN_FREQUENCY_LIST: { + Vector<sp<CTvChannel> > out; + int tmpRet = CTvRegion::getChannelListByName("CHINA,Default DTMB ALL", out); + r->writeInt32(out.size()); + for (int i = 0; i < (int)out.size(); i++) { + r->writeInt32(out[i]->getID()); + r->writeInt32(out[i]->getFrequency()); + } + r->writeInt32(tmpRet); + break; + } + case DTV_GET_CHANNEL_INFO: { + int dbID = p.readInt32(); + channel_info_t chan_info; + int ret = mpTv->getChannelInfoBydbID(dbID, chan_info); + r->writeInt32(chan_info.freq); + r->writeInt32(chan_info.uInfo.dtvChanInfo.strength); + r->writeInt32(chan_info.uInfo.dtvChanInfo.quality); + r->writeInt32(chan_info.uInfo.dtvChanInfo.ber); + r->writeInt32(ret); + break; + } + case ATV_GET_CHANNEL_INFO: { + int dbID = p.readInt32(); + channel_info_t chan_info; + int ret = mpTv->getChannelInfoBydbID(dbID, chan_info); + r->writeInt32(chan_info.freq); + r->writeInt32(chan_info.uInfo.atvChanInfo.finefreq); + r->writeInt32(chan_info.uInfo.atvChanInfo.videoStd); + r->writeInt32(chan_info.uInfo.atvChanInfo.audioStd); + r->writeInt32(chan_info.uInfo.atvChanInfo.isAutoStd); + r->writeInt32(ret); + break; + } + case ATV_SCAN_MANUAL: { + int tmpRet = 0; + int startFreq = p.readInt32(); + int endFreq = p.readInt32(); + int videoStd = p.readInt32(); + int audioStd = p.readInt32(); + tmpRet = mpTv->atvMunualScan(startFreq, endFreq, videoStd, audioStd); + mTvService->mpScannerClient = this; + r->writeInt32(tmpRet); + break; + } + + + case ATV_SCAN_AUTO: { + int tmpRet = 0; + LOGD("%s, atv auto scan!!!\n", "TV"); + int videoStd = p.readInt32(); + int audioStd = p.readInt32(); + int searchType = p.readInt32(); + tmpRet = mpTv->atvAutoScan(videoStd, audioStd, searchType); + mTvService->mpScannerClient = this; + r->writeInt32(tmpRet); + break; + } + case DTV_SCAN_MANUAL: { + int tmpRet = 0; + int freq = p.readInt32(); + tmpRet = mpTv->dtvManualScan(freq, freq); + mTvService->mpScannerClient = this; + r->writeInt32(tmpRet); + break; + } + case DTV_SCAN_MANUAL_BETWEEN_FREQ: { + int tmpRet = 0; + int beginFreq = p.readInt32(); + int endFreq = p.readInt32(); + int modulation = p.readInt32(); + tmpRet = mpTv->dtvManualScan(beginFreq, endFreq, modulation); + mTvService->mpScannerClient = this; + r->writeInt32(tmpRet); + break; + } + case DTV_SCAN_AUTO: { + int tmpRet = 0; + tmpRet = mpTv->dtvAutoScan(); + mTvService->mpScannerClient = this; + r->writeInt32(tmpRet); + break; + } + case DTV_SCAN_AUTO_ATSC: { + int tmpRet = 0; + int attenna = p.readInt32(); + int vstd = p.readInt32(); + int astd = p.readInt32(); + tmpRet = mpTv->dtvAutoScanAtscLock(attenna, vstd, astd); + mTvService->mpScannerClient = this; + r->writeInt32(tmpRet); + break; + } + case TV_SUBTITLE_DRAW_END: { + int tmpRet = 0; + //if(pSub)pSub->lock.unlock(); + r->writeInt32(tmpRet); + break; + } + case STOP_PROGRAM_PLAY: { + int tmpRet = -1; + tmpRet = mpTv->stopPlayingLock(); + r->writeInt32(tmpRet); + break; + } + case DTV_TEST_1: { + // int progid = p.readInt32(); + //CTvProgram prog; + // int ret = CTvProgram::selectByID(progid, prog); + //CTvEvent ev; + //ret = ev.getProgPresentEvent(prog.getSrc(), prog.getID(), mpTv->getTvTime(), ev); + //r->writeString16(String16(ev.getName())); + break; + } + case DTV_TEST_2: { + //int cmd = p.readInt32(); + //CTvDatabase::GetTvDb()->importXmlToDB("/etc/tv_default.xml"); + //r->writeString16(String16("xml")); + break; + } + + case TV_CLEAR_ALL_PROGRAM: { + int tmpRet = 0; + int arg0 = p.readInt32(); + + tmpRet = mpTv->clearAllProgram(arg0); + mTvService->mpScannerClient = this; + r->writeInt32(tmpRet); + break; + } + + case GET_DISPLAY_RESOLUTION_CONFIG: { + int tmpRet = 0; + tmpRet = mpTv->GetDisplayResolutionConfig(); + r->writeInt32(tmpRet); + break; + } + + case GET_DISPLAY_RESOLUTION_INFO: { + int tmpRet = 0; + tmpRet = mpTv->GetDisplayResolutionInfo(); + r->writeInt32(tmpRet); + break; + } + + case HDMIRX_CEC_SEND_CUSTOM_MESSAGE: { + int i = 0, tmp_buf_size = 0, ret = 0; + tmp_buf_size = p.readInt32(); + for (i = 0; i < tmp_buf_size; i++) { + tmp_uc_buf[i] = p.readInt32(); + } + + int tmpRet = 0; + tmpRet = mpTv->SendHDMIRxCECCustomMessage(tmp_uc_buf); + r->writeInt32(tmpRet); + break; + } + + case HDMIRX_CEC_SEND_CUSTOM_WAIT_REPLY_MESSAGE: { + int i = 0, tmp_buf_size = 0, ret = 0; + int WaitCmd = 0, timeout = 0; + tmp_buf_size = p.readInt32(); + for (i = 0; i < tmp_buf_size; i++) { + tmp_uc_buf[i] = p.readInt32(); + } + + WaitCmd = p.readInt32(); + timeout = p.readInt32(); + + int tmpRet = 0; + tmpRet = mpTv->SendHDMIRxCECCustomMessageAndWaitReply(tmp_uc_buf, tmp_uc_buf2, WaitCmd, timeout); + + r->writeInt32(tmpRet); + if (tmpRet > 0) { + for (i = 0; i < tmpRet; i++) { + r->writeInt32(tmp_uc_buf2[i]); + } + } + + r->writeInt32(tmpRet); + break; + } + + case HDMIRX_CEC_SEND_BROADCAST_STANDBY_MESSAGE: { + int tmpRet = 0; + tmpRet = mpTv->SendHDMIRxCECBoradcastStandbyMessage(); + r->writeInt32(tmpRet); + break; + } + + case HDMIRX_CEC_SEND_GIVE_CEC_VERSION_MESSAGE: { + int i = 0, tmp_buf_size = 0, ret = 0; + int sourceinput = p.readInt32(); + LOGD("HDMIRX_CEC_SEND_GIVE_CEC_VERSION_MESSAGE: sourceinput = %x", sourceinput); + tmp_buf_size = mpTv->SendHDMIRxCECGiveCECVersionMessage((tv_source_input_t)sourceinput, tmp_uc_buf); + r->writeInt32(tmp_buf_size); + for (i = 0; i < tmp_buf_size; i++) { + r->writeInt32(tmp_uc_buf[i]); + } + r->writeInt32(tmp_buf_size); + break; + } + + case HDMIRX_CEC_SEND_GIVE_DEV_VENDOR_ID_MESSAGE: { + int i = 0, tmp_buf_size = 0, ret = 0; + int sourceinput = p.readInt32(); + LOGD("HDMIRX_CEC_SEND_GIVE_DEV_VENDOR_ID_MESSAGE: sourceinput = %x", sourceinput); + tmp_buf_size = mpTv->SendHDMIRxCECGiveDeviceVendorIDMessage((tv_source_input_t)sourceinput, tmp_uc_buf); + r->writeInt32(tmp_buf_size); + for (i = 0; i < tmp_buf_size; i++) { + r->writeInt32(tmp_uc_buf[i]); + } + r->writeInt32(tmp_buf_size); + break; + } + + case HDMIRX_CEC_SEND_GIVE_OSD_NAME_MESSAGE: { + int i = 0, tmp_buf_size = 0, ret = 0; + int sourceinput = p.readInt32(); + LOGD("HDMIRX_CEC_SEND_GIVE_OSD_NAME_MESSAGE: sourceinput = %x", sourceinput); + tmp_buf_size = mpTv->SendHDMIRxCECGiveOSDNameMessage((tv_source_input_t)sourceinput, tmp_uc_buf); + r->writeInt32(tmp_buf_size); + for (i = 0; i < tmp_buf_size; i++) { + r->writeInt32(tmp_uc_buf[i]); + } + r->writeInt32(tmp_buf_size); + break; + } + + case GET_HDMI_KSV_INFO: { + int tmpRet = 0; + int ksv_data[2] = {0, 0}; + tmpRet = mpTv->GetHdmiHdcpKeyKsvInfo(ksv_data); + r->writeInt32(tmpRet); + r->writeInt32(ksv_data[0]); + r->writeInt32(ksv_data[1]); + break; + } + + case HDMI_OUT_TOWHAT: { + r->writeInt32(mpTv->hdmiOutWithFbc() ? 1 : 0); + break; + } + case FACTORY_FBC_UPGRADE: { + String16 tmpName = p.readString16(); + String8 strName = String8(tmpName); + sprintf((char *)tmp_uc_buf, "%s", strName.string()); + int mode = p.readInt32(); + int upgrade_blk_size = p.readInt32(); + int ret = mpTv->StartUpgradeFBC((char *)tmp_uc_buf, mode, upgrade_blk_size); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_BRIGHTNESS: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_Brightness(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_BRIGHTNESS: { + int ret = mpTv->Tv_FactoryGet_FBC_Brightness(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_CONTRAST: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_Contrast(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_CONTRAST: { + int ret = mpTv->Tv_FactoryGet_FBC_Contrast(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_SATURATION: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_Saturation(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_SATURATION: { + int ret = mpTv->Tv_FactoryGet_FBC_Saturation(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_HUE: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_HueColorTint(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_HUE: { + int ret = mpTv->Tv_FactoryGet_FBC_HueColorTint(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_BACKLIGHT: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_Backlight(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_BACKLIGHT: { + int ret = mpTv->Tv_FactoryGet_FBC_Backlight(); + r->writeInt32(ret); + break; + } + case FACTROY_FBC_SET_LIGHT_SENSOR_STATUS_N310: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_LightSensor_Status_N310(value); + r->writeInt32(ret); + break; + } + + case FACTROY_FBC_GET_LIGHT_SENSOR_STATUS_N310: { + int ret = mpTv->Tv_FactoryGet_FBC_LightSensor_Status_N310(); + r->writeInt32(ret); + break; + } + case FACTROY_FBC_SET_DREAM_PANEL_STATUS_N310: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_Dream_Panel_Status_N310(value); + r->writeInt32(ret); + break; + } + + case FACTROY_FBC_GET_DREAM_PANEL_STATUS_N310: { + int ret = mpTv->Tv_FactoryGet_FBC_Dream_Panel_Status_N310(); + r->writeInt32(ret); + break; + } + case FACTROY_FBC_SET_MULT_PQ_STATUS_N310: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_MULT_PQ_Status_N310(value); + r->writeInt32(ret); + break; + } + + case FACTROY_FBC_GET_MULT_PQ_STATUS_N310: { + int ret = mpTv->Tv_FactoryGet_FBC_MULT_PQ_Status_N310(); + r->writeInt32(ret); + break; + } + case FACTROY_FBC_SET_MEMC_STATUS_N310: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_MEMC_Status_N310(value); + r->writeInt32(ret); + break; + } + + case FACTROY_FBC_GET_MEMC_STATUS_N310: { + int ret = mpTv->Tv_FactoryGet_FBC_MEMC_Status_N310(); + r->writeInt32(ret); + break; + } + + case MISC_SET_2K_TO_4K_SCALE_UP_MODE : { + int value = p.readInt32(); + int ret = mpTv->Tv_Set2k4k_ScalerUp_Mode(value); + r->writeInt32(ret); + break; + } + + case MISC_GET_2K_TO_4K_SCALE_UP_MODE: { + int ret = mpTv->Tv_Get2k4k_ScalerUp_Mode(); + r->writeInt32(ret); + break; + } + case FACTORY_FBC_SET_BACKLIGHT_EN : { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_backlight_onoff(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_BACKLIGHT_EN: { + int ret = mpTv->Tv_FactoryGet_FBC_backlight_onoff(); + r->writeInt32(ret); + break; + } + case FACTORY_FBC_TEST_PATTERN: { + int value = p.readInt32(); + int ret = mpTv->Tv_SetTestPattern(value); + r->writeInt32(ret); + break; + } + case FACTORY_FBC_SET_LVDS_SSG: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_LVDS_SSG_Set(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_ELEC_MODE: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_ELEC_MODE(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_ELEC_MODE: { + int ret = mpTv->Tv_FactoryGet_FBC_ELEC_MODE(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_BACKLIGHT_N360: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_BACKLIGHT_N360(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_BACKLIGHT_N360: { + int ret = mpTv->Tv_FactoryGet_FBC_BACKLIGHT_N360(); + r->writeInt32(ret); + break; + } + + + case FACTORY_FBC_SET_PIC_MODE: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_Picture_Mode(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_PIC_MODE: { + int ret = mpTv->Tv_FactoryGet_FBC_Picture_Mode(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_TEST_PATTERN: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_Set_Test_Pattern(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_TEST_PATTERN: { + int ret = mpTv->Tv_FactoryGet_FBC_Get_Test_Pattern(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_GAIN_RED: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_Gain_Red(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_GAIN_RED: { + int ret = mpTv->Tv_FactoryGet_FBC_Gain_Red(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_GAIN_GREEN: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_Gain_Green(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_GAIN_GREEN: { + int ret = mpTv->Tv_FactoryGet_FBC_Gain_Green(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_GAIN_BLUE: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_Gain_Blue(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_GAIN_BLUE: { + int ret = mpTv->Tv_FactoryGet_FBC_Gain_Blue(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_OFFSET_RED: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_Offset_Red(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_OFFSET_RED: { + int ret = mpTv->Tv_FactoryGet_FBC_Offset_Red(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_OFFSET_GREEN: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_Offset_Green(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_OFFSET_GREEN: { + int ret = mpTv->Tv_FactoryGet_FBC_Offset_Green(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_OFFSET_BLUE: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_Offset_Blue(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_OFFSET_BLUE: { + int ret = mpTv->Tv_FactoryGet_FBC_Offset_Blue(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_COLORTEMP_MODE: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_ColorTemp_Mode(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_COLORTEMP_MODE: { + int ret = mpTv->Tv_FactoryGet_FBC_ColorTemp_Mode(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_COLORTEMP_MODE_N360: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_ColorTemp_Mode_N360(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_COLORTEMP_MODE_N360: { + int ret = mpTv->Tv_FactoryGet_FBC_ColorTemp_Mode_N360(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_SET_WB_INIT: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySet_FBC_WB_Initial(value); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_WB_INIT: { + int ret = mpTv->Tv_FactoryGet_FBC_WB_Initial(); + r->writeInt32(ret); + break; + } + + case FACTORY_FBC_GET_MAINCODE_VERSION: { + char sw_version[64]; + char build_time[64]; + char git_version[64]; + char git_branch[64]; + char build_name[64]; + CFbcCommunication *fbcIns = GetSingletonFBC(); + if (fbcIns != NULL) { + fbcIns->cfbc_Get_FBC_MAINCODE_Version(COMM_DEV_SERIAL, sw_version, build_time, git_version, git_branch, build_name); + r->writeString16(String16(sw_version)); + r->writeString16(String16(build_time)); + r->writeString16(String16(git_version)); + r->writeString16(String16(git_branch)); + r->writeString16(String16(build_name)); + } else { + r->writeString16(String16("No FBC")); + r->writeString16(String16("No FBC")); + r->writeString16(String16("No FBC")); + r->writeString16(String16("No FBC")); + r->writeString16(String16("No FBC")); + } + break; + } + case FACTORY_SET_SN: { + char StrFactSN[256] = {0}; + String16 strTemFactorySn = p.readString16(); + String8 strFactorySn = String8(strTemFactorySn); + sprintf((char *)StrFactSN, "%s", strFactorySn.string()); + CFbcCommunication *fbcIns = GetSingletonFBC(); + if (fbcIns != NULL) { + int iRet = fbcIns->cfbc_Set_FBC_Factory_SN(COMM_DEV_SERIAL, (const char *)StrFactSN); + r->writeInt32(iRet); + } else { + r->writeInt32(-1); + } + break; + } + case FACTORY_GET_SN: { + char factorySerialNumber[256] = {0}; + memset((void *)factorySerialNumber, 0, 256); + CFbcCommunication *fbcIns = GetSingletonFBC(); + if (fbcIns != NULL) { + fbcIns->cfbc_Get_FBC_Factory_SN(COMM_DEV_SERIAL, factorySerialNumber); + r->writeString16(String16(factorySerialNumber)); + } else { + r->writeString16(String16("No FBC")); + } + break; + } + case FACTORY_FBC_PANEL_GET_INFO: { + char panel_model[64]; + CFbcCommunication *fbcIns = GetSingletonFBC(); + if (fbcIns != NULL) { + fbcIns->cfbc_Get_FBC_Get_PANel_INFO(COMM_DEV_SERIAL, panel_model); + r->writeString16(String16(panel_model)); + } else { + r->writeString16(String16("")); + } + break; + } + case FACTORY_FBC_PANEL_POWER_SWITCH: { + int value = p.readInt32(); + CFbcCommunication *fbcIns = GetSingletonFBC(); + if (fbcIns != NULL) { + int ret = fbcIns->cfbc_Set_FBC_panel_power_switch(COMM_DEV_SERIAL, value); + r->writeInt32(ret); + } else { + r->writeInt32(-1); + } + break; + } + case FACTORY_FBC_PANEL_SUSPEND: { + int value = p.readInt32(); + CFbcCommunication *fbcIns = GetSingletonFBC(); + if (fbcIns != NULL) { + int ret = fbcIns->cfbc_Set_FBC_suspend(COMM_DEV_SERIAL, value); + r->writeInt32(ret); + } else { + r->writeInt32(-1); + } + break; + } + case FACTORY_FBC_PANEL_USER_SETTING_DEFAULT: { + int value = p.readInt32(); + CFbcCommunication *fbcIns = GetSingletonFBC(); + if (fbcIns != NULL) { + int ret = fbcIns->cfbc_Set_FBC_User_Setting_Default(COMM_DEV_SERIAL, value); + r->writeInt32(ret); + } else { + r->writeInt32(-1); + } + break; + } + case FACTORY_FBC_VIDEO_MUTE: { + CFbcCommunication *fbcIns = GetSingletonFBC(); + if (fbcIns != NULL) { + int ret = fbcIns->cfbc_Set_VMute(COMM_DEV_SERIAL, 1); + r->writeInt32(ret); + } else { + r->writeInt32(-1); + } + break; + } + case FACTORY_FBC_POWER_REBOOT: { + int value = p.readInt32(); + CFbcCommunication *fbcIns = GetSingletonFBC(); + if (fbcIns != NULL) { + int ret = fbcIns->cfbc_SendRebootToUpgradeCmd(COMM_DEV_SERIAL, value); + r->writeInt32(ret); + } else { + r->writeInt32(-1); + } + break; + } + case FACTORY_FBC_SEND_KEY_TO_FBC: { + int keyCode = p.readInt32(); + int param = p.readInt32(); + CFbcCommunication *fbcIns = GetSingletonFBC(); + if (fbcIns != NULL) { + int ret = fbcIns->cfbc_FBC_Send_Key_To_Fbc(COMM_DEV_SERIAL, keyCode, param); + r->writeInt32(ret); + } else { + r->writeInt32(-1); + } + break; + } + case FACTORY_WHITE_BALANCE_SET_GAIN_RED: { + int source_type = p.readInt32(); + int colortemp_mode = p.readInt32(); + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySetWhiteBalanceRedGain(source_type, colortemp_mode, value); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_GET_GAIN_RED: { + int source_type = p.readInt32(); + int colortemp_mode = p.readInt32(); + int ret = mpTv->Tv_FactoryGetWhiteBalanceRedGain(source_type, colortemp_mode); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_SET_GAIN_GREEN: { + int source_type = p.readInt32(); + int colortemp_mode = p.readInt32(); + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySetWhiteBalanceGreenGain(source_type, colortemp_mode, value); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_GET_GAIN_GREEN: { + int source_type = p.readInt32(); + int colortemp_mode = p.readInt32(); + int ret = mpTv->Tv_FactoryGetWhiteBalanceGreenGain(source_type, colortemp_mode); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_SET_GAIN_BLUE: { + int source_type = p.readInt32(); + int colortemp_mode = p.readInt32(); + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySetWhiteBalanceBlueGain(source_type, colortemp_mode, value); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_GET_GAIN_BLUE: { + int source_type = p.readInt32(); + int colortemp_mode = p.readInt32(); + int ret = mpTv->Tv_FactoryGetWhiteBalanceBlueGain(source_type, colortemp_mode); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_SET_OFFSET_RED: { + int source_type = p.readInt32(); + int colortemp_mode = p.readInt32(); + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySetWhiteBalanceRedOffset(source_type, colortemp_mode, value); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_GET_OFFSET_RED: { + int source_type = p.readInt32(); + int colortemp_mode = p.readInt32(); + int ret = mpTv->Tv_FactoryGetWhiteBalanceRedOffset(source_type, colortemp_mode); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_SET_OFFSET_GREEN: { + int source_type = p.readInt32(); + int colortemp_mode = p.readInt32(); + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySetWhiteBalanceGreenOffset(source_type, colortemp_mode, value); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_GET_OFFSET_GREEN: { + int source_type = p.readInt32(); + int colortemp_mode = p.readInt32(); + int ret = mpTv->Tv_FactoryGetWhiteBalanceGreenOffset(source_type, colortemp_mode); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_SET_OFFSET_BLUE: { + int source_type = p.readInt32(); + int colortemp_mode = p.readInt32(); + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySetWhiteBalanceBlueOffset(source_type, colortemp_mode, value); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_GET_OFFSET_BLUE: { + int source_type = p.readInt32(); + int colortemp_mode = p.readInt32(); + int ret = mpTv->Tv_FactoryGetWhiteBalanceBlueOffset(source_type, colortemp_mode); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_GET_COLOR_TMP: { + int source_type = p.readInt32(); + int ret = mpTv->Tv_FactoryGetWhiteBalanceColorTempMode(source_type); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_SET_COLOR_TMP: { + int source_type = p.readInt32(); + int Tempmode = p.readInt32(); + int is_save = p.readInt32(); + int ret = mpTv->Tv_FactorySetWhiteBalanceColorTempMode(source_type, Tempmode, is_save); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_SAVE_PRAMAS: { + int source_type = p.readInt32(); + int mode = p.readInt32(); + int r_gain = p.readInt32(); + int g_gain = p.readInt32(); + int b_gain = p.readInt32(); + int r_offset = p.readInt32(); + int g_offset = p.readInt32(); + int b_offset = p.readInt32(); + int ret = mpTv->Tv_FactorySaveWhiteBalancePramas(source_type, mode, r_gain, g_gain, b_gain, r_offset, g_offset, b_offset); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_OPEN_GRAY_PATTERN: { + int ret = mpTv->Tv_FactoryOpenWhiteBalanceGrayPattern(); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_CLOSE_GRAY_PATTERN: { + int ret = mpTv->Tv_FactoryCloseWhiteBalanceGrayPattern(); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_SET_GRAY_PATTERN: { + int value = p.readInt32(); + int ret = mpTv->Tv_FactorySetWhiteBalanceGrayPattern(value); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_GET_GRAY_PATTERN: { + int ret = mpTv->Tv_FactoryGetWhiteBalanceGrayPattern(); + r->writeInt32(ret); + break; + } + case FACTORY_WHITE_BALANCE_GET_ALL_PRAMAS: { + int Tempmode = p.readInt32(); + tcon_rgb_ogo_t params; + int ret = mpTv->GetColorTemperatureParams((vpp_color_temperature_mode_t)Tempmode, ¶ms); + r->writeInt32(ret); + r->writeInt32(params.r_gain); + r->writeInt32(params.g_gain); + r->writeInt32(params.b_gain); + r->writeInt32(params.r_post_offset); + r->writeInt32(params.g_post_offset); + r->writeInt32(params.b_post_offset); + } + case STOP_SCAN: { + mpTv->stopScanLock(); + break; + } + case DTV_GET_SNR: { + int tmpRet = 0; + tmpRet = mpTv->getFrontendSNR(); + r->writeInt32(tmpRet); + break; + } + case DTV_GET_BER: { + int tmpRet = 0; + tmpRet = mpTv->getFrontendBER(); + r->writeInt32(tmpRet); + break; + } + case DTV_GET_STRENGTH: { + int tmpRet = 0; + tmpRet = mpTv->getFrontendSignalStrength(); + r->writeInt32(tmpRet); + break; + } + case DTV_GET_AUDIO_TRACK_NUM: { + int programId = p.readInt32(); + int retCnt = 0; + retCnt = mpTv->getAudioTrackNum(programId); + r->writeInt32(retCnt); + break; + } + case DTV_GET_AUDIO_TRACK_INFO: { + int progId = p.readInt32(); + int aIdx = p.readInt32(); + int aFmt = -1; + int iRet = -1; + String8 lang; + iRet = mpTv->getAudioInfoByIndex(progId, aIdx, &aFmt, lang); + r->writeInt32(aFmt); + r->writeString16(String16(lang)); + break; + } + case DTV_SWITCH_AUDIO_TRACK: { + int aPid = p.readInt32(); + int aFmt = p.readInt32(); + int aParam = p.readInt32(); + int ret = -1; + ret = mpTv->switchAudioTrack(aPid, aFmt, aParam); + r->writeInt32(ret); + break; + } + case DTV_GET_CURR_AUDIO_TRACK_INDEX: { + int currAduIdx = -1; + int progId = p.readInt32(); + CTvProgram prog; + CTvProgram::selectByID(progId, prog); + currAduIdx = prog.getCurrAudioTrackIndex(); + r->writeInt32(currAduIdx); + break; + } + case DTV_SET_AUDIO_CHANNEL_MOD: { + int audioChannelIdx = p.readInt32(); + mpTv->setAudioChannel(audioChannelIdx); + break; + } + case DTV_GET_AUDIO_CHANNEL_MOD: { + int currChannelMod; + currChannelMod = mpTv->getAudioChannel(); + r->writeInt32(currChannelMod); + break; + } + case DTV_GET_CUR_FREQ: { + int progId = p.readInt32(); + int freq = 0; + int iRet = -1; + CTvProgram prog; + CTvChannel channel; + + iRet = CTvProgram::selectByID(progId, prog); + if (0 != iRet) return -1; + prog.getChannel(channel); + freq = channel.getFrequency(); + r->writeInt32(freq); + break; + } + case DTV_GET_EPG_UTC_TIME: { + int iRet = -1; + int utcTime = 0; + + utcTime = mpTv->getTvTime(); + + r->writeInt32(utcTime); + break; + } + case DTV_GET_EPG_INFO_POINT_IN_TIME: { + int progid = p.readInt32(); + int utcTime = p.readInt32(); + CTvProgram prog; + int ret = CTvProgram::selectByID(progid, prog); + CTvEvent ev; + ret = ev.getProgPresentEvent(prog.getSrc(), prog.getID(), utcTime, ev); + r->writeString16(String16(ev.getName())); + r->writeString16(String16(ev.getDescription())); + r->writeString16(String16(ev.getExtDescription())); + r->writeInt32(ev.getStartTime()); + r->writeInt32(ev.getEndTime()); + r->writeInt32(ev.getSubFlag()); + r->writeInt32(ev.getEventId()); + break; + } + case DTV_GET_EPG_INFO_DURATION: { + int iRet = -1; + int iObOutSize = 0; + Vector<sp<CTvEvent> > epgOut; + int progid = p.readInt32(); + int iUtcStartTime = p.readInt32(); + int iDurationTime = p.readInt32(); + CTvProgram prog; + CTvEvent ev; + iRet = CTvProgram::selectByID(progid, prog); + if (0 != iRet) { + break; + } + iRet = ev.getProgScheduleEvents(prog.getSrc(), prog.getID(), iUtcStartTime, iDurationTime, epgOut); + if (0 != iRet) { + break; + } + iObOutSize = epgOut.size(); + if (0 == iObOutSize) { + break; + } + + r->writeInt32(iObOutSize); + for (int i = 0; i < iObOutSize; i ++) { + r->writeString16(String16(epgOut[i]->getName())); + r->writeString16(String16(epgOut[i]->getDescription())); + r->writeString16(String16(ev.getExtDescription())); + r->writeInt32(epgOut[i]->getStartTime()); + r->writeInt32(epgOut[i]->getEndTime()); + r->writeInt32(epgOut[i]->getSubFlag()); + r->writeInt32(epgOut[i]->getEventId()); + } + break; + } + case DTV_SET_PROGRAM_NAME: { + CTvProgram prog; + int progid = p.readInt32(); + String16 tmpName = p.readString16(); + String8 strName = String8(tmpName); + prog.updateProgramName(progid, strName); + break; + } + case DTV_SET_PROGRAM_SKIPPED: { + CTvProgram prog; + int progid = p.readInt32(); + bool bSkipFlag = p.readInt32(); + prog.setSkipFlag(progid, bSkipFlag); + break; + } + case DTV_SET_PROGRAM_FAVORITE: { + CTvProgram prog; + int progid = p.readInt32(); + bool bFavorite = p.readInt32(); + prog.setFavoriteFlag(progid, bFavorite); + break; + } + case DTV_DETELE_PROGRAM: { + CTvProgram prog; + int progid = p.readInt32(); + prog.deleteProgram(progid); + break; + } + case SET_BLACKOUT_ENABLE: { + int enable = p.readInt32(); + mpTv->setBlackoutEnable(enable); + break; + } + case START_AUTO_BACKLIGHT: { + mpTv->startAutoBackLight(); + break; + } + case STOP_AUTO_BACKLIGHT: { + mpTv->stopAutoBackLight(); + break; + } + case IS_AUTO_BACKLIGHTING: { + int on = mpTv->getAutoBackLight_on_off(); + r->writeInt32(on); + break; + } + case GET_AVERAGE_LUMA: { + int ret = mpTv->getAverageLuma(); + r->writeInt32(ret); + break; + } + case GET_AUTO_BACKLIGHT_DATA: { + int i; + int size = mpTv->getAutoBacklightData(tmp_i_buf); + r->writeInt32(size); + for (i = 0; i < size; i++) { + r->writeInt32(tmp_i_buf[i]); + } + break; + } + case SET_AUTO_BACKLIGHT_DATA: { + String16 tmp_str16; + String8 value_str; + + tmp_str16 = p.readString16(); + value_str = String8(tmp_str16); + + int ret = mpTv->setAutobacklightData(value_str); + r->writeInt32(ret); + break; + } + + case SSM_READ_BLACKOUT_ENABLE: { + int enable = mpTv->getSaveBlackoutEnable(); + r->writeInt32(enable); + break; + } + case DTV_SWAP_PROGRAM: { + CTvProgram prog; + int firstProgId = p.readInt32(); + int secondProgId = p.readInt32(); + CTvProgram::selectByID(firstProgId, prog); + int firstChanOrderNum = prog.getChanOrderNum(); + CTvProgram::selectByID(secondProgId, prog); + int secondChanOrderNum = prog.getChanOrderNum(); + prog.swapChanOrder(firstProgId, firstChanOrderNum, secondProgId, secondChanOrderNum); + break; + } + case DTV_SET_PROGRAM_LOCKED: { + CTvProgram prog; + int progid = p.readInt32(); + bool bLocked = p.readInt32(); + prog.setLockFlag(progid, bLocked); + break; + } + case DTV_SET_BOOKING_FLAG: { + CTvEvent ev; + int iEvtId = p.readInt32(); + bool iBookFlag = (bool)p.readInt32(); + ev.bookEvent(iEvtId, iBookFlag); + break; + } + case DTV_GET_FREQ_BY_PROG_ID: { + int freq = 0; + int progid = p.readInt32(); + CTvProgram prog; + int ret = CTvProgram::selectByID(progid, prog); + if (ret != 0) return -1; + CTvChannel channel; + prog.getChannel(channel); + freq = channel.getFrequency(); + r->writeInt32(freq); + break; + } + case DTV_GET_BOOKED_EVENT: { + CTvBooking tvBook; + Vector<sp<CTvBooking> > vTvBookOut; + tvBook.getBookedEventList(vTvBookOut); + int iObOutSize = vTvBookOut.size(); + if (0 == iObOutSize) { + break; + } + r->writeInt32(iObOutSize); + for (int i = 0; i < iObOutSize; i ++) { + r->writeString16(String16(vTvBookOut[i]->getProgName())); + r->writeString16(String16(vTvBookOut[i]->getEvtName())); + r->writeInt32(vTvBookOut[i]->getStartTime()); + r->writeInt32(vTvBookOut[i]->getDurationTime()); + r->writeInt32(vTvBookOut[i]->getBookId()); + r->writeInt32(vTvBookOut[i]->getProgramId()); + r->writeInt32(vTvBookOut[i]->getEventId()); + } + break; + } + case SET_FRONTEND_PARA: { + int ret = -1; + frontend_para_set_t feParms; + feParms.mode = (fe_type_t)p.readInt32(); + feParms.freq = p.readInt32(); + feParms.videoStd = (atv_video_std_t)p.readInt32(); + feParms.audioStd = (atv_audio_std_t)p.readInt32(); + feParms.para1 = p.readInt32(); + feParms.para2 = p.readInt32(); + mpTv->resetFrontEndPara(feParms); + r->writeInt32(ret); + break; + } + case PLAY_PROGRAM: { + int mode = p.readInt32(); + int freq = p.readInt32(); + if (mode == FE_ANALOG) { + int videoStd = p.readInt32(); + int audioStd = p.readInt32(); + int fineTune = p.readInt32(); + int audioCompetation = p.readInt32(); + mpTv->playAtvProgram(freq, videoStd, audioStd, fineTune, audioCompetation); + } else { + int para1 = p.readInt32(); + int para2 = p.readInt32(); + int vid = p.readInt32(); + int vfmt = p.readInt32(); + int aid = p.readInt32(); + int afmt = p.readInt32(); + int pcr = p.readInt32(); + int audioCompetation = p.readInt32(); + mpTv->playDtvProgram(mode, freq, para1, para2, vid, vfmt, aid, afmt, pcr, audioCompetation); + } + break; + } + case GET_PROGRAM_LIST: { + Vector<sp<CTvProgram> > out; + int type = p.readInt32(); + int skip = p.readInt32(); + CTvProgram::selectByType(type, skip, out); + r->writeInt32(out.size()); + for (int i = 0; i < (int)out.size(); i++) { + r->writeInt32(out[i]->getID()); + r->writeInt32(out[i]->getChanOrderNum()); + r->writeInt32(out[i]->getMajor()); + r->writeInt32(out[i]->getMinor()); + r->writeInt32(out[i]->getProgType()); + r->writeString16(String16(out[i]->getName())); + r->writeInt32(out[i]->getProgSkipFlag()); + r->writeInt32(out[i]->getFavoriteFlag()); + r->writeInt32(out[i]->getVideo()->getFormat()); + CTvChannel ch; + out[i]->getChannel(ch); + r->writeInt32(ch.getDVBTSID()); + r->writeInt32(out[i]->getServiceId()); + r->writeInt32(out[i]->getVideo()->getPID()); + r->writeInt32(out[i]->getVideo()->getPID()); + + int audioTrackSize = out[i]->getAudioTrackSize(); + r->writeInt32(audioTrackSize); + for (int j = 0; j < audioTrackSize; j++) { + r->writeString16(String16(out[i]->getAudio(j)->getLang())); + r->writeInt32(out[i]->getAudio(j)->getFormat()); + r->writeInt32(out[i]->getAudio(j)->getPID()); + } + Vector<CTvProgram::Subtitle *> mvSubtitles = out[i]->getSubtitles(); + int subTitleSize = mvSubtitles.size(); + r->writeInt32(subTitleSize); + if (subTitleSize > 0) { + for (int k = 0; k < subTitleSize; k++) { + r->writeInt32(mvSubtitles[k]->getPID()); + r->writeString16(String16(mvSubtitles[k]->getLang())); + r->writeInt32(mvSubtitles[k]->getCompositionPageID()); + r->writeInt32(mvSubtitles[k]->getAncillaryPageID()); + } + } + r->writeInt32(ch.getFrequency()); + } + break; + } + case DTV_GET_VIDEO_FMT_INFO: { + int srcWidth = 0; + int srcHeight = 0; + int srcFps = 0; + int srcInterlace = 0; + int iRet = -1; + + iRet == mpTv->getVideoFormatInfo(&srcWidth, &srcHeight, &srcFps, &srcInterlace); + r->writeInt32(srcWidth); + r->writeInt32(srcHeight); + r->writeInt32(srcFps); + r->writeInt32(srcInterlace); + r->writeInt32(iRet); + } + break; + + case DTV_START_RECORD: { + char buf[256]; + String16 tmpName = p.readString16(); + String8 strName = String8(tmpName); + sprintf(buf, "%s", strName.string()); + mpTv->SetRecordFileName(buf); + mpTv->StartToRecord(); + } + break; + case DTV_STOP_RECORD: + mpTv->StopRecording(); + break; + case DTV_SET_RECORD_ALL_TS: { + int sel = p.readInt32(); + mpTv->SetRecCurTsOrCurProgram(sel); + } + break; + case TV_PRINT_DEBUG_INFO: + mpTv->printDebugInfo(); + break; + case HDMIAV_HOTPLUGDETECT_ONOFF: { + int flag = mpTv->GetHdmiAvHotplugDetectOnoff(); + r->writeInt32(flag); + } + break; + + // 2.4G headset + case START_OPEN_HEADSET_DETECT: { + int flag = mpTv->StartHeadSetDetect(); + r->writeInt32(flag); + } + break; + + // EXTAR END + default: + LOGD("default"); + break; + } + + LOGD("exit client=%d cmd=%d", getCallingPid(), cmd); + return 0; } sp<TvService::Client> TvService::Client::getClientFromCookie(void *user) { - sp<Client> client = 0; - /* - TvService *service = static_cast<TvService*> (user); - if (service != NULL) { - Mutex::Autolock ourLock(service->mServiceLock); - if (service->mClient != 0) { - client = service->mClient.promote(); - if (client == 0) { - LOGE("getClientFromCookie: client appears to have died"); - service->mClient.clear(); - } - } else { - LOGE("getClientFromCookie: got callback but client was NULL"); - } - }*/ - return client; + sp<Client> client = 0; + /* + TvService *service = static_cast<TvService*> (user); + if (service != NULL) { + Mutex::Autolock ourLock(service->mServiceLock); + if (service->mClient != 0) { + client = service->mClient.promote(); + if (client == 0) { + LOGE("getClientFromCookie: client appears to have died"); + service->mClient.clear(); + } + } else { + LOGE("getClientFromCookie: got callback but client was NULL"); + } + }*/ + return client; } void TvService::Client::notifyCallback(int32_t msgType, int32_t ext1, int32_t ext2, void *user) { - LOGD("notifyCallback(%d)", msgType); - - sp<Client> client = getClientFromCookie(user); - if (client == 0) { - return; - } - - switch (msgType) { - //case TV_MSG_SHUTTER: - // ext1 is the dimension of the yuv picture. - // client->handleShutter((image_rect_type *)ext1); - // break; - default: - sp<ITvClient> c = client->mTvClient; - if (c != NULL) { - //c->notifyCallback(msgType, ext1, ext2); - } - break; - } + LOGD("notifyCallback(%d)", msgType); + + sp<Client> client = getClientFromCookie(user); + if (client == 0) { + return; + } + + switch (msgType) { + //case TV_MSG_SHUTTER: + // ext1 is the dimension of the yuv picture. + // client->handleShutter((image_rect_type *)ext1); + // break; + default: + sp<ITvClient> c = client->mTvClient; + if (c != NULL) { + //c->notifyCallback(msgType, ext1, ext2); + } + break; + } #if DEBUG_CLIENT_REFERENCES - if (client->getStrongCount() == 1) { - LOGE("++++++++++++++++ (NOTIFY CALLBACK) THIS WILL CAUSE A LOCKUP!"); - client->printRefs(); - } + if (client->getStrongCount() == 1) { + LOGE("++++++++++++++++ (NOTIFY CALLBACK) THIS WILL CAUSE A LOCKUP!"); + client->printRefs(); + } #endif } int TvService::Client::notifyCallback(const int &msgtype, const Parcel &p) { - mTvClient->notifyCallback(msgtype, p); - return 0; + mTvClient->notifyCallback(msgtype, p); + return 0; } status_t TvService::onTransact(uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags) { - // permission checks... - switch (code) { - case BnTvService::CONNECT: - IPCThreadState *ipc = IPCThreadState::self(); - const int pid = ipc->getCallingPid(); - const int self_pid = getpid(); - if (pid != self_pid) { - // we're called from a different process, do the real check - /*if (!checkCallingPermission( - String16("android.permission.TV"))) - { - const int uid = ipc->getCallingUid(); - LOGE("Permission Denial: " - "can't use the tv pid=%d, uid=%d", pid, uid); - return PERMISSION_DENIED; - }*/ - } - break; - } - - status_t err = BnTvService::onTransact(code, data, reply, flags); + // permission checks... + switch (code) { + case BnTvService::CONNECT: + IPCThreadState *ipc = IPCThreadState::self(); + const int pid = ipc->getCallingPid(); + const int self_pid = getpid(); + if (pid != self_pid) { + // we're called from a different process, do the real check + /*if (!checkCallingPermission( + String16("android.permission.TV"))) + { + const int uid = ipc->getCallingUid(); + LOGE("Permission Denial: " + "can't use the tv pid=%d, uid=%d", pid, uid); + return PERMISSION_DENIED; + }*/ + } + break; + } + + status_t err = BnTvService::onTransact(code, data, reply, flags); #if DEBUG_HEAP_LEAKS - LOGE("+++ onTransact err %d code %d", err, code); - - if (err == UNKNOWN_TRANSACTION || err == PERMISSION_DENIED) { - LOGE("+++ onTransact code %d", code); - - CHECK_INTERFACE(ITvService, data, reply); - - switch (code) { - case 1000: { - if (gWeakHeap != 0) { - sp<IMemoryHeap> h = gWeakHeap.promote(); - IMemoryHeap *p = gWeakHeap.unsafe_get(); - LOGE("CHECKING WEAK REFERENCE %p (%p)", h.get(), p); - if (h != 0) - h->printRefs(); - bool attempt_to_delete = data.readInt32() == 1; - if (attempt_to_delete) { - // NOT SAFE! - LOGE("DELETING WEAK REFERENCE %p (%p)", h.get(), p); - if (p) delete p; - } - return NO_ERROR; - } - } - break; - default: - break; - } - } + LOGE("+++ onTransact err %d code %d", err, code); + + if (err == UNKNOWN_TRANSACTION || err == PERMISSION_DENIED) { + LOGE("+++ onTransact code %d", code); + + CHECK_INTERFACE(ITvService, data, reply); + + switch (code) { + case 1000: { + if (gWeakHeap != 0) { + sp<IMemoryHeap> h = gWeakHeap.promote(); + IMemoryHeap *p = gWeakHeap.unsafe_get(); + LOGE("CHECKING WEAK REFERENCE %p (%p)", h.get(), p); + if (h != 0) + h->printRefs(); + bool attempt_to_delete = data.readInt32() == 1; + if (attempt_to_delete) { + // NOT SAFE! + LOGE("DELETING WEAK REFERENCE %p (%p)", h.get(), p); + if (p) delete p; + } + return NO_ERROR; + } + } + break; + default: + break; + } + } #endif // DEBUG_HEAP_LEAKS - return err; + return err; } diff --git a/tvapi/android/tvserver/TvService.h b/tvapi/android/tvserver/TvService.h index 7507f6a..a6b4e9f 100644 --- a/tvapi/android/tvserver/TvService.h +++ b/tvapi/android/tvserver/TvService.h @@ -16,73 +16,74 @@ using namespace android; class TvService: public BnTvService , public CTv::TvIObserver, public CTvScreenCapture::TvIObserver { public: - class Client: public BnTv { - public: - Client(const sp<TvService> &tvService, const sp<ITvClient> &tvClient, pid_t clientPid, CTv *pTv); - Client(); - virtual ~Client(); - virtual void disconnect(); - virtual status_t connect(const sp<ITvClient> &client); - virtual status_t lock(); - virtual status_t unlock(); - virtual status_t processCmd(const Parcel &p, Parcel *r); - virtual status_t createSubtitle(const sp<IMemory> &share_mem); - virtual status_t createVideoFrame(const sp<IMemory> &share_mem, int iSourceMode, int iCapVideoLayerOnly); + class Client: public BnTv { + public: + Client(const sp<TvService> &tvService, const sp<ITvClient> &tvClient, pid_t clientPid, CTv *pTv); + Client(); + virtual ~Client(); + virtual void disconnect(); + virtual status_t connect(const sp<ITvClient> &client); + virtual status_t lock(); + virtual status_t unlock(); + virtual status_t processCmd(const Parcel &p, Parcel *r); + virtual status_t createSubtitle(const sp<IMemory> &share_mem); + virtual status_t createVideoFrame(const sp<IMemory> &share_mem, int iSourceMode, int iCapVideoLayerOnly); - // our client... - const sp<ITvClient> &getTvClient() const - { - return mTvClient; - } + // our client... + const sp<ITvClient> &getTvClient() const + { + return mTvClient; + } - int notifyCallback(const int &msgtype, const Parcel &p); - String16 mStrName; - static void notifyCallback(int32_t msgType, int32_t ext1, int32_t ext2, void *user); - private: - friend class CTv; - friend class TvService; - status_t checkPid(); - static sp<Client> getClientFromCookie(void *user); + int notifyCallback(const int &msgtype, const Parcel &p); + String16 mStrName; + static void notifyCallback(int32_t msgType, int32_t ext1, int32_t ext2, void *user); + private: + friend class CTv; + friend class TvService; + status_t checkPid(); + static sp<Client> getClientFromCookie(void *user); - mutable Mutex mLock; - mutable Condition mReady; - sp<TvService> mTvService; - sp<ITvClient> mTvClient; - pid_t mClientPid; - int mGetNotifyFlag; - int mCurProgIndex; - CTv *mpTv; - bool mIsStartTv; - sp<IMemory> mSubBmpBuf; - };//end client + mutable Mutex mLock; + mutable Condition mReady; + sp<TvService> mTvService; + sp<ITvClient> mTvClient; + pid_t mClientPid; + int mGetNotifyFlag; + int mCurProgIndex; + CTv *mpTv; + bool mIsStartTv; + sp<IMemory> mSubBmpBuf; + };//end client static void instantiate(); - static TvService* mTvService; - static TvService* getIntance() { + static TvService *mTvService; + static TvService *getIntance() + { if (mTvService == NULL) mTvService = new TvService(); return mTvService; } - virtual sp<ITv> connect(const sp<ITvClient> &tvClient); + virtual sp<ITv> connect(const sp<ITvClient> &tvClient); - virtual void onTvEvent(const CTvEv &ev); - void removeClient(const sp<ITvClient> &tvClient); + virtual void onTvEvent(const CTvEv &ev); + void removeClient(const sp<ITvClient> &tvClient); - Client *mpStartTvClient; - wp<Client> mpScannerClient; - wp<Client> mpSubClient; - Vector< wp<Client> > m_v_Clients; + Client *mpStartTvClient; + wp<Client> mpScannerClient; + wp<Client> mpSubClient; + Vector< wp<Client> > m_v_Clients; private: TvService(); - virtual ~TvService(); - virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags); - volatile int32_t mUsers; - virtual void incUsers(); - virtual void decUsers(); - mutable Mutex mServiceLock; - static CTv *mpTv; - CTvScreenCapture mCapVidFrame; + virtual ~TvService(); + virtual status_t onTransact(uint32_t code, const Parcel &data, Parcel *reply, uint32_t flags); + volatile int32_t mUsers; + virtual void incUsers(); + virtual void decUsers(); + mutable Mutex mServiceLock; + static CTv *mpTv; + CTvScreenCapture mCapVidFrame; }; diff --git a/tvapi/android/tvserver/main.cpp b/tvapi/android/tvserver/main.cpp index ed9847c..0218dbe 100644 --- a/tvapi/android/tvserver/main.cpp +++ b/tvapi/android/tvserver/main.cpp @@ -11,13 +11,13 @@ using namespace android; int main(int argc, char **argv) { - sp<ProcessState> proc(ProcessState::self()); - sp<IServiceManager> sm = defaultServiceManager(); - TvService::instantiate(); + sp<ProcessState> proc(ProcessState::self()); + sp<IServiceManager> sm = defaultServiceManager(); + TvService::instantiate(); - ProcessState::self()->startThreadPool(); - IPCThreadState::self()->joinThreadPool(); + ProcessState::self()->startThreadPool(); + IPCThreadState::self()->joinThreadPool(); - return 0; + return 0; } diff --git a/tvapi/android/tvserver/tv_callback.h b/tvapi/android/tvserver/tv_callback.h index ef97442..511bbba 100644 --- a/tvapi/android/tvserver/tv_callback.h +++ b/tvapi/android/tvserver/tv_callback.h @@ -1,18 +1,17 @@ #ifndef TV_CALLBACK #define TV_CALLBACK #include "tvapi/android/tv/CTv.h" -class TvCallback : public CTv::TvIObserver -{ - public: - TvCallback(void* data) - { - mPri = data; - } - ~TvCallback() - { - } - void onTvEvent (int32_t msgType, const Parcel &p); - private: - void* mPri; +class TvCallback : public CTv::TvIObserver { +public: + TvCallback(void *data) + { + mPri = data; + } + ~TvCallback() + { + } + void onTvEvent (int32_t msgType, const Parcel &p); +private: + void *mPri; }; #endif diff --git a/tvapi/libtv/audio/CAudioCustomerCtrl.cpp b/tvapi/libtv/audio/CAudioCustomerCtrl.cpp index 2f6edf0..4ffc8da 100644 --- a/tvapi/libtv/audio/CAudioCustomerCtrl.cpp +++ b/tvapi/libtv/audio/CAudioCustomerCtrl.cpp @@ -5,122 +5,122 @@ CAudioCustomerCtrl::CAudioCustomerCtrl() { - gExternalDacLibHandler = NULL; - mpDacMuteFun = NULL; - mpDacMainVolFun = NULL; - mpDacBalanceFun = NULL; - mpSetSourceTypeFun = NULL; + gExternalDacLibHandler = NULL; + mpDacMuteFun = NULL; + mpDacMainVolFun = NULL; + mpDacBalanceFun = NULL; + mpSetSourceTypeFun = NULL; } CAudioCustomerCtrl::~CAudioCustomerCtrl() { - UnLoadExternalDacLib(); + UnLoadExternalDacLib(); } int CAudioCustomerCtrl::UnLoadExternalDacLib(void) { - if (gExternalDacLibHandler != NULL) { - dlclose(gExternalDacLibHandler); - gExternalDacLibHandler = NULL; - } + if (gExternalDacLibHandler != NULL) { + dlclose(gExternalDacLibHandler); + gExternalDacLibHandler = NULL; + } - mpDacMuteFun = NULL; - mpDacMainVolFun = NULL; - mpDacBalanceFun = NULL; - mpSetSourceTypeFun = NULL; + mpDacMuteFun = NULL; + mpDacMainVolFun = NULL; + mpDacBalanceFun = NULL; + mpSetSourceTypeFun = NULL; - return 0; + return 0; } int CAudioCustomerCtrl::LoadExternalDacLib(void) { - char *error; - - LOGD("%s, entering...\n", __FUNCTION__); - - if (gExternalDacLibHandler != NULL) { - return 0; - } - - const char *config_value = GetAudExtDacLibPath(); - gExternalDacLibHandler = dlopen(config_value, RTLD_NOW); - if (!gExternalDacLibHandler) { - LOGE("%s, failed to load external dac lib (%s)\n", __FUNCTION__, config_value); - goto Error; - } - - mpDacMuteFun = (int(*)(int))dlsym(gExternalDacLibHandler, "HandleDacMute"); - if (mpDacMuteFun == NULL) { - LOGE("%s, fail find fun mpDacMuteFun()\n", __FUNCTION__); - goto Error; - } - mpDacMainVolFun = (int(*)(int))dlsym(gExternalDacLibHandler, "HandleDacMainVolume"); - if (mpDacMainVolFun == NULL) { - LOGE("%s, fail find fun HandleDacMainVolume()\n", __FUNCTION__); - goto Error; - } - mpDacBalanceFun = (int(*)(int))dlsym(gExternalDacLibHandler, "HandleDacBalance"); - if (mpDacBalanceFun == NULL) { - LOGE("%s, fail find fun HandleDacBalance()\n", __FUNCTION__); - goto Error; - } - mpSetSourceTypeFun = (int(*)(int))dlsym(gExternalDacLibHandler, "HandleAudioSourceType"); - if (mpSetSourceTypeFun == NULL) { - LOGE("%s, fail find fun HandleAudioSourceType()\n", __FUNCTION__); - goto Error; - } - - return 0; + char *error; + + LOGD("%s, entering...\n", __FUNCTION__); + + if (gExternalDacLibHandler != NULL) { + return 0; + } + + const char *config_value = GetAudExtDacLibPath(); + gExternalDacLibHandler = dlopen(config_value, RTLD_NOW); + if (!gExternalDacLibHandler) { + LOGE("%s, failed to load external dac lib (%s)\n", __FUNCTION__, config_value); + goto Error; + } + + mpDacMuteFun = (int(*)(int))dlsym(gExternalDacLibHandler, "HandleDacMute"); + if (mpDacMuteFun == NULL) { + LOGE("%s, fail find fun mpDacMuteFun()\n", __FUNCTION__); + goto Error; + } + mpDacMainVolFun = (int(*)(int))dlsym(gExternalDacLibHandler, "HandleDacMainVolume"); + if (mpDacMainVolFun == NULL) { + LOGE("%s, fail find fun HandleDacMainVolume()\n", __FUNCTION__); + goto Error; + } + mpDacBalanceFun = (int(*)(int))dlsym(gExternalDacLibHandler, "HandleDacBalance"); + if (mpDacBalanceFun == NULL) { + LOGE("%s, fail find fun HandleDacBalance()\n", __FUNCTION__); + goto Error; + } + mpSetSourceTypeFun = (int(*)(int))dlsym(gExternalDacLibHandler, "HandleAudioSourceType"); + if (mpSetSourceTypeFun == NULL) { + LOGE("%s, fail find fun HandleAudioSourceType()\n", __FUNCTION__); + goto Error; + } + + return 0; Error: // - mpDacMuteFun = NULL; - mpDacMainVolFun = NULL; - mpDacBalanceFun = NULL; - mpSetSourceTypeFun = NULL; - - if (gExternalDacLibHandler != NULL) { - dlclose(gExternalDacLibHandler); - gExternalDacLibHandler = NULL; - } - return -1; + mpDacMuteFun = NULL; + mpDacMainVolFun = NULL; + mpDacBalanceFun = NULL; + mpSetSourceTypeFun = NULL; + + if (gExternalDacLibHandler != NULL) { + dlclose(gExternalDacLibHandler); + gExternalDacLibHandler = NULL; + } + return -1; } // 0 mute, 1 unmute int CAudioCustomerCtrl::SetMute(int mute) { - int ret = LoadExternalDacLib(); - if (mpDacMuteFun != NULL) { - ret = (*mpDacMuteFun)(mute); - } - return ret; + int ret = LoadExternalDacLib(); + if (mpDacMuteFun != NULL) { + ret = (*mpDacMuteFun)(mute); + } + return ret; } int CAudioCustomerCtrl::SetVolumeBar(int vol) { - int ret = LoadExternalDacLib(); - if (mpDacMainVolFun != NULL) { - LOGD("%s, call external dac lib HandleDacMainVolume (para = %d).\n", __FUNCTION__, vol); - ret = (*mpDacMainVolFun)(vol); - } - return ret; + int ret = LoadExternalDacLib(); + if (mpDacMainVolFun != NULL) { + LOGD("%s, call external dac lib HandleDacMainVolume (para = %d).\n", __FUNCTION__, vol); + ret = (*mpDacMainVolFun)(vol); + } + return ret; } int CAudioCustomerCtrl::SetBlance(int balance) { - int ret = LoadExternalDacLib(); - if (mpDacBalanceFun != NULL) { - LOGD("%s, call external dac lib HandleDacBalance (para = %d).\n", __FUNCTION__, balance); - ret = (*mpDacBalanceFun)(balance); - } - return ret; + int ret = LoadExternalDacLib(); + if (mpDacBalanceFun != NULL) { + LOGD("%s, call external dac lib HandleDacBalance (para = %d).\n", __FUNCTION__, balance); + ret = (*mpDacBalanceFun)(balance); + } + return ret; } int CAudioCustomerCtrl::SetSource(int source) { - int ret = LoadExternalDacLib(); - if (mpSetSourceTypeFun != NULL) { - LOGD("%s, call external dac lib HandleAudioSourceType (para = %d).\n", __FUNCTION__, source); - ret = (*mpSetSourceTypeFun)(source); - } - return ret; + int ret = LoadExternalDacLib(); + if (mpSetSourceTypeFun != NULL) { + LOGD("%s, call external dac lib HandleAudioSourceType (para = %d).\n", __FUNCTION__, source); + ret = (*mpSetSourceTypeFun)(source); + } + return ret; } diff --git a/tvapi/libtv/audio/CAudioCustomerCtrl.h b/tvapi/libtv/audio/CAudioCustomerCtrl.h index dc98889..b9c8540 100644 --- a/tvapi/libtv/audio/CAudioCustomerCtrl.h +++ b/tvapi/libtv/audio/CAudioCustomerCtrl.h @@ -8,24 +8,24 @@ typedef int (*TYPE_AudioSourceType_FUN)(int source_type); class CAudioCustomerCtrl { public: - static const int MUTE = 0; - static const int UNMUTE = 1; + static const int MUTE = 0; + static const int UNMUTE = 1; - CAudioCustomerCtrl(); - ~CAudioCustomerCtrl(); - int LoadExternalDacLib(void); - int UnLoadExternalDacLib(void); - int SendCmdToOffBoardCustomerLibExternalDac(int, int); - int SetMute(int mute); - int SetVolumeBar(int vol); - int SetBlance(int balance); - int SetSource(int source); + CAudioCustomerCtrl(); + ~CAudioCustomerCtrl(); + int LoadExternalDacLib(void); + int UnLoadExternalDacLib(void); + int SendCmdToOffBoardCustomerLibExternalDac(int, int); + int SetMute(int mute); + int SetVolumeBar(int vol); + int SetBlance(int balance); + int SetSource(int source); private: - void *gExternalDacLibHandler; - TYPE_DacMute_FUN mpDacMuteFun; - TYPE_DacMainVolume_FUN mpDacMainVolFun; - TYPE_DacBalance_FUN mpDacBalanceFun; - TYPE_AudioSourceType_FUN mpSetSourceTypeFun; + void *gExternalDacLibHandler; + TYPE_DacMute_FUN mpDacMuteFun; + TYPE_DacMainVolume_FUN mpDacMainVolFun; + TYPE_DacBalance_FUN mpDacBalanceFun; + TYPE_AudioSourceType_FUN mpSetSourceTypeFun; }; #endif diff --git a/tvapi/libtv/audio/CTvAudio.h b/tvapi/libtv/audio/CTvAudio.h index 50ccfec..f2701a8 100644 --- a/tvapi/libtv/audio/CTvAudio.h +++ b/tvapi/libtv/audio/CTvAudio.h @@ -9,14 +9,14 @@ #include "CAudioCustomerCtrl.h" enum CC_AUDIO_SWITCH_STATUS { - CC_SWITCH_OFF, - CC_SWITCH_ON, + CC_SWITCH_OFF, + CC_SWITCH_ON, }; enum CC_AMAUDIO_OUT_MODE { - CC_AMAUDIO_OUT_MODE_DIRECT, - CC_AMAUDIO_OUT_MODE_INTER_MIX, - CC_AMAUDIO_OUT_MODE_DIRECT_MIX, + CC_AMAUDIO_OUT_MODE_DIRECT, + CC_AMAUDIO_OUT_MODE_INTER_MIX, + CC_AMAUDIO_OUT_MODE_DIRECT_MIX, }; static const int CC_SPDIF_MODE_PCM = 0; @@ -44,33 +44,33 @@ static const int CC_NO_LINE_POINTS_MAX_CNT = 101; enum CC_AUD_SOUND_MODE { - CC_SOUND_MODE_START = 0, - CC_SOUND_MODE_STD = 0, - CC_SOUND_MODE_MUSIC, - CC_SOUND_MODE_NEWS, - CC_SOUND_MODE_THEATER, - CC_SOUND_MODE_USER, - CC_SOUND_MODE_END = CC_SOUND_MODE_USER + CC_SOUND_MODE_START = 0, + CC_SOUND_MODE_STD = 0, + CC_SOUND_MODE_MUSIC, + CC_SOUND_MODE_NEWS, + CC_SOUND_MODE_THEATER, + CC_SOUND_MODE_USER, + CC_SOUND_MODE_END = CC_SOUND_MODE_USER }; enum CC_AUD_EQ_MODE { - CC_EQ_MODE_START = 0, - CC_EQ_MODE_NOMAL = 0, - CC_EQ_MODE_POP, - CC_EQ_MODE_JAZZ, - CC_EQ_MODE_ROCK, - CC_EQ_MODE_CLASSIC, - CC_EQ_MODE_DANCE, - CC_EQ_MODE_PARTY, - CC_EQ_MODE_BASS, - CC_EQ_MODE_TREBLE, - CC_EQ_MODE_CUSTOM, - CC_EQ_MODE_END = CC_EQ_MODE_CUSTOM + CC_EQ_MODE_START = 0, + CC_EQ_MODE_NOMAL = 0, + CC_EQ_MODE_POP, + CC_EQ_MODE_JAZZ, + CC_EQ_MODE_ROCK, + CC_EQ_MODE_CLASSIC, + CC_EQ_MODE_DANCE, + CC_EQ_MODE_PARTY, + CC_EQ_MODE_BASS, + CC_EQ_MODE_TREBLE, + CC_EQ_MODE_CUSTOM, + CC_EQ_MODE_END = CC_EQ_MODE_CUSTOM }; class CTvAudio { public: - CTvAudio(); - ~CTvAudio(); + CTvAudio(); + ~CTvAudio(); }; #endif //__TV_AUDIO_API_H__ diff --git a/tvapi/libtv/audio/audio_alsa.cpp b/tvapi/libtv/audio/audio_alsa.cpp index 1a65ef9..8e8bb78 100644 --- a/tvapi/libtv/audio/audio_alsa.cpp +++ b/tvapi/libtv/audio/audio_alsa.cpp @@ -20,249 +20,249 @@ #include "audio_amaudio.h" static const int DEFAULT_MAIN_DIGIT_LUT[] = { - // - 0, 40, 50, 60, 70, 87, 110, 120, 130, 140, // 0~9 - 150, 152, 155, 158, 161, 164, 167, 170, 173, 174, // 10~19 - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, // 20~29 - 191, 191, 192, 193, 194, 195, 196, 196, 197, 197, // 30~39 - 198, 198, 198, 199, 199, 200, 200, 201, 201, 201, // 40~49 - 202, 202, 202, 203, 203, 203, 203, 204, 204, 204, // 50~59 - 205, 205, 205, 205, 206, 206, 206, 206, 206, 207, // 60~69 - 207, 207, 207, 207, 207, 207, 207, 208, 208, 208, // 70~79 - 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, // 80~89 - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, // 90~99 - 209, // 100 + // + 0, 40, 50, 60, 70, 87, 110, 120, 130, 140, // 0~9 + 150, 152, 155, 158, 161, 164, 167, 170, 173, 174, // 10~19 + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, // 20~29 + 191, 191, 192, 193, 194, 195, 196, 196, 197, 197, // 30~39 + 198, 198, 198, 199, 199, 200, 200, 201, 201, 201, // 40~49 + 202, 202, 202, 203, 203, 203, 203, 204, 204, 204, // 50~59 + 205, 205, 205, 205, 206, 206, 206, 206, 206, 207, // 60~69 + 207, 207, 207, 207, 207, 207, 207, 208, 208, 208, // 70~79 + 208, 208, 208, 208, 208, 208, 208, 208, 208, 209, // 80~89 + 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, // 90~99 + 209, // 100 }; static const int DEFAULT_SUPPER_BASS_DIGIT_LUT_BUF[] = { - // - 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, // 0~9 - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, // 10~19 - 141, 142, 143, 144, 145, 147, 147, 148, 148, 149, // 20~29 - 149, 150, 150, 151, 151, 152, 152, 153, 153, 154, // 30~39 - 154, 155, 155, 156, 156, 157, 157, 158, 158, 159, // 40~49 - 160, 160, 160, 160, 161, 161, 161, 161, 162, 162, // 50~59 - 162, 163, 163, 163, 163, 164, 164, 164, 165, 165, // 60~69 - 165, 165, 166, 166, 166, 167, 168, 169, 170, 171, // 70~79 - 173, 174, 175, 176, 177, 179, 180, 181, 182, 183, // 80~89 - 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, // 90~99 - 197 // 100 + // + 0, 122, 123, 124, 125, 126, 127, 128, 129, 130, // 0~9 + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, // 10~19 + 141, 142, 143, 144, 145, 147, 147, 148, 148, 149, // 20~29 + 149, 150, 150, 151, 151, 152, 152, 153, 153, 154, // 30~39 + 154, 155, 155, 156, 156, 157, 157, 158, 158, 159, // 40~49 + 160, 160, 160, 160, 161, 161, 161, 161, 162, 162, // 50~59 + 162, 163, 163, 163, 163, 164, 164, 164, 165, 165, // 60~69 + 165, 165, 166, 166, 166, 167, 168, 169, 170, 171, // 70~79 + 173, 174, 175, 176, 177, 179, 180, 181, 182, 183, // 80~89 + 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, // 90~99 + 197 // 100 }; CAudioAlsa::CAudioAlsa() { - int card_id; - card_id = get_aml_card(); - LOGD("[%s:%d] card_id:%d\n", __FUNCTION__, __LINE__, card_id); - mpMixer = mixer_open(card_id); + int card_id; + card_id = get_aml_card(); + LOGD("[%s:%d] card_id:%d\n", __FUNCTION__, __LINE__, card_id); + mpMixer = mixer_open(card_id); - card_id = get_USB_Audio_card(); - LOGD("[%s:%d] card_id:%d\n", __FUNCTION__, __LINE__, card_id); - mpUsbMixer = mixer_open(card_id); - mMainVolumeGainVal = 0; - mSupperBassVolumeGainVal = 0; - ArrayCopy(mMainDigitLutBuf, DEFAULT_MAIN_DIGIT_LUT, CC_VOL_TRANS_LUT_BUF_SIZE); - ArrayCopy(mSupperBassDigitLutBuf, DEFAULT_SUPPER_BASS_DIGIT_LUT_BUF, CC_VOL_TRANS_LUT_BUF_SIZE); + card_id = get_USB_Audio_card(); + LOGD("[%s:%d] card_id:%d\n", __FUNCTION__, __LINE__, card_id); + mpUsbMixer = mixer_open(card_id); + mMainVolumeGainVal = 0; + mSupperBassVolumeGainVal = 0; + ArrayCopy(mMainDigitLutBuf, DEFAULT_MAIN_DIGIT_LUT, CC_VOL_TRANS_LUT_BUF_SIZE); + ArrayCopy(mSupperBassDigitLutBuf, DEFAULT_SUPPER_BASS_DIGIT_LUT_BUF, CC_VOL_TRANS_LUT_BUF_SIZE); } CAudioAlsa::~CAudioAlsa() { - if (NULL != mpMixer) { - mixer_close(mpMixer); - } + if (NULL != mpMixer) { + mixer_close(mpMixer); + } - if (NULL != mpUsbMixer) { - mixer_close(mpUsbMixer); - } + if (NULL != mpUsbMixer) { + mixer_close(mpUsbMixer); + } } int CAudioAlsa::get_aml_card() { - int card = -1, err = 0; - int fd = -1; - char read_buf[512], *pd = NULL; - static const char *const SOUND_CARDS_PATH = "/proc/asound/cards"; - fd = open(SOUND_CARDS_PATH, O_RDONLY); - if (fd < 0) { - LOGE("ERROR: failed to open config file %s error: %d\n", SOUND_CARDS_PATH, errno); - close(fd); - return -EINVAL; - } - memset(read_buf, 0x0, 512); - err = read(fd, read_buf, 512); - if (fd < 0) { - LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno); - close(fd); - return -EINVAL; - } - pd = strstr(read_buf, "AML"); - card = *(pd - 3) - '0'; - close(fd); - return card; + int card = -1, err = 0; + int fd = -1; + char read_buf[512], *pd = NULL; + static const char *const SOUND_CARDS_PATH = "/proc/asound/cards"; + fd = open(SOUND_CARDS_PATH, O_RDONLY); + if (fd < 0) { + LOGE("ERROR: failed to open config file %s error: %d\n", SOUND_CARDS_PATH, errno); + close(fd); + return -EINVAL; + } + memset(read_buf, 0x0, 512); + err = read(fd, read_buf, 512); + if (fd < 0) { + LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno); + close(fd); + return -EINVAL; + } + pd = strstr(read_buf, "AML"); + card = *(pd - 3) - '0'; + close(fd); + return card; } int CAudioAlsa::AudioControlSetValue(int val_count, int data_buf[], char *match_names) { - struct mixer_ctl *pctl; - unsigned int expected_val_count; - unsigned int value_index; - - if (NULL == mpMixer) { - LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__); - goto err_exit; - } - - pctl = mixer_get_ctl_by_name(mpMixer, match_names); - if (NULL == pctl) { - LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names); - goto err_exit; - } - expected_val_count = mixer_ctl_get_num_values(pctl); - if (expected_val_count != (unsigned int)val_count) { - LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__); - goto err_exit; - } - for (value_index = 0; value_index < expected_val_count; value_index++) { - if (mixer_ctl_set_value(pctl, value_index, data_buf[value_index]) != 0) { - LOGE("[%s:%d] Failed to set value:%d\n", __FUNCTION__, __LINE__, value_index); - goto err_exit; - } - } - return 0; + struct mixer_ctl *pctl; + unsigned int expected_val_count; + unsigned int value_index; + + if (NULL == mpMixer) { + LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__); + goto err_exit; + } + + pctl = mixer_get_ctl_by_name(mpMixer, match_names); + if (NULL == pctl) { + LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names); + goto err_exit; + } + expected_val_count = mixer_ctl_get_num_values(pctl); + if (expected_val_count != (unsigned int)val_count) { + LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__); + goto err_exit; + } + for (value_index = 0; value_index < expected_val_count; value_index++) { + if (mixer_ctl_set_value(pctl, value_index, data_buf[value_index]) != 0) { + LOGE("[%s:%d] Failed to set value:%d\n", __FUNCTION__, __LINE__, value_index); + goto err_exit; + } + } + return 0; err_exit: - return -1; + return -1; } int CAudioAlsa::AudioControlGetValue(int val_count, int ret_buf[], char *match_names) { - struct mixer_ctl *pctl; - unsigned int expected_val_count; - unsigned int value_index; - - if (NULL == mpMixer) { - LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__); - goto err_exit; - } - pctl = mixer_get_ctl_by_name(mpMixer, match_names); - if (NULL == pctl) { - LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names); - goto err_exit; - } - expected_val_count = mixer_ctl_get_num_values(pctl); - if (expected_val_count != (unsigned int)val_count) { - LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__); - goto err_exit; - } - for (value_index = 0; value_index < expected_val_count; value_index++) { - ret_buf[value_index] = mixer_ctl_get_value(pctl, value_index); - } - return 0; + struct mixer_ctl *pctl; + unsigned int expected_val_count; + unsigned int value_index; + + if (NULL == mpMixer) { + LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__); + goto err_exit; + } + pctl = mixer_get_ctl_by_name(mpMixer, match_names); + if (NULL == pctl) { + LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names); + goto err_exit; + } + expected_val_count = mixer_ctl_get_num_values(pctl); + if (expected_val_count != (unsigned int)val_count) { + LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__); + goto err_exit; + } + for (value_index = 0; value_index < expected_val_count; value_index++) { + ret_buf[value_index] = mixer_ctl_get_value(pctl, value_index); + } + return 0; err_exit: - return -1; + return -1; } int CAudioAlsa::get_USB_Audio_card() { - int card = -1, err = 0; - int fd = -1; - char read_buf[512], *pd = NULL; - static const char *const SOUND_CARDS_PATH = "/proc/asound/cards"; - fd = open(SOUND_CARDS_PATH, O_RDONLY); - if (fd < 0) { - LOGE("ERROR: failed to open config file %s error: %d\n", SOUND_CARDS_PATH, errno); - close(fd); - return -EINVAL; - } - memset(read_buf, 0x0, 512); - err = read(fd, read_buf, 512); - if (fd < 0) { - LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno); - close(fd); - return -EINVAL; - } - pd = strstr(read_buf, "Receiver"); - if (pd == NULL) { - LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno); - close(fd); - return -EINVAL; - } - - card = *(pd - 3) - '0'; - close(fd); - return card; + int card = -1, err = 0; + int fd = -1; + char read_buf[512], *pd = NULL; + static const char *const SOUND_CARDS_PATH = "/proc/asound/cards"; + fd = open(SOUND_CARDS_PATH, O_RDONLY); + if (fd < 0) { + LOGE("ERROR: failed to open config file %s error: %d\n", SOUND_CARDS_PATH, errno); + close(fd); + return -EINVAL; + } + memset(read_buf, 0x0, 512); + err = read(fd, read_buf, 512); + if (fd < 0) { + LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno); + close(fd); + return -EINVAL; + } + pd = strstr(read_buf, "Receiver"); + if (pd == NULL) { + LOGE("ERROR: failed to read config file %s error: %d\n", SOUND_CARDS_PATH, errno); + close(fd); + return -EINVAL; + } + + card = *(pd - 3) - '0'; + close(fd); + return card; } int CAudioAlsa::HandleUSBAudioControlValue(int val_count, int data_buf[], int match_count, char **match_names) { - struct mixer_ctl *pctl; - unsigned int expected_val_count; - unsigned int match_index; - unsigned int value_index; - char card_id_str[9] = {0}; - - if (NULL == mpUsbMixer) { - LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__); - goto err_exit; - } - - for (match_index = 0; match_index < match_count; match_index++) { - pctl = mixer_get_ctl_by_name(mpUsbMixer, match_names[match_index]); - if (NULL == pctl) { - LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names[match_index]); - goto err_exit; - } - expected_val_count = mixer_ctl_get_num_values(pctl); - if (expected_val_count != (unsigned int)val_count) { - LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__); - goto err_exit; - } - for (value_index = 0; value_index < expected_val_count; value_index++) { - if (mixer_ctl_set_value(pctl, value_index, data_buf[value_index]) != 0) { - LOGE("[%s:%d] Failed to set value:%d\n", __FUNCTION__, __LINE__, value_index); - goto err_exit; - } - } - } - - return 0; + struct mixer_ctl *pctl; + unsigned int expected_val_count; + unsigned int match_index; + unsigned int value_index; + char card_id_str[9] = {0}; + + if (NULL == mpUsbMixer) { + LOGE("[%s:%d] Failed to open mixer\n", __FUNCTION__, __LINE__); + goto err_exit; + } + + for (match_index = 0; match_index < match_count; match_index++) { + pctl = mixer_get_ctl_by_name(mpUsbMixer, match_names[match_index]); + if (NULL == pctl) { + LOGE("[%s:%d] Failed to get mixer control for:%s\n", __FUNCTION__, __LINE__, match_names[match_index]); + goto err_exit; + } + expected_val_count = mixer_ctl_get_num_values(pctl); + if (expected_val_count != (unsigned int)val_count) { + LOGE("[%s:%d] val_count != expected_val_count\n", __FUNCTION__, __LINE__); + goto err_exit; + } + for (value_index = 0; value_index < expected_val_count; value_index++) { + if (mixer_ctl_set_value(pctl, value_index, data_buf[value_index]) != 0) { + LOGE("[%s:%d] Failed to set value:%d\n", __FUNCTION__, __LINE__, value_index); + goto err_exit; + } + } + } + + return 0; err_exit: - return -1; + return -1; } int CAudioAlsa::CheckVolume(int digit_vol, int digit_min, int digit_max, int hd_min, - int hd_max) + int hd_max) { - int tmp_val = digit_vol; + int tmp_val = digit_vol; - if (digit_vol < hd_min) { - return hd_min; - } else if (digit_vol > hd_max) { - return hd_max; - } + if (digit_vol < hd_min) { + return hd_min; + } else if (digit_vol > hd_max) { + return hd_max; + } - return digit_vol; + return digit_vol; } int CAudioAlsa::GetTwoChannelVolume(int vol_buf[], int l_min_vol, int l_max_vol, - int r_min_vol, int r_max_vol, char *match_names, int hd_min, - int hd_max) + int r_min_vol, int r_max_vol, char *match_names, int hd_min, + int hd_max) { - vol_buf[0] = 0; - vol_buf[1] = 0; - return AudioControlGetValue(2, vol_buf, match_names); + vol_buf[0] = 0; + vol_buf[1] = 0; + return AudioControlGetValue(2, vol_buf, match_names); } int CAudioAlsa::GetLineInMaxVol() { - return 127; + return 127; } int CAudioAlsa::GetLineOutMaxVol() { - return 255; + return 255; } #define CC_GET_ALSA_CTL_AUDIO_IN_SOURCE_NAME (0) @@ -290,530 +290,530 @@ int CAudioAlsa::GetLineOutMaxVol() #define CC_GET_ALSA_CTL_AUDIO_IN_SWITCH (22) static char gG9AlsaNames[32][48] = { - {"Audio In Source"},//0 - {"PGA IN Gain"},//1 - {"ADC Digital Capture Volume"},//2 - {"DAC Digital Playback Volume"},//3 - {"Linein right switch"},//4 - {"Linein left switch"}, - {"ADC Digital Capture Volume"}, - {"DAC Digital Playback Volume"}, - {"Audio i2s mute"},//8 - {"Audio spdif mute"}, - {"Hardware resample enable"},//10 - {"AMP Master Volume"}, - {"AMP Ch1 Volume"},//12 - {"AMP Ch2 Volume"}, - {"AMP Ch3 Volume"}, - {"AMP Ch1 Switch"}, - {"AMP Ch2 Switch"}, - {"AMP Ch3 Switch"},//17 - {"AMP EQ Mode"}, - {"PCM Playback Volume"}, - {"PCM Playback Switch"}, - {"Output Swap"}, - {"AudioIn Switch"},//22 + {"Audio In Source"},//0 + {"PGA IN Gain"},//1 + {"ADC Digital Capture Volume"},//2 + {"DAC Digital Playback Volume"},//3 + {"Linein right switch"},//4 + {"Linein left switch"}, + {"ADC Digital Capture Volume"}, + {"DAC Digital Playback Volume"}, + {"Audio i2s mute"},//8 + {"Audio spdif mute"}, + {"Hardware resample enable"},//10 + {"AMP Master Volume"}, + {"AMP Ch1 Volume"},//12 + {"AMP Ch2 Volume"}, + {"AMP Ch3 Volume"}, + {"AMP Ch1 Switch"}, + {"AMP Ch2 Switch"}, + {"AMP Ch3 Switch"},//17 + {"AMP EQ Mode"}, + {"PCM Playback Volume"}, + {"PCM Playback Switch"}, + {"Output Swap"}, + {"AudioIn Switch"},//22 }; char *CAudioAlsa::GetAlsaControlName(int get_type) { - return gG9AlsaNames[get_type]; + return gG9AlsaNames[get_type]; } int CAudioAlsa::SetAudioInSource(int source_type) { - int set_val = 0; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_AUDIO_IN_SOURCE_NAME); - set_val = source_type; - return AudioControlSetValue(1, &set_val, match_names); + int set_val = 0; + char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_AUDIO_IN_SOURCE_NAME); + set_val = source_type; + return AudioControlSetValue(1, &set_val, match_names); } int CAudioAlsa::GetAudioInSource(void) { - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_AUDIO_IN_SOURCE_NAME); - int source_type = 0; - AudioControlGetValue(1, &source_type, match_names); - return source_type; + char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_AUDIO_IN_SOURCE_NAME); + int source_type = 0; + AudioControlGetValue(1, &source_type, match_names); + return source_type; } int CAudioAlsa::SetAudioInternalDacPGAInGain(int gain_l_val, int gain_r_val) { - int GainBuf[2] = {0, 0}; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_PGA_IN_GAIN); + int GainBuf[2] = {0, 0}; + char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_PGA_IN_GAIN); - GainBuf[0] = gain_l_val; - GainBuf[1] = gain_r_val; - if (gain_l_val < 0 || gain_l_val > 31) { - GainBuf[0] = 16; - } - if (gain_r_val < 0 || gain_r_val > 31) { - GainBuf[1] = 16; - } + GainBuf[0] = gain_l_val; + GainBuf[1] = gain_r_val; + if (gain_l_val < 0 || gain_l_val > 31) { + GainBuf[0] = 16; + } + if (gain_r_val < 0 || gain_r_val > 31) { + GainBuf[1] = 16; + } - return AudioControlSetValue(2, GainBuf, match_names); + return AudioControlSetValue(2, GainBuf, match_names); } int CAudioAlsa::GetAudioInternalDacPGAInGain(int *gain_l_val, int *gain_r_val) { - int GainBuf[2] = {0, 0}; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_PGA_IN_GAIN); + int GainBuf[2] = {0, 0}; + char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_PGA_IN_GAIN); - AudioControlGetValue(2, GainBuf, match_names); + AudioControlGetValue(2, GainBuf, match_names); - *gain_l_val = GainBuf[0]; - *gain_r_val = GainBuf[1]; + *gain_l_val = GainBuf[0]; + *gain_r_val = GainBuf[1]; - return 0; + return 0; } int CAudioAlsa::SetAudioInternalDacADCDigitalCaptureVolume(int vol_l_val, int vol_r_val) { - int VolumeBuf[2] = {0, 0}; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_ADC_DIGITAL_CAPTURE_VOLUME_NAME); + int VolumeBuf[2] = {0, 0}; + char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_ADC_DIGITAL_CAPTURE_VOLUME_NAME); - VolumeBuf[0] = vol_l_val; - VolumeBuf[1] = vol_r_val; - if (vol_l_val < 0 || vol_l_val > 127) { - VolumeBuf[0] = 82; - } - if (vol_r_val < 0 || vol_r_val > 127) { - VolumeBuf[1] = 82; - } + VolumeBuf[0] = vol_l_val; + VolumeBuf[1] = vol_r_val; + if (vol_l_val < 0 || vol_l_val > 127) { + VolumeBuf[0] = 82; + } + if (vol_r_val < 0 || vol_r_val > 127) { + VolumeBuf[1] = 82; + } - return AudioControlSetValue(2, VolumeBuf, match_names); + return AudioControlSetValue(2, VolumeBuf, match_names); } int CAudioAlsa::GetAudioInternalDacADCDigitalCaptureVolume(int *vol_l_val, int *vol_r_val) { - int VolumeBuf[2] = {0, 0}; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_ADC_DIGITAL_CAPTURE_VOLUME_NAME); + int VolumeBuf[2] = {0, 0}; + char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_ADC_DIGITAL_CAPTURE_VOLUME_NAME); - AudioControlGetValue(2, VolumeBuf, match_names); + AudioControlGetValue(2, VolumeBuf, match_names); - *vol_l_val = VolumeBuf[0]; - *vol_r_val = VolumeBuf[1]; + *vol_l_val = VolumeBuf[0]; + *vol_r_val = VolumeBuf[1]; - return 0; + return 0; } int CAudioAlsa::SetAudioInternalDacDACDigitalPlayBackVolume(int vol_l_val, int vol_r_val) { - int VolumeBuf[2] = {0, 0}; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_DAC_DIGITAL_PLAYBACK_VOLUME_NAME); + int VolumeBuf[2] = {0, 0}; + char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_DAC_DIGITAL_PLAYBACK_VOLUME_NAME); - VolumeBuf[0] = vol_l_val; - VolumeBuf[1] = vol_r_val; - if (vol_l_val < 0 || vol_l_val > 255) { - VolumeBuf[0] = 255; - } - if (vol_r_val < 0 || vol_r_val > 255) { - VolumeBuf[1] = 255; - } + VolumeBuf[0] = vol_l_val; + VolumeBuf[1] = vol_r_val; + if (vol_l_val < 0 || vol_l_val > 255) { + VolumeBuf[0] = 255; + } + if (vol_r_val < 0 || vol_r_val > 255) { + VolumeBuf[1] = 255; + } - return AudioControlSetValue(2, VolumeBuf, match_names); + return AudioControlSetValue(2, VolumeBuf, match_names); } int CAudioAlsa::GetAudioInternalDacDACDigitalPlayBackVolume(int *vol_l_val, int *vol_r_val) { - int VolumeBuf[2] = {0, 0}; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_DAC_DIGITAL_PLAYBACK_VOLUME_NAME); + int VolumeBuf[2] = {0, 0}; + char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_DAC_DIGITAL_PLAYBACK_VOLUME_NAME); - AudioControlGetValue(2, VolumeBuf, match_names); + AudioControlGetValue(2, VolumeBuf, match_names); - *vol_l_val = VolumeBuf[0]; - *vol_r_val = VolumeBuf[1]; + *vol_l_val = VolumeBuf[0]; + *vol_r_val = VolumeBuf[1]; - return 0; + return 0; } int CAudioAlsa::SetInternalDacLineInSelectChannel(int line_in_number) { - int tmp_ret = 0; - char *match_names = NULL; + int tmp_ret = 0; + char *match_names = NULL; - if (line_in_number < 0 || line_in_number > 7) { - return -1; - } + if (line_in_number < 0 || line_in_number > 7) { + return -1; + } - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LEFT_LINEIN_SEL_NAME); - tmp_ret |= AudioControlSetValue(1, &line_in_number, match_names); + match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LEFT_LINEIN_SEL_NAME); + tmp_ret |= AudioControlSetValue(1, &line_in_number, match_names); - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_RIGHT_LINEIN_SEL_NAME); - tmp_ret |= AudioControlSetValue(1, &line_in_number, match_names); + match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_RIGHT_LINEIN_SEL_NAME); + tmp_ret |= AudioControlSetValue(1, &line_in_number, match_names); - return tmp_ret; + return tmp_ret; } int CAudioAlsa::SetInternalDacLineInCaptureVolume(int l_vol, int r_vol) { - int max_val = GetLineInMaxVol(); - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEIN_CAPTURE_VOLUME_NAME); - int VolumeBuf[2]; + int max_val = GetLineInMaxVol(); + char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEIN_CAPTURE_VOLUME_NAME); + int VolumeBuf[2]; - VolumeBuf[0] = CheckVolume(l_vol, 0, max_val, 0, max_val); - VolumeBuf[1] = CheckVolume(r_vol, 0, max_val, 0, max_val); + VolumeBuf[0] = CheckVolume(l_vol, 0, max_val, 0, max_val); + VolumeBuf[1] = CheckVolume(r_vol, 0, max_val, 0, max_val); - return AudioControlSetValue(2, VolumeBuf, match_names); + return AudioControlSetValue(2, VolumeBuf, match_names); } int CAudioAlsa::GetInternalDacLineInCaptureVolume(int vol_buf[]) { - int max_val = GetLineInMaxVol(); - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEIN_CAPTURE_VOLUME_NAME); + int max_val = GetLineInMaxVol(); + char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEIN_CAPTURE_VOLUME_NAME); - return GetTwoChannelVolume(vol_buf, 0, max_val, 0, max_val, match_names, 0, max_val); + return GetTwoChannelVolume(vol_buf, 0, max_val, 0, max_val, match_names, 0, max_val); } int CAudioAlsa::SetInternalDacLineOutPlayBackVolume(int l_vol, int r_vol) { - int max_val = GetLineOutMaxVol(); - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEOUT_PLAYBACK_VOLUME_NAME); - int VolumeBuf[2]; + int max_val = GetLineOutMaxVol(); + char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEOUT_PLAYBACK_VOLUME_NAME); + int VolumeBuf[2]; - VolumeBuf[0] = CheckVolume(l_vol, 0, max_val, 0, max_val); - VolumeBuf[1] = CheckVolume(r_vol, 0, max_val, 0, max_val); + VolumeBuf[0] = CheckVolume(l_vol, 0, max_val, 0, max_val); + VolumeBuf[1] = CheckVolume(r_vol, 0, max_val, 0, max_val); - return AudioControlSetValue(2, VolumeBuf, match_names); + return AudioControlSetValue(2, VolumeBuf, match_names); } int CAudioAlsa::GetInternalDacLineOutPlayBackVolume(int vol_buf[]) { - int max_val = GetLineOutMaxVol(); - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEOUT_PLAYBACK_VOLUME_NAME); + int max_val = GetLineOutMaxVol(); + char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_INTERNAL_DAC_LINEOUT_PLAYBACK_VOLUME_NAME); - return GetTwoChannelVolume(vol_buf, 0, max_val, 0, max_val, match_names, 0, max_val); + return GetTwoChannelVolume(vol_buf, 0, max_val, 0, max_val, match_names, 0, max_val); } int CAudioAlsa::SetAudioPcmPlaybackVolume(int vol) { - if (get_USB_Audio_card() == -EINVAL) return 0; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_PCM_PLAYBACK_VOLUME); - return HandleUSBAudioControlValue(1, &vol, 1, &match_names); + if (get_USB_Audio_card() == -EINVAL) return 0; + char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_PCM_PLAYBACK_VOLUME); + return HandleUSBAudioControlValue(1, &vol, 1, &match_names); } int CAudioAlsa::SetAudioPcmPlaybackSwitch(int vol) { - if (get_USB_Audio_card() == -EINVAL) return 0; - char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_PCM_PLAYBACK_SWITCH); - return HandleUSBAudioControlValue(1, &vol, 1, &match_names); + if (get_USB_Audio_card() == -EINVAL) return 0; + char *match_names = GetAlsaControlName(CC_GET_ALSA_CTL_PCM_PLAYBACK_SWITCH); + return HandleUSBAudioControlValue(1, &vol, 1, &match_names); } int CAudioAlsa::SetExternalDacChannelSwitch(int chan_ind, int switch_val) { - char *match_names = NULL; + char *match_names = NULL; - if (chan_ind == 1) { - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH1_SWITCH_NAME); - } else if (chan_ind == 2) { - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH2_SWITCH_NAME); - } else if (chan_ind == 3) { - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH3_SWITCH_NAME); - } else { - return -1; - } + if (chan_ind == 1) { + match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH1_SWITCH_NAME); + } else if (chan_ind == 2) { + match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH2_SWITCH_NAME); + } else if (chan_ind == 3) { + match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH3_SWITCH_NAME); + } else { + return -1; + } - return AudioControlSetValue(1, &switch_val, match_names); + return AudioControlSetValue(1, &switch_val, match_names); } int CAudioAlsa::SetExternalDacChannelVolume(int chan_ind, int main_vol) { - int tmp_ret = 0; - char *match_names = NULL; + int tmp_ret = 0; + char *match_names = NULL; - if (chan_ind == 0) { - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_MASTER_VOLUME_NAME); - } else if (chan_ind == 1) { - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH1_VOLUME_NAME); - } else if (chan_ind == 2) { - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH2_VOLUME_NAME); - } else if (chan_ind == 3) { - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH3_VOLUME_NAME); - } else { - return -1; - } + if (chan_ind == 0) { + match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_MASTER_VOLUME_NAME); + } else if (chan_ind == 1) { + match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH1_VOLUME_NAME); + } else if (chan_ind == 2) { + match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH2_VOLUME_NAME); + } else if (chan_ind == 3) { + match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_CH3_VOLUME_NAME); + } else { + return -1; + } - return AudioControlSetValue(1, &main_vol, match_names); + return AudioControlSetValue(1, &main_vol, match_names); } int CAudioAlsa::SetAudioSwitchIO(int value) { - char *match_names = gG9AlsaNames[CC_GET_ALSA_CTL_AUDIO_IN_SWITCH]; + char *match_names = gG9AlsaNames[CC_GET_ALSA_CTL_AUDIO_IN_SWITCH]; - return AudioControlSetValue(1, &value, match_names); + return AudioControlSetValue(1, &value, match_names); } int CAudioAlsa::SetOutput_Swap(int value) { - char *match_names = gG9AlsaNames[CC_GET_ALSA_CTL_SETOUTPUT_SWAP]; + char *match_names = gG9AlsaNames[CC_GET_ALSA_CTL_SETOUTPUT_SWAP]; - return AudioControlSetValue(1, &value, match_names); + return AudioControlSetValue(1, &value, match_names); } int CAudioAlsa::SetExternalDacEQMode(int mode_val) { - char *match_names = NULL; + char *match_names = NULL; - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_EQ_MODE_NAME); - return AudioControlSetValue(1, &mode_val, match_names); + match_names = GetAlsaControlName(CC_GET_ALSA_CTL_EXTERNAL_DAC_EQ_MODE_NAME); + return AudioControlSetValue(1, &mode_val, match_names); } int CAudioAlsa::SetI2SMute(int mute_status) { - char *match_names = NULL; + char *match_names = NULL; - if (mute_status != CC_I2S_MUTE_ON && mute_status != CC_I2S_MUTE_OFF) { - LOGE("%s, I2S mute value (%d) error!\n", __FUNCTION__, mute_status); - return -1; - } + if (mute_status != CC_I2S_MUTE_ON && mute_status != CC_I2S_MUTE_OFF) { + LOGE("%s, I2S mute value (%d) error!\n", __FUNCTION__, mute_status); + return -1; + } - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_I2S_MUTE_NAME); - return AudioControlSetValue(1, &mute_status, match_names); + match_names = GetAlsaControlName(CC_GET_ALSA_CTL_I2S_MUTE_NAME); + return AudioControlSetValue(1, &mute_status, match_names); } int CAudioAlsa::SetSPDIFMute(int mute_status) { - int set_val = 0; - char *match_names = NULL; + int set_val = 0; + char *match_names = NULL; - if (mute_status == CC_AUDIO_MUTE) { - set_val = CC_SPDIF_MUTE_ON; - } else if (mute_status == CC_AUDIO_UNMUTE) { - set_val = CC_SPDIF_MUTE_OFF; - } else { - return -1; - } - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_SPDIF_MUTE_NAME); - return AudioControlSetValue(1, &mute_status, match_names); + if (mute_status == CC_AUDIO_MUTE) { + set_val = CC_SPDIF_MUTE_ON; + } else if (mute_status == CC_AUDIO_UNMUTE) { + set_val = CC_SPDIF_MUTE_OFF; + } else { + return -1; + } + match_names = GetAlsaControlName(CC_GET_ALSA_CTL_SPDIF_MUTE_NAME); + return AudioControlSetValue(1, &mute_status, match_names); } #define CC_SAMPLE_BUF_SIZE (32) enum CC_HW_RESAMPLE_TYPE { - CC_HW_RESAMPLE_DISABLE, - CC_HW_RESAMPLE_48K, - CC_HW_RESAMPLE_44K, - CC_HW_RESAMPLE_32K, + CC_HW_RESAMPLE_DISABLE, + CC_HW_RESAMPLE_48K, + CC_HW_RESAMPLE_44K, + CC_HW_RESAMPLE_32K, }; int CAudioAlsa::SetHardwareResample(int sr) { - int i = 0, set_val = 0, tmp_val = 0; - int diff_val = 0x7FFFFFFF, diff_ind = -1; - char *match_names = NULL; - int sample_buf[CC_SAMPLE_BUF_SIZE] = {48000, 44100, 32000, -1}; - - if (sr < 0) { - set_val = 0; - } else { - for (i = 0; i < CC_SAMPLE_BUF_SIZE; i++) { - if (sample_buf[i] < 0) { - break; - } - - if (sample_buf[i] >= sr) { - tmp_val = sample_buf[i] - sr; - } else { - tmp_val = sr - sample_buf[i]; - } - - if (tmp_val <= diff_val) { - diff_val = tmp_val; - diff_ind = i; - } - } - - if (diff_ind < 0) { - set_val = 0; - } else { - set_val = diff_ind + 1; - } - } - - LOGD("%s, set_val = %d.\n", __FUNCTION__, set_val); - match_names = GetAlsaControlName(CC_GET_ALSA_CTL_HW_RESAMPLE_NAME); - return AudioControlSetValue(1, &set_val, match_names); + int i = 0, set_val = 0, tmp_val = 0; + int diff_val = 0x7FFFFFFF, diff_ind = -1; + char *match_names = NULL; + int sample_buf[CC_SAMPLE_BUF_SIZE] = {48000, 44100, 32000, -1}; + + if (sr < 0) { + set_val = 0; + } else { + for (i = 0; i < CC_SAMPLE_BUF_SIZE; i++) { + if (sample_buf[i] < 0) { + break; + } + + if (sample_buf[i] >= sr) { + tmp_val = sample_buf[i] - sr; + } else { + tmp_val = sr - sample_buf[i]; + } + + if (tmp_val <= diff_val) { + diff_val = tmp_val; + diff_ind = i; + } + } + + if (diff_ind < 0) { + set_val = 0; + } else { + set_val = diff_ind + 1; + } + } + + LOGD("%s, set_val = %d.\n", __FUNCTION__, set_val); + match_names = GetAlsaControlName(CC_GET_ALSA_CTL_HW_RESAMPLE_NAME); + return AudioControlSetValue(1, &set_val, match_names); } int CAudioAlsa::SetMixerBypassSwitch(int switch_val) { - char match_names[48] = "Output Mixer Bypass Switch" ; - int ctl_buf[2]; + char match_names[48] = "Output Mixer Bypass Switch" ; + int ctl_buf[2]; - if (switch_val != 0 && switch_val != 1) { - return -1; - } + if (switch_val != 0 && switch_val != 1) { + return -1; + } - ctl_buf[0] = switch_val; - ctl_buf[1] = switch_val; + ctl_buf[0] = switch_val; + ctl_buf[1] = switch_val; - return AudioControlSetValue(2, ctl_buf, match_names); + return AudioControlSetValue(2, ctl_buf, match_names); } int CAudioAlsa::GetMixerBypassSwitch(void) { - char match_names[48] = "Output Mixer Bypass Switch" ; - int ctl_buf[2]; + char match_names[48] = "Output Mixer Bypass Switch" ; + int ctl_buf[2]; - AudioControlSetValue(2, ctl_buf, match_names); + AudioControlSetValue(2, ctl_buf, match_names); - return ctl_buf[0]; + return ctl_buf[0]; } int CAudioAlsa::SetMixerDacSwitch(int switch_val) { - char match_names[48] = "Output Mixer DAC Switch" ; - int ctl_buf[2]; + char match_names[48] = "Output Mixer DAC Switch" ; + int ctl_buf[2]; - if (switch_val != 0 && switch_val != 1) { - return -1; - } + if (switch_val != 0 && switch_val != 1) { + return -1; + } - ctl_buf[0] = switch_val; - ctl_buf[1] = switch_val; + ctl_buf[0] = switch_val; + ctl_buf[1] = switch_val; - return AudioControlSetValue(2, ctl_buf, match_names); + return AudioControlSetValue(2, ctl_buf, match_names); } int CAudioAlsa::GetMixerDacSwitch(void) { - char *match_names = "Output Mixer DAC Switch" ; - int ctl_buf[2]; + char *match_names = "Output Mixer DAC Switch" ; + int ctl_buf[2]; - AudioControlGetValue(2, ctl_buf, match_names); + AudioControlGetValue(2, ctl_buf, match_names); - return ctl_buf[0]; + return ctl_buf[0]; } int CAudioAlsa::TransVolumeBarVolToDigitalVol(int digit_lut_buf[], int digit_vol) { - return digit_lut_buf[digit_vol]; + return digit_lut_buf[digit_vol]; } int CAudioAlsa::TransDigitalVolToVolumeBarVol(int digit_lut_buf[], int hd_vol, int hd_min, - int hd_max, int digit_min, int digit_max) + int hd_max, int digit_min, int digit_max) { - int i; + int i; - for (i = 0; i < CC_VOL_TRANS_LUT_BUF_SIZE - 1; i++) { - if (digit_lut_buf[i] >= hd_vol && digit_lut_buf[i + 1] < hd_vol) - break; - } + for (i = 0; i < CC_VOL_TRANS_LUT_BUF_SIZE - 1; i++) { + if (digit_lut_buf[i] >= hd_vol && digit_lut_buf[i + 1] < hd_vol) + break; + } - if (i < CC_VOL_TRANS_LUT_BUF_SIZE - 1) - return i; + if (i < CC_VOL_TRANS_LUT_BUF_SIZE - 1) + return i; - return digit_max; + return digit_max; } void CAudioAlsa::SetMainVolDigitLutBuf(int digit_lut_buf[]) { - memcpy((void *) mMainDigitLutBuf, digit_lut_buf, - CC_VOL_TRANS_LUT_BUF_SIZE * sizeof(int)); + memcpy((void *) mMainDigitLutBuf, digit_lut_buf, + CC_VOL_TRANS_LUT_BUF_SIZE * sizeof(int)); } int *CAudioAlsa::GetMainVolDigitLutBuf() { - return mMainDigitLutBuf; + return mMainDigitLutBuf; } void CAudioAlsa::SetSupperBassVolDigitLutBuf(int digit_lut_buf[]) { - memcpy((void *) mSupperBassDigitLutBuf, digit_lut_buf, - CC_VOL_TRANS_LUT_BUF_SIZE * sizeof(int)); + memcpy((void *) mSupperBassDigitLutBuf, digit_lut_buf, + CC_VOL_TRANS_LUT_BUF_SIZE * sizeof(int)); } int CAudioAlsa::SetMainVolumeGain(int gain_val) { - mMainVolumeGainVal = gain_val; - return mMainVolumeGainVal; + mMainVolumeGainVal = gain_val; + return mMainVolumeGainVal; } int CAudioAlsa::GetMainVolumeGain() { - return mMainVolumeGainVal; + return mMainVolumeGainVal; } int CAudioAlsa::SetSupperBassVolumeGain(int gain_val) { - int tmp_val = 0; - tmp_val = mSupperBassVolumeGainVal; - mSupperBassVolumeGainVal = gain_val; - return tmp_val; + int tmp_val = 0; + tmp_val = mSupperBassVolumeGainVal; + mSupperBassVolumeGainVal = gain_val; + return tmp_val; } int CAudioAlsa::GetSupperBassVolumeGain() { - int tmp_val = 0; - tmp_val = mSupperBassVolumeGainVal; - return tmp_val; + int tmp_val = 0; + tmp_val = mSupperBassVolumeGainVal; + return tmp_val; } int CAudioAlsa::CalculateBalanceVol(int max_vol, int balance_val, int vol_buf[]) { - int bal_mid_vol = 0, bal_cal_len = 0; - int tmp_val = 0; + int bal_mid_vol = 0, bal_cal_len = 0; + int tmp_val = 0; - vol_buf[0] = max_vol; - vol_buf[1] = max_vol; + vol_buf[0] = max_vol; + vol_buf[1] = max_vol; - bal_mid_vol = (CC_MIN_SOUND_BALANCE_VAL + CC_MAX_SOUND_BALANCE_VAL) / 2; - bal_cal_len = (CC_MAX_SOUND_BALANCE_VAL - CC_MIN_SOUND_BALANCE_VAL) / 2; + bal_mid_vol = (CC_MIN_SOUND_BALANCE_VAL + CC_MAX_SOUND_BALANCE_VAL) / 2; + bal_cal_len = (CC_MAX_SOUND_BALANCE_VAL - CC_MIN_SOUND_BALANCE_VAL) / 2; - if (balance_val == bal_mid_vol) { - LOGD( - "%s, balance value = %d, bal_mid_vol = %d, vol_buf[0] = %d, vol_buf[1] = %d.\n", - __FUNCTION__, balance_val, bal_mid_vol, vol_buf[0], vol_buf[1]); - return 0; - } else if (balance_val < bal_mid_vol) { - vol_buf[1] = (bal_cal_len - (bal_mid_vol - balance_val)) * max_vol / bal_cal_len; - } else if (balance_val > bal_mid_vol) { - vol_buf[0] = (bal_cal_len - (balance_val - bal_mid_vol)) * max_vol / bal_cal_len; - } + if (balance_val == bal_mid_vol) { + LOGD( + "%s, balance value = %d, bal_mid_vol = %d, vol_buf[0] = %d, vol_buf[1] = %d.\n", + __FUNCTION__, balance_val, bal_mid_vol, vol_buf[0], vol_buf[1]); + return 0; + } else if (balance_val < bal_mid_vol) { + vol_buf[1] = (bal_cal_len - (bal_mid_vol - balance_val)) * max_vol / bal_cal_len; + } else if (balance_val > bal_mid_vol) { + vol_buf[0] = (bal_cal_len - (balance_val - bal_mid_vol)) * max_vol / bal_cal_len; + } - if (GetAudioAmplifierBalanceExchangeCFG() != 0) { - tmp_val = vol_buf[0]; - vol_buf[0] = vol_buf[1]; - vol_buf[1] = tmp_val; - } + if (GetAudioAmplifierBalanceExchangeCFG() != 0) { + tmp_val = vol_buf[0]; + vol_buf[0] = vol_buf[1]; + vol_buf[1] = tmp_val; + } - LOGD( - "%s, balance value = %d, bal_mid_vol = %d, vol_buf[0] = %d, vol_buf[1] = %d.\n", - __FUNCTION__, balance_val, bal_mid_vol, vol_buf[0], vol_buf[1]); - return 0; + LOGD( + "%s, balance value = %d, bal_mid_vol = %d, vol_buf[0] = %d, vol_buf[1] = %d.\n", + __FUNCTION__, balance_val, bal_mid_vol, vol_buf[0], vol_buf[1]); + return 0; } int CAudioAlsa::SetInternalDacMute(int mute_state) { - int ret = 0; - if (mute_state == CC_AUDIO_MUTE) - ret = SetAudioInternalDacDACDigitalPlayBackVolume(0, 0); - else - ret = SetAudioInternalDacDACDigitalPlayBackVolume(255, 255); - return ret; + int ret = 0; + if (mute_state == CC_AUDIO_MUTE) + ret = SetAudioInternalDacDACDigitalPlayBackVolume(0, 0); + else + ret = SetAudioInternalDacDACDigitalPlayBackVolume(255, 255); + return ret; } int CAudioAlsa::setAudioPcmPlaybackMute(int mute_state) { - char prop[256]; - property_get("audio.output.double_output", prop, "null"); - if ( Get2d4gHeadsetEnable() == 1 && (strcmp(prop, "0") == 0 || strcmp(prop, "null") == 0)) { - SetAudioPcmPlaybackSwitch(mute_state); - } - return 0; + char prop[256]; + property_get("audio.output.double_output", prop, "null"); + if ( Get2d4gHeadsetEnable() == 1 && (strcmp(prop, "0") == 0 || strcmp(prop, "null") == 0)) { + SetAudioPcmPlaybackSwitch(mute_state); + } + return 0; } int CAudioAlsa::SetInternalDacMainVolume(int main_vol) { - int tmp_ret = 0, digit_vol = 0; - digit_vol = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, main_vol); + int tmp_ret = 0, digit_vol = 0; + digit_vol = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, main_vol); - return SetInternalDacLineOutPlayBackVolume(digit_vol, digit_vol); + return SetInternalDacLineOutPlayBackVolume(digit_vol, digit_vol); } @@ -823,38 +823,38 @@ static int gDigitalRightVol = 0; int CAudioAlsa::SetDigitalVolume(int l_val, int r_val) { - amAudioSetLeftGain(l_val); - amAudioSetRightGain(r_val); - LOGD("%s, l_val = %d, r_val = %d.\n", __FUNCTION__, l_val, r_val); - return 0; + amAudioSetLeftGain(l_val); + amAudioSetRightGain(r_val); + LOGD("%s, l_val = %d, r_val = %d.\n", __FUNCTION__, l_val, r_val); + return 0; } int CAudioAlsa::SetDigitalMainVolume(int l_vol, int r_vol) { - int tmp_ret = 0, l_val = 0, r_val = 0; + int tmp_ret = 0, l_val = 0, r_val = 0; - //handle l&r channel volume for balance - l_val = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, l_vol); - r_val = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, r_vol); + //handle l&r channel volume for balance + l_val = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, l_vol); + r_val = TransVolumeBarVolToDigitalVol(mMainDigitLutBuf, r_vol); - gDigitalLeftVol = l_val; - gDigitalRightVol = r_val; - if (gDigitalMuteStatus == CC_AUDIO_UNMUTE) { - SetDigitalVolume(l_val, r_val); - } + gDigitalLeftVol = l_val; + gDigitalRightVol = r_val; + if (gDigitalMuteStatus == CC_AUDIO_UNMUTE) { + SetDigitalVolume(l_val, r_val); + } - return tmp_ret; + return tmp_ret; } int CAudioAlsa::SetDigitalMute(int mute_status) { - gDigitalMuteStatus = mute_status; - if (mute_status == CC_AUDIO_MUTE) { - SetDigitalVolume(0, 0); - } else if (mute_status == CC_AUDIO_UNMUTE) { - SetDigitalVolume(gDigitalLeftVol, gDigitalRightVol); - } + gDigitalMuteStatus = mute_status; + if (mute_status == CC_AUDIO_MUTE) { + SetDigitalVolume(0, 0); + } else if (mute_status == CC_AUDIO_UNMUTE) { + SetDigitalVolume(gDigitalLeftVol, gDigitalRightVol); + } - return 0; + return 0; } diff --git a/tvapi/libtv/audio/audio_alsa.h b/tvapi/libtv/audio/audio_alsa.h index 6cd0198..af22cb7 100644 --- a/tvapi/libtv/audio/audio_alsa.h +++ b/tvapi/libtv/audio/audio_alsa.h @@ -2,23 +2,23 @@ #define __TV_AUDIO_ALSA_H__ enum CC_AUD_I2S_MUTE { - CC_I2S_MUTE_OFF, - CC_I2S_MUTE_ON, + CC_I2S_MUTE_OFF, + CC_I2S_MUTE_ON, }; enum CC_AUDIO_MUTE_STATUS { - CC_MUTE_ON, - CC_MUTE_OFF, + CC_MUTE_ON, + CC_MUTE_OFF, }; enum CC_AUD_SPDIF_MUTE { - CC_SPDIF_MUTE_OFF, - CC_SPDIF_MUTE_ON, + CC_SPDIF_MUTE_OFF, + CC_SPDIF_MUTE_ON, }; enum CC_AUD_IN_TYPE { - CC_AUDIO_IN_SOURCE_LINEIN, - CC_AUDIO_IN_SOURCE_ATV, - CC_AUDIO_IN_SOURCE_HDMI, + CC_AUDIO_IN_SOURCE_LINEIN, + CC_AUDIO_IN_SOURCE_ATV, + CC_AUDIO_IN_SOURCE_HDMI, }; @@ -40,88 +40,88 @@ static const int CC_AUDIO_MUTE = 1; static const int CC_AUDIO_UNMUTE = 0; enum CC_AUDIO_SOURCE_TYPE { - AUDIO_HDMI_SOURCE, - AUDIO_ATV_SOURCE, - AUDIO_AV_SOURCE, - AUDIO_MPEG_SOURCE, - AUDIO_MAX_SOURCE + AUDIO_HDMI_SOURCE, + AUDIO_ATV_SOURCE, + AUDIO_AV_SOURCE, + AUDIO_MPEG_SOURCE, + AUDIO_MAX_SOURCE }; //use tinyalsa,is a like alsa-lib for android class CAudioAlsa { public: - CAudioAlsa(); - ~CAudioAlsa(); - int SetAudioInSource(int source_type); - int GetAudioInSource(void); - int SetAudioInternalDacPGAInGain(int gain_l_val, int gain_r_val); - int GetAudioInternalDacPGAInGain(int *gain_l_val, int *gain_r_val); - int SetAudioInternalDacADCDigitalCaptureVolume(int vol_l_val, int vol_r_val); - int GetAudioInternalDacADCDigitalCaptureVolume(int *vol_l_val, int *vol_r_val); - int SetAudioInternalDacDACDigitalPlayBackVolume(int vol_l_val, int vol_r_val); - int GetAudioInternalDacDACDigitalPlayBackVolume(int *vol_l_val, int *vol_r_val); - int SetInternalDacLineInSelectChannel(int line_in_number); - int SetInternalDacLineInCaptureVolume(int l_vol, int r_vol); - int GetInternalDacLineInCaptureVolume(int vol_buf[]); - int SetInternalDacLineOutPlayBackVolume(int l_vol, int r_vol); - int GetInternalDacLineOutPlayBackVolume(int vol_buf[]); - int SetExternalDacChannelSwitch(int chan_ind, int switch_val); - int SetExternalDacChannelVolume(int chan_ind, int main_vol); - int SetExternalDacEQMode(int mode_val); - int SetI2SMute(int mute_status); - int SetSPDIFMute(int mute_status); - int SetHardwareResample(int sr); - int SetAudioSwitchIO(int value); - int SetAudioPcmPlaybackVolume(int val); - int SetAudioPcmPlaybackSwitch(int vol); + CAudioAlsa(); + ~CAudioAlsa(); + int SetAudioInSource(int source_type); + int GetAudioInSource(void); + int SetAudioInternalDacPGAInGain(int gain_l_val, int gain_r_val); + int GetAudioInternalDacPGAInGain(int *gain_l_val, int *gain_r_val); + int SetAudioInternalDacADCDigitalCaptureVolume(int vol_l_val, int vol_r_val); + int GetAudioInternalDacADCDigitalCaptureVolume(int *vol_l_val, int *vol_r_val); + int SetAudioInternalDacDACDigitalPlayBackVolume(int vol_l_val, int vol_r_val); + int GetAudioInternalDacDACDigitalPlayBackVolume(int *vol_l_val, int *vol_r_val); + int SetInternalDacLineInSelectChannel(int line_in_number); + int SetInternalDacLineInCaptureVolume(int l_vol, int r_vol); + int GetInternalDacLineInCaptureVolume(int vol_buf[]); + int SetInternalDacLineOutPlayBackVolume(int l_vol, int r_vol); + int GetInternalDacLineOutPlayBackVolume(int vol_buf[]); + int SetExternalDacChannelSwitch(int chan_ind, int switch_val); + int SetExternalDacChannelVolume(int chan_ind, int main_vol); + int SetExternalDacEQMode(int mode_val); + int SetI2SMute(int mute_status); + int SetSPDIFMute(int mute_status); + int SetHardwareResample(int sr); + int SetAudioSwitchIO(int value); + int SetAudioPcmPlaybackVolume(int val); + int SetAudioPcmPlaybackSwitch(int vol); - int SetOutput_Swap(int value); + int SetOutput_Swap(int value); - int SetMixerBypassSwitch(int switch_val); - int GetMixerBypassSwitch(void); - int SetMixerDacSwitch(int switch_val); - int GetMixerDacSwitch(void); - //dac - void SetMainVolDigitLutBuf(int digit_lut_buf[]); - int *GetMainVolDigitLutBuf(); - void SetSupperBassVolDigitLutBuf(int digit_lut_buf[]); - int SetMainVolumeGain(int gain_val); - int GetMainVolumeGain(); - int SetSupperBassVolumeGain(int gain_val); - int GetSupperBassVolumeGain(); - int SetInternalDacMute(int); - int setAudioPcmPlaybackMute(int); - //end dac - int TransVolumeBarVolToDigitalVol(int *, int); - int TransDigitalVolToVolumeBarVol(int *, int, int, int, int, int); - int CalculateBalanceVol(int, int, int *); - int SetExternalDacMainVolume(int); - int SetInternalDacMainVolume(int); - int SetDigitalVolume(int, int); - int SetDigitalMainVolume(int, int); - int SetDigitalMute(int); + int SetMixerBypassSwitch(int switch_val); + int GetMixerBypassSwitch(void); + int SetMixerDacSwitch(int switch_val); + int GetMixerDacSwitch(void); + //dac + void SetMainVolDigitLutBuf(int digit_lut_buf[]); + int *GetMainVolDigitLutBuf(); + void SetSupperBassVolDigitLutBuf(int digit_lut_buf[]); + int SetMainVolumeGain(int gain_val); + int GetMainVolumeGain(); + int SetSupperBassVolumeGain(int gain_val); + int GetSupperBassVolumeGain(); + int SetInternalDacMute(int); + int setAudioPcmPlaybackMute(int); + //end dac + int TransVolumeBarVolToDigitalVol(int *, int); + int TransDigitalVolToVolumeBarVol(int *, int, int, int, int, int); + int CalculateBalanceVol(int, int, int *); + int SetExternalDacMainVolume(int); + int SetInternalDacMainVolume(int); + int SetDigitalVolume(int, int); + int SetDigitalMainVolume(int, int); + int SetDigitalMute(int); private: - int get_aml_card(); - int AudioControlSetValue(int val_count, int data_buf[], char *match_names); - int AudioControlGetValue(int val_count, int ret_buf[], char *match_names); - int get_USB_Audio_card(); - int HandleUSBAudioControlValue(int val_count, int data_buf[], int match_count, char **match_names); - int CheckVolume(int digit_vol, int digit_min, int digit_max, int hd_min, int hd_max); - int GetTwoChannelVolume(int vol_buf[], int l_min_vol, int l_max_vol, int r_min_vol, int r_max_vol, char *match_names, int hd_min, int hd_max); - int GetLineInMaxVol(); - int GetLineOutMaxVol(); - char *GetAlsaControlName(int get_type); - // - // - //mem - struct mixer *mpMixer; - struct mixer *mpUsbMixer; - int mMainVolumeBalanceVal; - int mMainVolumeGainVal; - int mSupperBassVolumeGainVal; - int mMainDigitLutBuf[CC_VOL_TRANS_LUT_BUF_SIZE]; - int mSupperBassDigitLutBuf[CC_VOL_TRANS_LUT_BUF_SIZE]; + int get_aml_card(); + int AudioControlSetValue(int val_count, int data_buf[], char *match_names); + int AudioControlGetValue(int val_count, int ret_buf[], char *match_names); + int get_USB_Audio_card(); + int HandleUSBAudioControlValue(int val_count, int data_buf[], int match_count, char **match_names); + int CheckVolume(int digit_vol, int digit_min, int digit_max, int hd_min, int hd_max); + int GetTwoChannelVolume(int vol_buf[], int l_min_vol, int l_max_vol, int r_min_vol, int r_max_vol, char *match_names, int hd_min, int hd_max); + int GetLineInMaxVol(); + int GetLineOutMaxVol(); + char *GetAlsaControlName(int get_type); + // + // + //mem + struct mixer *mpMixer; + struct mixer *mpUsbMixer; + int mMainVolumeBalanceVal; + int mMainVolumeGainVal; + int mSupperBassVolumeGainVal; + int mMainDigitLutBuf[CC_VOL_TRANS_LUT_BUF_SIZE]; + int mSupperBassDigitLutBuf[CC_VOL_TRANS_LUT_BUF_SIZE]; }; #endif //__TV_AUDIO_ALSA_H__ diff --git a/tvapi/libtv/audio/audio_effect.cpp b/tvapi/libtv/audio/audio_effect.cpp index 659b966..e6f0074 100644 --- a/tvapi/libtv/audio/audio_effect.cpp +++ b/tvapi/libtv/audio/audio_effect.cpp @@ -26,103 +26,103 @@ CAudioEffect::~CAudioEffect() int CAudioEffect::GetEQBandCount() { - return CC_BAND_ITEM_CNT; + return CC_BAND_ITEM_CNT; } int CAudioEffect::SetEQSwitch(int switch_val) { - int tmp_ret = 0; - tmp_ret |= amAudioSetEQEnable(switch_val); - return tmp_ret; + int tmp_ret = 0; + tmp_ret |= amAudioSetEQEnable(switch_val); + return tmp_ret; } int CAudioEffect::GetEQSwitch() { - int tmp_ret = 0; - return 0; + int tmp_ret = 0; + return 0; } int CAudioEffect::SetEQValue(int gain_val_buf[]) { - int tmp_ret = 0; - tmp_ret |= amAudioSetEQGain(gain_val_buf, CC_BAND_ITEM_CNT); - return tmp_ret; + int tmp_ret = 0; + tmp_ret |= amAudioSetEQGain(gain_val_buf, CC_BAND_ITEM_CNT); + return tmp_ret; } int CAudioEffect::GetEQValue(int gain_val_buf[]) { - int tmp_ret = 0; - return 0; + int tmp_ret = 0; + return 0; } int CAudioEffect::SetSrsSurroundSwitch(int switch_val) { - int tmp_ret = 0; - tmp_ret |= amAudioSetSRSSurroundSwitch(switch_val); - return tmp_ret; + int tmp_ret = 0; + tmp_ret |= amAudioSetSRSSurroundSwitch(switch_val); + return tmp_ret; } int CAudioEffect::SetSrsSurroundGain(int gain_val) { - int tmp_ret = 0; - tmp_ret |= amAudioSetSRSSurroundGain(gain_val); - return tmp_ret; + int tmp_ret = 0; + tmp_ret |= amAudioSetSRSSurroundGain(gain_val); + return tmp_ret; } int CAudioEffect::SetSrsInputOutputGain(int input_gain_val, int output_gain_val) { - int tmp_ret = 0; - tmp_ret |= amAudioSetSRSGain(input_gain_val, output_gain_val); - return tmp_ret; + int tmp_ret = 0; + tmp_ret |= amAudioSetSRSGain(input_gain_val, output_gain_val); + return tmp_ret; } int CAudioEffect::SetSrsTruBassSwitch(int switch_val) { - int tmp_ret = 0; - tmp_ret |= amAudioSetSRSTrubassSwitch(switch_val); - return tmp_ret; + int tmp_ret = 0; + tmp_ret |= amAudioSetSRSTrubassSwitch(switch_val); + return tmp_ret; } int CAudioEffect::SetSrsTruBassGain(int gain_val) { - int tmp_ret = 0; - tmp_ret |= amAudioSetSRSTrubassGain(gain_val); - return tmp_ret; + int tmp_ret = 0; + tmp_ret |= amAudioSetSRSTrubassGain(gain_val); + return tmp_ret; } int CAudioEffect::SetSrsDialogClaritySwitch(int switch_val) { - int tmp_ret = 0; - tmp_ret |= amAudioSetSRSDialogClaritySwitch(switch_val); - return tmp_ret; + int tmp_ret = 0; + tmp_ret |= amAudioSetSRSDialogClaritySwitch(switch_val); + return tmp_ret; } int CAudioEffect::SetSrsDialogClarityGain(int gain_val) { - int tmp_ret = 0; - tmp_ret |= amAudioSetSRSDialogClarityGain(gain_val); - return tmp_ret; + int tmp_ret = 0; + tmp_ret |= amAudioSetSRSDialogClarityGain(gain_val); + return tmp_ret; } int CAudioEffect::SetSrsDefinitionGain(int gain_val) { - int tmp_ret = 0; - tmp_ret |= amAudioSetSRSDefinitionGain(gain_val); - return tmp_ret; + int tmp_ret = 0; + tmp_ret |= amAudioSetSRSDefinitionGain(gain_val); + return tmp_ret; } int CAudioEffect::SetSrsTrubassSpeakerSize(int set_val) { - int tmp_ret = 0; - tmp_ret |= amAudioSetSRSTrubassSpeakerSize(set_val); - return tmp_ret; + int tmp_ret = 0; + tmp_ret |= amAudioSetSRSTrubassSpeakerSize(set_val); + return tmp_ret; } int CAudioEffect::DbxTv_SetMode(int mode, int son_value, int vol_value, int sur_value) { - int ret = 0; + int ret = 0; #ifdef TV_AUDIO_USE_DBX_TV - ret |= amAudioSetDBXTVParameter( son_value, vol_value, sur_value); + ret |= amAudioSetDBXTVParameter( son_value, vol_value, sur_value); #endif - return ret; + return ret; } diff --git a/tvapi/libtv/audio/audio_effect.h b/tvapi/libtv/audio/audio_effect.h index 6ff398a..65e8003 100644 --- a/tvapi/libtv/audio/audio_effect.h +++ b/tvapi/libtv/audio/audio_effect.h @@ -3,24 +3,24 @@ #define CC_BAND_ITEM_CNT ( 6 ) class CAudioEffect { public: - CAudioEffect(); - ~CAudioEffect(); - int GetEQBandCount(); - int SetEQSwitch(int switch_val); - int GetEQSwitch(); - int SetEQValue(int gain_val_buf[]); - int GetEQValue(int gain_val_buf[]); + CAudioEffect(); + ~CAudioEffect(); + int GetEQBandCount(); + int SetEQSwitch(int switch_val); + int GetEQSwitch(); + int SetEQValue(int gain_val_buf[]); + int GetEQValue(int gain_val_buf[]); - int SetSrsSurroundSwitch(int switch_val); - int SetSrsInputOutputGain(int input_gain_val, int output_gain_val); - int SetSrsSurroundGain(int gain_val); - int SetSrsTruBassSwitch(int switch_val); - int SetSrsTruBassGain(int gain_val); - int SetSrsDialogClaritySwitch(int switch_val); - int SetSrsDialogClarityGain(int gain_val); - int SetSrsDefinitionGain(int gain_val); - int SetSrsTrubassSpeakerSize(int tmp_val); - int DbxTv_SetMode(int mode, int son_value, int vol_value, int sur_value); + int SetSrsSurroundSwitch(int switch_val); + int SetSrsInputOutputGain(int input_gain_val, int output_gain_val); + int SetSrsSurroundGain(int gain_val); + int SetSrsTruBassSwitch(int switch_val); + int SetSrsTruBassGain(int gain_val); + int SetSrsDialogClaritySwitch(int switch_val); + int SetSrsDialogClarityGain(int gain_val); + int SetSrsDefinitionGain(int gain_val); + int SetSrsTrubassSpeakerSize(int tmp_val); + int DbxTv_SetMode(int mode, int son_value, int vol_value, int sur_value); private: }; diff --git a/tvapi/libtv/include/amstream.h b/tvapi/libtv/include/amstream.h index 14282fd..434c028 100644 --- a/tvapi/libtv/include/amstream.h +++ b/tvapi/libtv/include/amstream.h @@ -138,78 +138,78 @@ enum VIDEO_DEC_TYPE }; */ struct buf_status { - int size; - int data_len; - int free_len; - unsigned int read_pointer; - unsigned int write_pointer; + int size; + int data_len; + int free_len; + unsigned int read_pointer; + unsigned int write_pointer; }; struct vdec_status { - unsigned int width; - unsigned int height; - unsigned int fps; - unsigned int error_count; - unsigned int status; + unsigned int width; + unsigned int height; + unsigned int fps; + unsigned int error_count; + unsigned int status; }; struct adec_status { - unsigned int channels; - unsigned int sample_rate; - unsigned int resolution; - unsigned int error_count; - unsigned int status; + unsigned int channels; + unsigned int sample_rate; + unsigned int resolution; + unsigned int error_count; + unsigned int status; }; struct am_io_param { - union { - int data; - int id;//get bufstatus? //or others - }; - - int len; //buffer size; - - union { - char buf[1]; - struct buf_status status; - struct vdec_status vstatus; - struct adec_status astatus; - }; + union { + int data; + int id;//get bufstatus? //or others + }; + + int len; //buffer size; + + union { + char buf[1]; + struct buf_status status; + struct vdec_status vstatus; + struct adec_status astatus; + }; }; struct audio_info { - int valid; - int sample_rate; - int channels; - int bitrate; - int codec_id; - int block_align; - int extradata_size; - char extradata[AUDIO_EXTRA_DATA_SIZE]; + int valid; + int sample_rate; + int channels; + int bitrate; + int codec_id; + int block_align; + int extradata_size; + char extradata[AUDIO_EXTRA_DATA_SIZE]; }; struct dec_sysinfo { - unsigned int format; - unsigned int width; - unsigned int height; - unsigned int rate; - unsigned int extra; - unsigned int status; - unsigned int ratio; - void *param; - unsigned long long ratio64; + unsigned int format; + unsigned int width; + unsigned int height; + unsigned int rate; + unsigned int extra; + unsigned int status; + unsigned int ratio; + void *param; + unsigned long long ratio64; }; struct subtitle_info { - unsigned char id; - unsigned char width; - unsigned char height; - unsigned char type; + unsigned char id; + unsigned char width; + unsigned char height; + unsigned char type; }; struct codec_profile_t { - char *name; // video codec short name - char *profile; // Attributes,seperated by commas + char *name; // video codec short name + char *profile; // Attributes,seperated by commas }; #define SUPPORT_VDEC_NUM (8) @@ -220,15 +220,15 @@ int vcodec_profile_read(char *buf); #ifdef ENABLE_DEMUX_DRIVER /*TS demux operation interface*/ struct tsdemux_ops { - int (*reset)(void); - int (*set_reset_flag)(void); - int (*request_irq)(irq_handler_t handler, void *data); - int (*free_irq)(void); - int (*set_vid)(int vpid); - int (*set_aid)(int apid); - int (*set_sid)(int spid); - int (*set_skipbyte)(int skipbyte); - int (*set_demux)(int dev); + int (*reset)(void); + int (*set_reset_flag)(void); + int (*request_irq)(irq_handler_t handler, void *data); + int (*free_irq)(void); + int (*set_vid)(int vpid); + int (*set_aid)(int apid); + int (*set_sid)(int spid); + int (*set_skipbyte)(int skipbyte); + int (*set_demux)(int dev); }; void tsdemux_set_ops(struct tsdemux_ops *ops); @@ -244,20 +244,20 @@ int get_sub_type(void); #endif typedef struct tcon_gamma_table_s { - unsigned short data[256]; + unsigned short data[256]; } tcon_gamma_table_t; typedef struct tcon_rgb_ogo_s { - unsigned int en; - int r_pre_offset; // s11.0, range -1024~+1023, default is 0 - int g_pre_offset; // s11.0, range -1024~+1023, default is 0 - int b_pre_offset; // s11.0, range -1024~+1023, default is 0 - unsigned int r_gain; // u1.10, range 0~2047, default is 1024 (1.0x) - unsigned int g_gain; // u1.10, range 0~2047, default is 1024 (1.0x) - unsigned int b_gain; // u1.10, range 0~2047, default is 1024 (1.0x) - int r_post_offset; // s11.0, range -1024~+1023, default is 0 - int g_post_offset; // s11.0, range -1024~+1023, default is 0 - int b_post_offset; // s11.0, range -1024~+1023, default is 0 + unsigned int en; + int r_pre_offset; // s11.0, range -1024~+1023, default is 0 + int g_pre_offset; // s11.0, range -1024~+1023, default is 0 + int b_pre_offset; // s11.0, range -1024~+1023, default is 0 + unsigned int r_gain; // u1.10, range 0~2047, default is 1024 (1.0x) + unsigned int g_gain; // u1.10, range 0~2047, default is 1024 (1.0x) + unsigned int b_gain; // u1.10, range 0~2047, default is 1024 (1.0x) + int r_post_offset; // s11.0, range -1024~+1023, default is 0 + int g_post_offset; // s11.0, range -1024~+1023, default is 0 + int b_post_offset; // s11.0, range -1024~+1023, default is 0 } tcon_rgb_ogo_t; #endif //__AMSTREAM_H__ diff --git a/tvapi/libtv/include/cm.h b/tvapi/libtv/include/cm.h index 4d5bd86..bb516db 100644 --- a/tvapi/libtv/include/cm.h +++ b/tvapi/libtv/include/cm.h @@ -8,43 +8,43 @@ // *************************************************************************** typedef enum cm_region_idx_e { - CM_REGION_IDX_0 = 0, - CM_REGION_IDX_1, - CM_REGION_IDX_2, - CM_REGION_IDX_3, - CM_REGION_IDX_4, - CM_REGION_IDX_5, - CM_REGION_IDX_6, - CM_REGION_IDX_7, + CM_REGION_IDX_0 = 0, + CM_REGION_IDX_1, + CM_REGION_IDX_2, + CM_REGION_IDX_3, + CM_REGION_IDX_4, + CM_REGION_IDX_5, + CM_REGION_IDX_6, + CM_REGION_IDX_7, } cm_region_idx_t; typedef enum cm_sat_shape_e { - CM_SAT_SHAPE_RIGHT_BIGGEST = 0, - CM_SAT_SHAPE_LEFT_BIGGEST, + CM_SAT_SHAPE_RIGHT_BIGGEST = 0, + CM_SAT_SHAPE_LEFT_BIGGEST, } cm_sat_shape_t; typedef enum cm_hue_shape_e { - CM_HUE_SHAPE_LEFT_MORE = 0, - CM_HUE_SHAPE_RIGHT_MORE, + CM_HUE_SHAPE_LEFT_MORE = 0, + CM_HUE_SHAPE_RIGHT_MORE, } cm_hue_shape_t; typedef enum cm_demo_pos_e { - CM_DEMO_POS_TOP = 0, - CM_DEMO_POS_BOTTOM, - CM_DEMO_POS_LEFT, - CM_DEMO_POS_RIGHT, + CM_DEMO_POS_TOP = 0, + CM_DEMO_POS_BOTTOM, + CM_DEMO_POS_LEFT, + CM_DEMO_POS_RIGHT, } cm_demo_pos_t; typedef enum cm_sat_sel_e { - CM_SAT_SEL_U2_V2 = 0, - CM_SAT_SEL_UV_MAX, + CM_SAT_SEL_U2_V2 = 0, + CM_SAT_SEL_UV_MAX, } cm_sat_sel_t; typedef enum cm_csc_e { - CM_CSC_601 = 0, - CM_CSC_709, - CM_CSC_FULL_601, - CM_CSC_FULL_709, + CM_CSC_601 = 0, + CM_CSC_709, + CM_CSC_FULL_601, + CM_CSC_FULL_709, } cm_csc_t; // *************************************************************************** @@ -52,103 +52,103 @@ typedef enum cm_csc_e { // *************************************************************************** typedef struct cm_region_s { - enum cm_region_idx_e region_idx; - // sym - unsigned char sym_en; - // sat - top - unsigned char sat_en; - unsigned char sat_central_en; - enum cm_sat_shape_e sat_shape; - unsigned char sat_gain; - unsigned char sat_inc; - // sat - lum - unsigned char sat_lum_h_slope; - unsigned char sat_lum_l_slope; - unsigned char sat_lum_h; - unsigned char sat_lum_l; - // sat - sat - unsigned char sat_sat_h_slope; - unsigned char sat_sat_l_slope; - unsigned char sat_sat_h; - unsigned char sat_sat_l; - // hue - top - unsigned char hue_en; - unsigned char hue_central_en; - enum cm_hue_shape_e hue_shape; - unsigned char hue_gain; - unsigned char hue_clockwise; - unsigned char hue_shf_ran; - unsigned short hue_shf_sta; - // hue - lum - unsigned char hue_lum_h_slope; - unsigned char hue_lum_l_slope; - unsigned char hue_lum_h; - unsigned char hue_lum_l; - // hue - sat - unsigned char hue_sat_h_slope; - unsigned char hue_sat_l_slope; - unsigned char hue_sat_h; - unsigned char hue_sat_l; + enum cm_region_idx_e region_idx; + // sym + unsigned char sym_en; + // sat - top + unsigned char sat_en; + unsigned char sat_central_en; + enum cm_sat_shape_e sat_shape; + unsigned char sat_gain; + unsigned char sat_inc; + // sat - lum + unsigned char sat_lum_h_slope; + unsigned char sat_lum_l_slope; + unsigned char sat_lum_h; + unsigned char sat_lum_l; + // sat - sat + unsigned char sat_sat_h_slope; + unsigned char sat_sat_l_slope; + unsigned char sat_sat_h; + unsigned char sat_sat_l; + // hue - top + unsigned char hue_en; + unsigned char hue_central_en; + enum cm_hue_shape_e hue_shape; + unsigned char hue_gain; + unsigned char hue_clockwise; + unsigned char hue_shf_ran; + unsigned short hue_shf_sta; + // hue - lum + unsigned char hue_lum_h_slope; + unsigned char hue_lum_l_slope; + unsigned char hue_lum_h; + unsigned char hue_lum_l; + // hue - sat + unsigned char hue_sat_h_slope; + unsigned char hue_sat_l_slope; + unsigned char hue_sat_h; + unsigned char hue_sat_l; } cm_region_t; typedef struct cm_top_s { - unsigned char chroma_en; - enum cm_sat_sel_e sat_sel; - unsigned char uv_adj_en; - unsigned char rgb_to_hue_en; - enum cm_csc_e csc_sel; + unsigned char chroma_en; + enum cm_sat_sel_e sat_sel; + unsigned char uv_adj_en; + unsigned char rgb_to_hue_en; + enum cm_csc_e csc_sel; } cm_top_t; typedef struct cm_cbar_s { - unsigned char en; - unsigned char wid; - unsigned char cr; - unsigned char cb; - unsigned char y; + unsigned char en; + unsigned char wid; + unsigned char cr; + unsigned char cb; + unsigned char y; } cm_cbar_t; typedef struct cm_demo_s { - unsigned char en; - enum cm_demo_pos_e pos; - unsigned char hlight_adj; - unsigned short wid; - struct cm_cbar_s cbar; + unsigned char en; + enum cm_demo_pos_e pos; + unsigned char hlight_adj; + unsigned short wid; + struct cm_cbar_s cbar; } cm_demo_t; typedef struct cm_regmap_s { - unsigned long reg[50]; + unsigned long reg[50]; } cm_regmap_t; typedef enum reg_bus_type_e { - REG_TYPE_PHY = 0, - REG_TYPE_CBUS, - REG_TYPE_APB, - REG_TYPE_AXI, - REG_TYPE_AHB, - REG_TYPE_MPEG, - REG_TYPE_INDEX_VPPCHROMA, - REG_TYPE_INDEX_GAMMA, - VALUE_TYPE_CONTRAST_BRIGHTNESS, - REG_TYPE_INDEX_VPP_COEF, - REG_TYPE_MAX, + REG_TYPE_PHY = 0, + REG_TYPE_CBUS, + REG_TYPE_APB, + REG_TYPE_AXI, + REG_TYPE_AHB, + REG_TYPE_MPEG, + REG_TYPE_INDEX_VPPCHROMA, + REG_TYPE_INDEX_GAMMA, + VALUE_TYPE_CONTRAST_BRIGHTNESS, + REG_TYPE_INDEX_VPP_COEF, + REG_TYPE_MAX, } reg_bus_type_t; /* Register table structure */ typedef struct am_reg_s { - unsigned int type; //32-bits; 0: CBUS; 1: APB BUS... - unsigned int addr; //32-bits; Register address - unsigned int mask; //32-bits; Valid bits - unsigned int val; //32-bits; Register Value + unsigned int type; //32-bits; 0: CBUS; 1: APB BUS... + unsigned int addr; //32-bits; Register address + unsigned int mask; //32-bits; Valid bits + unsigned int val; //32-bits; Register Value } am_reg_t; #ifdef AMVIDEO_REG_TABLE_DYNAMIC typedef struct am_regs_s { - unsigned int length; // Length of total am_reg - struct am_reg_s *am_reg; + unsigned int length; // Length of total am_reg + struct am_reg_s *am_reg; } am_regs_t; #else typedef struct am_regs_s { - unsigned int length; // Length of total am_reg - struct am_reg_s am_reg[REGS_MAX_NUMBER]; + unsigned int length; // Length of total am_reg + struct am_reg_s am_reg[REGS_MAX_NUMBER]; } am_regs_t; #endif diff --git a/tvapi/libtv/include/hdmirx_cec.h b/tvapi/libtv/include/hdmirx_cec.h index 495e210..e7bfd06 100644 --- a/tvapi/libtv/include/hdmirx_cec.h +++ b/tvapi/libtv/include/hdmirx_cec.h @@ -15,282 +15,282 @@ #define CEC_MSG_QUEUE_SIZE 20 typedef enum _cec_logic_addr { - E_LA_TV = 0, - E_LA_RECORDER1 = 1, - E_LA_RECORDER2 = 2, - E_LA_TUNER1 = 3, - E_LA_PLAYBACK1 = 4, - E_LA_AUDIO_SYS = 5, - E_LA_TUNER2 = 6, - E_LA_TUNER3 = 7, - E_LA_PLAYBACK2 = 8, - E_LA_RECORER3 = 9, - E_LA_TUNER4 = 10, - E_LA_PLYBACK3 = 11, - RESERVED_1 = 12, - RESERVED_2 = 13, - E_LA_FREE_USE = 14, - E_LA_UNREGISTERED = 15, - E_LA_BROADCAST = 15, - E_LA_MAX = 15, + E_LA_TV = 0, + E_LA_RECORDER1 = 1, + E_LA_RECORDER2 = 2, + E_LA_TUNER1 = 3, + E_LA_PLAYBACK1 = 4, + E_LA_AUDIO_SYS = 5, + E_LA_TUNER2 = 6, + E_LA_TUNER3 = 7, + E_LA_PLAYBACK2 = 8, + E_LA_RECORER3 = 9, + E_LA_TUNER4 = 10, + E_LA_PLYBACK3 = 11, + RESERVED_1 = 12, + RESERVED_2 = 13, + E_LA_FREE_USE = 14, + E_LA_UNREGISTERED = 15, + E_LA_BROADCAST = 15, + E_LA_MAX = 15, } _cec_logic_addr; typedef enum _cec_dev_type { - E_DEVICE_TYPE_TV = 0, - E_DEVICE_TYPE_RECORDING_DEVICE = 1, - E_DEVICE_TYPE_RESERVED = 2, - E_DEVICE_TYPE_TUNER = 3, - E_DEVICE_TYPE_PLAYBACK_DEVICE = 4, - E_DEVICE_TYPE_AUDIO_SYSTEM = 5, - E_DEVICE_TYPE_PURE_CEC_SWITCH = 6, - E_DEVICE_TYPE_VIDEO_PROCESSOR = 7 + E_DEVICE_TYPE_TV = 0, + E_DEVICE_TYPE_RECORDING_DEVICE = 1, + E_DEVICE_TYPE_RESERVED = 2, + E_DEVICE_TYPE_TUNER = 3, + E_DEVICE_TYPE_PLAYBACK_DEVICE = 4, + E_DEVICE_TYPE_AUDIO_SYSTEM = 5, + E_DEVICE_TYPE_PURE_CEC_SWITCH = 6, + E_DEVICE_TYPE_VIDEO_PROCESSOR = 7 } _cec_dev_type; typedef enum _cec_cmd { - //----- One Touch Play ---------------------------- - E_MSG_ACTIVE_SOURCE = 0x82, - E_MSG_IMAGE_VIEW_ON = 0x04, - E_MSG_TEXT_VIEW_ON = 0x0D, - //----- Routing Control --------------------------- - //E_MSG_RC_ACTIVE_SOURCE = 0x82, - E_MSG_INACTIVE_SOURCE = 0x9D, - E_MSG_REQUEST_ACTIVE_SOURCE = 0x85, - E_MSG_ROUTING_CHANGE = 0x80, - E_MSG_ROUTING_INFO = 0x81, - E_MSG_SET_STREM_PATH = 0x86, - //----- Standby Command --------------------------- - E_MSG_STANDBY = 0x36, - //----- One Touch Record--------------------------- - E_MSG_RECORD_ON = 0x09, - E_MSG_RECORD_OFF = 0x0B, - E_MSG_RECORD_STATUS = 0x0A, - E_MSG_RECORD_TV_SCREEN = 0x0F, - //----- Timer programmer -------------------------- CEC1.3a - E_MSG_CLEAR_ANALOG_TIMER = 0x33, - E_MSG_CLEAR_DIGITAL_TIMER = 0x99, - E_MSG_CLEAR_EXT_TIMER = 0xA1, - E_MSG_SET_ANALOG_TIMER = 0x34, - E_MSG_SET_DIGITAL_TIMER = 0x97, - E_MSG_SET_EXT_TIMER = 0xA2, - E_MSG_SET_TIMER_PROGRAM_TITLE = 0x67, - E_MSG_TIMER_CLEARD_STATUS = 0x43, - E_MSG_TIMER_STATUS = 0x35, - //----- System Information ------------------------ - E_MSG_CEC_VERSION = 0x9E, //1.3a - E_MSG_GET_CEC_VERSION = 0x9F, //1.3a - E_MSG_GIVE_PHYSICAL_ADDRESS = 0x83, - E_MSG_REPORT_PHYSICAL_ADDRESS = 0x84, - E_MSG_GET_MENU_LANGUAGE = 0x91, - E_MSG_SET_MENU_LANGUAGE = 0x32, - //E_MSG_POLLING_MESSAGE = ?, - //E_MSG_REC_TYPE_PRESET = 0x00, //parameter ? - //E_MSG_REC_TYPE_OWNSRC = 0x01, //parameter ? - //----- Deck Control Feature----------------------- - E_MSG_DECK_CTRL = 0x42, - E_MSG_DECK_STATUS = 0x1B, - E_MSG_GIVE_DECK_STATUS = 0x1A, - E_MSG_PLAY = 0x41, - //----- Tuner Control ------------------------------ - E_MSG_GIVE_TUNER_STATUS = 0x08, - E_MSG_SEL_ANALOG_SERVICE = 0x92, - E_MSG_SEL_DIGITAL_SERVICE = 0x93, - E_MSG_TUNER_DEVICE_STATUS = 0x07, - E_MSG_TUNER_STEP_DEC = 0x06, - E_MSG_TUNER_STEP_INC = 0x05, - //---------Vendor Specific ------------------------- - //E_MSG_CEC_VERSION = 0x9E, //1.3a - //E_MSG_GET_CEC_VERSION = 0x9F, //1.3a - E_MSG_DEVICE_VENDOR_ID = 0x87, - E_MSG_GIVE_DEVICE_VENDOR_ID = 0x8C, - E_MSG_VENDOR_COMMAND = 0x89, - E_MSG_VENDOR_COMMAND_WITH_ID = 0xA0, //1.3a - E_MSG_VENDOR_RC_BUT_DOWN = 0x8A, - E_MSG_VENDOR_RC_BUT_UP = 0x8B, - //----- OSD Display -------------------------------- - E_MSG_SET_OSD_STRING = 0x64, - //----- Device OSD Name Transfer ------------------------- - E_MSG_OSDNT_GIVE_OSD_NAME = 0x46, - E_MSG_OSDNT_SET_OSD_NAME = 0x47, - //----- Device Menu Control ------------------------ - E_MSG_DMC_MENU_REQUEST = 0x8D, - E_MSG_DMC_MENU_STATUS = 0x8E, - E_MSG_UI_PRESS = 0x44, - E_MSG_UI_RELEASE = 0x45, - //----- Remote Control Passthrough ---------------- - //E_MSG_UI_PRESS = 0x44, - //E_MSG_UI_RELEASE = 0x45, - //----- Power Status ------------------------------ - E_MSG_GIVE_DEVICE_POWER_STATUS = 0x8F, - E_MSG_REPORT_POWER_STATUS = 0x90, - //----- General Protocal Message ------------------ - E_MSG_ABORT_MESSAGE = 0xFF, //Abort msg - E_MSG_FEATURE_ABORT = 0x00, //Feature Abort - //----- System Audio Control ---------------------- - E_MSG_ARC_GIVE_AUDIO_STATUS = 0x71, - E_MSG_ARC_GIVE_SYSTEM_AUDIO_MODE_STATUS = 0x7D, - E_MSG_ARC_REPORT_AUDIO_STATUS = 0x7A, - E_MSG_ARC_SET_SYSTEM_AUDIO_MODE = 0x72, - E_MSG_ARC_SYSTEM_AUDIO_MODE_REQUEST = 0x70, - E_MSG_ARC_SYSTEM_AUDIO_MODE_STATUS = 0x7E, - E_MSG_ARC_SET_AUDIO_RATE = 0x9A, - //----- Audio Return Channel Control ------------- - E_MSG_ARC_INITIATE_ARC = 0xC0, - E_MSG_ARC_REPORT_ARC_INITIATED = 0xC1, - E_MSG_ARC_REPORT_ARC_TERMINATED = 0xC2, - E_MSG_ARC_REQUEST_ARC_INITATION = 0xC3, - E_MSG_ARC_REQUEST_ARC_TERMINATION = 0xC4, - E_MSG_ARC_TERMINATED_ARC = 0xC5, + //----- One Touch Play ---------------------------- + E_MSG_ACTIVE_SOURCE = 0x82, + E_MSG_IMAGE_VIEW_ON = 0x04, + E_MSG_TEXT_VIEW_ON = 0x0D, + //----- Routing Control --------------------------- + //E_MSG_RC_ACTIVE_SOURCE = 0x82, + E_MSG_INACTIVE_SOURCE = 0x9D, + E_MSG_REQUEST_ACTIVE_SOURCE = 0x85, + E_MSG_ROUTING_CHANGE = 0x80, + E_MSG_ROUTING_INFO = 0x81, + E_MSG_SET_STREM_PATH = 0x86, + //----- Standby Command --------------------------- + E_MSG_STANDBY = 0x36, + //----- One Touch Record--------------------------- + E_MSG_RECORD_ON = 0x09, + E_MSG_RECORD_OFF = 0x0B, + E_MSG_RECORD_STATUS = 0x0A, + E_MSG_RECORD_TV_SCREEN = 0x0F, + //----- Timer programmer -------------------------- CEC1.3a + E_MSG_CLEAR_ANALOG_TIMER = 0x33, + E_MSG_CLEAR_DIGITAL_TIMER = 0x99, + E_MSG_CLEAR_EXT_TIMER = 0xA1, + E_MSG_SET_ANALOG_TIMER = 0x34, + E_MSG_SET_DIGITAL_TIMER = 0x97, + E_MSG_SET_EXT_TIMER = 0xA2, + E_MSG_SET_TIMER_PROGRAM_TITLE = 0x67, + E_MSG_TIMER_CLEARD_STATUS = 0x43, + E_MSG_TIMER_STATUS = 0x35, + //----- System Information ------------------------ + E_MSG_CEC_VERSION = 0x9E, //1.3a + E_MSG_GET_CEC_VERSION = 0x9F, //1.3a + E_MSG_GIVE_PHYSICAL_ADDRESS = 0x83, + E_MSG_REPORT_PHYSICAL_ADDRESS = 0x84, + E_MSG_GET_MENU_LANGUAGE = 0x91, + E_MSG_SET_MENU_LANGUAGE = 0x32, + //E_MSG_POLLING_MESSAGE = ?, + //E_MSG_REC_TYPE_PRESET = 0x00, //parameter ? + //E_MSG_REC_TYPE_OWNSRC = 0x01, //parameter ? + //----- Deck Control Feature----------------------- + E_MSG_DECK_CTRL = 0x42, + E_MSG_DECK_STATUS = 0x1B, + E_MSG_GIVE_DECK_STATUS = 0x1A, + E_MSG_PLAY = 0x41, + //----- Tuner Control ------------------------------ + E_MSG_GIVE_TUNER_STATUS = 0x08, + E_MSG_SEL_ANALOG_SERVICE = 0x92, + E_MSG_SEL_DIGITAL_SERVICE = 0x93, + E_MSG_TUNER_DEVICE_STATUS = 0x07, + E_MSG_TUNER_STEP_DEC = 0x06, + E_MSG_TUNER_STEP_INC = 0x05, + //---------Vendor Specific ------------------------- + //E_MSG_CEC_VERSION = 0x9E, //1.3a + //E_MSG_GET_CEC_VERSION = 0x9F, //1.3a + E_MSG_DEVICE_VENDOR_ID = 0x87, + E_MSG_GIVE_DEVICE_VENDOR_ID = 0x8C, + E_MSG_VENDOR_COMMAND = 0x89, + E_MSG_VENDOR_COMMAND_WITH_ID = 0xA0, //1.3a + E_MSG_VENDOR_RC_BUT_DOWN = 0x8A, + E_MSG_VENDOR_RC_BUT_UP = 0x8B, + //----- OSD Display -------------------------------- + E_MSG_SET_OSD_STRING = 0x64, + //----- Device OSD Name Transfer ------------------------- + E_MSG_OSDNT_GIVE_OSD_NAME = 0x46, + E_MSG_OSDNT_SET_OSD_NAME = 0x47, + //----- Device Menu Control ------------------------ + E_MSG_DMC_MENU_REQUEST = 0x8D, + E_MSG_DMC_MENU_STATUS = 0x8E, + E_MSG_UI_PRESS = 0x44, + E_MSG_UI_RELEASE = 0x45, + //----- Remote Control Passthrough ---------------- + //E_MSG_UI_PRESS = 0x44, + //E_MSG_UI_RELEASE = 0x45, + //----- Power Status ------------------------------ + E_MSG_GIVE_DEVICE_POWER_STATUS = 0x8F, + E_MSG_REPORT_POWER_STATUS = 0x90, + //----- General Protocal Message ------------------ + E_MSG_ABORT_MESSAGE = 0xFF, //Abort msg + E_MSG_FEATURE_ABORT = 0x00, //Feature Abort + //----- System Audio Control ---------------------- + E_MSG_ARC_GIVE_AUDIO_STATUS = 0x71, + E_MSG_ARC_GIVE_SYSTEM_AUDIO_MODE_STATUS = 0x7D, + E_MSG_ARC_REPORT_AUDIO_STATUS = 0x7A, + E_MSG_ARC_SET_SYSTEM_AUDIO_MODE = 0x72, + E_MSG_ARC_SYSTEM_AUDIO_MODE_REQUEST = 0x70, + E_MSG_ARC_SYSTEM_AUDIO_MODE_STATUS = 0x7E, + E_MSG_ARC_SET_AUDIO_RATE = 0x9A, + //----- Audio Return Channel Control ------------- + E_MSG_ARC_INITIATE_ARC = 0xC0, + E_MSG_ARC_REPORT_ARC_INITIATED = 0xC1, + E_MSG_ARC_REPORT_ARC_TERMINATED = 0xC2, + E_MSG_ARC_REQUEST_ARC_INITATION = 0xC3, + E_MSG_ARC_REQUEST_ARC_TERMINATION = 0xC4, + E_MSG_ARC_TERMINATED_ARC = 0xC5, - E_MSG_CDC_MESSAGE = 0xF8, - //amlogic cmd - //TCL - CMD_TCL_WIFI = 0x01, - CMD_TCL_ETHERNET = 0x02, - CMD_TCL_3D = 0x03, - CMD_TCL_PANEL_REVERSE = 0x04, - CMD_RESERVE1 = 0x05, - CMD_RESERVE2 = 0x06, - CMD_RESERVE3 = 0x07, - //VPU - CMD_VPU_INIT = 0x08, - CMD_VPU_ENABLE = 0x09, - CMD_VPU_BYPASS = 0x0a, - CMD_VPU_OUTPUT_MUX = 0x0b, - CMD_VPU_TIMING = 0x0c, - CMD_VPU_SOURCE = 0x0d, - CMD_RESERVE4 = 0x0e, - CMD_RESERVE5 = 0x0f, - //TCL || AML - CMD_TCL_BRIDGE_SW_VER = 0x10, - //CMD_G9_MAINCODE_VER = 0x10, - CMD_TCL_DEVICE_ID = 0x11, - //CMD_G9_BOOTCODE_VER = 0x11, - CMD_TCL_CLIENT_TYPE = 0x12, - //CMD_INFO_G9_TO_FBC = 0x12, - CMD_TCL_DEVICE_NUM = 0x13, - //CMD_INFO_FBC_TO_G9 = 0x13, - CMD_TCL_ACTIVE_KEY = 0x14, - //CMD_TIME_SYNC = 0x14, - CMD_TCL_ACTIVE_STATUS = 0x15, - //CMD_KEY_TRANSLATION = 0x15, - CMD_RESERVE6 = 0x16, - CMD_RESERVE7 = 0x17, - //DEBUG READ - CMD_DBG_RD_REGISTER_ACCESS = 0x18, - CMD_DBG_RD_MEMORY_ACCESS = 0x19, - CMD_DBG_RD_SPI_ACCESS = 0x1a, - CMD_DBG_RD_VPU_MEMORY_ACCESS = 0x1b, - CMD_DBG_RD_MEMORY_TRANSFER = 0x1c, - CMD_DBG_INPUT_KEY_DOWN = 0x1d, - CMD_DBG_INPUT_KEY_UP = 0x1e, - CMD_DBG_INPUT_REBOOT = 0x1f, - //DEBUG WRITE - CMD_DBG_WR_REGISTER_ACCESS = 0x98, - CMD_DBG_WR_MEMORY_ACCESS = 0x99, - CMD_DBG_WR_SPI_ACCESS = 0x9a, - CMD_DBG_WR_VPU_MEMORY_ACCESS = 0x9b, - CMD_DBG_WR_MEMORY_TRANSFER = 0x9c, - //USER - CMD_NATURE_LIGHT_ONOFF = 0x20, - CMD_USR_BACKLIGHT_ONOFF = 0x21, - CMD_USR_BRIGHTNESS = 0x22, - CMD_USR_CONTRAST = 0x23, - CMD_USR_BACKLIGHT = 0x24, - CMD_RESERVE25 = 0x25, - CMD_USR_SATURATION = 0x26, - CMD_USR_DYNAMIC_CONTRAST = 0x27, - CMD_USR_PICTURE_MODE = 0x28, - CMD_TEST_PATTERN_ONOFF = 0x29, - CMD_TEST_PATTERN_SELECT = 0x2a, - CMD_RESERVE8 = 0x2b, - CMD_RESERVE9 = 0x2c, - CMD_RESERVE10 = 0x2d, - CMD_RESERVE11 = 0x2e, - CMD_USR_GAMMA = 0x2f, - //FACTORY - CMD_DEF_SOUND_MODE = 0x30, - CMD_DEF_COLOR_TEMPERATURE = 0x31, - CMD_DEF_BRIGHTNESS = 0x32, - CMD_DEF_CONTRAST = 0x33, - CMD_DEF_COLOR = 0x34, - CMD_RESERVE12 = 0x35, - CMD_DEF_BACKLIGHT = 0x36, - CMD_RESERVE13 = 0x37, - CMD_AUTO_LUMA_ONOFF = 0x38, - CMD_HISTOGRAM = 0x39, - CMD_BLEND = 0x3a, - CMD_DEMULA = 0x3b, - CMD_COLORSPACE_CONVERSION = 0x3c, - CMD_CM2 = 0x3d, - CMD_RESERVE14 = 0x3e, - CMD_RESERVE15 = 0x3f, - // GAIN & OFFSET & WHITEBLANCE - CMD_DEF_RED_GAIN = 0x40, - CMD_DEF_GREEN_GAIN = 0x41, - CMD_DEF_BLUE_GAIN = 0x42, - CMD_DEF_RED_OFFSET = 0x43, - CMD_DEF_GREEN_OFFSET = 0x44, - CMD_DEF_BLUE_OFFSET = 0x45, - CMD_DEF_PRE_RED_OFFSET = 0x46, - CMD_DEF_PRE_GREEN_OFFSET = 0x47, - CMD_DEF_PRE_BLUE_OFFSET = 0x48, - CMD_RESERVE16 = 0x49, - CMD_WHITEBLANCE = 0x4a, + E_MSG_CDC_MESSAGE = 0xF8, + //amlogic cmd + //TCL + CMD_TCL_WIFI = 0x01, + CMD_TCL_ETHERNET = 0x02, + CMD_TCL_3D = 0x03, + CMD_TCL_PANEL_REVERSE = 0x04, + CMD_RESERVE1 = 0x05, + CMD_RESERVE2 = 0x06, + CMD_RESERVE3 = 0x07, + //VPU + CMD_VPU_INIT = 0x08, + CMD_VPU_ENABLE = 0x09, + CMD_VPU_BYPASS = 0x0a, + CMD_VPU_OUTPUT_MUX = 0x0b, + CMD_VPU_TIMING = 0x0c, + CMD_VPU_SOURCE = 0x0d, + CMD_RESERVE4 = 0x0e, + CMD_RESERVE5 = 0x0f, + //TCL || AML + CMD_TCL_BRIDGE_SW_VER = 0x10, + //CMD_G9_MAINCODE_VER = 0x10, + CMD_TCL_DEVICE_ID = 0x11, + //CMD_G9_BOOTCODE_VER = 0x11, + CMD_TCL_CLIENT_TYPE = 0x12, + //CMD_INFO_G9_TO_FBC = 0x12, + CMD_TCL_DEVICE_NUM = 0x13, + //CMD_INFO_FBC_TO_G9 = 0x13, + CMD_TCL_ACTIVE_KEY = 0x14, + //CMD_TIME_SYNC = 0x14, + CMD_TCL_ACTIVE_STATUS = 0x15, + //CMD_KEY_TRANSLATION = 0x15, + CMD_RESERVE6 = 0x16, + CMD_RESERVE7 = 0x17, + //DEBUG READ + CMD_DBG_RD_REGISTER_ACCESS = 0x18, + CMD_DBG_RD_MEMORY_ACCESS = 0x19, + CMD_DBG_RD_SPI_ACCESS = 0x1a, + CMD_DBG_RD_VPU_MEMORY_ACCESS = 0x1b, + CMD_DBG_RD_MEMORY_TRANSFER = 0x1c, + CMD_DBG_INPUT_KEY_DOWN = 0x1d, + CMD_DBG_INPUT_KEY_UP = 0x1e, + CMD_DBG_INPUT_REBOOT = 0x1f, + //DEBUG WRITE + CMD_DBG_WR_REGISTER_ACCESS = 0x98, + CMD_DBG_WR_MEMORY_ACCESS = 0x99, + CMD_DBG_WR_SPI_ACCESS = 0x9a, + CMD_DBG_WR_VPU_MEMORY_ACCESS = 0x9b, + CMD_DBG_WR_MEMORY_TRANSFER = 0x9c, + //USER + CMD_NATURE_LIGHT_ONOFF = 0x20, + CMD_USR_BACKLIGHT_ONOFF = 0x21, + CMD_USR_BRIGHTNESS = 0x22, + CMD_USR_CONTRAST = 0x23, + CMD_USR_BACKLIGHT = 0x24, + CMD_RESERVE25 = 0x25, + CMD_USR_SATURATION = 0x26, + CMD_USR_DYNAMIC_CONTRAST = 0x27, + CMD_USR_PICTURE_MODE = 0x28, + CMD_TEST_PATTERN_ONOFF = 0x29, + CMD_TEST_PATTERN_SELECT = 0x2a, + CMD_RESERVE8 = 0x2b, + CMD_RESERVE9 = 0x2c, + CMD_RESERVE10 = 0x2d, + CMD_RESERVE11 = 0x2e, + CMD_USR_GAMMA = 0x2f, + //FACTORY + CMD_DEF_SOUND_MODE = 0x30, + CMD_DEF_COLOR_TEMPERATURE = 0x31, + CMD_DEF_BRIGHTNESS = 0x32, + CMD_DEF_CONTRAST = 0x33, + CMD_DEF_COLOR = 0x34, + CMD_RESERVE12 = 0x35, + CMD_DEF_BACKLIGHT = 0x36, + CMD_RESERVE13 = 0x37, + CMD_AUTO_LUMA_ONOFF = 0x38, + CMD_HISTOGRAM = 0x39, + CMD_BLEND = 0x3a, + CMD_DEMULA = 0x3b, + CMD_COLORSPACE_CONVERSION = 0x3c, + CMD_CM2 = 0x3d, + CMD_RESERVE14 = 0x3e, + CMD_RESERVE15 = 0x3f, + // GAIN & OFFSET & WHITEBLANCE + CMD_DEF_RED_GAIN = 0x40, + CMD_DEF_GREEN_GAIN = 0x41, + CMD_DEF_BLUE_GAIN = 0x42, + CMD_DEF_RED_OFFSET = 0x43, + CMD_DEF_GREEN_OFFSET = 0x44, + CMD_DEF_BLUE_OFFSET = 0x45, + CMD_DEF_PRE_RED_OFFSET = 0x46, + CMD_DEF_PRE_GREEN_OFFSET = 0x47, + CMD_DEF_PRE_BLUE_OFFSET = 0x48, + CMD_RESERVE16 = 0x49, + CMD_WHITEBLANCE = 0x4a, - CMD_SET_SW_VERSION = 0x57, - CMD_3D = 0xd0, + CMD_SET_SW_VERSION = 0x57, + CMD_3D = 0xd0, - CMD_MAX = 0xff + CMD_MAX = 0xff } _cec_cmd; typedef struct _cec_msg { - unsigned char addr; //refer as enum _cec_logic_addr - unsigned char cmd; //refer as enum _cec_cmd - unsigned char msg_data[14]; - unsigned char msg_len; + unsigned char addr; //refer as enum _cec_logic_addr + unsigned char cmd; //refer as enum _cec_cmd + unsigned char msg_data[14]; + unsigned char msg_len; } _cec_msg; typedef union tagCECMsgStream { - unsigned char buf[17]; - struct _cec_msg msg; + unsigned char buf[17]; + struct _cec_msg msg; } CECMsgStream; typedef struct _cec_dev_map { - enum _cec_logic_addr logic_addr; - unsigned int phy_addr; - int cec_dev_type; - char cec_dev_name[14]; + enum _cec_logic_addr logic_addr; + unsigned int phy_addr; + int cec_dev_type; + char cec_dev_name[14]; } _cec_dev_map; typedef struct _cec_msg_queue { - struct _cec_msg cec_msg[CEC_MSG_QUEUE_SIZE]; - int wr_index; - int rd_index; + struct _cec_msg cec_msg[CEC_MSG_QUEUE_SIZE]; + int wr_index; + int rd_index; } _cec_msg_queue; typedef enum _cec_status { - E_CEC_FEATURE_ABORT = 0x00, - E_CEC_RX_SUCCESS = 0x01, - E_CEC_TX_SUCCESS = 0x02, - E_CEC_RF = 0x04, - E_CEC_LOST_ABT = 0x08, - E_CEC_BIT_SHORT = 0x10, - E_CEC_BIT_LONG = 0x20, - E_CEC_NACK = 0x40, - E_CEC_SYSTEM_BUSY = 0x80, + E_CEC_FEATURE_ABORT = 0x00, + E_CEC_RX_SUCCESS = 0x01, + E_CEC_TX_SUCCESS = 0x02, + E_CEC_RF = 0x04, + E_CEC_LOST_ABT = 0x08, + E_CEC_BIT_SHORT = 0x10, + E_CEC_BIT_LONG = 0x20, + E_CEC_NACK = 0x40, + E_CEC_SYSTEM_BUSY = 0x80, } _cec_status; typedef enum _cec_map_status { - E_CEC_MAP_UPDATE_START = 0, - E_CEC_MAP_POLLLING = 1, - E_CEC_MAP_GET_VENDOR_ID = 2, - E_CEC_MAP_GET_PHYSICAL_ADDR = 3, - E_CEC_MAP_GET_OSD_NAME = 4, - E_CEC_MAP_GET_CEC_VERSION = 5, - E_CEC_MAP_UPDATE_COMPLETED = 6, + E_CEC_MAP_UPDATE_START = 0, + E_CEC_MAP_POLLLING = 1, + E_CEC_MAP_GET_VENDOR_ID = 2, + E_CEC_MAP_GET_PHYSICAL_ADDR = 3, + E_CEC_MAP_GET_OSD_NAME = 4, + E_CEC_MAP_GET_CEC_VERSION = 5, + E_CEC_MAP_UPDATE_COMPLETED = 6, } _cec_map_status; #define HDMI_IOC_MAGIC 'H' diff --git a/tvapi/libtv/include/ve.h b/tvapi/libtv/include/ve.h index a54c44c..160ad12 100644 --- a/tvapi/libtv/include/ve.h +++ b/tvapi/libtv/include/ve.h @@ -6,22 +6,22 @@ // *************************************************************************** typedef enum ve_demo_pos_e { - VE_DEMO_POS_TOP = 0, - VE_DEMO_POS_BOTTOM, - VE_DEMO_POS_LEFT, - VE_DEMO_POS_RIGHT, + VE_DEMO_POS_TOP = 0, + VE_DEMO_POS_BOTTOM, + VE_DEMO_POS_LEFT, + VE_DEMO_POS_RIGHT, } ve_demo_pos_t; typedef enum ve_dnlp_rt_e { - VE_DNLP_RT_0S = 0, - VE_DNLP_RT_1S = 6, - VE_DNLP_RT_2S, - VE_DNLP_RT_4S, - VE_DNLP_RT_8S, - VE_DNLP_RT_16S, - VE_DNLP_RT_32S, - VE_DNLP_RT_64S, - VE_DNLP_RT_FREEZE, + VE_DNLP_RT_0S = 0, + VE_DNLP_RT_1S = 6, + VE_DNLP_RT_2S, + VE_DNLP_RT_4S, + VE_DNLP_RT_8S, + VE_DNLP_RT_16S, + VE_DNLP_RT_32S, + VE_DNLP_RT_64S, + VE_DNLP_RT_FREEZE, } ve_dnlp_rt_t; // *************************************************************************** @@ -29,64 +29,64 @@ typedef enum ve_dnlp_rt_e { // *************************************************************************** typedef enum ve_dnlp_rl_e { - VE_DNLP_RL_01 = 1, // max_contrast = 1.0625x - VE_DNLP_RL_02, // max_contrast = 1.1250x - VE_DNLP_RL_03, // max_contrast = 1.1875x - VE_DNLP_RL_04, // max_contrast = 1.2500x - VE_DNLP_RL_05, // max_contrast = 1.3125x - VE_DNLP_RL_06, // max_contrast = 1.3750x - VE_DNLP_RL_07, // max_contrast = 1.4375x - VE_DNLP_RL_08, // max_contrast = 1.5000x - VE_DNLP_RL_09, // max_contrast = 1.5625x - VE_DNLP_RL_10, // max_contrast = 1.6250x - VE_DNLP_RL_11, // max_contrast = 1.6875x - VE_DNLP_RL_12, // max_contrast = 1.7500x - VE_DNLP_RL_13, // max_contrast = 1.8125x - VE_DNLP_RL_14, // max_contrast = 1.8750x - VE_DNLP_RL_15, // max_contrast = 1.9375x - VE_DNLP_RL_16, // max_contrast = 2.0000x + VE_DNLP_RL_01 = 1, // max_contrast = 1.0625x + VE_DNLP_RL_02, // max_contrast = 1.1250x + VE_DNLP_RL_03, // max_contrast = 1.1875x + VE_DNLP_RL_04, // max_contrast = 1.2500x + VE_DNLP_RL_05, // max_contrast = 1.3125x + VE_DNLP_RL_06, // max_contrast = 1.3750x + VE_DNLP_RL_07, // max_contrast = 1.4375x + VE_DNLP_RL_08, // max_contrast = 1.5000x + VE_DNLP_RL_09, // max_contrast = 1.5625x + VE_DNLP_RL_10, // max_contrast = 1.6250x + VE_DNLP_RL_11, // max_contrast = 1.6875x + VE_DNLP_RL_12, // max_contrast = 1.7500x + VE_DNLP_RL_13, // max_contrast = 1.8125x + VE_DNLP_RL_14, // max_contrast = 1.8750x + VE_DNLP_RL_15, // max_contrast = 1.9375x + VE_DNLP_RL_16, // max_contrast = 2.0000x } ve_dnlp_rl_t; typedef enum ve_dnlp_ext_e { - VE_DNLP_EXT_00 = 0, // weak - VE_DNLP_EXT_01, - VE_DNLP_EXT_02, - VE_DNLP_EXT_03, - VE_DNLP_EXT_04, - VE_DNLP_EXT_05, - VE_DNLP_EXT_06, - VE_DNLP_EXT_07, - VE_DNLP_EXT_08, - VE_DNLP_EXT_09, - VE_DNLP_EXT_10, - VE_DNLP_EXT_11, - VE_DNLP_EXT_12, - VE_DNLP_EXT_13, - VE_DNLP_EXT_14, - VE_DNLP_EXT_15, - VE_DNLP_EXT_16, // strong + VE_DNLP_EXT_00 = 0, // weak + VE_DNLP_EXT_01, + VE_DNLP_EXT_02, + VE_DNLP_EXT_03, + VE_DNLP_EXT_04, + VE_DNLP_EXT_05, + VE_DNLP_EXT_06, + VE_DNLP_EXT_07, + VE_DNLP_EXT_08, + VE_DNLP_EXT_09, + VE_DNLP_EXT_10, + VE_DNLP_EXT_11, + VE_DNLP_EXT_12, + VE_DNLP_EXT_13, + VE_DNLP_EXT_14, + VE_DNLP_EXT_15, + VE_DNLP_EXT_16, // strong } ve_dnlp_ext_t; typedef struct ve_bext_s { - unsigned char en; - unsigned char start; - unsigned char slope1; - unsigned char midpt; - unsigned char slope2; + unsigned char en; + unsigned char start; + unsigned char slope1; + unsigned char midpt; + unsigned char slope2; } ve_bext_t; typedef struct ve_dnlp_s { - unsigned int en; - enum ve_dnlp_rt_e rt; - enum ve_dnlp_rl_e rl; - enum ve_dnlp_ext_e black; - enum ve_dnlp_ext_e white; + unsigned int en; + enum ve_dnlp_rt_e rt; + enum ve_dnlp_rl_e rl; + enum ve_dnlp_ext_e black; + enum ve_dnlp_ext_e white; } ve_dnlp_t; typedef struct ve_hist_s { - unsigned long sum; - int width; - int height; - int ave; + unsigned long sum; + int width; + int height; + int ave; } ve_hist_t; /*typedef struct ve_dnlp_table_s { unsigned int en; @@ -99,136 +99,136 @@ typedef struct ve_hist_s { unsigned int hghalpha; } ve_dnlp_table_t;*/ typedef struct ve_dnlp_table_s { - unsigned int en; - unsigned int method; - unsigned int cliprate; - unsigned int lowrange; - unsigned int hghrange; - unsigned int lowalpha; - unsigned int midalpha; - unsigned int hghalpha; - unsigned int adj_level; - unsigned int new_adj_level; - unsigned int new_mvreflsh; - unsigned int new_gmma_rate; - unsigned int new_lowalpha; - unsigned int new_hghalpha; - unsigned int new_sbgnbnd; - unsigned int new_sendbnd; - unsigned int new_clashBgn; - unsigned int new_clashEnd; - unsigned int new_cliprate; - unsigned int new_mtdbld_rate; - unsigned int new_blkgma_rate; + unsigned int en; + unsigned int method; + unsigned int cliprate; + unsigned int lowrange; + unsigned int hghrange; + unsigned int lowalpha; + unsigned int midalpha; + unsigned int hghalpha; + unsigned int adj_level; + unsigned int new_adj_level; + unsigned int new_mvreflsh; + unsigned int new_gmma_rate; + unsigned int new_lowalpha; + unsigned int new_hghalpha; + unsigned int new_sbgnbnd; + unsigned int new_sendbnd; + unsigned int new_clashBgn; + unsigned int new_clashEnd; + unsigned int new_cliprate; + unsigned int new_mtdbld_rate; + unsigned int new_blkgma_rate; } ve_dnlp_table_t; typedef struct ve_hsvs_s { - unsigned char en; - unsigned char peak_gain_h1; - unsigned char peak_gain_h2; - unsigned char peak_gain_h3; - unsigned char peak_gain_h4; - unsigned char peak_gain_h5; - unsigned char peak_gain_v1; - unsigned char peak_gain_v2; - unsigned char peak_gain_v3; - unsigned char peak_gain_v4; - unsigned char peak_gain_v5; - unsigned char peak_gain_v6; - unsigned char hpeak_slope1; - unsigned char hpeak_slope2; - unsigned char hpeak_thr1; - unsigned char hpeak_thr2; - unsigned char hpeak_nlp_cor_thr; - unsigned char hpeak_nlp_gain_pos; - unsigned char hpeak_nlp_gain_neg; - unsigned char vpeak_slope1; - unsigned char vpeak_slope2; - unsigned char vpeak_thr1; - unsigned char vpeak_thr2; - unsigned char vpeak_nlp_cor_thr; - unsigned char vpeak_nlp_gain_pos; - unsigned char vpeak_nlp_gain_neg; - unsigned char speak_slope1; - unsigned char speak_slope2; - unsigned char speak_thr1; - unsigned char speak_thr2; - unsigned char speak_nlp_cor_thr; - unsigned char speak_nlp_gain_pos; - unsigned char speak_nlp_gain_neg; - unsigned char peak_cor_gain; - unsigned char peak_cor_thr_l; - unsigned char peak_cor_thr_h; - unsigned char vlti_step; - unsigned char vlti_step2; - unsigned char vlti_thr; - unsigned char vlti_gain_pos; - unsigned char vlti_gain_neg; - unsigned char vlti_blend_factor; - unsigned char hlti_step; - unsigned char hlti_thr; - unsigned char hlti_gain_pos; - unsigned char hlti_gain_neg; - unsigned char hlti_blend_factor; - unsigned char vlimit_coef_h; - unsigned char vlimit_coef_l; - unsigned char hlimit_coef_h; - unsigned char hlimit_coef_l; - unsigned char cti_444_422_en; - unsigned char cti_422_444_en; - unsigned char cti_blend_factor; - unsigned char vcti_buf_en; - unsigned char vcti_buf_mode_c5l; - unsigned char vcti_filter; - unsigned char hcti_step; - unsigned char hcti_step2; - unsigned char hcti_thr; - unsigned char hcti_gain; - unsigned char hcti_mode_median; + unsigned char en; + unsigned char peak_gain_h1; + unsigned char peak_gain_h2; + unsigned char peak_gain_h3; + unsigned char peak_gain_h4; + unsigned char peak_gain_h5; + unsigned char peak_gain_v1; + unsigned char peak_gain_v2; + unsigned char peak_gain_v3; + unsigned char peak_gain_v4; + unsigned char peak_gain_v5; + unsigned char peak_gain_v6; + unsigned char hpeak_slope1; + unsigned char hpeak_slope2; + unsigned char hpeak_thr1; + unsigned char hpeak_thr2; + unsigned char hpeak_nlp_cor_thr; + unsigned char hpeak_nlp_gain_pos; + unsigned char hpeak_nlp_gain_neg; + unsigned char vpeak_slope1; + unsigned char vpeak_slope2; + unsigned char vpeak_thr1; + unsigned char vpeak_thr2; + unsigned char vpeak_nlp_cor_thr; + unsigned char vpeak_nlp_gain_pos; + unsigned char vpeak_nlp_gain_neg; + unsigned char speak_slope1; + unsigned char speak_slope2; + unsigned char speak_thr1; + unsigned char speak_thr2; + unsigned char speak_nlp_cor_thr; + unsigned char speak_nlp_gain_pos; + unsigned char speak_nlp_gain_neg; + unsigned char peak_cor_gain; + unsigned char peak_cor_thr_l; + unsigned char peak_cor_thr_h; + unsigned char vlti_step; + unsigned char vlti_step2; + unsigned char vlti_thr; + unsigned char vlti_gain_pos; + unsigned char vlti_gain_neg; + unsigned char vlti_blend_factor; + unsigned char hlti_step; + unsigned char hlti_thr; + unsigned char hlti_gain_pos; + unsigned char hlti_gain_neg; + unsigned char hlti_blend_factor; + unsigned char vlimit_coef_h; + unsigned char vlimit_coef_l; + unsigned char hlimit_coef_h; + unsigned char hlimit_coef_l; + unsigned char cti_444_422_en; + unsigned char cti_422_444_en; + unsigned char cti_blend_factor; + unsigned char vcti_buf_en; + unsigned char vcti_buf_mode_c5l; + unsigned char vcti_filter; + unsigned char hcti_step; + unsigned char hcti_step2; + unsigned char hcti_thr; + unsigned char hcti_gain; + unsigned char hcti_mode_median; } ve_hsvs_t; typedef struct ve_ccor_s { - unsigned char en; - unsigned char slope; - unsigned char thr; + unsigned char en; + unsigned char slope; + unsigned char thr; } ve_ccor_t; typedef struct ve_benh_s { - unsigned char en; - unsigned char cb_inc; - unsigned char cr_inc; - unsigned char gain_cr; - unsigned char gain_cb4cr; - unsigned char luma_h; - unsigned char err_crp; - unsigned char err_crn; - unsigned char err_cbp; - unsigned char err_cbn; + unsigned char en; + unsigned char cb_inc; + unsigned char cr_inc; + unsigned char gain_cr; + unsigned char gain_cb4cr; + unsigned char luma_h; + unsigned char err_crp; + unsigned char err_crn; + unsigned char err_cbp; + unsigned char err_cbn; } ve_benh_t; typedef struct ve_cbar_s { - unsigned char en; - unsigned char wid; - unsigned char cr; - unsigned char cb; - unsigned char y; + unsigned char en; + unsigned char wid; + unsigned char cr; + unsigned char cb; + unsigned char y; } ve_cbar_t; typedef struct ve_demo_s { - unsigned char bext; - unsigned char dnlp; - unsigned char hsvs; - unsigned char ccor; - unsigned char benh; - enum ve_demo_pos_e pos; - unsigned long wid; - struct ve_cbar_s cbar; + unsigned char bext; + unsigned char dnlp; + unsigned char hsvs; + unsigned char ccor; + unsigned char benh; + enum ve_demo_pos_e pos; + unsigned long wid; + struct ve_cbar_s cbar; } ve_demo_t; typedef struct vdo_meas_s { - //... + //... } vdo_meas_t; typedef struct ve_regmap_s { - unsigned long reg[43]; + unsigned long reg[43]; } ve_regmap_t; // *************************************************************************** diff --git a/tvapi/libtv/tv/AutoBackLight.cpp b/tvapi/libtv/tv/AutoBackLight.cpp index c87635a..98bf02d 100644 --- a/tvapi/libtv/tv/AutoBackLight.cpp +++ b/tvapi/libtv/tv/AutoBackLight.cpp @@ -22,60 +22,60 @@ AutoBackLight::AutoBackLight( CVpp *mVpp, CTvin *pTvin ) { - mAutoBacklightSource = SOURCE_TYPE_TV; - myVpp = mVpp; - myTvin = pTvin; - mCur_source_default_backlight = 100; - mCur_sig_state == SIG_STATE_NOSIG; - mAutoBacklight_OnOff_Flag = false; - mCurrent_backlight = 100; - mCur_dest_backlight = 100; + mAutoBacklightSource = SOURCE_TYPE_TV; + myVpp = mVpp; + myTvin = pTvin; + mCur_source_default_backlight = 100; + mCur_sig_state == SIG_STATE_NOSIG; + mAutoBacklight_OnOff_Flag = false; + mCurrent_backlight = 100; + mCur_dest_backlight = 100; } AutoBackLight::~AutoBackLight() { - mAutoBacklight_OnOff_Flag = false; + mAutoBacklight_OnOff_Flag = false; } bool AutoBackLight::isAutoBacklightOn() { - return mAutoBacklight_OnOff_Flag; + return mAutoBacklight_OnOff_Flag; } void AutoBackLight::updateSigState(int state) { - mCur_sig_state = state; - LOGD("updateSigState = %d", mCur_sig_state); + mCur_sig_state = state; + LOGD("updateSigState = %d", mCur_sig_state); } void AutoBackLight::startAutoBacklight( tv_source_input_type_t source_type ) { - mAutoBacklightSource = source_type; - mCur_source_default_backlight = myVpp->GetBacklight(source_type); - mCurrent_backlight = mCur_source_default_backlight; - myVpp->SetBacklight(mCur_source_default_backlight, source_type, 1); - - /* - mDefault_auto_bl_value = def_source_bl_value; - dynamicGamma = mDefault_auto_bl_value * mCur_source_default_backlight / 100; - // this if should not happen - if (dynamicGamma > mCur_source_default_backlight) { - dynamicGamma = mCur_source_default_backlight; - } - */ - - if (!mAutoBacklight_OnOff_Flag) { - mAutoBacklight_OnOff_Flag = true; - this->run(); - } + mAutoBacklightSource = source_type; + mCur_source_default_backlight = myVpp->GetBacklight(source_type); + mCurrent_backlight = mCur_source_default_backlight; + myVpp->SetBacklight(mCur_source_default_backlight, source_type, 1); + + /* + mDefault_auto_bl_value = def_source_bl_value; + dynamicGamma = mDefault_auto_bl_value * mCur_source_default_backlight / 100; + // this if should not happen + if (dynamicGamma > mCur_source_default_backlight) { + dynamicGamma = mCur_source_default_backlight; + } + */ + + if (!mAutoBacklight_OnOff_Flag) { + mAutoBacklight_OnOff_Flag = true; + this->run(); + } } void AutoBackLight::stopAutoBacklight() { - if (mAutoBacklight_OnOff_Flag) { - mAutoBacklight_OnOff_Flag = false; - myVpp->SetBacklight(mCur_source_default_backlight, mAutoBacklightSource, 1); - } + if (mAutoBacklight_OnOff_Flag) { + mAutoBacklight_OnOff_Flag = false; + myVpp->SetBacklight(mCur_source_default_backlight, mAutoBacklightSource, 1); + } } /** @@ -87,90 +87,90 @@ void AutoBackLight::stopAutoBacklight() */ void AutoBackLight::adjustDstBacklight() { - if (mCur_sig_state == SIG_STATE_STABLE) { - //the node is used to adjust current ts is static or dynamtic frame - char temp_str = 0; - int fd = open("/sys/module/di/parameters/frame_dynamic", O_RDWR); - if (fd <= 0) { - LOGE("open /sys/module/di/parameters/frame_dynamic ERROR!!\n"); - return; - } - - if (read(fd, &temp_str, 1) > 0) { - - if (temp_str == 'N') { - mCur_dest_backlight = mCur_source_default_backlight; - } else if (temp_str == 'Y') { - int pwm = HistogramGet_AVE(); - if (pwm <= 20) { - mCur_dest_backlight = 14; - } else if (pwm > 20 && pwm <= 160) { - mCur_dest_backlight = 57; - } else { - mCur_dest_backlight = 100; - } - //LOGD("pwm = %d, mCur_dest_backlight = %d", pwm, mCur_dest_backlight); - } - } - close(fd); - } else { - mCurrent_backlight = mCur_dest_backlight = mCur_source_default_backlight; - myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); - } - - /* - if (pwm > 0) - pwm_max = pwm; - else - pwm_min = pwm; - pwm = 255 - pwm; - int average = (pwm_min + pwm_max) / 2; - dynamicGammaOffset = (pwm - average) / 10; - dynamicGammaOffset = dynamicGammaOffset * mDefault_auto_bl_value / 100; - - //the node is used to adjust current ts is static or dynamtic frame - char temp_str = 0; - int fd = open("/sys/module/di/parameters/frame_dynamic", O_RDWR); - if (fd <= 0) { - LOGE("open /sys/module/di/parameters/frame_dynamic ERROR!!\n"); - return; - } - - if (read(fd, &temp_str, 1) > 0) { - if (temp_str== 'N') { - mCur_dest_backlight = mCur_source_default_backlight; - } - else if (temp_str == 'Y') { - mCur_dest_backlight = dynamicGamma + dynamicGammaOffset; - - if (mCur_dest_backlight > mCur_source_default_backlight) { - mCur_dest_backlight = mCur_source_default_backlight; - } - else if (mCur_dest_backlight < 0) { - mCur_dest_backlight = 0; - } - } - } - close(fd); - */ + if (mCur_sig_state == SIG_STATE_STABLE) { + //the node is used to adjust current ts is static or dynamtic frame + char temp_str = 0; + int fd = open("/sys/module/di/parameters/frame_dynamic", O_RDWR); + if (fd <= 0) { + LOGE("open /sys/module/di/parameters/frame_dynamic ERROR!!\n"); + return; + } + + if (read(fd, &temp_str, 1) > 0) { + + if (temp_str == 'N') { + mCur_dest_backlight = mCur_source_default_backlight; + } else if (temp_str == 'Y') { + int pwm = HistogramGet_AVE(); + if (pwm <= 20) { + mCur_dest_backlight = 14; + } else if (pwm > 20 && pwm <= 160) { + mCur_dest_backlight = 57; + } else { + mCur_dest_backlight = 100; + } + //LOGD("pwm = %d, mCur_dest_backlight = %d", pwm, mCur_dest_backlight); + } + } + close(fd); + } else { + mCurrent_backlight = mCur_dest_backlight = mCur_source_default_backlight; + myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); + } + + /* + if (pwm > 0) + pwm_max = pwm; + else + pwm_min = pwm; + pwm = 255 - pwm; + int average = (pwm_min + pwm_max) / 2; + dynamicGammaOffset = (pwm - average) / 10; + dynamicGammaOffset = dynamicGammaOffset * mDefault_auto_bl_value / 100; + + //the node is used to adjust current ts is static or dynamtic frame + char temp_str = 0; + int fd = open("/sys/module/di/parameters/frame_dynamic", O_RDWR); + if (fd <= 0) { + LOGE("open /sys/module/di/parameters/frame_dynamic ERROR!!\n"); + return; + } + + if (read(fd, &temp_str, 1) > 0) { + if (temp_str== 'N') { + mCur_dest_backlight = mCur_source_default_backlight; + } + else if (temp_str == 'Y') { + mCur_dest_backlight = dynamicGamma + dynamicGammaOffset; + + if (mCur_dest_backlight > mCur_source_default_backlight) { + mCur_dest_backlight = mCur_source_default_backlight; + } + else if (mCur_dest_backlight < 0) { + mCur_dest_backlight = 0; + } + } + } + close(fd); + */ } void AutoBackLight::adjustBacklight() { - if (mCurrent_backlight == mCur_dest_backlight) { - return; - } else if ((mCurrent_backlight - mCur_dest_backlight) > -2 && (mCurrent_backlight - mCur_dest_backlight) < 2) { - mCurrent_backlight = mCur_dest_backlight; - myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); - } else if (mCurrent_backlight < mCur_dest_backlight) { - mCurrent_backlight = mCurrent_backlight + 2; - myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); - } else if (mCurrent_backlight > mCur_dest_backlight) { - mCurrent_backlight = mCurrent_backlight - 2; - myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); - } - - //LOGD("mCurrent_backlight = %d", mCurrent_backlight); + if (mCurrent_backlight == mCur_dest_backlight) { + return; + } else if ((mCurrent_backlight - mCur_dest_backlight) > -2 && (mCurrent_backlight - mCur_dest_backlight) < 2) { + mCurrent_backlight = mCur_dest_backlight; + myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); + } else if (mCurrent_backlight < mCur_dest_backlight) { + mCurrent_backlight = mCurrent_backlight + 2; + myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); + } else if (mCurrent_backlight > mCur_dest_backlight) { + mCurrent_backlight = mCurrent_backlight - 2; + myVpp->SetBacklight(mCurrent_backlight, mAutoBacklightSource, 0); + } + + //LOGD("mCurrent_backlight = %d", mCurrent_backlight); } /** @@ -179,34 +179,34 @@ void AutoBackLight::adjustBacklight() */ int AutoBackLight::HistogramGet_AVE() { - int hist_ave = 0; - tvin_parm_t vdinParam; - if (0 == myTvin->VDIN_GetVdinParam(&vdinParam)) { - if (vdinParam.pixel_sum != 0) { - hist_ave = vdinParam.luma_sum / vdinParam.pixel_sum; - LOGD("[hist_ave][%d].", hist_ave); - return hist_ave; - } - LOGE("vdinParam.pixel_sum is zero, so the value is infinity\n"); - return -1; - } - LOGE("VDIN_GetVdinParam get data error!!!\n"); - return -1; + int hist_ave = 0; + tvin_parm_t vdinParam; + if (0 == myTvin->VDIN_GetVdinParam(&vdinParam)) { + if (vdinParam.pixel_sum != 0) { + hist_ave = vdinParam.luma_sum / vdinParam.pixel_sum; + LOGD("[hist_ave][%d].", hist_ave); + return hist_ave; + } + LOGE("vdinParam.pixel_sum is zero, so the value is infinity\n"); + return -1; + } + LOGE("VDIN_GetVdinParam get data error!!!\n"); + return -1; } bool AutoBackLight::threadLoop() { - int sleeptime = 50;//ms - int adjustBacklightCount = 0; - while ( mAutoBacklight_OnOff_Flag ) { - usleep ( sleeptime * 1000 ); - adjustBacklightCount++; - if (adjustBacklightCount == 24) { - adjustBacklightCount = 0; - adjustDstBacklight(); - } - adjustBacklight(); - } - - return false;//return true, run again, return false,not run. + int sleeptime = 50;//ms + int adjustBacklightCount = 0; + while ( mAutoBacklight_OnOff_Flag ) { + usleep ( sleeptime * 1000 ); + adjustBacklightCount++; + if (adjustBacklightCount == 24) { + adjustBacklightCount = 0; + adjustDstBacklight(); + } + adjustBacklight(); + } + + return false;//return true, run again, return false,not run. } diff --git a/tvapi/libtv/tv/AutoBackLight.h b/tvapi/libtv/tv/AutoBackLight.h index 8ad02b4..c862121 100644 --- a/tvapi/libtv/tv/AutoBackLight.h +++ b/tvapi/libtv/tv/AutoBackLight.h @@ -18,31 +18,31 @@ class AutoBackLight: public CThread { private: - tv_source_input_type_t mAutoBacklightSource; - int mCur_source_default_backlight; - int mCur_sig_state; - bool mAutoBacklight_OnOff_Flag; - int mCurrent_backlight; - int mCur_dest_backlight; + tv_source_input_type_t mAutoBacklightSource; + int mCur_source_default_backlight; + int mCur_sig_state; + bool mAutoBacklight_OnOff_Flag; + int mCurrent_backlight; + int mCur_dest_backlight; - void adjustDstBacklight(); - void adjustBacklight(); - int HistogramGet_AVE(); - bool threadLoop(); + void adjustDstBacklight(); + void adjustBacklight(); + int HistogramGet_AVE(); + bool threadLoop(); public: - enum SIG_STATE { - SIG_STATE_STABLE = 1, - SIG_STATE_NOSIG = 2, - }; - CVpp *myVpp; - CTvin *myTvin; + enum SIG_STATE { + SIG_STATE_STABLE = 1, + SIG_STATE_NOSIG = 2, + }; + CVpp *myVpp; + CTvin *myTvin; - AutoBackLight( CVpp *mVpp, CTvin *pTvin ); - ~AutoBackLight(); - void updateSigState(int state); - void startAutoBacklight( tv_source_input_type_t source_type ); - void stopAutoBacklight(); - bool isAutoBacklightOn(); + AutoBackLight( CVpp *mVpp, CTvin *pTvin ); + ~AutoBackLight(); + void updateSigState(int state); + void startAutoBacklight( tv_source_input_type_t source_type ); + void stopAutoBacklight(); + bool isAutoBacklightOn(); }; #endif diff --git a/tvapi/libtv/tv/CAutoPQparam.cpp b/tvapi/libtv/tv/CAutoPQparam.cpp index 2737c0d..7cdb23f 100644 --- a/tvapi/libtv/tv/CAutoPQparam.cpp +++ b/tvapi/libtv/tv/CAutoPQparam.cpp @@ -24,50 +24,50 @@ CAutoPQparam::CAutoPQparam( CVpp *mVpp, CTvin *pTvin, CAv *mAv) { - myVpp = mVpp; - myTvin = pTvin; - myAv = mAv; - preFmtType = 0; - curFmtType = 0; - autofreq_checkcount = 0; - autofreq_checkflag = 0; - mAutoPQ_OnOff_Flag = false; + myVpp = mVpp; + myTvin = pTvin; + myAv = mAv; + preFmtType = 0; + curFmtType = 0; + autofreq_checkcount = 0; + autofreq_checkflag = 0; + mAutoPQ_OnOff_Flag = false; } CAutoPQparam::~CAutoPQparam() { - mAutoPQ_OnOff_Flag = false; + mAutoPQ_OnOff_Flag = false; } bool CAutoPQparam::isAutoPQing() { - return mAutoPQ_OnOff_Flag; + return mAutoPQ_OnOff_Flag; } void CAutoPQparam::startAutoPQ( tv_source_input_type_t source_type ) { #ifndef CC_PROJECT_DISABLE_AUTO_PQ - mAutoPQSource = source_type; + mAutoPQSource = source_type; - LOGD("---------startAutoPQParameters --------mAutoPQ_OnOff_Flag = %d", mAutoPQ_OnOff_Flag); - if (!mAutoPQ_OnOff_Flag) { - mAutoPQ_OnOff_Flag = true; - this->run(); - } + LOGD("---------startAutoPQParameters --------mAutoPQ_OnOff_Flag = %d", mAutoPQ_OnOff_Flag); + if (!mAutoPQ_OnOff_Flag) { + mAutoPQ_OnOff_Flag = true; + this->run(); + } #else - LOGD("AutoPQparam disable.\n"); + LOGD("AutoPQparam disable.\n"); #endif } void CAutoPQparam::stopAutoPQ() { #ifndef CC_PROJECT_DISABLE_AUTO_PQ - LOGD("---------stopAutoPQParameters -------- mAutoPQ_OnOff_Flag = %d", mAutoPQ_OnOff_Flag); - if (mAutoPQ_OnOff_Flag) { - mAutoPQ_OnOff_Flag = false; - } + LOGD("---------stopAutoPQParameters -------- mAutoPQ_OnOff_Flag = %d", mAutoPQ_OnOff_Flag); + if (mAutoPQ_OnOff_Flag) { + mAutoPQ_OnOff_Flag = false; + } #else - LOGD("AutoPQparam disable.\n"); + LOGD("AutoPQparam disable.\n"); #endif } @@ -78,73 +78,73 @@ TVIN_SIG_FMT_HDMI_3840_2160_00HZ = 0x445 nodeVal>2000 */ int CAutoPQparam::adjustPQparameters() { - int fd = -1; - int nodeVal = 0, ret = 0; - int new_frame_count = 0; - float frame_rate = 0; - float frame_rate_ave = 0; - char s[21]; - char str[10]; - tvin_sig_fmt_e sig_fmt; - is_3d_type_t _3d_type = INDEX_2D; - tvin_trans_fmt trans_fmt = TVIN_TFMT_2D; - - fd = open("/sys/module/amvideo/parameters/new_frame_count", O_RDONLY); - if (fd <= 0) { - LOGE("open /sys/module/amvideo/parameters/new_frame_count ERROR!!error = -%s- \n", strerror ( errno )); - return -1; - } - memset(s, 0, sizeof(s)); - read(fd, s, sizeof(s)); - close(fd); - new_frame_count = atoi(s); - - if (new_frame_count != 0) { - - fd = open("/sys/class/video/frame_height", O_RDONLY); - if (fd <= 0) { - LOGE("open /sys/class/video/frame_height ERROR!!error = -%s- \n", strerror ( errno )); - return -1; - } - memset(s, 0, sizeof(s)); - read(fd, s, sizeof(s)); - close(fd); - nodeVal = atoi(s); - - if (nodeVal <= 576) { - curFmtType = 1; - sig_fmt = TVIN_SIG_FMT_HDMI_720X480P_60HZ; - } else if (nodeVal > 567 && nodeVal <= 1088) { - curFmtType = 2; - sig_fmt = TVIN_SIG_FMT_HDMI_1920X1080P_60HZ; - } else { - curFmtType = 3; - sig_fmt = TVIN_SIG_FMT_HDMI_3840_2160_00HZ; - } - - if (curFmtType != preFmtType) { - LOGD("adjustPQparameters: nodeVal = %d, sig_fmt = %d.", nodeVal, sig_fmt); - ret = myVpp->LoadVppSettings (mAutoPQSource, sig_fmt, _3d_type, trans_fmt); - } - - preFmtType = curFmtType; - - } else { - if (preFmtType != 0 || curFmtType != 0) { - preFmtType = 0; - curFmtType = 0; - } - } - return ret; + int fd = -1; + int nodeVal = 0, ret = 0; + int new_frame_count = 0; + float frame_rate = 0; + float frame_rate_ave = 0; + char s[21]; + char str[10]; + tvin_sig_fmt_e sig_fmt; + is_3d_type_t _3d_type = INDEX_2D; + tvin_trans_fmt trans_fmt = TVIN_TFMT_2D; + + fd = open("/sys/module/amvideo/parameters/new_frame_count", O_RDONLY); + if (fd <= 0) { + LOGE("open /sys/module/amvideo/parameters/new_frame_count ERROR!!error = -%s- \n", strerror ( errno )); + return -1; + } + memset(s, 0, sizeof(s)); + read(fd, s, sizeof(s)); + close(fd); + new_frame_count = atoi(s); + + if (new_frame_count != 0) { + + fd = open("/sys/class/video/frame_height", O_RDONLY); + if (fd <= 0) { + LOGE("open /sys/class/video/frame_height ERROR!!error = -%s- \n", strerror ( errno )); + return -1; + } + memset(s, 0, sizeof(s)); + read(fd, s, sizeof(s)); + close(fd); + nodeVal = atoi(s); + + if (nodeVal <= 576) { + curFmtType = 1; + sig_fmt = TVIN_SIG_FMT_HDMI_720X480P_60HZ; + } else if (nodeVal > 567 && nodeVal <= 1088) { + curFmtType = 2; + sig_fmt = TVIN_SIG_FMT_HDMI_1920X1080P_60HZ; + } else { + curFmtType = 3; + sig_fmt = TVIN_SIG_FMT_HDMI_3840_2160_00HZ; + } + + if (curFmtType != preFmtType) { + LOGD("adjustPQparameters: nodeVal = %d, sig_fmt = %d.", nodeVal, sig_fmt); + ret = myVpp->LoadVppSettings (mAutoPQSource, sig_fmt, _3d_type, trans_fmt); + } + + preFmtType = curFmtType; + + } else { + if (preFmtType != 0 || curFmtType != 0) { + preFmtType = 0; + curFmtType = 0; + } + } + return ret; } bool CAutoPQparam::threadLoop() { - int sleeptime = 1000;//ms - while ( mAutoPQ_OnOff_Flag ) { - usleep ( sleeptime * 1000 ); - adjustPQparameters(); - } + int sleeptime = 1000;//ms + while ( mAutoPQ_OnOff_Flag ) { + usleep ( sleeptime * 1000 ); + adjustPQparameters(); + } - return false;//return true, run again, return false,not run. + return false;//return true, run again, return false,not run. } diff --git a/tvapi/libtv/tv/CAutoPQparam.h b/tvapi/libtv/tv/CAutoPQparam.h index 323694f..8ea696f 100644 --- a/tvapi/libtv/tv/CAutoPQparam.h +++ b/tvapi/libtv/tv/CAutoPQparam.h @@ -20,22 +20,22 @@ class CAutoPQparam: public CThread { private: - tv_source_input_type_t mAutoPQSource; - bool mAutoPQ_OnOff_Flag; - int preFmtType, curFmtType, autofreq_checkcount, autofreq_checkflag; - int adjustPQparameters(); - bool threadLoop(); + tv_source_input_type_t mAutoPQSource; + bool mAutoPQ_OnOff_Flag; + int preFmtType, curFmtType, autofreq_checkcount, autofreq_checkflag; + int adjustPQparameters(); + bool threadLoop(); public: - CVpp *myVpp; - CTvin *myTvin; - CAv *myAv; + CVpp *myVpp; + CTvin *myTvin; + CAv *myAv; - CAutoPQparam( CVpp *mVpp, CTvin *pTvin, CAv *mAV ); - ~CAutoPQparam(); - void startAutoPQ( tv_source_input_type_t source_type ); - void stopAutoPQ(); - bool isAutoPQing(); + CAutoPQparam( CVpp *mVpp, CTvin *pTvin, CAv *mAV ); + ~CAutoPQparam(); + void startAutoPQ( tv_source_input_type_t source_type ); + void stopAutoPQ(); + bool isAutoPQing(); }; #endif diff --git a/tvapi/libtv/tv/CAv.cpp b/tvapi/libtv/tv/CAv.cpp index 904ee3b..54f44e2 100644 --- a/tvapi/libtv/tv/CAv.cpp +++ b/tvapi/libtv/tv/CAv.cpp @@ -11,11 +11,11 @@ #include <amstream.h> CAv::CAv() { - mpObserver = NULL; - mTvPlayDevId = 0; - mCurVideoLayerMuteState = -1; - mCurDisableVideoColor = -1; - mFdAmVideo = -1; + mpObserver = NULL; + mTvPlayDevId = 0; + mCurVideoLayerMuteState = -1; + mCurDisableVideoColor = -1; + mFdAmVideo = -1; } CAv::~CAv() { @@ -23,451 +23,451 @@ CAv::~CAv() } int CAv::SetVideoWindow(int x, int y, int w, int h) { - return AM_AV_SetVideoWindow (mTvPlayDevId, x, y, w, h ); + return AM_AV_SetVideoWindow (mTvPlayDevId, x, y, w, h ); } int CAv::Open() { - AM_AV_OpenPara_t para_av; - memset ( ¶_av, 0, sizeof ( AM_AV_OpenPara_t ) ); - int rt = AM_AV_Open ( mTvPlayDevId, ¶_av ); - if ( rt != AM_SUCCESS ) { - LOGD ( "%s, dvbplayer_open fail %d %d\n!" , __FUNCTION__, mTvPlayDevId, rt ); - return -1; - } - - //open audio channle output - AM_AOUT_OpenPara_t aout_para; - memset ( &aout_para, 0, sizeof ( AM_AOUT_OpenPara_t ) ); - rt = AM_AOUT_Open ( 0, &aout_para ); - - if ( AM_SUCCESS != rt ) { - LOGD ( "%s, BUG: CANN'T OPEN AOUT\n", __FUNCTION__); - } - // - mFdAmVideo = open ( PATH_VIDEO_AMVIDEO, O_RDWR ); - if ( mFdAmVideo < 0 ) { - LOGE ( "mFdAmVideo < 0, error(%s)!\n", strerror ( errno ) ); - return -1; - } - /*Register events*/ - AM_EVT_Subscribe ( mTvPlayDevId, AM_AV_EVT_AV_NO_DATA, av_evt_callback, this ); - AM_EVT_Subscribe ( mTvPlayDevId, AM_AV_EVT_AV_DATA_RESUME, av_evt_callback, this ); - AM_EVT_Subscribe ( mTvPlayDevId, AM_AV_EVT_VIDEO_SCAMBLED, av_evt_callback, this ); - AM_EVT_Subscribe ( mTvPlayDevId, AM_AV_EVT_AUDIO_SCAMBLED, av_evt_callback, this ); - AM_EVT_Subscribe ( mTvPlayDevId, AM_AV_EVT_VIDEO_NOT_SUPPORT, av_evt_callback, this ); - - return rt; + AM_AV_OpenPara_t para_av; + memset ( ¶_av, 0, sizeof ( AM_AV_OpenPara_t ) ); + int rt = AM_AV_Open ( mTvPlayDevId, ¶_av ); + if ( rt != AM_SUCCESS ) { + LOGD ( "%s, dvbplayer_open fail %d %d\n!" , __FUNCTION__, mTvPlayDevId, rt ); + return -1; + } + + //open audio channle output + AM_AOUT_OpenPara_t aout_para; + memset ( &aout_para, 0, sizeof ( AM_AOUT_OpenPara_t ) ); + rt = AM_AOUT_Open ( 0, &aout_para ); + + if ( AM_SUCCESS != rt ) { + LOGD ( "%s, BUG: CANN'T OPEN AOUT\n", __FUNCTION__); + } + // + mFdAmVideo = open ( PATH_VIDEO_AMVIDEO, O_RDWR ); + if ( mFdAmVideo < 0 ) { + LOGE ( "mFdAmVideo < 0, error(%s)!\n", strerror ( errno ) ); + return -1; + } + /*Register events*/ + AM_EVT_Subscribe ( mTvPlayDevId, AM_AV_EVT_AV_NO_DATA, av_evt_callback, this ); + AM_EVT_Subscribe ( mTvPlayDevId, AM_AV_EVT_AV_DATA_RESUME, av_evt_callback, this ); + AM_EVT_Subscribe ( mTvPlayDevId, AM_AV_EVT_VIDEO_SCAMBLED, av_evt_callback, this ); + AM_EVT_Subscribe ( mTvPlayDevId, AM_AV_EVT_AUDIO_SCAMBLED, av_evt_callback, this ); + AM_EVT_Subscribe ( mTvPlayDevId, AM_AV_EVT_VIDEO_NOT_SUPPORT, av_evt_callback, this ); + + return rt; } int CAv::Close() { - int iRet; - iRet = AM_AV_Close ( mTvPlayDevId ); - iRet = AM_AOUT_Close ( mTvPlayDevId ); - if (mFdAmVideo > 0) { - close(mFdAmVideo); - mFdAmVideo = -1; - } - return iRet; + int iRet; + iRet = AM_AV_Close ( mTvPlayDevId ); + iRet = AM_AOUT_Close ( mTvPlayDevId ); + if (mFdAmVideo > 0) { + close(mFdAmVideo); + mFdAmVideo = -1; + } + return iRet; } int CAv::GetVideoStatus(AM_AV_VideoStatus_t *status) { - return AM_AV_GetVideoStatus(mTvPlayDevId, status); + return AM_AV_GetVideoStatus(mTvPlayDevId, status); } int CAv::SwitchTSAudio(int apid, AM_AV_AFormat_t afmt) { - return AM_AV_SwitchTSAudio (mTvPlayDevId, ( uint16_t ) apid, ( AM_AV_AFormat_t ) afmt ); + return AM_AV_SwitchTSAudio (mTvPlayDevId, ( uint16_t ) apid, ( AM_AV_AFormat_t ) afmt ); } int CAv::ResetAudioDecoder() { - return AM_AV_ResetAudioDecoder ( mTvPlayDevId ); + return AM_AV_ResetAudioDecoder ( mTvPlayDevId ); } int CAv::SetTSSource(AM_AV_TSSource_t ts_source) { - return AM_AV_SetTSSource ( mTvPlayDevId, ts_source ); + return AM_AV_SetTSSource ( mTvPlayDevId, ts_source ); } int CAv::StartTS(uint16_t vpid, uint16_t apid, AM_AV_VFormat_t vfmt, AM_AV_AFormat_t afmt) { - return AM_AV_StartTS ( mTvPlayDevId, vpid, apid, ( AM_AV_VFormat_t ) vfmt, ( AM_AV_AFormat_t ) afmt ); + return AM_AV_StartTS ( mTvPlayDevId, vpid, apid, ( AM_AV_VFormat_t ) vfmt, ( AM_AV_AFormat_t ) afmt ); } int CAv::StopTS() { - return AM_AV_StopTS (mTvPlayDevId); + return AM_AV_StopTS (mTvPlayDevId); } int CAv::AudioGetOutputMode(AM_AOUT_OutputMode_t *mode) { - return AM_AOUT_GetOutputMode ( 0, mode ); + return AM_AOUT_GetOutputMode ( 0, mode ); } int CAv::AudioSetOutputMode(AM_AOUT_OutputMode_t mode) { - return AM_AOUT_SetOutputMode ( 0, mode ); + return AM_AOUT_SetOutputMode ( 0, mode ); } int CAv::EnableVideoBlackout() { - return AM_AV_EnableVideoBlackout(mTvPlayDevId); + return AM_AV_EnableVideoBlackout(mTvPlayDevId); } int CAv::DisableVideoBlackout() { - return AM_AV_DisableVideoBlackout(mTvPlayDevId); + return AM_AV_DisableVideoBlackout(mTvPlayDevId); } int CAv::DisableVideoWithBlueColor() { - LOGD("DisableVideoWithBlueColor"); - if (mCurVideoLayerMuteState == 1 && mCurDisableVideoColor == DISABLE_VIDEO_COLOR_BLUE) { - LOGD("video is disable with blue, return"); - return 0; - } - mCurVideoLayerMuteState = 1; - mCurDisableVideoColor = DISABLE_VIDEO_COLOR_BLUE; - SetVideoScreenColor ( 0, 41, 240, 110 ); // Show blue with vdin0, postblending disabled - return AM_AV_DisableVideo(mTvPlayDevId); + LOGD("DisableVideoWithBlueColor"); + if (mCurVideoLayerMuteState == 1 && mCurDisableVideoColor == DISABLE_VIDEO_COLOR_BLUE) { + LOGD("video is disable with blue, return"); + return 0; + } + mCurVideoLayerMuteState = 1; + mCurDisableVideoColor = DISABLE_VIDEO_COLOR_BLUE; + SetVideoScreenColor ( 0, 41, 240, 110 ); // Show blue with vdin0, postblending disabled + return AM_AV_DisableVideo(mTvPlayDevId); } int CAv::DisableVideoWithBlackColor() { - LOGD("DisableVideoWithBlackColor"); - if (mCurVideoLayerMuteState == 1 && mCurDisableVideoColor == DISABLE_VIDEO_COLOR_BLACK) { - LOGD("video is disable with black, return"); - return 0; - } - mCurDisableVideoColor = DISABLE_VIDEO_COLOR_BLACK; - mCurVideoLayerMuteState = 1; - SetVideoScreenColor ( 0, 16, 128, 128 ); // Show blue with vdin0, postblending disabled - return AM_AV_DisableVideo(mTvPlayDevId); + LOGD("DisableVideoWithBlackColor"); + if (mCurVideoLayerMuteState == 1 && mCurDisableVideoColor == DISABLE_VIDEO_COLOR_BLACK) { + LOGD("video is disable with black, return"); + return 0; + } + mCurDisableVideoColor = DISABLE_VIDEO_COLOR_BLACK; + mCurVideoLayerMuteState = 1; + SetVideoScreenColor ( 0, 16, 128, 128 ); // Show blue with vdin0, postblending disabled + return AM_AV_DisableVideo(mTvPlayDevId); } //auto enable, int CAv::EnableVideoAuto() { - LOGD("EnableVideo"); - if (mCurVideoLayerMuteState == 0) { - LOGD("video is enable, return"); - return 0; - } - mCurVideoLayerMuteState = 0; - SetVideoScreenColor ( 0, 16, 128, 128 ); // Show black with vdin0, postblending disabled - ClearVideoBuffer();//disable video 2 - return 0; + LOGD("EnableVideo"); + if (mCurVideoLayerMuteState == 0) { + LOGD("video is enable, return"); + return 0; + } + mCurVideoLayerMuteState = 0; + SetVideoScreenColor ( 0, 16, 128, 128 ); // Show black with vdin0, postblending disabled + ClearVideoBuffer();//disable video 2 + return 0; } //just enable video int CAv::EnableVideoNow() { - LOGD("EnableVideoNow"); - const char *config_value = NULL; - if (mCurVideoLayerMuteState == 0) { - LOGD("video is enable, return"); - return 0; - } - mCurVideoLayerMuteState = 0; - config_value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); - if ( strcmp ( config_value, "black" ) == 0 ) { - } else { - SetVideoScreenColor ( 0, 16, 128, 128 ); // Show blue with vdin0, postblending disabled - } - return AM_AV_EnableVideo(mTvPlayDevId); + LOGD("EnableVideoNow"); + const char *config_value = NULL; + if (mCurVideoLayerMuteState == 0) { + LOGD("video is enable, return"); + return 0; + } + mCurVideoLayerMuteState = 0; + config_value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); + if ( strcmp ( config_value, "black" ) == 0 ) { + } else { + SetVideoScreenColor ( 0, 16, 128, 128 ); // Show blue with vdin0, postblending disabled + } + return AM_AV_EnableVideo(mTvPlayDevId); } int CAv::WaittingVideoPlaying(int minFrameCount , int waitTime ) { - //EnableVideoNow(); - static const int COUNT_FOR_TIME = 20; - int times = waitTime / COUNT_FOR_TIME; - int ret = -1; - int i = 0; - for (i = 0; i < times; i++) { - if (videoIsPlaying(minFrameCount)) { - ret = 0; - break; - } - } - if (i == times) { - LOGD("EnableVideoWhenVideoPlaying time out!!!!!!!!!!!!!"); - ret = -2; - } - return ret; + //EnableVideoNow(); + static const int COUNT_FOR_TIME = 20; + int times = waitTime / COUNT_FOR_TIME; + int ret = -1; + int i = 0; + for (i = 0; i < times; i++) { + if (videoIsPlaying(minFrameCount)) { + ret = 0; + break; + } + } + if (i == times) { + LOGD("EnableVideoWhenVideoPlaying time out!!!!!!!!!!!!!"); + ret = -2; + } + return ret; } int CAv::EnableVideoWhenVideoPlaying(int minFrameCount, int waitTime) { - int ret = WaittingVideoPlaying(minFrameCount, waitTime); - if (ret == 0) { //ok to playing - EnableVideoNow(); - } - return ret; + int ret = WaittingVideoPlaying(minFrameCount, waitTime); + if (ret == 0) { //ok to playing + EnableVideoNow(); + } + return ret; } bool CAv::videoIsPlaying(int minFrameCount) { - int value[3]; - value[0] = getVideoFrameCount(); - usleep(20 * 1000); - value[1] = getVideoFrameCount(); - //usleep(20*1000); - //value[2] = getVideoFrameCount(); - LOGD("---videoIsPlaying framecount =%d = %d = %d", value[0], value[1], value[2]); - if (value[1] >= minFrameCount && (value[1] > value[0])) return true; - else return false; + int value[3]; + value[0] = getVideoFrameCount(); + usleep(20 * 1000); + value[1] = getVideoFrameCount(); + //usleep(20*1000); + //value[2] = getVideoFrameCount(); + LOGD("---videoIsPlaying framecount =%d = %d = %d", value[0], value[1], value[2]); + if (value[1] >= minFrameCount && (value[1] > value[0])) return true; + else return false; } int CAv::getVideoFrameCount() { - char buf[32]; - int fd = -1; - fd = open(PATH_FRAME_COUNT, O_RDWR); - if (fd < 0) { - LOGW("Open %s error(%s)!\n", PATH_FRAME_COUNT, strerror(errno)); - return -1; - } - read(fd, buf, sizeof(buf)); - int value = 0; - sscanf ( buf, "%d", &value ); - close ( fd ); - return value; + char buf[32]; + int fd = -1; + fd = open(PATH_FRAME_COUNT, O_RDWR); + if (fd < 0) { + LOGW("Open %s error(%s)!\n", PATH_FRAME_COUNT, strerror(errno)); + return -1; + } + read(fd, buf, sizeof(buf)); + int value = 0; + sscanf ( buf, "%d", &value ); + close ( fd ); + return value; } tvin_sig_fmt_t CAv::getVideoResolutionToFmt() { - tvin_sig_fmt_e sig_fmt = TVIN_SIG_FMT_HDMI_1920X1080P_60HZ; - int height = CFile::getFileAttrValue(PATH_VIDEO_HEIGHT); - LOGD("---------getVideoResolutionToFmt -------- height = %d", height); - if (height <= 576) { - sig_fmt = TVIN_SIG_FMT_HDMI_720X480P_60HZ; - } else if (height >576 && height <= 1088) { - sig_fmt = TVIN_SIG_FMT_HDMI_1920X1080P_60HZ; - } else { - sig_fmt = TVIN_SIG_FMT_HDMI_3840_2160_00HZ; - } - return sig_fmt; + tvin_sig_fmt_e sig_fmt = TVIN_SIG_FMT_HDMI_1920X1080P_60HZ; + int height = CFile::getFileAttrValue(PATH_VIDEO_HEIGHT); + LOGD("---------getVideoResolutionToFmt -------- height = %d", height); + if (height <= 576) { + sig_fmt = TVIN_SIG_FMT_HDMI_720X480P_60HZ; + } else if (height > 576 && height <= 1088) { + sig_fmt = TVIN_SIG_FMT_HDMI_1920X1080P_60HZ; + } else { + sig_fmt = TVIN_SIG_FMT_HDMI_3840_2160_00HZ; + } + return sig_fmt; } //call disable video 2 int CAv::ClearVideoBuffer() { - LOGD("ClearVideoBuffer"); - return AM_AV_ClearVideoBuffer(mTvPlayDevId); + LOGD("ClearVideoBuffer"); + return AM_AV_ClearVideoBuffer(mTvPlayDevId); } int CAv::SetVideoScreenColor ( int vdin_blending_mask, int y, int u, int v ) { - FILE *fp = NULL; - unsigned long value = 0; + FILE *fp = NULL; + unsigned long value = 0; - value = vdin_blending_mask << 24; + value = vdin_blending_mask << 24; - value |= ( unsigned int ) ( y << 16 ) | ( unsigned int ) ( u << 8 ) | ( unsigned int ) ( v ); + value |= ( unsigned int ) ( y << 16 ) | ( unsigned int ) ( u << 8 ) | ( unsigned int ) ( v ); - fp = fopen ( "/sys/class/video/test_screen", "w" ); - LOGD ( "~~~fopen~~~##VPP_SetVideoScreenColor##%s : vdin_blending_mask:%d,y:%d,u:%d,v:%d ##" , "/sys/class/video/test_screen", vdin_blending_mask, y, u, v); + fp = fopen ( "/sys/class/video/test_screen", "w" ); + LOGD ( "~~~fopen~~~##VPP_SetVideoScreenColor##%s : vdin_blending_mask:%d,y:%d,u:%d,v:%d ##" , "/sys/class/video/test_screen", vdin_blending_mask, y, u, v); - if ( fp == NULL ) { - LOGE ( "Open /sys/class/video/test_screen error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGE ( "Open /sys/class/video/test_screen error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "0x%lx", ( unsigned long ) value ); + fprintf ( fp, "0x%lx", ( unsigned long ) value ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CAv::getVideoDisableValue() { - LOGD("this fun is empty!!!!!!!!"); - return 0; + LOGD("this fun is empty!!!!!!!!"); + return 0; } int CAv::SetVideoLayerDisable ( int value ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/class/video/disable_video", "w" ); - LOGD ( "~~~fopen~~~##VPP_SetVideoLayerDisable##%s : %d ##" , "/sys/class/video/disable_video", value); + fp = fopen ( "/sys/class/video/disable_video", "w" ); + LOGD ( "~~~fopen~~~##VPP_SetVideoLayerDisable##%s : %d ##" , "/sys/class/video/disable_video", value); - if ( fp == NULL ) { - LOGE ( "Open /sys/class/video/disable_video error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGE ( "Open /sys/class/video/disable_video error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", value ); + fprintf ( fp, "%d", value ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CAv::setVideoScreenMode ( int value ) { - FILE *fp = fopen ( "/sys/class/video/screen_mode", "w" ); - LOGD ( "setVideoScreenMode %d ##" , value); - if ( fp == NULL ) { - LOGE ( "Open /sys/class/video/screen_mode error(%s)!\n", strerror ( errno ) ); - return -1; - } - fprintf ( fp, "%d", value ); - fclose ( fp ); - return 0; + FILE *fp = fopen ( "/sys/class/video/screen_mode", "w" ); + LOGD ( "setVideoScreenMode %d ##" , value); + if ( fp == NULL ) { + LOGE ( "Open /sys/class/video/screen_mode error(%s)!\n", strerror ( errno ) ); + return -1; + } + fprintf ( fp, "%d", value ); + fclose ( fp ); + return 0; } int CAv::setVideoAxis ( int h, int v, int width, int height ) { - FILE *fp = NULL; - fp = fopen ( "/sys/class/video/axis", "w" ); - LOGD ( "setVideoAxis##%s : %d %d %d %d ##" , "/sys/class/video/axis", h, v, width, height); + FILE *fp = NULL; + fp = fopen ( "/sys/class/video/axis", "w" ); + LOGD ( "setVideoAxis##%s : %d %d %d %d ##" , "/sys/class/video/axis", h, v, width, height); - if ( fp == NULL ) { - LOGE ( "Open /sys/class/video/axis ERROR(%s)!!\n", strerror ( errno ) ); - return -1; - } - fprintf ( fp, "%d %d %d %d", h, v, width, height ); - fclose ( fp ); - return 0; + if ( fp == NULL ) { + LOGE ( "Open /sys/class/video/axis ERROR(%s)!!\n", strerror ( errno ) ); + return -1; + } + fprintf ( fp, "%d %d %d %d", h, v, width, height ); + fclose ( fp ); + return 0; } int CAv::getVideoScreenMode() { - int value; - FILE *fp = fopen ( "/sys/class/video/screen_mode", "r+" ); + int value; + FILE *fp = fopen ( "/sys/class/video/screen_mode", "r+" ); - if ( fp == NULL ) { - LOGE ( "Open /sys/class/video/screen_mode error(%s)!\n", strerror ( errno ) ); - return -1; - } - fscanf ( fp, "%d", &value ); - fclose ( fp ); - return value; + if ( fp == NULL ) { + LOGE ( "Open /sys/class/video/screen_mode error(%s)!\n", strerror ( errno ) ); + return -1; + } + fscanf ( fp, "%d", &value ); + fclose ( fp ); + return value; } video_display_resolution_t CAv::getVideoDisplayResolution() { - char attrV[64]; - memset (attrV, 0x0, 64); - Tv_Utils_GetFileAttrStr ( "/sys/class/video/device_resolution", 64, attrV ); - video_display_resolution_t resolution; - if (strncasecmp(attrV, "1366x768", strlen ("1366x768")) == 0) { - resolution = VPP_DISPLAY_RESOLUTION_1366X768; - } else if (strncasecmp(attrV, "3840x2160", strlen ("3840x2160")) == 0) { - resolution = VPP_DISPLAY_RESOLUTION_3840X2160; - } else if (strncasecmp(attrV, "1920x1080", strlen ("1920x1080")) == 0) { - resolution = VPP_DISPLAY_RESOLUTION_1920X1080; - } else { - LOGW("video display resolution is = (%s) not define , default it", attrV); - resolution = VPP_DISPLAY_RESOLUTION_1920X1080; - } + char attrV[64]; + memset (attrV, 0x0, 64); + Tv_Utils_GetFileAttrStr ( "/sys/class/video/device_resolution", 64, attrV ); + video_display_resolution_t resolution; + if (strncasecmp(attrV, "1366x768", strlen ("1366x768")) == 0) { + resolution = VPP_DISPLAY_RESOLUTION_1366X768; + } else if (strncasecmp(attrV, "3840x2160", strlen ("3840x2160")) == 0) { + resolution = VPP_DISPLAY_RESOLUTION_3840X2160; + } else if (strncasecmp(attrV, "1920x1080", strlen ("1920x1080")) == 0) { + resolution = VPP_DISPLAY_RESOLUTION_1920X1080; + } else { + LOGW("video display resolution is = (%s) not define , default it", attrV); + resolution = VPP_DISPLAY_RESOLUTION_1920X1080; + } - return resolution; + return resolution; } void CAv::av_evt_callback ( long dev_no, int event_type, void *param, void *user_data ) { - CAv *pAv = ( CAv * ) user_data; - if (NULL == pAv ) { - LOGD ( "%s, ERROR : av_evt_callback NULL == pTv\n", __FUNCTION__ ); - return ; - } - if ( pAv->mpObserver == NULL ) { - LOGD ( "%s, ERROR : mpObserver NULL == mpObserver\n", __FUNCTION__ ); - return; - } - switch ( event_type ) { - case AM_AV_EVT_AV_NO_DATA: - pAv->mCurAvEvent.type = AVEvent::EVENT_AV_STOP; - pAv->mCurAvEvent.param = ( int )param; - pAv->mpObserver->onEvent(pAv->mCurAvEvent); - break; - case AM_AV_EVT_AV_DATA_RESUME: - pAv->mCurAvEvent.type = AVEvent::EVENT_AV_RESUEM; - pAv->mCurAvEvent.param = ( int )param; - pAv->mpObserver->onEvent(pAv->mCurAvEvent); - break; - case AM_AV_EVT_VIDEO_SCAMBLED: - case AM_AV_EVT_AUDIO_SCAMBLED: - pAv->mCurAvEvent.type = AVEvent::EVENT_AV_SCAMBLED; - pAv->mCurAvEvent.param = ( int )param; - pAv->mpObserver->onEvent(pAv->mCurAvEvent); - break; - case AM_AV_EVT_VIDEO_NOT_SUPPORT: { - pAv->mCurAvEvent.type = AVEvent::EVENT_AV_UNSUPPORT; - pAv->mCurAvEvent.param = ( int )param; - pAv->mpObserver->onEvent(pAv->mCurAvEvent); - break; - } - default: - break; - } - LOGD ( "%s, av_evt_callback : dev_no %d type %d param = %d\n", __FUNCTION__, dev_no, pAv->mCurAvEvent.type , (int)param); + CAv *pAv = ( CAv * ) user_data; + if (NULL == pAv ) { + LOGD ( "%s, ERROR : av_evt_callback NULL == pTv\n", __FUNCTION__ ); + return ; + } + if ( pAv->mpObserver == NULL ) { + LOGD ( "%s, ERROR : mpObserver NULL == mpObserver\n", __FUNCTION__ ); + return; + } + switch ( event_type ) { + case AM_AV_EVT_AV_NO_DATA: + pAv->mCurAvEvent.type = AVEvent::EVENT_AV_STOP; + pAv->mCurAvEvent.param = ( int )param; + pAv->mpObserver->onEvent(pAv->mCurAvEvent); + break; + case AM_AV_EVT_AV_DATA_RESUME: + pAv->mCurAvEvent.type = AVEvent::EVENT_AV_RESUEM; + pAv->mCurAvEvent.param = ( int )param; + pAv->mpObserver->onEvent(pAv->mCurAvEvent); + break; + case AM_AV_EVT_VIDEO_SCAMBLED: + case AM_AV_EVT_AUDIO_SCAMBLED: + pAv->mCurAvEvent.type = AVEvent::EVENT_AV_SCAMBLED; + pAv->mCurAvEvent.param = ( int )param; + pAv->mpObserver->onEvent(pAv->mCurAvEvent); + break; + case AM_AV_EVT_VIDEO_NOT_SUPPORT: { + pAv->mCurAvEvent.type = AVEvent::EVENT_AV_UNSUPPORT; + pAv->mCurAvEvent.param = ( int )param; + pAv->mpObserver->onEvent(pAv->mCurAvEvent); + break; + } + default: + break; + } + LOGD ( "%s, av_evt_callback : dev_no %d type %d param = %d\n", __FUNCTION__, dev_no, pAv->mCurAvEvent.type , (int)param); } int CAv::set3DMode(VIDEO_3D_MODE_T mode, int LR_switch, int mode_3D_TO_2D) { - unsigned int cmd = MODE_3D_DISABLE; - switch (mode) { - case VIDEO_3D_MODE_DISABLE: - cmd = MODE_3D_DISABLE; - break; - case VIDEO_3D_MODE_AUTO: - cmd = MODE_3D_ENABLE | MODE_3D_AUTO; - break; - case VIDEO_3D_MODE_LR: - cmd = MODE_3D_ENABLE | MODE_3D_LR; - break; - case VIDEO_3D_MODE_TB: - cmd = MODE_3D_ENABLE | MODE_3D_TB; - break; - case VIDEO_3D_MODE_LA: - cmd = MODE_3D_ENABLE | MODE_3D_LA; - break; - case VIDEO_3D_MODE_FA: - cmd = MODE_3D_ENABLE | MODE_3D_FA; - break; - default: - cmd = MODE_3D_DISABLE; - break; - } - - if (LR_switch == 1) { - cmd = cmd | MODE_3D_LR_SWITCH; - } - - if (mode_3D_TO_2D == 1) { - cmd = cmd | MODE_3D_TO_2D_L; - } - - if (mode_3D_TO_2D == 2) { - cmd = cmd | MODE_3D_TO_2D_R; - } - LOGD("set 3d mode fd = %d cmd = 0x%x", mFdAmVideo, cmd); - int ret = ioctl(mFdAmVideo, AMSTREAM_IOC_SET_3D_TYPE , cmd); - if (ret < 0) { - LOGE("set3DMode error ( %s )", strerror ( errno )); - } - return 0; + unsigned int cmd = MODE_3D_DISABLE; + switch (mode) { + case VIDEO_3D_MODE_DISABLE: + cmd = MODE_3D_DISABLE; + break; + case VIDEO_3D_MODE_AUTO: + cmd = MODE_3D_ENABLE | MODE_3D_AUTO; + break; + case VIDEO_3D_MODE_LR: + cmd = MODE_3D_ENABLE | MODE_3D_LR; + break; + case VIDEO_3D_MODE_TB: + cmd = MODE_3D_ENABLE | MODE_3D_TB; + break; + case VIDEO_3D_MODE_LA: + cmd = MODE_3D_ENABLE | MODE_3D_LA; + break; + case VIDEO_3D_MODE_FA: + cmd = MODE_3D_ENABLE | MODE_3D_FA; + break; + default: + cmd = MODE_3D_DISABLE; + break; + } + + if (LR_switch == 1) { + cmd = cmd | MODE_3D_LR_SWITCH; + } + + if (mode_3D_TO_2D == 1) { + cmd = cmd | MODE_3D_TO_2D_L; + } + + if (mode_3D_TO_2D == 2) { + cmd = cmd | MODE_3D_TO_2D_R; + } + LOGD("set 3d mode fd = %d cmd = 0x%x", mFdAmVideo, cmd); + int ret = ioctl(mFdAmVideo, AMSTREAM_IOC_SET_3D_TYPE , cmd); + if (ret < 0) { + LOGE("set3DMode error ( %s )", strerror ( errno )); + } + return 0; } int CAv::setLookupPtsForDtmb(int enable) { - FILE *fp = fopen ( PATH_MEPG_DTMB_LOOKUP_PTS_FLAG, "w" ); - LOGD ( "setLookupPtsForDtmb %d ##" , enable); - if ( fp == NULL ) { - LOGE ( "Open %s error(%s)!\n", PATH_MEPG_DTMB_LOOKUP_PTS_FLAG, strerror ( errno ) ); - return -1; - } - fprintf ( fp, "%d", enable ); - fclose ( fp ); - return 0; + FILE *fp = fopen ( PATH_MEPG_DTMB_LOOKUP_PTS_FLAG, "w" ); + LOGD ( "setLookupPtsForDtmb %d ##" , enable); + if ( fp == NULL ) { + LOGE ( "Open %s error(%s)!\n", PATH_MEPG_DTMB_LOOKUP_PTS_FLAG, strerror ( errno ) ); + return -1; + } + fprintf ( fp, "%d", enable ); + fclose ( fp ); + return 0; } diff --git a/tvapi/libtv/tv/CAv.h b/tvapi/libtv/tv/CAv.h index 04a3cc9..b95b490 100644 --- a/tvapi/libtv/tv/CAv.h +++ b/tvapi/libtv/tv/CAv.h @@ -41,114 +41,114 @@ static const char *PATH_VIDEO_HEIGHT = "/sys/class/video/frame_height"; typedef enum VIDEO_3D_MODE_E { - VIDEO_3D_MODE_DISABLE, - VIDEO_3D_MODE_AUTO, - VIDEO_3D_MODE_LR, - VIDEO_3D_MODE_TB, - VIDEO_3D_MODE_LA, - VIDEO_3D_MODE_FA + VIDEO_3D_MODE_DISABLE, + VIDEO_3D_MODE_AUTO, + VIDEO_3D_MODE_LR, + VIDEO_3D_MODE_TB, + VIDEO_3D_MODE_LA, + VIDEO_3D_MODE_FA } VIDEO_3D_MODE_T; //end 3D=================================================================== typedef enum video_display_resolution_e { - VPP_DISPLAY_RESOLUTION_1366X768, - VPP_DISPLAY_RESOLUTION_1920X1080, - VPP_DISPLAY_RESOLUTION_3840X2160, - VPP_DISPLAY_RESOLUTION_MAX, + VPP_DISPLAY_RESOLUTION_1366X768, + VPP_DISPLAY_RESOLUTION_1920X1080, + VPP_DISPLAY_RESOLUTION_3840X2160, + VPP_DISPLAY_RESOLUTION_MAX, } video_display_resolution_t; class CAv { public: - CAv(); - ~CAv(); - //video screen_mode - static const int VIDEO_WIDEOPTION_NORMAL = 0; - static const int VIDEO_WIDEOPTION_FULL_STRETCH = 1; - static const int VIDEO_WIDEOPTION_4_3 = 2; - static const int VIDEO_WIDEOPTION_16_9 = 3; - static const int VIDEO_WIDEOPTION_NONLINEAR = 4; - static const int VIDEO_WIDEOPTION_NORMAL_NOSCALEUP = 5; - static const int VIDEO_WIDEOPTION_CROP_FULL = 6; - static const int VIDEO_WIDEOPTION_CROP = 7; - // - static const int DISABLE_VIDEO_COLOR_BLUE = 1; - static const int DISABLE_VIDEO_COLOR_BLACK = 2; - class AVEvent : public CTvEv { - public: - AVEvent(): CTvEv(CTvEv::TV_EVENT_AV) - { + CAv(); + ~CAv(); + //video screen_mode + static const int VIDEO_WIDEOPTION_NORMAL = 0; + static const int VIDEO_WIDEOPTION_FULL_STRETCH = 1; + static const int VIDEO_WIDEOPTION_4_3 = 2; + static const int VIDEO_WIDEOPTION_16_9 = 3; + static const int VIDEO_WIDEOPTION_NONLINEAR = 4; + static const int VIDEO_WIDEOPTION_NORMAL_NOSCALEUP = 5; + static const int VIDEO_WIDEOPTION_CROP_FULL = 6; + static const int VIDEO_WIDEOPTION_CROP = 7; + // + static const int DISABLE_VIDEO_COLOR_BLUE = 1; + static const int DISABLE_VIDEO_COLOR_BLACK = 2; + class AVEvent : public CTvEv { + public: + AVEvent(): CTvEv(CTvEv::TV_EVENT_AV) + { - }; - ~AVEvent() - {}; - static const int EVENT_AV_STOP = 1; - static const int EVENT_AV_RESUEM = 2; - static const int EVENT_AV_SCAMBLED = 3; - static const int EVENT_AV_UNSUPPORT = 4; - int type; - int param; - }; + }; + ~AVEvent() + {}; + static const int EVENT_AV_STOP = 1; + static const int EVENT_AV_RESUEM = 2; + static const int EVENT_AV_SCAMBLED = 3; + static const int EVENT_AV_UNSUPPORT = 4; + int type; + int param; + }; - class IObserver { - public: - IObserver() {}; - virtual ~IObserver() {}; - virtual void onEvent(const AVEvent &ev) = 0; - }; - //1 VS n - //int addObserver(IObserver* ob); - //int removeObserver(IObserver* ob); + class IObserver { + public: + IObserver() {}; + virtual ~IObserver() {}; + virtual void onEvent(const AVEvent &ev) = 0; + }; + //1 VS n + //int addObserver(IObserver* ob); + //int removeObserver(IObserver* ob); - //1 VS 1 - int setObserver(IObserver *ob) - { - mpObserver = ob; - return 0; - } + //1 VS 1 + int setObserver(IObserver *ob) + { + mpObserver = ob; + return 0; + } - int Open(); - int Close(); - int SetVideoWindow(int x, int y, int w, int h); - int GetVideoStatus(AM_AV_VideoStatus_t *status); - int SwitchTSAudio(int apid, AM_AV_AFormat_t afmt); - int ResetAudioDecoder(); - int SetTSSource(AM_AV_TSSource_t ts_source); - int StartTS(uint16_t vpid, uint16_t apid, AM_AV_VFormat_t vfmt, AM_AV_AFormat_t afmt); - int StopTS(); - int AudioGetOutputMode(AM_AOUT_OutputMode_t *mode); - int AudioSetOutputMode(AM_AOUT_OutputMode_t mode); - int SetVideoScreenColor (int vdin_blending_mask, int y, int u, int v); - int DisableVideoWithBlueColor(); - int DisableVideoWithBlackColor(); - int EnableVideoAuto(); - int EnableVideoNow(); - int EnableVideoWhenVideoPlaying(int minFrameCount = 8, int waitTime = 5000); - int WaittingVideoPlaying(int minFrameCount = 8, int waitTime = 5000); - int EnableVideoBlackout(); - int DisableVideoBlackout(); - int getVideoDisableValue(); - int SetVideoLayerDisable ( int value ); - int ClearVideoBuffer(); - bool videoIsPlaying(int minFrameCount = 8); - int setVideoScreenMode ( int value ); - int getVideoScreenMode(); - int setVideoAxis ( int h, int v, int width, int height ); - video_display_resolution_t getVideoDisplayResolution(); - //LR_switch: 1 is enable, 3D_TO_2D:1 is L , 2 is R - int set3DMode(VIDEO_3D_MODE_T mode, int LR_switch, int mode_3D_TO_2D); - // - int setLookupPtsForDtmb(int enable); - tvin_sig_fmt_t getVideoResolutionToFmt(); + int Open(); + int Close(); + int SetVideoWindow(int x, int y, int w, int h); + int GetVideoStatus(AM_AV_VideoStatus_t *status); + int SwitchTSAudio(int apid, AM_AV_AFormat_t afmt); + int ResetAudioDecoder(); + int SetTSSource(AM_AV_TSSource_t ts_source); + int StartTS(uint16_t vpid, uint16_t apid, AM_AV_VFormat_t vfmt, AM_AV_AFormat_t afmt); + int StopTS(); + int AudioGetOutputMode(AM_AOUT_OutputMode_t *mode); + int AudioSetOutputMode(AM_AOUT_OutputMode_t mode); + int SetVideoScreenColor (int vdin_blending_mask, int y, int u, int v); + int DisableVideoWithBlueColor(); + int DisableVideoWithBlackColor(); + int EnableVideoAuto(); + int EnableVideoNow(); + int EnableVideoWhenVideoPlaying(int minFrameCount = 8, int waitTime = 5000); + int WaittingVideoPlaying(int minFrameCount = 8, int waitTime = 5000); + int EnableVideoBlackout(); + int DisableVideoBlackout(); + int getVideoDisableValue(); + int SetVideoLayerDisable ( int value ); + int ClearVideoBuffer(); + bool videoIsPlaying(int minFrameCount = 8); + int setVideoScreenMode ( int value ); + int getVideoScreenMode(); + int setVideoAxis ( int h, int v, int width, int height ); + video_display_resolution_t getVideoDisplayResolution(); + //LR_switch: 1 is enable, 3D_TO_2D:1 is L , 2 is R + int set3DMode(VIDEO_3D_MODE_T mode, int LR_switch, int mode_3D_TO_2D); + // + int setLookupPtsForDtmb(int enable); + tvin_sig_fmt_t getVideoResolutionToFmt(); private: - static void av_evt_callback ( long dev_no, int event_type, void *param, void *user_data ); - int getVideoFrameCount(); - int mTvPlayDevId; - IObserver *mpObserver; - AVEvent mCurAvEvent; - int mCurVideoLayerMuteState; - int mCurDisableVideoColor; + static void av_evt_callback ( long dev_no, int event_type, void *param, void *user_data ); + int getVideoFrameCount(); + int mTvPlayDevId; + IObserver *mpObserver; + AVEvent mCurAvEvent; + int mCurVideoLayerMuteState; + int mCurDisableVideoColor; - int mFdAmVideo; + int mFdAmVideo; }; #endif diff --git a/tvapi/libtv/tv/CFbcCommunication.cpp b/tvapi/libtv/tv/CFbcCommunication.cpp index 0318d77..1e4749d 100644 --- a/tvapi/libtv/tv/CFbcCommunication.cpp +++ b/tvapi/libtv/tv/CFbcCommunication.cpp @@ -8,180 +8,180 @@ static CFbcCommunication *gSingletonFBC = NULL; CFbcCommunication *GetSingletonFBC() { - if (gSingletonFBC == NULL) { - gSingletonFBC = new CFbcCommunication(); - gSingletonFBC->start(); - } + if (gSingletonFBC == NULL) { + gSingletonFBC = new CFbcCommunication(); + gSingletonFBC->start(); + } - return gSingletonFBC; + return gSingletonFBC; } CFbcCommunication::CFbcCommunication() { - initCrc32Table(); + initCrc32Table(); - m_event.data.fd = -1; - m_event.events = EPOLLIN | EPOLLET; + m_event.data.fd = -1; + m_event.events = EPOLLIN | EPOLLET; - mpRevDataBuf = new unsigned char[512]; + mpRevDataBuf = new unsigned char[512]; - mUpgradeFlag = 0; - mbDownHaveSend = 0;//false - //mFbcMsgQueue.startMsgQueue(); - mbFbcKeyEnterDown = 0;//false - mFbcEnterKeyDownTime = -1; + mUpgradeFlag = 0; + mbDownHaveSend = 0;//false + //mFbcMsgQueue.startMsgQueue(); + mbFbcKeyEnterDown = 0;//false + mFbcEnterKeyDownTime = -1; } CFbcCommunication::~CFbcCommunication() { - m_event.data.fd = mSerialPort.getFd(); - m_event.events = EPOLLIN | EPOLLET; - mEpoll.del(mSerialPort.getFd(), &m_event); - closeAll(); - delete[] mpRevDataBuf; + m_event.data.fd = mSerialPort.getFd(); + m_event.events = EPOLLIN | EPOLLET; + mEpoll.del(mSerialPort.getFd(), &m_event); + closeAll(); + delete[] mpRevDataBuf; } int CFbcCommunication::start() { #if 1 - //int serial_port = config_get_int("TV", "fbc.communication.serial", SERIAL_C); - if (mSerialPort.OpenDevice(SERIAL_C) < 0) { - } else { + //int serial_port = config_get_int("TV", "fbc.communication.serial", SERIAL_C); + if (mSerialPort.OpenDevice(SERIAL_C) < 0) { + } else { #if 0 - LOGD("%s %d be called......\n", __FUNCTION__, __LINE__); - mSerialPort.set_opt(115200, 8, 1, 'N', 5000, 1); + LOGD("%s %d be called......\n", __FUNCTION__, __LINE__); + mSerialPort.set_opt(115200, 8, 1, 'N', 5000, 1); #else - LOGD("%s %d be called......\n", __FUNCTION__, __LINE__); - mSerialPort.setup_serial(); + LOGD("%s %d be called......\n", __FUNCTION__, __LINE__); + mSerialPort.setup_serial(); #endif - } + } - if (mEpoll.create() < 0) { - return -1; - } + if (mEpoll.create() < 0) { + return -1; + } - m_event.data.fd = mSerialPort.getFd(); - m_event.events = EPOLLIN | EPOLLET; - mEpoll.add(mSerialPort.getFd(), &m_event); + m_event.data.fd = mSerialPort.getFd(); + m_event.events = EPOLLIN | EPOLLET; + mEpoll.add(mSerialPort.getFd(), &m_event); #endif #if 0 - mHdmiCec.openFile(CEC_PATH); - m_event.data.fd = mHdmiCec.getFd(); - m_event.events = EPOLLIN | EPOLLET; - mEpoll.add(mHdmiCec.getFd(), &m_event); + mHdmiCec.openFile(CEC_PATH); + m_event.data.fd = mHdmiCec.getFd(); + m_event.events = EPOLLIN | EPOLLET; + mEpoll.add(mHdmiCec.getFd(), &m_event); #endif - //timeout for long - mEpoll.setTimeout(3000); + //timeout for long + mEpoll.setTimeout(3000); - this->run(); - mTvInput.run(); - return 0; + this->run(); + mTvInput.run(); + return 0; } void CFbcCommunication::testUart() { - unsigned char write_buf[64], read_buf[64]; - int idx = 0; - memset(write_buf, 0, sizeof(write_buf)); - memset(read_buf, 0, sizeof(read_buf)); - - write_buf[0] = 0x5a; - write_buf[1] = 0x5a; - write_buf[2] = 0xb; - write_buf[3] = 0x0; - write_buf[4] = 0x0; - write_buf[5] = 0x40; - write_buf[6] = 0x0; - - write_buf[7] = 0x2; - write_buf[8] = 0x3c; - write_buf[9] = 0x75; - write_buf[10] = 0x30; - //LOGD("to write ..........\n"); - mSerialPort.writeFile(write_buf, 11); - sleep(1); - //LOGD("to read........\n"); - mSerialPort.readFile(read_buf, 12); - for (idx = 0; idx < 12; idx++) - LOGD("the data is:0x%x\n", read_buf[idx]); - LOGD("end....\n"); + unsigned char write_buf[64], read_buf[64]; + int idx = 0; + memset(write_buf, 0, sizeof(write_buf)); + memset(read_buf, 0, sizeof(read_buf)); + + write_buf[0] = 0x5a; + write_buf[1] = 0x5a; + write_buf[2] = 0xb; + write_buf[3] = 0x0; + write_buf[4] = 0x0; + write_buf[5] = 0x40; + write_buf[6] = 0x0; + + write_buf[7] = 0x2; + write_buf[8] = 0x3c; + write_buf[9] = 0x75; + write_buf[10] = 0x30; + //LOGD("to write ..........\n"); + mSerialPort.writeFile(write_buf, 11); + sleep(1); + //LOGD("to read........\n"); + mSerialPort.readFile(read_buf, 12); + for (idx = 0; idx < 12; idx++) + LOGD("the data is:0x%x\n", read_buf[idx]); + LOGD("end....\n"); } void CFbcCommunication::showTime(struct timeval *_time) { - struct timeval curTime; - - if (_time == NULL) { - gettimeofday(&curTime, NULL); - } else { - curTime.tv_sec = _time->tv_sec; - curTime.tv_usec = _time->tv_usec; - } - if (curTime.tv_usec > 100000) { - LOGD("[%d.%d]", curTime.tv_sec, curTime.tv_usec); - } else if (curTime.tv_usec > 10000) { - LOGD("[%d.0%d]", curTime.tv_sec, curTime.tv_usec); - } else if (curTime.tv_usec > 1000) { - LOGD("[%d.00%d]", curTime.tv_sec, curTime.tv_usec); - } else if (curTime.tv_usec > 100) { - LOGD("[%d.000%d]", curTime.tv_sec, curTime.tv_usec); - } else if (curTime.tv_usec > 10) { - LOGD("[%d.0000%d]", curTime.tv_sec, curTime.tv_usec); - } else if (curTime.tv_usec > 1) { - LOGD("[%d.00000%d]", curTime.tv_sec, curTime.tv_usec); - } + struct timeval curTime; + + if (_time == NULL) { + gettimeofday(&curTime, NULL); + } else { + curTime.tv_sec = _time->tv_sec; + curTime.tv_usec = _time->tv_usec; + } + if (curTime.tv_usec > 100000) { + LOGD("[%d.%d]", curTime.tv_sec, curTime.tv_usec); + } else if (curTime.tv_usec > 10000) { + LOGD("[%d.0%d]", curTime.tv_sec, curTime.tv_usec); + } else if (curTime.tv_usec > 1000) { + LOGD("[%d.00%d]", curTime.tv_sec, curTime.tv_usec); + } else if (curTime.tv_usec > 100) { + LOGD("[%d.000%d]", curTime.tv_sec, curTime.tv_usec); + } else if (curTime.tv_usec > 10) { + LOGD("[%d.0000%d]", curTime.tv_sec, curTime.tv_usec); + } else if (curTime.tv_usec > 1) { + LOGD("[%d.00000%d]", curTime.tv_sec, curTime.tv_usec); + } } long CFbcCommunication::getTime(void) { - struct timeval tv; - gettimeofday(&tv, NULL); - return tv.tv_sec * 1000 + tv.tv_usec / 1000; + struct timeval tv; + gettimeofday(&tv, NULL); + return tv.tv_sec * 1000 + tv.tv_usec / 1000; } void CFbcCommunication::initCrc32Table() { - //生æˆCrc32的查询表 - int i, j; - unsigned int Crc; - for (i = 0; i < 256; i++) { - Crc = i; - for (j = 0; j < 8; j++) { - if (Crc & 1) - Crc = (Crc >> 1) ^ 0xEDB88320; - else - Crc >>= 1; - } - mCrc32Table[i] = Crc; - } + //生æˆCrc32的查询表 + int i, j; + unsigned int Crc; + for (i = 0; i < 256; i++) { + Crc = i; + for (j = 0; j < 8; j++) { + if (Crc & 1) + Crc = (Crc >> 1) ^ 0xEDB88320; + else + Crc >>= 1; + } + mCrc32Table[i] = Crc; + } } void CFbcCommunication::sendAckCmd(bool isOk) { - int crc32value = 0; - unsigned char ackcmd[12]; - ackcmd[0] = 0x5A; - ackcmd[1] = 0x5A; - ackcmd[2] = 12;//little endian - ackcmd[3] = 0x00; - ackcmd[4] = 0x80;//ack flag - ackcmd[5] = 0xff;//cmd id - if (isOk) { - ackcmd[6] = 0xfe; - ackcmd[7] = 0x7f; - } else { - ackcmd[6] = 0x80; - ackcmd[7] = 0x01; - } - //*((unsigned int*) (ackcmd + 8)) = GetCrc32(ackcmd, 8); - crc32value = Calcrc32(0, ackcmd, 8); - ackcmd[8] = (crc32value >> 0) & 0xFF; - ackcmd[9] = (crc32value >> 8) & 0xFF; - ackcmd[10] = (crc32value >> 16) & 0xFF; - ackcmd[11] = (crc32value >> 24) & 0xFF; - LOGD("to send ack and crc is:0x%x\n", crc32value); - sendDataOneway(COMM_DEV_SERIAL, ackcmd, 12, 0x00000000); + int crc32value = 0; + unsigned char ackcmd[12]; + ackcmd[0] = 0x5A; + ackcmd[1] = 0x5A; + ackcmd[2] = 12;//little endian + ackcmd[3] = 0x00; + ackcmd[4] = 0x80;//ack flag + ackcmd[5] = 0xff;//cmd id + if (isOk) { + ackcmd[6] = 0xfe; + ackcmd[7] = 0x7f; + } else { + ackcmd[6] = 0x80; + ackcmd[7] = 0x01; + } + //*((unsigned int*) (ackcmd + 8)) = GetCrc32(ackcmd, 8); + crc32value = Calcrc32(0, ackcmd, 8); + ackcmd[8] = (crc32value >> 0) & 0xFF; + ackcmd[9] = (crc32value >> 8) & 0xFF; + ackcmd[10] = (crc32value >> 16) & 0xFF; + ackcmd[11] = (crc32value >> 24) & 0xFF; + LOGD("to send ack and crc is:0x%x\n", crc32value); + sendDataOneway(COMM_DEV_SERIAL, ackcmd, 12, 0x00000000); } /* 函数å:GetCrc32 @@ -189,105 +189,105 @@ void CFbcCommunication::sendAckCmd(bool isOk) * å‚数:InStr ---指å‘需è¦è®¡ç®—CRC32值的å—符? * len ---为InStr的长帿 * 返回值为计算出æ¥çš„CRC32结果? */ unsigned int CFbcCommunication::GetCrc32(unsigned char *InStr, unsigned int len) { - //开始计算CRC32æ ¡éªŒä¾¿ - unsigned int Crc = 0xffffffff; - for (int i = 0; i < len; i++) { - Crc = (Crc >> 8) ^ mCrc32Table[(Crc & 0xFF) ^ InStr[i]]; - } + //开始计算CRC32æ ¡éªŒä¾¿ + unsigned int Crc = 0xffffffff; + for (int i = 0; i < len; i++) { + Crc = (Crc >> 8) ^ mCrc32Table[(Crc & 0xFF) ^ InStr[i]]; + } - Crc ^= 0xFFFFFFFF; - return Crc; + Crc ^= 0xFFFFFFFF; + return Crc; } unsigned int CFbcCommunication::Calcrc32(unsigned int crc, const unsigned char *ptr, unsigned int buf_len) { - static const unsigned int s_crc32[16] = { 0, 0x1db71064, 0x3b6e20c8, 0x26d930ac, 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c, - 0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c, 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c - }; - unsigned int crcu32 = crc; - if (buf_len < 0) - return 0; - if (!ptr) return 0; - crcu32 = ~crcu32; - while (buf_len--) { - unsigned char b = *ptr++; - crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b & 0xF)]; - crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b >> 4)]; - } - return ~crcu32; + static const unsigned int s_crc32[16] = { 0, 0x1db71064, 0x3b6e20c8, 0x26d930ac, 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c, + 0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c, 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c + }; + unsigned int crcu32 = crc; + if (buf_len < 0) + return 0; + if (!ptr) return 0; + crcu32 = ~crcu32; + while (buf_len--) { + unsigned char b = *ptr++; + crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b & 0xF)]; + crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b >> 4)]; + } + return ~crcu32; } int CFbcCommunication::sendDataOneway(int devno, unsigned char *pData, int dataLen, int flags) { - int ret = -1; - switch (devno) { - case COMM_DEV_CEC: { - ret = mHdmiCec.writeFile(pData, dataLen); - break; - } - case COMM_DEV_SERIAL: { - ret = mSerialPort.writeFile(pData, dataLen); - break; - } - default: - break; - } - return ret; + int ret = -1; + switch (devno) { + case COMM_DEV_CEC: { + ret = mHdmiCec.writeFile(pData, dataLen); + break; + } + case COMM_DEV_SERIAL: { + ret = mSerialPort.writeFile(pData, dataLen); + break; + } + default: + break; + } + return ret; } int CFbcCommunication::rmFromRequestList() { - return 0; + return 0; } int CFbcCommunication::addToRequestList() { - return 0; + return 0; } //timeout ms int CFbcCommunication::sendDataAndWaitReply(int devno, int waitForDevno, int waitForCmd, unsigned char *pData, int dataLen, int timeout, unsigned char *pReData, int *reDataLen, int flags) { - int ret = sendDataOneway(devno, pData, dataLen, flags); - if (ret < 0) return ret; - - mReplyList.WaitDevNo = waitForDevno; - mReplyList.WaitCmd = waitForCmd; - mReplyList.WaitTimeOut = timeout; - mReplyList.reDataLen = 0; - mReplyList.replyData = mpRevDataBuf; - addToRequestList(); - LOGD("wait dev:%d, cmd:0x%x, timeout:%d", mReplyList.WaitDevNo, mReplyList.WaitCmd, mReplyList.WaitTimeOut); - - mLock.lock(); - ret = mReplyList.WaitReplyCondition.waitRelative(mLock, timeout);//wait reply - LOGD("wait reply return = %d", __FUNCTION__, __LINE__, ret); - mLock.unlock(); - - // - if (mReplyList.reDataLen > 0) { //data have come in - *reDataLen = mReplyList.reDataLen; - memcpy(pReData, mReplyList.replyData, mReplyList.reDataLen); - mReplyList.reDataLen = 0; - return *reDataLen; - } else { - //timeout,not to wait continue - mReplyList.WaitDevNo = -1; - mReplyList.WaitCmd = 0xff; - return -1;//timeout but data not come. - } - return 0; + int ret = sendDataOneway(devno, pData, dataLen, flags); + if (ret < 0) return ret; + + mReplyList.WaitDevNo = waitForDevno; + mReplyList.WaitCmd = waitForCmd; + mReplyList.WaitTimeOut = timeout; + mReplyList.reDataLen = 0; + mReplyList.replyData = mpRevDataBuf; + addToRequestList(); + LOGD("wait dev:%d, cmd:0x%x, timeout:%d", mReplyList.WaitDevNo, mReplyList.WaitCmd, mReplyList.WaitTimeOut); + + mLock.lock(); + ret = mReplyList.WaitReplyCondition.waitRelative(mLock, timeout);//wait reply + LOGD("wait reply return = %d", __FUNCTION__, __LINE__, ret); + mLock.unlock(); + + // + if (mReplyList.reDataLen > 0) { //data have come in + *reDataLen = mReplyList.reDataLen; + memcpy(pReData, mReplyList.replyData, mReplyList.reDataLen); + mReplyList.reDataLen = 0; + return *reDataLen; + } else { + //timeout,not to wait continue + mReplyList.WaitDevNo = -1; + mReplyList.WaitCmd = 0xff; + return -1;//timeout but data not come. + } + return 0; } int CFbcCommunication::closeAll() { - mSerialPort.CloseDevice(); - return 0; + mSerialPort.CloseDevice(); + return 0; } int CFbcCommunication::SetUpgradeFlag(int flag) { - mUpgradeFlag = flag; - return 0; + mUpgradeFlag = flag; + return 0; } /* @@ -295,1629 +295,1629 @@ int CFbcCommunication::SetUpgradeFlag(int flag) */ int CFbcCommunication::handleCmd(COMM_DEV_TYPE_E fromDev, int *pData, int *pRetValue) { - fbc_command_t cmd_type = VPU_CMD_NULL; - int ret_value = 0; + fbc_command_t cmd_type = VPU_CMD_NULL; + int ret_value = 0; - if ((fromDev != COMM_DEV_SERIAL && fromDev != COMM_DEV_CEC) || pData == NULL || pRetValue == NULL) { - //LOGD("para error and returned!"); - return -1; - } + if ((fromDev != COMM_DEV_SERIAL && fromDev != COMM_DEV_CEC) || pData == NULL || pRetValue == NULL) { + //LOGD("para error and returned!"); + return -1; + } - cmd_type = (fbc_command_t)pData[0]; - LOGD("the cmd type is:0x%02x\n", cmd_type); - switch (cmd_type) { - case VPU_CMD_RED_GAIN_DEF: - cfbc_Set_Gain_Red(fromDev, pData[2]); - break; + cmd_type = (fbc_command_t)pData[0]; + LOGD("the cmd type is:0x%02x\n", cmd_type); + switch (cmd_type) { + case VPU_CMD_RED_GAIN_DEF: + cfbc_Set_Gain_Red(fromDev, pData[2]); + break; - case VPU_CMD_RED_GAIN_DEF|0x80: - cfbc_Get_Gain_Red(fromDev, &ret_value); - pRetValue[0] = VPU_CMD_RED_GAIN_DEF | 0x80; - pRetValue[1] = 3; - pRetValue[2] = ret_value; - break; + case VPU_CMD_RED_GAIN_DEF|0x80: + cfbc_Get_Gain_Red(fromDev, &ret_value); + pRetValue[0] = VPU_CMD_RED_GAIN_DEF | 0x80; + pRetValue[1] = 3; + pRetValue[2] = ret_value; + break; - case VPU_CMD_PATTEN_SEL: - cfbc_Set_Test_Pattern(fromDev, pData[2]); - break; + case VPU_CMD_PATTEN_SEL: + cfbc_Set_Test_Pattern(fromDev, pData[2]); + break; - case VPU_CMD_BACKLIGHT_DEF: - cfbc_Set_Backlight(fromDev, pData[2]); - break; + case VPU_CMD_BACKLIGHT_DEF: + cfbc_Set_Backlight(fromDev, pData[2]); + break; - case VPU_CMD_PATTEN_SEL|0x80: - cfbc_Get_Test_Pattern(fromDev, &ret_value); - pRetValue[0] = VPU_CMD_RED_GAIN_DEF | 0x80; - pRetValue[1] = 3; - pRetValue[2] = ret_value; - break; + case VPU_CMD_PATTEN_SEL|0x80: + cfbc_Get_Test_Pattern(fromDev, &ret_value); + pRetValue[0] = VPU_CMD_RED_GAIN_DEF | 0x80; + pRetValue[1] = 3; + pRetValue[2] = ret_value; + break; - default: - return -1; - } + default: + return -1; + } - return 0; + return 0; } int CFbcCommunication::uartReadStream(unsigned char *retData, int rd_max_len, int timeout) { - int readLen = 0, bufIndex = 0, haveRead = 0; - clock_t start_tm = clock(); + int readLen = 0, bufIndex = 0, haveRead = 0; + clock_t start_tm = clock(); - do { - readLen = mSerialPort.readFile(retData + bufIndex, rd_max_len - haveRead); - haveRead += readLen; - bufIndex += readLen; - if (haveRead == rd_max_len) { - return haveRead; - } + do { + readLen = mSerialPort.readFile(retData + bufIndex, rd_max_len - haveRead); + haveRead += readLen; + bufIndex += readLen; + if (haveRead == rd_max_len) { + return haveRead; + } - LOGD("readLen = %d, haveRead = %d\n", readLen, haveRead); + LOGD("readLen = %d, haveRead = %d\n", readLen, haveRead); - if (((clock() - start_tm) / (CLOCKS_PER_SEC / 1000)) > timeout) { - return haveRead; - } - } while (true); + if (((clock() - start_tm) / (CLOCKS_PER_SEC / 1000)) > timeout) { + return haveRead; + } + } while (true); - return haveRead; + return haveRead; } int CFbcCommunication::uartReadData(unsigned char *retData, int *retLen) { - unsigned char tempBuf[512]; - int cmdLen = 0; - int bufIndex = 0; - int readLen = 0; - - if (retData == NULL) { - LOGD("the retData is NULL\n"); - return 0; - } - - //leader codes 2 byte - memset(tempBuf, 0, sizeof(tempBuf)); - do { - readLen = mSerialPort.readFile(tempBuf + 0, 1); - if (tempBuf[0] == 0x5A) { - bufIndex = 1; - readLen = mSerialPort.readFile(tempBuf + 1, 1); - if (tempBuf[1] == 0x5A) { - bufIndex = 2; - LOGD("leading code coming...\n"); - break; - } else { - continue; - } - } else { - continue; - } - } while (true); - - //data len 2 byte - int needRead = 2, haveRead = 0; - do { - readLen = mSerialPort.readFile(tempBuf + bufIndex, needRead - haveRead); - haveRead += readLen; - bufIndex += readLen; - if (haveRead == needRead) { - break; - } - } while (true); - - //little endian - cmdLen = (tempBuf[3] << 8) + tempBuf[2]; - //cmd data cmdLen - 2 -2 - needRead = cmdLen - 4, haveRead = 0; - LOGD("cmdLen is:%d\n", cmdLen); - - do { - readLen = mSerialPort.readFile(tempBuf + bufIndex, needRead - haveRead); - haveRead += readLen; - bufIndex += readLen; - if (readLen > 0) { - LOGD("data readLen is:%d\n", readLen); - } - if (haveRead == needRead) { - break; - } - } while (true); - - unsigned int crc = 0; - if (cmdLen > 4) { - crc = Calcrc32(0, tempBuf, cmdLen - 4);//not include crc 4byte - } - unsigned int bufCrc = tempBuf[cmdLen - 4] | - tempBuf[cmdLen - 3] << 8 | - tempBuf[cmdLen - 2] << 16 | - tempBuf[cmdLen - 1] << 24; - int idx = 0; - - if (crc == bufCrc) { - memcpy(retData, tempBuf, cmdLen % 512); - *retLen = cmdLen; - return cmdLen; - } else { - return -1; - } + unsigned char tempBuf[512]; + int cmdLen = 0; + int bufIndex = 0; + int readLen = 0; + + if (retData == NULL) { + LOGD("the retData is NULL\n"); + return 0; + } + + //leader codes 2 byte + memset(tempBuf, 0, sizeof(tempBuf)); + do { + readLen = mSerialPort.readFile(tempBuf + 0, 1); + if (tempBuf[0] == 0x5A) { + bufIndex = 1; + readLen = mSerialPort.readFile(tempBuf + 1, 1); + if (tempBuf[1] == 0x5A) { + bufIndex = 2; + LOGD("leading code coming...\n"); + break; + } else { + continue; + } + } else { + continue; + } + } while (true); + + //data len 2 byte + int needRead = 2, haveRead = 0; + do { + readLen = mSerialPort.readFile(tempBuf + bufIndex, needRead - haveRead); + haveRead += readLen; + bufIndex += readLen; + if (haveRead == needRead) { + break; + } + } while (true); + + //little endian + cmdLen = (tempBuf[3] << 8) + tempBuf[2]; + //cmd data cmdLen - 2 -2 + needRead = cmdLen - 4, haveRead = 0; + LOGD("cmdLen is:%d\n", cmdLen); + + do { + readLen = mSerialPort.readFile(tempBuf + bufIndex, needRead - haveRead); + haveRead += readLen; + bufIndex += readLen; + if (readLen > 0) { + LOGD("data readLen is:%d\n", readLen); + } + if (haveRead == needRead) { + break; + } + } while (true); + + unsigned int crc = 0; + if (cmdLen > 4) { + crc = Calcrc32(0, tempBuf, cmdLen - 4);//not include crc 4byte + } + unsigned int bufCrc = tempBuf[cmdLen - 4] | + tempBuf[cmdLen - 3] << 8 | + tempBuf[cmdLen - 2] << 16 | + tempBuf[cmdLen - 1] << 24; + int idx = 0; + + if (crc == bufCrc) { + memcpy(retData, tempBuf, cmdLen % 512); + *retLen = cmdLen; + return cmdLen; + } else { + return -1; + } } int CFbcCommunication::processData(COMM_DEV_TYPE_E fromDev, unsigned char *pData, int dataLen) { - switch (fromDev) { - case COMM_DEV_CEC: { - if (mReplyList.WaitDevNo == fromDev && mReplyList.WaitCmd == pData[1]) { - mReplyList.reDataLen = dataLen; - memcpy(mReplyList.replyData, pData, dataLen); - mReplyList.WaitReplyCondition.signal(); - } else if (0) { - } - break; - } - case COMM_DEV_SERIAL: { - LOGD("to signal wait dataLen:0x%x, cmdId:0x%x\n", dataLen, pData[5]); - if (mReplyList.WaitDevNo == fromDev && mReplyList.WaitCmd == pData[5]) { - mReplyList.reDataLen = dataLen; - memcpy(mReplyList.replyData, pData, dataLen); - mReplyList.WaitReplyCondition.signal(); - } else { - unsigned char cmd = pData[5]; - //just test - const char *value; - if (!mbSendKeyCode) { - value = config_get_str(CFG_SECTION_FBCUART, "fbc_key_event_handle", "null"); - if ( strcmp ( value, "true" ) == 0 ) - mbSendKeyCode = true; - else mbSendKeyCode = false; - } + switch (fromDev) { + case COMM_DEV_CEC: { + if (mReplyList.WaitDevNo == fromDev && mReplyList.WaitCmd == pData[1]) { + mReplyList.reDataLen = dataLen; + memcpy(mReplyList.replyData, pData, dataLen); + mReplyList.WaitReplyCondition.signal(); + } else if (0) { + } + break; + } + case COMM_DEV_SERIAL: { + LOGD("to signal wait dataLen:0x%x, cmdId:0x%x\n", dataLen, pData[5]); + if (mReplyList.WaitDevNo == fromDev && mReplyList.WaitCmd == pData[5]) { + mReplyList.reDataLen = dataLen; + memcpy(mReplyList.replyData, pData, dataLen); + mReplyList.WaitReplyCondition.signal(); + } else { + unsigned char cmd = pData[5]; + //just test + const char *value; + if (!mbSendKeyCode) { + value = config_get_str(CFG_SECTION_FBCUART, "fbc_key_event_handle", "null"); + if ( strcmp ( value, "true" ) == 0 ) + mbSendKeyCode = true; + else mbSendKeyCode = false; + } #if(0) - switch (cmd) { - case 0x14: - if (mbSendKeyCode ) { - if (pData[6] >= 12 && pData[6] <= 16 ) { //left ---enter - unsigned char key = pData[6] ; - LOGD(" key:0x%x\n", key); - - //16 key 28 DPAD_CENTER - //12 key 103 DPAD_UP - //13 key 108 DPAD_DOWN - //14 key 105 DPAD_LEFT - //15 key 106 DPAD_RIGHT - int checkKey = 0; - if (key == 16) - checkKey = 28 ; - else if (key == 12) - checkKey = 103 ; - else if (key == 13) - checkKey = 108 ; - else if (key == 14) - checkKey = 105 ; - else if (key == 15) - checkKey = 106 ; - mTvInput.sendkeyCode(checkKey); - } - } - break; - - default: - break; - } + switch (cmd) { + case 0x14: + if (mbSendKeyCode ) { + if (pData[6] >= 12 && pData[6] <= 16 ) { //left ---enter + unsigned char key = pData[6] ; + LOGD(" key:0x%x\n", key); + + //16 key 28 DPAD_CENTER + //12 key 103 DPAD_UP + //13 key 108 DPAD_DOWN + //14 key 105 DPAD_LEFT + //15 key 106 DPAD_RIGHT + int checkKey = 0; + if (key == 16) + checkKey = 28 ; + else if (key == 12) + checkKey = 103 ; + else if (key == 13) + checkKey = 108 ; + else if (key == 14) + checkKey = 105 ; + else if (key == 15) + checkKey = 106 ; + mTvInput.sendkeyCode(checkKey); + } + } + break; + + default: + break; + } #else - static long curTime, lastTime; - int tmp; - static int st = 0, st_key_up = 0; - static int st_key_down = 0; - static int st_key_left = 0; - static int st_key_right = 0; - static int checkKey = 0, last_checkKey = 0; - - - switch (pData[6]) { //different key - case 12: //DPAD_UP - st_key_up = pData[5]; - if (st_key_up == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 103; - mTvInput.sendkeyCode(checkKey); - } else if (st_key_up == 0x1E) { //CMD_INPUT_UP - //checkKey = 103; - //mTvInput.sendkeyCode_Up(checkKey); - } - break; - - case 13: //DPAD_DOWN - st_key_down = pData[5]; - if (st_key_down == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 108; - mTvInput.sendkeyCode(checkKey); - } else if (st_key_down == 0x1E) { //CMD_INPUT_UP - //checkKey = 108; - //mTvInput.sendkeyCode_Up(checkKey); - } - break; - - case 14: //DPAD_LEFT - st = pData[5]; - if (st == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 105; - lastTime = 0; - mbFbcKeyEnterDown = 1;//true - mFbcEnterKeyDownTime = mTvInput.getNowMs(); - mTvInput.sendKeyRepeatStart(15, 1200, 1500);//code 4, dis 3, repeatTime 2 - } else if (st == 0x1E) { //CMD_INPUT_UP - checkKey = 105; - if (mbFbcKeyEnterDown == 1) { - mbFbcKeyEnterDown = 0;//false - mTvInput.sendKeyRepeatStop(); - int disFbcEnterKeyDown = mTvInput.getNowMs() - mFbcEnterKeyDownTime; - LOGD("disFbcEnterKeyDown = %d", disFbcEnterKeyDown); - if (disFbcEnterKeyDown > 1200) { //long down - } else { - mTvInput.sendkeyCode(105); - } - } - //checkKey = 105; - //mTvInput.sendkeyCode_Up(checkKey); - } - break; - - case 15: //DPAD_RIGHT - st_key_right = pData[5]; - if (st_key_right == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 106; - mTvInput.sendkeyCode(checkKey); - } else if (st_key_right == 0x1E) { //CMD_INPUT_UP - //checkKey = 106; - //mTvInput.sendkeyCode_Up(checkKey); - } - break; - - case 16: //DPAD_ENTER - st = pData[5]; - if (st == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 28; - lastTime = 0; - mbFbcKeyEnterDown = 1;//true - mFbcEnterKeyDownTime = mTvInput.getNowMs(); - mTvInput.sendKeyRepeatStart(158, 1200, 1500);//code 4, dis 3, repeatTime 2 - } else if (st == 0x1E) { //CMD_INPUT_UP - checkKey = 28; - if (mbFbcKeyEnterDown == 1) { - mbFbcKeyEnterDown = 0;//false - mTvInput.sendKeyRepeatStop(); - int disFbcEnterKeyDown = mTvInput.getNowMs() - mFbcEnterKeyDownTime; - LOGD("disFbcEnterKeyDown = %d", disFbcEnterKeyDown); - if (disFbcEnterKeyDown > 1200) { //long down - } else { - mTvInput.sendkeyCode(28); - } - } - } - break; - - case 20: //7key power - st_key_right = pData[5]; - if (st_key_right == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 116; - //mTvInput.sendIRkeyCode_Down(checkKey); - mTvInput.sendIRkeyCode(checkKey); - } else if (st_key_right == 0x1E) { //CMD_INPUT_UP - checkKey = 116; - //mTvInput.sendIRkeyCode_Up(checkKey); - } - break; - - case 26: //7key source - st_key_right = pData[5]; - if (st_key_right == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 466; - mTvInput.sendIRkeyCode_Down(checkKey); - } else if (st_key_right == 0x1E) { //CMD_INPUT_UP - checkKey = 466; - mTvInput.sendIRkeyCode_Up(checkKey); - } - break; - - case 27: //7key menu - st_key_right = pData[5]; - if (st_key_right == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 139; - mTvInput.sendkeyCode(checkKey); - } else if (st_key_right == 0x1E) { //CMD_INPUT_UP - //checkKey = 139; - //mTvInput.sendkeyCode_Up(checkKey); - } - break; - - case 40: //7key vol - - st_key_right = pData[5]; - if (st_key_right == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 114; - mTvInput.sendIRkeyCode_Down(checkKey); - } else if (st_key_right == 0x1E) { //CMD_INPUT_UP - checkKey = 114; - mTvInput.sendIRkeyCode_Up(checkKey); - } - break; - - case 41: //7key vol + - st_key_right = pData[5]; - if (st_key_right == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 115; - mTvInput.sendIRkeyCode_Down(checkKey); - } else if (st_key_right == 0x1E) { //CMD_INPUT_UP - checkKey = 115; - mTvInput.sendIRkeyCode_Up(checkKey); - } - break; - case 201: //SARADC_DPAD_UP - st_key_up = pData[5]; - if (st_key_up == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 950; - mTvInput.sendkeyCode_Down(checkKey); - } else if (st_key_up == 0x1E) { //CMD_INPUT_UP - mTvInput.sendkeyCode_Up(checkKey); - } - break; - - case 202: //SARADC_DOWN - st_key_down = pData[5]; - if (st_key_down == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 951; - mTvInput.sendkeyCode_Down(checkKey); - } else if (st_key_down == 0x1E) { //CMD_INPUT_UP - mTvInput.sendkeyCode_Up(checkKey); - } - break; - - case 203: //SARADC_LEFT - st = pData[5]; - if (st == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 952; - lastTime = 0; - mbFbcKeyEnterDown = 1;//true - mFbcEnterKeyDownTime = mTvInput.getNowMs(); - mTvInput.sendkeyCode_Down(checkKey); - mTvInput.sendKeyRepeatStart(955, 1200, 1500);//code 4, dis 3, repeatTime 2 - } else if (st == 0x1E) { //CMD_INPUT_UP - checkKey = 952; - if (mbFbcKeyEnterDown == 1) { - mbFbcKeyEnterDown = 0;//false - mTvInput.sendKeyRepeatStop(); - int disFbcEnterKeyDown = mTvInput.getNowMs() - mFbcEnterKeyDownTime; - LOGD("disFbcEnterKeyDown = %d", disFbcEnterKeyDown); - if (disFbcEnterKeyDown > 1200) { //long down - mTvInput.sendkeyCode_Up(955); - mTvInput.sendkeyCode_Up(952); - } else { - mTvInput.sendkeyCode_Up(checkKey); - } - } - } - break; - - - case 204: //SARADC_RIGHT - st_key_right = pData[5]; - if (st_key_right == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 953; - mTvInput.sendkeyCode_Down(checkKey); - } else if (st_key_right == 0x1E) { //CMD_INPUT_UP - mTvInput.sendkeyCode_Up(checkKey); - - } - break; - - case 205: //SARADC_ENTER - st_key_right = pData[5]; - if (st_key_right == 0x1D) { //CMD_INPUT_DOWN - last_checkKey = checkKey; - checkKey = 954; - mTvInput.sendkeyCode_Down(checkKey); - } else if (st_key_right == 0x1E) { //CMD_INPUT_UP - mTvInput.sendkeyCode_Up(checkKey); - } - - break; - } + static long curTime, lastTime; + int tmp; + static int st = 0, st_key_up = 0; + static int st_key_down = 0; + static int st_key_left = 0; + static int st_key_right = 0; + static int checkKey = 0, last_checkKey = 0; + + + switch (pData[6]) { //different key + case 12: //DPAD_UP + st_key_up = pData[5]; + if (st_key_up == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 103; + mTvInput.sendkeyCode(checkKey); + } else if (st_key_up == 0x1E) { //CMD_INPUT_UP + //checkKey = 103; + //mTvInput.sendkeyCode_Up(checkKey); + } + break; + + case 13: //DPAD_DOWN + st_key_down = pData[5]; + if (st_key_down == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 108; + mTvInput.sendkeyCode(checkKey); + } else if (st_key_down == 0x1E) { //CMD_INPUT_UP + //checkKey = 108; + //mTvInput.sendkeyCode_Up(checkKey); + } + break; + + case 14: //DPAD_LEFT + st = pData[5]; + if (st == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 105; + lastTime = 0; + mbFbcKeyEnterDown = 1;//true + mFbcEnterKeyDownTime = mTvInput.getNowMs(); + mTvInput.sendKeyRepeatStart(15, 1200, 1500);//code 4, dis 3, repeatTime 2 + } else if (st == 0x1E) { //CMD_INPUT_UP + checkKey = 105; + if (mbFbcKeyEnterDown == 1) { + mbFbcKeyEnterDown = 0;//false + mTvInput.sendKeyRepeatStop(); + int disFbcEnterKeyDown = mTvInput.getNowMs() - mFbcEnterKeyDownTime; + LOGD("disFbcEnterKeyDown = %d", disFbcEnterKeyDown); + if (disFbcEnterKeyDown > 1200) { //long down + } else { + mTvInput.sendkeyCode(105); + } + } + //checkKey = 105; + //mTvInput.sendkeyCode_Up(checkKey); + } + break; + + case 15: //DPAD_RIGHT + st_key_right = pData[5]; + if (st_key_right == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 106; + mTvInput.sendkeyCode(checkKey); + } else if (st_key_right == 0x1E) { //CMD_INPUT_UP + //checkKey = 106; + //mTvInput.sendkeyCode_Up(checkKey); + } + break; + + case 16: //DPAD_ENTER + st = pData[5]; + if (st == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 28; + lastTime = 0; + mbFbcKeyEnterDown = 1;//true + mFbcEnterKeyDownTime = mTvInput.getNowMs(); + mTvInput.sendKeyRepeatStart(158, 1200, 1500);//code 4, dis 3, repeatTime 2 + } else if (st == 0x1E) { //CMD_INPUT_UP + checkKey = 28; + if (mbFbcKeyEnterDown == 1) { + mbFbcKeyEnterDown = 0;//false + mTvInput.sendKeyRepeatStop(); + int disFbcEnterKeyDown = mTvInput.getNowMs() - mFbcEnterKeyDownTime; + LOGD("disFbcEnterKeyDown = %d", disFbcEnterKeyDown); + if (disFbcEnterKeyDown > 1200) { //long down + } else { + mTvInput.sendkeyCode(28); + } + } + } + break; + + case 20: //7key power + st_key_right = pData[5]; + if (st_key_right == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 116; + //mTvInput.sendIRkeyCode_Down(checkKey); + mTvInput.sendIRkeyCode(checkKey); + } else if (st_key_right == 0x1E) { //CMD_INPUT_UP + checkKey = 116; + //mTvInput.sendIRkeyCode_Up(checkKey); + } + break; + + case 26: //7key source + st_key_right = pData[5]; + if (st_key_right == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 466; + mTvInput.sendIRkeyCode_Down(checkKey); + } else if (st_key_right == 0x1E) { //CMD_INPUT_UP + checkKey = 466; + mTvInput.sendIRkeyCode_Up(checkKey); + } + break; + + case 27: //7key menu + st_key_right = pData[5]; + if (st_key_right == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 139; + mTvInput.sendkeyCode(checkKey); + } else if (st_key_right == 0x1E) { //CMD_INPUT_UP + //checkKey = 139; + //mTvInput.sendkeyCode_Up(checkKey); + } + break; + + case 40: //7key vol - + st_key_right = pData[5]; + if (st_key_right == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 114; + mTvInput.sendIRkeyCode_Down(checkKey); + } else if (st_key_right == 0x1E) { //CMD_INPUT_UP + checkKey = 114; + mTvInput.sendIRkeyCode_Up(checkKey); + } + break; + + case 41: //7key vol + + st_key_right = pData[5]; + if (st_key_right == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 115; + mTvInput.sendIRkeyCode_Down(checkKey); + } else if (st_key_right == 0x1E) { //CMD_INPUT_UP + checkKey = 115; + mTvInput.sendIRkeyCode_Up(checkKey); + } + break; + case 201: //SARADC_DPAD_UP + st_key_up = pData[5]; + if (st_key_up == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 950; + mTvInput.sendkeyCode_Down(checkKey); + } else if (st_key_up == 0x1E) { //CMD_INPUT_UP + mTvInput.sendkeyCode_Up(checkKey); + } + break; + + case 202: //SARADC_DOWN + st_key_down = pData[5]; + if (st_key_down == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 951; + mTvInput.sendkeyCode_Down(checkKey); + } else if (st_key_down == 0x1E) { //CMD_INPUT_UP + mTvInput.sendkeyCode_Up(checkKey); + } + break; + + case 203: //SARADC_LEFT + st = pData[5]; + if (st == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 952; + lastTime = 0; + mbFbcKeyEnterDown = 1;//true + mFbcEnterKeyDownTime = mTvInput.getNowMs(); + mTvInput.sendkeyCode_Down(checkKey); + mTvInput.sendKeyRepeatStart(955, 1200, 1500);//code 4, dis 3, repeatTime 2 + } else if (st == 0x1E) { //CMD_INPUT_UP + checkKey = 952; + if (mbFbcKeyEnterDown == 1) { + mbFbcKeyEnterDown = 0;//false + mTvInput.sendKeyRepeatStop(); + int disFbcEnterKeyDown = mTvInput.getNowMs() - mFbcEnterKeyDownTime; + LOGD("disFbcEnterKeyDown = %d", disFbcEnterKeyDown); + if (disFbcEnterKeyDown > 1200) { //long down + mTvInput.sendkeyCode_Up(955); + mTvInput.sendkeyCode_Up(952); + } else { + mTvInput.sendkeyCode_Up(checkKey); + } + } + } + break; + + + case 204: //SARADC_RIGHT + st_key_right = pData[5]; + if (st_key_right == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 953; + mTvInput.sendkeyCode_Down(checkKey); + } else if (st_key_right == 0x1E) { //CMD_INPUT_UP + mTvInput.sendkeyCode_Up(checkKey); + + } + break; + + case 205: //SARADC_ENTER + st_key_right = pData[5]; + if (st_key_right == 0x1D) { //CMD_INPUT_DOWN + last_checkKey = checkKey; + checkKey = 954; + mTvInput.sendkeyCode_Down(checkKey); + } else if (st_key_right == 0x1E) { //CMD_INPUT_UP + mTvInput.sendkeyCode_Up(checkKey); + } + + break; + } #endif - } - break; - } - default: { - break; - } - } - return 0; + } + break; + } + default: { + break; + } + } + return 0; } bool CFbcCommunication::threadLoop() { - unsigned char readFrameBuf[512]; - while (!exitPending()) { //requietexit() or requietexitWait() not call - while (mUpgradeFlag == 1) { - usleep(1000 * 1000); - } - - int num = mEpoll.wait(); - - while (mUpgradeFlag == 1) { - usleep(1000 * 1000); - } - - for (int i = 0; i < num; ++i) { - int fd = (mEpoll)[i].data.fd; - /** - * EPOLLIN event - */ - if ((mEpoll)[i].events & EPOLLIN) { - if (fd == mHdmiCec.getFd()) { //ce-----------------------------c - int bufIndex = 0; - int needRead = 4; - int haveRead = 0; - int idx = 0, readLen = 0; - do { - readLen = mHdmiCec.readFile(readFrameBuf + bufIndex, needRead - haveRead); - haveRead += readLen; - bufIndex += readLen; - //if(haveRead == needRead) break; - } while (0); - - if (readLen > 0) { - processData(COMM_DEV_CEC, readFrameBuf, readLen); - } else { - } - } else if (fd == mSerialPort.getFd()) { - //seria---------------------------l - int cmdLen = 0, idx = 0; - LOGD("serial data come"); - memset(readFrameBuf, 0, 512); - int ret = uartReadData(readFrameBuf, &cmdLen); - - if (ret == -1) { //data error - sendAckCmd(false); - } else if (readFrameBuf[4] == 0x80) { //ack - LOGD("is ack come"); + unsigned char readFrameBuf[512]; + while (!exitPending()) { //requietexit() or requietexitWait() not call + while (mUpgradeFlag == 1) { + usleep(1000 * 1000); + } + + int num = mEpoll.wait(); + + while (mUpgradeFlag == 1) { + usleep(1000 * 1000); + } + + for (int i = 0; i < num; ++i) { + int fd = (mEpoll)[i].data.fd; + /** + * EPOLLIN event + */ + if ((mEpoll)[i].events & EPOLLIN) { + if (fd == mHdmiCec.getFd()) { //ce-----------------------------c + int bufIndex = 0; + int needRead = 4; + int haveRead = 0; + int idx = 0, readLen = 0; + do { + readLen = mHdmiCec.readFile(readFrameBuf + bufIndex, needRead - haveRead); + haveRead += readLen; + bufIndex += readLen; + //if(haveRead == needRead) break; + } while (0); + + if (readLen > 0) { + processData(COMM_DEV_CEC, readFrameBuf, readLen); + } else { + } + } else if (fd == mSerialPort.getFd()) { + //seria---------------------------l + int cmdLen = 0, idx = 0; + LOGD("serial data come"); + memset(readFrameBuf, 0, 512); + int ret = uartReadData(readFrameBuf, &cmdLen); + + if (ret == -1) { //data error + sendAckCmd(false); + } else if (readFrameBuf[4] == 0x80) { //ack + LOGD("is ack come"); #ifdef TV_RESEND_UMUTE_TO_FBC - if (((readFrameBuf[7] << 8) | readFrameBuf[6]) == 0x8001 && - readFrameBuf[5] == AUDIO_CMD_SET_MUTE) { - LOGD("resend unmute to 101 avoid 101 receiving unmute timeout\n"); - Fbc_Set_Value_INT8(COMM_DEV_SERIAL, AUDIO_CMD_SET_MUTE, 1); - } + if (((readFrameBuf[7] << 8) | readFrameBuf[6]) == 0x8001 && + readFrameBuf[5] == AUDIO_CMD_SET_MUTE) { + LOGD("resend unmute to 101 avoid 101 receiving unmute timeout\n"); + Fbc_Set_Value_INT8(COMM_DEV_SERIAL, AUDIO_CMD_SET_MUTE, 1); + } #endif - } else { //not ack - sendAckCmd(true); - processData(COMM_DEV_SERIAL, readFrameBuf, cmdLen); - } - } - } + } else { //not ack + sendAckCmd(true); + processData(COMM_DEV_SERIAL, readFrameBuf, cmdLen); + } + } + } - /** - * EPOLLOUT event - */ - if ((mEpoll)[i].events & EPOLLOUT) { + /** + * EPOLLOUT event + */ + if ((mEpoll)[i].events & EPOLLOUT) { - } - } - } - //exit - //return true, run again, return false,not run. - LOGD("thread exited..........\n"); - return false; + } + } + } + //exit + //return true, run again, return false,not run. + LOGD("thread exited..........\n"); + return false; } int CFbcCommunication::Fbc_Set_Value_INT8(COMM_DEV_TYPE_E toDev, int cmd_type, int value) { - if (mUpgradeFlag == 1) { - return 0; - } - LOGD("%s cmd =0x%x, value=%d", __FUNCTION__, cmd_type, value); - if (toDev == COMM_DEV_CEC) { - unsigned char cmd[16], rxbuf[16]; - int rxlen = 0, idx = 0; - memset(cmd, 0, 16); - memset(rxbuf, 0, 16); - cmd[0] = 0x40; - cmd[1] = cmd_type; - cmd[2] = value; - sendDataOneway(COMM_DEV_CEC, cmd, 4, 0); - } else if (toDev == COMM_DEV_SERIAL) { - int crc32value = 0; - unsigned char write_buf[512]; - unsigned char rxbuf[512]; - int rxlen = 0, idx = 0; - - //leading code - write_buf[0] = 0x5a; - write_buf[1] = 0x5a; - //package length from begin to end - write_buf[2] = 0xb; - write_buf[3] = 0x0; - //Ack byte - write_buf[4] = 0x0; - //cmd ID - write_buf[5] = cmd_type; - //parameter - write_buf[6] = value; - //crc32 little Endian - crc32value = Calcrc32(0, write_buf, 7); - write_buf[7] = (crc32value >> 0) & 0xFF; - write_buf[8] = (crc32value >> 8) & 0xFF; - write_buf[9] = (crc32value >> 16) & 0xFF; - write_buf[10] = (crc32value >> 24) & 0xFF; - sendDataOneway(COMM_DEV_SERIAL, write_buf, write_buf[2], 0); - } - return 0; + if (mUpgradeFlag == 1) { + return 0; + } + LOGD("%s cmd =0x%x, value=%d", __FUNCTION__, cmd_type, value); + if (toDev == COMM_DEV_CEC) { + unsigned char cmd[16], rxbuf[16]; + int rxlen = 0, idx = 0; + memset(cmd, 0, 16); + memset(rxbuf, 0, 16); + cmd[0] = 0x40; + cmd[1] = cmd_type; + cmd[2] = value; + sendDataOneway(COMM_DEV_CEC, cmd, 4, 0); + } else if (toDev == COMM_DEV_SERIAL) { + int crc32value = 0; + unsigned char write_buf[512]; + unsigned char rxbuf[512]; + int rxlen = 0, idx = 0; + + //leading code + write_buf[0] = 0x5a; + write_buf[1] = 0x5a; + //package length from begin to end + write_buf[2] = 0xb; + write_buf[3] = 0x0; + //Ack byte + write_buf[4] = 0x0; + //cmd ID + write_buf[5] = cmd_type; + //parameter + write_buf[6] = value; + //crc32 little Endian + crc32value = Calcrc32(0, write_buf, 7); + write_buf[7] = (crc32value >> 0) & 0xFF; + write_buf[8] = (crc32value >> 8) & 0xFF; + write_buf[9] = (crc32value >> 16) & 0xFF; + write_buf[10] = (crc32value >> 24) & 0xFF; + sendDataOneway(COMM_DEV_SERIAL, write_buf, write_buf[2], 0); + } + return 0; } int CFbcCommunication::Fbc_Set_Value_INT32(COMM_DEV_TYPE_E toDev, int cmd_type, int value) { - if (mUpgradeFlag == 1) { - return 0; - } - - if (toDev == COMM_DEV_SERIAL) { - int crc32value = 0; - unsigned char write_buf[512]; - unsigned char rxbuf[512]; - int rxlen = 0, idx = 0; - - //leading code - write_buf[0] = 0x5a; - write_buf[1] = 0x5a; - //package length from begin to end - write_buf[2] = 14; - write_buf[3] = 0x0; - //Ack byte - write_buf[4] = 0x0; - //cmd ID - write_buf[5] = cmd_type; - //parameter - write_buf[6] = (value >> 0) & 0xFF; - write_buf[7] = (value >> 8) & 0xFF; - write_buf[8] = (value >> 16) & 0xFF; - write_buf[9] = (value >> 24) & 0xFF; - //crc32 little Endian - crc32value = Calcrc32(0, write_buf, 10); - write_buf[10] = (crc32value >> 0) & 0xFF; - write_buf[11] = (crc32value >> 8) & 0xFF; - write_buf[12] = (crc32value >> 16) & 0xFF; - write_buf[13] = (crc32value >> 24) & 0xFF; - - return sendDataOneway(COMM_DEV_SERIAL, write_buf, write_buf[2], 0); - } - return -1; + if (mUpgradeFlag == 1) { + return 0; + } + + if (toDev == COMM_DEV_SERIAL) { + int crc32value = 0; + unsigned char write_buf[512]; + unsigned char rxbuf[512]; + int rxlen = 0, idx = 0; + + //leading code + write_buf[0] = 0x5a; + write_buf[1] = 0x5a; + //package length from begin to end + write_buf[2] = 14; + write_buf[3] = 0x0; + //Ack byte + write_buf[4] = 0x0; + //cmd ID + write_buf[5] = cmd_type; + //parameter + write_buf[6] = (value >> 0) & 0xFF; + write_buf[7] = (value >> 8) & 0xFF; + write_buf[8] = (value >> 16) & 0xFF; + write_buf[9] = (value >> 24) & 0xFF; + //crc32 little Endian + crc32value = Calcrc32(0, write_buf, 10); + write_buf[10] = (crc32value >> 0) & 0xFF; + write_buf[11] = (crc32value >> 8) & 0xFF; + write_buf[12] = (crc32value >> 16) & 0xFF; + write_buf[13] = (crc32value >> 24) & 0xFF; + + return sendDataOneway(COMM_DEV_SERIAL, write_buf, write_buf[2], 0); + } + return -1; } int CFbcCommunication::Fbc_Get_Value_INT8(COMM_DEV_TYPE_E fromDev, int cmd_type, int *value) { - if (mUpgradeFlag == 1) { - return 0; - } - - LOGD("%s cmd =0x%x", __FUNCTION__, cmd_type); - - if (fromDev == COMM_DEV_CEC) { - unsigned char cmd[16], rxbuf[16]; - int rxlen = 0, idx = 0; - memset(cmd, 0, 16); - memset(rxbuf, 0, 16); - cmd[0] = 0x40; - cmd[1] = cmd_type; - sendDataAndWaitReply(COMM_DEV_CEC, COMM_DEV_CEC, cmd[1], cmd, 4, 0, rxbuf, &rxlen, 0); - *value = rxbuf[6]; - } else if (fromDev == COMM_DEV_SERIAL) { - int crc32value = 0, idx = 0, rxlen = 0; - unsigned char write_buf[16]; - unsigned char rxbuf[16]; - memset(rxbuf, 0, 16); - - //leading code - idx = 0; - write_buf[idx++] = 0x5a; - write_buf[idx++] = 0x5a; - //package length from begin to end - write_buf[idx++] = 0xa; - write_buf[idx++] = 0x0; - //Ack byte - write_buf[idx++] = 0x0; - //cmd ID - write_buf[idx++] = cmd_type; - //crc32 little Endian - crc32value = Calcrc32(0, write_buf, idx); - write_buf[idx++] = (crc32value >> 0) & 0xFF; - write_buf[idx++] = (crc32value >> 8) & 0xFF; - write_buf[idx++] = (crc32value >> 16) & 0xFF; - write_buf[idx++] = (crc32value >> 24) & 0xFF; - - sendDataAndWaitReply(COMM_DEV_SERIAL, COMM_DEV_SERIAL, write_buf[5], write_buf, write_buf[2], 2000, rxbuf, &rxlen, 0); - *value = rxbuf[6]; - } - return 0; + if (mUpgradeFlag == 1) { + return 0; + } + + LOGD("%s cmd =0x%x", __FUNCTION__, cmd_type); + + if (fromDev == COMM_DEV_CEC) { + unsigned char cmd[16], rxbuf[16]; + int rxlen = 0, idx = 0; + memset(cmd, 0, 16); + memset(rxbuf, 0, 16); + cmd[0] = 0x40; + cmd[1] = cmd_type; + sendDataAndWaitReply(COMM_DEV_CEC, COMM_DEV_CEC, cmd[1], cmd, 4, 0, rxbuf, &rxlen, 0); + *value = rxbuf[6]; + } else if (fromDev == COMM_DEV_SERIAL) { + int crc32value = 0, idx = 0, rxlen = 0; + unsigned char write_buf[16]; + unsigned char rxbuf[16]; + memset(rxbuf, 0, 16); + + //leading code + idx = 0; + write_buf[idx++] = 0x5a; + write_buf[idx++] = 0x5a; + //package length from begin to end + write_buf[idx++] = 0xa; + write_buf[idx++] = 0x0; + //Ack byte + write_buf[idx++] = 0x0; + //cmd ID + write_buf[idx++] = cmd_type; + //crc32 little Endian + crc32value = Calcrc32(0, write_buf, idx); + write_buf[idx++] = (crc32value >> 0) & 0xFF; + write_buf[idx++] = (crc32value >> 8) & 0xFF; + write_buf[idx++] = (crc32value >> 16) & 0xFF; + write_buf[idx++] = (crc32value >> 24) & 0xFF; + + sendDataAndWaitReply(COMM_DEV_SERIAL, COMM_DEV_SERIAL, write_buf[5], write_buf, write_buf[2], 2000, rxbuf, &rxlen, 0); + *value = rxbuf[6]; + } + return 0; } int CFbcCommunication::Fbc_Set_BatchValue(COMM_DEV_TYPE_E toDev, unsigned char *cmd_buf, int count) { - if (mUpgradeFlag == 1) { - return 0; - } - - if ( 512 <= count) { - return -1; - } - - if (toDev == COMM_DEV_CEC) { - unsigned char cmd[512], rxbuf[512]; - int rxlen = 0, idx = 0; - memset(cmd, 0, 512); - memset(rxbuf, 0, 512); - cmd[0] = 0x40; - for (idx = 0; idx < count; idx++) { - cmd[idx + 1] = cmd_buf[idx]; - } - sendDataOneway(COMM_DEV_CEC, cmd, count + 1, 0); - } else if (toDev == COMM_DEV_SERIAL) { - int crc32value = 0; - unsigned char write_buf[512]; - unsigned char rxbuf[512]; - int rxlen = 0, idx = 0; - - //leading code - write_buf[0] = 0x5a; - write_buf[1] = 0x5a; - //package length from begin to end - write_buf[2] = (count + 9) & 0xFF; - write_buf[3] = ((count + 9) >> 8) & 0xFF; - //Ack byte : 0x80-> ack package;0x00->normal package; - write_buf[4] = 0x00; - - for (idx = 0; idx < count; idx++) { - write_buf[idx + 5] = cmd_buf[idx]; - } - //crc32 little Endian - crc32value = Calcrc32(0, write_buf, count + 5); - write_buf[count + 5] = (crc32value >> 0) & 0xFF; - write_buf[count + 6] = (crc32value >> 8) & 0xFF; - write_buf[count + 7] = (crc32value >> 16) & 0xFF; - write_buf[count + 8] = (crc32value >> 24) & 0xFF; - sendDataOneway(COMM_DEV_SERIAL, write_buf, count + 9, 0); - } - return 0; + if (mUpgradeFlag == 1) { + return 0; + } + + if ( 512 <= count) { + return -1; + } + + if (toDev == COMM_DEV_CEC) { + unsigned char cmd[512], rxbuf[512]; + int rxlen = 0, idx = 0; + memset(cmd, 0, 512); + memset(rxbuf, 0, 512); + cmd[0] = 0x40; + for (idx = 0; idx < count; idx++) { + cmd[idx + 1] = cmd_buf[idx]; + } + sendDataOneway(COMM_DEV_CEC, cmd, count + 1, 0); + } else if (toDev == COMM_DEV_SERIAL) { + int crc32value = 0; + unsigned char write_buf[512]; + unsigned char rxbuf[512]; + int rxlen = 0, idx = 0; + + //leading code + write_buf[0] = 0x5a; + write_buf[1] = 0x5a; + //package length from begin to end + write_buf[2] = (count + 9) & 0xFF; + write_buf[3] = ((count + 9) >> 8) & 0xFF; + //Ack byte : 0x80-> ack package;0x00->normal package; + write_buf[4] = 0x00; + + for (idx = 0; idx < count; idx++) { + write_buf[idx + 5] = cmd_buf[idx]; + } + //crc32 little Endian + crc32value = Calcrc32(0, write_buf, count + 5); + write_buf[count + 5] = (crc32value >> 0) & 0xFF; + write_buf[count + 6] = (crc32value >> 8) & 0xFF; + write_buf[count + 7] = (crc32value >> 16) & 0xFF; + write_buf[count + 8] = (crc32value >> 24) & 0xFF; + sendDataOneway(COMM_DEV_SERIAL, write_buf, count + 9, 0); + } + return 0; } int CFbcCommunication::Fbc_Get_BatchValue(COMM_DEV_TYPE_E fromDev, unsigned char *cmd_buf, int count) { - if (mUpgradeFlag == 1) { - return 0; - } - - if ( 512 <= count) { - return -1; - } - int ret = 0; - // TODO: read value - if (fromDev == COMM_DEV_CEC) { - unsigned char cmd[512], rxbuf[512]; - int rxlen = 0, idx = 0; - memset(cmd, 0, 512); - memset(rxbuf, 0, 512); - cmd[0] = 0x40; - cmd[1] = cmd_buf[0]; - sendDataAndWaitReply(COMM_DEV_CEC, COMM_DEV_CEC, cmd[1], cmd, count + 1, 0, rxbuf, &rxlen, 0); - - if (rxlen > 2) { - for (idx = 0; idx < rxlen; idx++) { - cmd_buf[idx] = cmd[idx + 1]; - } - } - } else if (fromDev == COMM_DEV_SERIAL) { - int crc32value = 0, idx = 0, rxlen = 0; - unsigned char write_buf[512]; - unsigned char rxbuf[512]; - memset(write_buf, 0, 512); - memset(rxbuf, 0, 512); - - //leading code - write_buf[0] = 0x5a; - write_buf[1] = 0x5a; - //package length from begin to end - write_buf[2] = (count + 9) & 0xFF; - write_buf[3] = ((count + 9) >> 8) & 0xFF; - //Ack byte - write_buf[4] = 0x00; - //cmd ID - for (idx = 0; idx < count; idx++) { - write_buf[idx + 5] = cmd_buf[idx]; - } - //crc32 little Endian - crc32value = Calcrc32(0, write_buf, count + 5); - write_buf[count + 5] = (crc32value >> 0) & 0xFF; - write_buf[count + 6] = (crc32value >> 8) & 0xFF; - write_buf[count + 7] = (crc32value >> 16) & 0xFF; - write_buf[count + 8] = (crc32value >> 24) & 0xFF; - sendDataAndWaitReply(COMM_DEV_SERIAL, COMM_DEV_SERIAL, write_buf[5], write_buf, write_buf[2], 2000, rxbuf, &rxlen, 0); - - if (rxlen > 9) { - for (idx = 0; idx < (rxlen - 9); idx++) { - cmd_buf[idx] = rxbuf[idx + 5]; - } - } - ret = rxlen; - } - - return ret; + if (mUpgradeFlag == 1) { + return 0; + } + + if ( 512 <= count) { + return -1; + } + int ret = 0; + // TODO: read value + if (fromDev == COMM_DEV_CEC) { + unsigned char cmd[512], rxbuf[512]; + int rxlen = 0, idx = 0; + memset(cmd, 0, 512); + memset(rxbuf, 0, 512); + cmd[0] = 0x40; + cmd[1] = cmd_buf[0]; + sendDataAndWaitReply(COMM_DEV_CEC, COMM_DEV_CEC, cmd[1], cmd, count + 1, 0, rxbuf, &rxlen, 0); + + if (rxlen > 2) { + for (idx = 0; idx < rxlen; idx++) { + cmd_buf[idx] = cmd[idx + 1]; + } + } + } else if (fromDev == COMM_DEV_SERIAL) { + int crc32value = 0, idx = 0, rxlen = 0; + unsigned char write_buf[512]; + unsigned char rxbuf[512]; + memset(write_buf, 0, 512); + memset(rxbuf, 0, 512); + + //leading code + write_buf[0] = 0x5a; + write_buf[1] = 0x5a; + //package length from begin to end + write_buf[2] = (count + 9) & 0xFF; + write_buf[3] = ((count + 9) >> 8) & 0xFF; + //Ack byte + write_buf[4] = 0x00; + //cmd ID + for (idx = 0; idx < count; idx++) { + write_buf[idx + 5] = cmd_buf[idx]; + } + //crc32 little Endian + crc32value = Calcrc32(0, write_buf, count + 5); + write_buf[count + 5] = (crc32value >> 0) & 0xFF; + write_buf[count + 6] = (crc32value >> 8) & 0xFF; + write_buf[count + 7] = (crc32value >> 16) & 0xFF; + write_buf[count + 8] = (crc32value >> 24) & 0xFF; + sendDataAndWaitReply(COMM_DEV_SERIAL, COMM_DEV_SERIAL, write_buf[5], write_buf, write_buf[2], 2000, rxbuf, &rxlen, 0); + + if (rxlen > 9) { + for (idx = 0; idx < (rxlen - 9); idx++) { + cmd_buf[idx] = rxbuf[idx + 5]; + } + } + ret = rxlen; + } + + return ret; } int CFbcCommunication::cfbc_Set_Gain_Red(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_RED_GAIN_DEF, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_RED_GAIN_DEF, value); } int CFbcCommunication::cfbc_Get_Gain_Red(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_RED_GAIN_DEF | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_RED_GAIN_DEF | 0x80, value); } int CFbcCommunication::cfbc_Set_Gain_Green(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_GREEN_GAIN_DEF, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_GREEN_GAIN_DEF, value); } int CFbcCommunication::cfbc_Get_Gain_Green(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_GREEN_GAIN_DEF | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_GREEN_GAIN_DEF | 0x80, value); } int CFbcCommunication::cfbc_Set_Gain_Blue(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_BLUE_GAIN_DEF, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_BLUE_GAIN_DEF, value); } int CFbcCommunication::cfbc_Get_Gain_Blue(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_BLUE_GAIN_DEF | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_BLUE_GAIN_DEF | 0x80, value); } int CFbcCommunication::cfbc_Set_Offset_Red(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_PRE_RED_OFFSET_DEF, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_PRE_RED_OFFSET_DEF, value); } int CFbcCommunication::cfbc_Get_Offset_Red(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_PRE_RED_OFFSET_DEF | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_PRE_RED_OFFSET_DEF | 0x80, value); } int CFbcCommunication::cfbc_Set_Offset_Green(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_PRE_GREEN_OFFSET_DEF, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_PRE_GREEN_OFFSET_DEF, value); } int CFbcCommunication::cfbc_Get_Offset_Green(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_PRE_GREEN_OFFSET_DEF | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_PRE_GREEN_OFFSET_DEF | 0x80, value); } int CFbcCommunication::cfbc_Set_Offset_Blue(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_PRE_BLUE_OFFSET_DEF, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_PRE_BLUE_OFFSET_DEF, value); } int CFbcCommunication::cfbc_Get_Offset_Blue(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_PRE_BLUE_OFFSET_DEF | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_PRE_BLUE_OFFSET_DEF | 0x80, value); } int CFbcCommunication::cfbc_Set_WB_Initial(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_WB, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_WB, value); } int CFbcCommunication::cfbc_Get_WB_Initial(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_WB | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_WB | 0x80, value); } int CFbcCommunication::cfbc_Set_ColorTemp_Mode(COMM_DEV_TYPE_E fromDev, int value) { - int fbcValue = value; - switch (value) { - case 0: //standard - fbcValue = 1; - break; - case 1: //warm - fbcValue = 2; - break; - case 2: //cold - fbcValue = 0; - break; - default: - break; - } - LOGD("before set fbcValue = %d", fbcValue); - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_COLOR_TEMPERATURE_DEF, fbcValue); + int fbcValue = value; + switch (value) { + case 0: //standard + fbcValue = 1; + break; + case 1: //warm + fbcValue = 2; + break; + case 2: //cold + fbcValue = 0; + break; + default: + break; + } + LOGD("before set fbcValue = %d", fbcValue); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_COLOR_TEMPERATURE_DEF, fbcValue); } int CFbcCommunication::cfbc_Get_ColorTemp_Mode(COMM_DEV_TYPE_E fromDev, int *value) { - Fbc_Get_Value_INT8(fromDev, VPU_CMD_COLOR_TEMPERATURE_DEF | 0x80, value); + Fbc_Get_Value_INT8(fromDev, VPU_CMD_COLOR_TEMPERATURE_DEF | 0x80, value); - switch (*value) { - case 0: //cold - *value = 2; - break; - case 1: //standard - *value = 0; - break; - case 2: //warm - *value = 1; - break; - default: - break; - } + switch (*value) { + case 0: //cold + *value = 2; + break; + case 1: //standard + *value = 0; + break; + case 2: //warm + *value = 1; + break; + default: + break; + } - return 0; + return 0; } int CFbcCommunication::cfbc_Set_Test_Pattern(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_PATTEN_SEL, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_PATTEN_SEL, value); } int CFbcCommunication::cfbc_Get_Test_Pattern(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_PATTEN_SEL | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_PATTEN_SEL | 0x80, value); } int CFbcCommunication::cfbc_Set_Picture_Mode(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_PICTURE_MODE, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_PICTURE_MODE, value); } int CFbcCommunication::cfbc_Get_Picture_Mode(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_PICTURE_MODE | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_PICTURE_MODE | 0x80, value); } int CFbcCommunication::cfbc_Set_Contrast(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_CONTRAST_DEF, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_CONTRAST_DEF, value); } int CFbcCommunication::cfbc_Get_Contrast(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_CONTRAST_DEF | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_CONTRAST_DEF | 0x80, value); } int CFbcCommunication::cfbc_Set_Brightness(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_BRIGHTNESS_DEF, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_BRIGHTNESS_DEF, value); } int CFbcCommunication::cfbc_Get_Brightness(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_BRIGHTNESS_DEF | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_BRIGHTNESS_DEF | 0x80, value); } int CFbcCommunication::cfbc_Set_Saturation(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_COLOR_DEF, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_COLOR_DEF, value); } int CFbcCommunication::cfbc_Get_Saturation(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_COLOR_DEF | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_COLOR_DEF | 0x80, value); } int CFbcCommunication::cfbc_Set_HueColorTint(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_HUE_DEF, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_HUE_DEF, value); } int CFbcCommunication::cfbc_Get_HueColorTint(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_HUE_DEF | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_HUE_DEF | 0x80, value); } int CFbcCommunication::cfbc_Set_Backlight(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_BACKLIGHT_DEF, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_BACKLIGHT_DEF, value); } int CFbcCommunication::cfbc_Get_Backlight(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_BACKLIGHT_DEF | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_BACKLIGHT_DEF | 0x80, value); } int CFbcCommunication::cfbc_Set_Source(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_SOURCE, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_SOURCE, value); } int CFbcCommunication::cfbc_Get_Source(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_SOURCE | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_SOURCE | 0x80, value); } int CFbcCommunication::cfbc_Set_Mute(COMM_DEV_TYPE_E fromDev, int value) { - LOGD("cfbc_Set_Mute = %d", value); - return Fbc_Set_Value_INT8(fromDev, AUDIO_CMD_SET_MUTE, value); + LOGD("cfbc_Set_Mute = %d", value); + return Fbc_Set_Value_INT8(fromDev, AUDIO_CMD_SET_MUTE, value); } int CFbcCommunication::cfbc_Set_FBC_Audio_Source(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, AUDIO_CMD_SET_SOURCE, value); + return Fbc_Set_Value_INT8(fromDev, AUDIO_CMD_SET_SOURCE, value); } int CFbcCommunication::cfbc_Get_Mute(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, AUDIO_CMD_GET_MUTE, value); + return Fbc_Get_Value_INT8(fromDev, AUDIO_CMD_GET_MUTE, value); } int CFbcCommunication::cfbc_Set_Volume_Bar(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, AUDIO_CMD_SET_VOLUME_BAR, value); + return Fbc_Set_Value_INT8(fromDev, AUDIO_CMD_SET_VOLUME_BAR, value); } int CFbcCommunication::cfbc_Get_Volume_Bar(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, AUDIO_CMD_GET_VOLUME_BAR, value); + return Fbc_Get_Value_INT8(fromDev, AUDIO_CMD_GET_VOLUME_BAR, value); } int CFbcCommunication::cfbc_Set_Balance(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, AUDIO_CMD_SET_BALANCE, value); + return Fbc_Set_Value_INT8(fromDev, AUDIO_CMD_SET_BALANCE, value); } int CFbcCommunication::cfbc_Get_Balance(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, AUDIO_CMD_GET_BALANCE, value); + return Fbc_Get_Value_INT8(fromDev, AUDIO_CMD_GET_BALANCE, value); } int CFbcCommunication::cfbc_Set_Master_Volume(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, AUDIO_CMD_SET_MASTER_VOLUME, value); + return Fbc_Set_Value_INT8(fromDev, AUDIO_CMD_SET_MASTER_VOLUME, value); } int CFbcCommunication::cfbc_Get_Master_Volume(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, AUDIO_CMD_GET_MASTER_VOLUME, value); + return Fbc_Get_Value_INT8(fromDev, AUDIO_CMD_GET_MASTER_VOLUME, value); } int CFbcCommunication::cfbc_Set_CM(COMM_DEV_TYPE_E fromDev, unsigned char value) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = VPU_CMD_ENABLE; - cmd[1] = VPU_MODULE_CM2; - cmd[2] = value;//value:0~1 - return Fbc_Set_BatchValue(fromDev, cmd, 3); + cmd[0] = VPU_CMD_ENABLE; + cmd[1] = VPU_MODULE_CM2; + cmd[2] = value;//value:0~1 + return Fbc_Set_BatchValue(fromDev, cmd, 3); } int CFbcCommunication::cfbc_Get_CM(COMM_DEV_TYPE_E fromDev, int *value) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = VPU_CMD_ENABLE | 0x80; - cmd[1] = VPU_MODULE_CM2; + cmd[0] = VPU_CMD_ENABLE | 0x80; + cmd[1] = VPU_MODULE_CM2; - Fbc_Get_BatchValue(fromDev, cmd, 2); - *value = cmd[2]; + Fbc_Get_BatchValue(fromDev, cmd, 2); + *value = cmd[2]; - return 0; + return 0; } int CFbcCommunication::cfbc_Set_DNLP(COMM_DEV_TYPE_E fromDev, unsigned char value) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = VPU_CMD_ENABLE; - cmd[1] = VPU_MODULE_DNLP; - cmd[2] = value;//value:0~1 + cmd[0] = VPU_CMD_ENABLE; + cmd[1] = VPU_MODULE_DNLP; + cmd[2] = value;//value:0~1 - return Fbc_Set_BatchValue(fromDev, cmd, 3); + return Fbc_Set_BatchValue(fromDev, cmd, 3); } int CFbcCommunication::cfbc_Get_DNLP(COMM_DEV_TYPE_E fromDev, int *value) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = VPU_CMD_ENABLE | 0x80; - cmd[1] = VPU_MODULE_DNLP; + cmd[0] = VPU_CMD_ENABLE | 0x80; + cmd[1] = VPU_MODULE_DNLP; - Fbc_Get_BatchValue(fromDev, cmd, 2); - *value = cmd[2]; + Fbc_Get_BatchValue(fromDev, cmd, 2); + *value = cmd[2]; - return 0; + return 0; } int CFbcCommunication::cfbc_Get_FBC_MAINCODE_Version(COMM_DEV_TYPE_E fromDev, char sw_ver[], char build_time[], char git_ver[], char git_branch[], char build_name[]) { - int rx_len = 0, tmp_ind = 0; - unsigned char cmd[512]; + int rx_len = 0, tmp_ind = 0; + unsigned char cmd[512]; - if (sw_ver == NULL || build_time == NULL || git_ver == NULL || git_branch == NULL || build_name == NULL) { - return -1; - } + if (sw_ver == NULL || build_time == NULL || git_ver == NULL || git_branch == NULL || build_name == NULL) { + return -1; + } - memset(cmd, 0, 512); - cmd[0] = CMD_FBC_MAIN_CODE_VERSION; - rx_len = Fbc_Get_BatchValue(fromDev, cmd, 1); + memset(cmd, 0, 512); + cmd[0] = CMD_FBC_MAIN_CODE_VERSION; + rx_len = Fbc_Get_BatchValue(fromDev, cmd, 1); - sw_ver[0] = 0; - build_time[0] = 0; - git_ver[0] = 0; - git_branch[0] = 0; - build_name[0] = 0; + sw_ver[0] = 0; + build_time[0] = 0; + git_ver[0] = 0; + git_branch[0] = 0; + build_name[0] = 0; - if (rx_len <= 0) { - return -1; - } + if (rx_len <= 0) { + return -1; + } - if (cmd[0] != CMD_FBC_MAIN_CODE_VERSION || cmd[1] != 0x88 || cmd[2] != 0x99) { - return -1; - } + if (cmd[0] != CMD_FBC_MAIN_CODE_VERSION || cmd[1] != 0x88 || cmd[2] != 0x99) { + return -1; + } - tmp_ind = 3; + tmp_ind = 3; - strcpy(sw_ver, (char *)(cmd + tmp_ind)); - tmp_ind += strlen(sw_ver); - tmp_ind += 1; + strcpy(sw_ver, (char *)(cmd + tmp_ind)); + tmp_ind += strlen(sw_ver); + tmp_ind += 1; - strcpy(build_time, (char *)(cmd + tmp_ind)); - tmp_ind += strlen(build_time); - tmp_ind += 1; + strcpy(build_time, (char *)(cmd + tmp_ind)); + tmp_ind += strlen(build_time); + tmp_ind += 1; - strcpy(git_ver, (char *)(cmd + tmp_ind)); - tmp_ind += strlen(git_ver); - tmp_ind += 1; + strcpy(git_ver, (char *)(cmd + tmp_ind)); + tmp_ind += strlen(git_ver); + tmp_ind += 1; - strcpy(git_branch, (char *)(cmd + tmp_ind)); - tmp_ind += strlen(git_branch); - tmp_ind += 1; + strcpy(git_branch, (char *)(cmd + tmp_ind)); + tmp_ind += strlen(git_branch); + tmp_ind += 1; - strcpy(build_name, (char *)(cmd + tmp_ind)); - tmp_ind += strlen(build_name); - tmp_ind += 1; - LOGD("sw_ver=%s, buildt=%s, gitv=%s, gitb=%s,bn=%s", sw_ver, build_time, git_ver, git_branch, build_name); - return 0; + strcpy(build_name, (char *)(cmd + tmp_ind)); + tmp_ind += strlen(build_name); + tmp_ind += 1; + LOGD("sw_ver=%s, buildt=%s, gitv=%s, gitb=%s,bn=%s", sw_ver, build_time, git_ver, git_branch, build_name); + return 0; } int CFbcCommunication::cfbc_Set_FBC_Factory_SN(COMM_DEV_TYPE_E fromDev, const char *pSNval) { - unsigned char cmd[512]; - int len = strlen(pSNval); + unsigned char cmd[512]; + int len = strlen(pSNval); - memset(cmd, 0, 512); + memset(cmd, 0, 512); - cmd[0] = CMD_SET_FACTORY_SN; + cmd[0] = CMD_SET_FACTORY_SN; - memcpy(cmd + 1, pSNval, len); + memcpy(cmd + 1, pSNval, len); - LOGD("cmd : %s\n", cmd); + LOGD("cmd : %s\n", cmd); - return Fbc_Set_BatchValue(fromDev, cmd, len + 1); + return Fbc_Set_BatchValue(fromDev, cmd, len + 1); } int CFbcCommunication::cfbc_Get_FBC_Factory_SN(COMM_DEV_TYPE_E fromDev, char FactorySN[]) { - int rx_len = 0; - unsigned char cmd[512]; - memset(cmd, 0, 512); - cmd[0] = CMD_GET_FACTORY_SN; - rx_len = Fbc_Get_BatchValue(fromDev, cmd, 1); - if (rx_len <= 0) { - return -1; - } - strncpy(FactorySN, (char *)(cmd + 1), rx_len); + int rx_len = 0; + unsigned char cmd[512]; + memset(cmd, 0, 512); + cmd[0] = CMD_GET_FACTORY_SN; + rx_len = Fbc_Get_BatchValue(fromDev, cmd, 1); + if (rx_len <= 0) { + return -1; + } + strncpy(FactorySN, (char *)(cmd + 1), rx_len); - LOGD("panelModel=%s", FactorySN); - return 0; + LOGD("panelModel=%s", FactorySN); + return 0; } int CFbcCommunication::cfbc_Get_FBC_Get_PANel_INFO(COMM_DEV_TYPE_E fromDev, char panel_model[]) { - int rx_len = 0; - unsigned char cmd[512]; - memset(cmd, 0, 512); - cmd[0] = CMD_DEVICE_ID; - rx_len = Fbc_Get_BatchValue(fromDev, cmd, 1); - if (rx_len <= 0) { - return -1; - } - strcpy(panel_model, (char *)(cmd + 1)); + int rx_len = 0; + unsigned char cmd[512]; + memset(cmd, 0, 512); + cmd[0] = CMD_DEVICE_ID; + rx_len = Fbc_Get_BatchValue(fromDev, cmd, 1); + if (rx_len <= 0) { + return -1; + } + strcpy(panel_model, (char *)(cmd + 1)); - LOGD("panelModel=%s", panel_model); - return 0; + LOGD("panelModel=%s", panel_model); + return 0; } int CFbcCommunication::cfbc_Set_FBC_panel_power_switch(COMM_DEV_TYPE_E fromDev, int switch_val) { - unsigned char cmd[512]; + unsigned char cmd[512]; - memset(cmd, 0, 512); + memset(cmd, 0, 512); - cmd[0] = FBC_PANEL_POWER; - cmd[1] = switch_val; //0 is fbc panel power off, 1 is panel power on. + cmd[0] = FBC_PANEL_POWER; + cmd[1] = switch_val; //0 is fbc panel power off, 1 is panel power on. - return Fbc_Set_BatchValue(fromDev, cmd, 2); + return Fbc_Set_BatchValue(fromDev, cmd, 2); } int CFbcCommunication::cfbc_Set_FBC_suspend(COMM_DEV_TYPE_E fromDev, int switch_val) { - unsigned char cmd[512]; + unsigned char cmd[512]; - memset(cmd, 0, 512); + memset(cmd, 0, 512); - cmd[0] = FBC_SUSPEND_POWER; - cmd[1] = switch_val; //0 + cmd[0] = FBC_SUSPEND_POWER; + cmd[1] = switch_val; //0 - return Fbc_Set_BatchValue(fromDev, cmd, 2); + return Fbc_Set_BatchValue(fromDev, cmd, 2); } int CFbcCommunication::cfbc_Set_FBC_User_Setting_Default(COMM_DEV_TYPE_E fromDev, int param) { - unsigned char cmd[512]; + unsigned char cmd[512]; - memset(cmd, 0, 512); + memset(cmd, 0, 512); - cmd[0] = FBC_USER_SETTING_DEFAULT; - cmd[1] = param; //0 + cmd[0] = FBC_USER_SETTING_DEFAULT; + cmd[1] = param; //0 - return Fbc_Set_BatchValue(fromDev, cmd, 2); + return Fbc_Set_BatchValue(fromDev, cmd, 2); } int CFbcCommunication::cfbc_SendRebootToUpgradeCmd(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT32(fromDev, FBC_REBOOT_UPGRADE, value); + return Fbc_Set_Value_INT32(fromDev, FBC_REBOOT_UPGRADE, value); } int CFbcCommunication::cfbc_FBC_Send_Key_To_Fbc(COMM_DEV_TYPE_E fromDev, int keycode, int param) { - unsigned char cmd[512]; + unsigned char cmd[512]; - memset(cmd, 0, 512); + memset(cmd, 0, 512); - cmd[0] = CMD_ACTIVE_KEY; - cmd[1] = keycode; //0 + cmd[0] = CMD_ACTIVE_KEY; + cmd[1] = keycode; //0 - return Fbc_Set_BatchValue(fromDev, cmd, 2); + return Fbc_Set_BatchValue(fromDev, cmd, 2); } int CFbcCommunication::cfbc_Get_FBC_PANEL_REVERSE(COMM_DEV_TYPE_E fromDev, int *value) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = CMD_PANEL_INFO; - //0://panel reverse - //1://panel output_mode - //2://panel byte num - cmd[1] = 0; + cmd[0] = CMD_PANEL_INFO; + //0://panel reverse + //1://panel output_mode + //2://panel byte num + cmd[1] = 0; - Fbc_Get_BatchValue(fromDev, cmd, 2); - //cmd[0] cmdid-PANEL-INFO - //cmd[1] param[0] - panel reverse - *value = cmd[2]; + Fbc_Get_BatchValue(fromDev, cmd, 2); + //cmd[0] cmdid-PANEL-INFO + //cmd[1] param[0] - panel reverse + *value = cmd[2]; - return 0; + return 0; } int CFbcCommunication::cfbc_Get_FBC_PANEL_OUTPUT(COMM_DEV_TYPE_E fromDev, int *value) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = CMD_PANEL_INFO; - //0://panel reverse - //1://panel output_mode - //2://panel byte num - cmd[1] = 1; + cmd[0] = CMD_PANEL_INFO; + //0://panel reverse + //1://panel output_mode + //2://panel byte num + cmd[1] = 1; - Fbc_Get_BatchValue(fromDev, cmd, 2); - //cmd[0] cmdid-PANEL-INFO - //cmd[1] param[0] - panel reverse - *value = cmd[2]; + Fbc_Get_BatchValue(fromDev, cmd, 2); + //cmd[0] cmdid-PANEL-INFO + //cmd[1] param[0] - panel reverse + *value = cmd[2]; - return 0; + return 0; } int CFbcCommunication::cfbc_Set_FBC_project_id(COMM_DEV_TYPE_E fromDev, int prj_id) { - unsigned char cmd[512]; + unsigned char cmd[512]; - memset(cmd, 0, 512); + memset(cmd, 0, 512); - cmd[0] = CMD_SET_PROJECT_SELECT; - cmd[1] = prj_id; + cmd[0] = CMD_SET_PROJECT_SELECT; + cmd[1] = prj_id; - return Fbc_Set_BatchValue(fromDev, cmd, 2); + return Fbc_Set_BatchValue(fromDev, cmd, 2); } int CFbcCommunication::cfbc_Get_FBC_project_id(COMM_DEV_TYPE_E fromDev, int *prj_id) { - return Fbc_Get_Value_INT8(fromDev, CMD_GET_PROJECT_SELECT, prj_id); + return Fbc_Get_Value_INT8(fromDev, CMD_GET_PROJECT_SELECT, prj_id); } int CFbcCommunication::cfbc_Set_Gamma(COMM_DEV_TYPE_E fromDev, unsigned char value) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = VPU_CMD_ENABLE; - cmd[1] = VPU_MODULE_GAMMA; - cmd[2] = value;//value:0~1 + cmd[0] = VPU_CMD_ENABLE; + cmd[1] = VPU_MODULE_GAMMA; + cmd[2] = value;//value:0~1 - return Fbc_Set_BatchValue(fromDev, cmd, 3); + return Fbc_Set_BatchValue(fromDev, cmd, 3); } int CFbcCommunication::cfbc_Get_Gamma(COMM_DEV_TYPE_E fromDev, int *value) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = VPU_CMD_ENABLE | 0x80; - cmd[1] = VPU_MODULE_GAMMA; + cmd[0] = VPU_CMD_ENABLE | 0x80; + cmd[1] = VPU_MODULE_GAMMA; - Fbc_Get_BatchValue(fromDev, cmd, 2); - *value = cmd[2]; + Fbc_Get_BatchValue(fromDev, cmd, 2); + *value = cmd[2]; - return 0; + return 0; } int CFbcCommunication::cfbc_Set_VMute(COMM_DEV_TYPE_E fromDev, unsigned char value) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = VPU_CMD_USER_VMUTE; - cmd[1] = value; - LOGD("cfbc_Set_VMute=%d", cmd[1]); + cmd[0] = VPU_CMD_USER_VMUTE; + cmd[1] = value; + LOGD("cfbc_Set_VMute=%d", cmd[1]); - return Fbc_Set_BatchValue(fromDev, cmd, 2); + return Fbc_Set_BatchValue(fromDev, cmd, 2); } int CFbcCommunication::cfbc_Set_WhiteBalance_OnOff(COMM_DEV_TYPE_E fromDev, unsigned char value) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = VPU_CMD_ENABLE; - cmd[1] = VPU_MODULE_WB; - cmd[2] = value;//value:0~1 + cmd[0] = VPU_CMD_ENABLE; + cmd[1] = VPU_MODULE_WB; + cmd[2] = value;//value:0~1 - return Fbc_Set_BatchValue(fromDev, cmd, 3); + return Fbc_Set_BatchValue(fromDev, cmd, 3); } int CFbcCommunication::cfbc_Get_WhiteBalance_OnOff(COMM_DEV_TYPE_E fromDev, int *value) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = VPU_CMD_ENABLE | 0x80; - cmd[1] = VPU_MODULE_WB; + cmd[0] = VPU_CMD_ENABLE | 0x80; + cmd[1] = VPU_MODULE_WB; - Fbc_Get_BatchValue(fromDev, cmd, 2); - *value = cmd[2]; + Fbc_Get_BatchValue(fromDev, cmd, 2); + *value = cmd[2]; - return 0; + return 0; } int CFbcCommunication::cfbc_Set_WB_Batch(COMM_DEV_TYPE_E fromDev, unsigned char mode, unsigned char r_gain, unsigned char g_gain, unsigned char b_gain, unsigned char r_offset, unsigned char g_offset, unsigned char b_offset) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = VPU_CMD_WB_VALUE; - cmd[1] = mode; - cmd[2] = r_gain; - cmd[3] = g_gain; - cmd[4] = b_gain; - cmd[5] = r_offset; - cmd[6] = g_offset; - cmd[7] = b_offset; + cmd[0] = VPU_CMD_WB_VALUE; + cmd[1] = mode; + cmd[2] = r_gain; + cmd[3] = g_gain; + cmd[4] = b_gain; + cmd[5] = r_offset; + cmd[6] = g_offset; + cmd[7] = b_offset; - return Fbc_Set_BatchValue(fromDev, cmd, 8); + return Fbc_Set_BatchValue(fromDev, cmd, 8); } int CFbcCommunication::cfbc_TestPattern_Select(COMM_DEV_TYPE_E fromDev, int value) { - int ret = -1; - unsigned char cmd[512]; - memset(cmd, 0, 512); - - LOGD("Call vpp 63 2 1\n"); - cmd[0] = VPU_CMD_SRCIF; - cmd[1] = 2; - cmd[2] = 1; - - ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//close csc0 - - if (ret == 0) { - LOGD("Call vpp 9 11 1\n"); - memset(cmd, 0, 512); - cmd[0] = VPU_CMD_ENABLE; - cmd[1] = 11; - cmd[2] = 1; - ret = Fbc_Set_BatchValue(fromDev, cmd, 3); - if (ret == 0) { - memset(cmd, 0, 512); - LOGD("Call vpp 42 1-17\n"); - Fbc_Set_Value_INT8(fromDev, VPU_CMD_PATTEN_SEL, value); - } - } - - return ret; + int ret = -1; + unsigned char cmd[512]; + memset(cmd, 0, 512); + + LOGD("Call vpp 63 2 1\n"); + cmd[0] = VPU_CMD_SRCIF; + cmd[1] = 2; + cmd[2] = 1; + + ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//close csc0 + + if (ret == 0) { + LOGD("Call vpp 9 11 1\n"); + memset(cmd, 0, 512); + cmd[0] = VPU_CMD_ENABLE; + cmd[1] = 11; + cmd[2] = 1; + ret = Fbc_Set_BatchValue(fromDev, cmd, 3); + if (ret == 0) { + memset(cmd, 0, 512); + LOGD("Call vpp 42 1-17\n"); + Fbc_Set_Value_INT8(fromDev, VPU_CMD_PATTEN_SEL, value); + } + } + + return ret; } int CFbcCommunication::cfbc_WhiteBalance_GrayPattern_OnOff(COMM_DEV_TYPE_E fromDev, int onOff) { - int ret = -1; - unsigned char cmd[512]; - memset(cmd, 0, 512); - if (onOff == 0) { //On - LOGD("Call vpp 63 2 1"); - cmd[0] = VPU_CMD_SRCIF; - cmd[1] = 2; - cmd[2] = 1; - ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//close csc0 - if (ret == 0) { - LOGD("Call vpp 9 9 0"); - cmd[0] = VPU_CMD_ENABLE; - cmd[1] = 9; - cmd[2] = 0; - ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//close csc1 - if (ret == 0) { - LOGD("Call vpp 9 10 0"); - cmd[0] = VPU_CMD_ENABLE; - cmd[1] = 10; - cmd[2] = 0; - ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//close dnlp - if (ret == 0) { - LOGD("Call vpp 9 8 0"); - cmd[0] = VPU_CMD_ENABLE; - cmd[1] = 8; - cmd[2] = 0; - ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//close cm - } - } - } - - } else { //Off - LOGD("Call vpp 63 2 2"); - cmd[0] = VPU_CMD_SRCIF; - cmd[1] = 2; - cmd[2] = 2; - ret = Fbc_Set_BatchValue(fromDev, cmd, 3); - if (ret == 0) { - LOGD("Call vpp 9 9 1"); - cmd[0] = VPU_CMD_ENABLE; - cmd[1] = 9; - cmd[2] = 1; - ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//open csc1 - if (ret == 0) { - LOGD("Call vpp 9 10 1"); - cmd[0] = VPU_CMD_ENABLE; - cmd[1] = 10; - cmd[2] = 1; - ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//open dnlp - if (ret == 0) { - LOGD("Call vpp 9 8 1"); - cmd[0] = VPU_CMD_ENABLE; - cmd[1] = 8; - cmd[2] = 1; - ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//open cm - } - } - } - } - return ret; + int ret = -1; + unsigned char cmd[512]; + memset(cmd, 0, 512); + if (onOff == 0) { //On + LOGD("Call vpp 63 2 1"); + cmd[0] = VPU_CMD_SRCIF; + cmd[1] = 2; + cmd[2] = 1; + ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//close csc0 + if (ret == 0) { + LOGD("Call vpp 9 9 0"); + cmd[0] = VPU_CMD_ENABLE; + cmd[1] = 9; + cmd[2] = 0; + ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//close csc1 + if (ret == 0) { + LOGD("Call vpp 9 10 0"); + cmd[0] = VPU_CMD_ENABLE; + cmd[1] = 10; + cmd[2] = 0; + ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//close dnlp + if (ret == 0) { + LOGD("Call vpp 9 8 0"); + cmd[0] = VPU_CMD_ENABLE; + cmd[1] = 8; + cmd[2] = 0; + ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//close cm + } + } + } + + } else { //Off + LOGD("Call vpp 63 2 2"); + cmd[0] = VPU_CMD_SRCIF; + cmd[1] = 2; + cmd[2] = 2; + ret = Fbc_Set_BatchValue(fromDev, cmd, 3); + if (ret == 0) { + LOGD("Call vpp 9 9 1"); + cmd[0] = VPU_CMD_ENABLE; + cmd[1] = 9; + cmd[2] = 1; + ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//open csc1 + if (ret == 0) { + LOGD("Call vpp 9 10 1"); + cmd[0] = VPU_CMD_ENABLE; + cmd[1] = 10; + cmd[2] = 1; + ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//open dnlp + if (ret == 0) { + LOGD("Call vpp 9 8 1"); + cmd[0] = VPU_CMD_ENABLE; + cmd[1] = 8; + cmd[2] = 1; + ret = Fbc_Set_BatchValue(fromDev, cmd, 3);//open cm + } + } + } + } + return ret; } int CFbcCommunication::cfbc_WhiteBalance_SetGrayPattern(COMM_DEV_TYPE_E fromDev, unsigned char value) { - int ret = -1; - unsigned char cmd[512]; - memset(cmd, 0, 512); - cmd[0] = VPU_CMD_GRAY_PATTERN; - cmd[1] = value; - cmd[2] = value; - cmd[3] = value; - ret = Fbc_Set_BatchValue(fromDev, cmd, 4); - return ret; + int ret = -1; + unsigned char cmd[512]; + memset(cmd, 0, 512); + cmd[0] = VPU_CMD_GRAY_PATTERN; + cmd[1] = value; + cmd[2] = value; + cmd[3] = value; + ret = Fbc_Set_BatchValue(fromDev, cmd, 4); + return ret; } int CFbcCommunication::cfbc_Set_Auto_Backlight_OnOff(COMM_DEV_TYPE_E fromDev, unsigned char value) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = CMD_SET_AUTO_BACKLIGHT_ONFF; - cmd[1] = value; - LOGD("cfbc_Set_naturelight_onoff\n"); - return Fbc_Set_BatchValue(fromDev, cmd, 2); + cmd[0] = CMD_SET_AUTO_BACKLIGHT_ONFF; + cmd[1] = value; + LOGD("cfbc_Set_naturelight_onoff\n"); + return Fbc_Set_BatchValue(fromDev, cmd, 2); } int CFbcCommunication::cfbc_Get_Auto_Backlight_OnOff(COMM_DEV_TYPE_E fromDev, int *value) { - LOGD("cfbc_get_naturelight_onoff\n"); - return Fbc_Get_Value_INT8(fromDev, CMD_GET_AUTO_BACKLIGHT_ONFF, value); + LOGD("cfbc_get_naturelight_onoff\n"); + return Fbc_Get_Value_INT8(fromDev, CMD_GET_AUTO_BACKLIGHT_ONFF, value); } int CFbcCommunication::cfbc_Get_WB_Batch(COMM_DEV_TYPE_E fromDev, unsigned char mode, unsigned char *r_gain, unsigned char *g_gain, unsigned char *b_gain, unsigned char *r_offset, unsigned char *g_offset, unsigned char *b_offset) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = VPU_CMD_WB_VALUE | 0x80; - cmd[1] = mode; + cmd[0] = VPU_CMD_WB_VALUE | 0x80; + cmd[1] = mode; - Fbc_Get_BatchValue(fromDev, cmd, 2); - //*mode = cmd[1]; - *r_gain = cmd[2]; - *g_gain = cmd[3]; - *b_gain = cmd[4]; - *r_offset = cmd[5]; - *g_offset = cmd[6]; - *b_offset = cmd[7]; + Fbc_Get_BatchValue(fromDev, cmd, 2); + //*mode = cmd[1]; + *r_gain = cmd[2]; + *g_gain = cmd[3]; + *b_gain = cmd[4]; + *r_offset = cmd[5]; + *g_offset = cmd[6]; + *b_offset = cmd[7]; - return 0; + return 0; } int CFbcCommunication::cfbc_Set_backlight_onoff(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_BACKLIGHT_EN, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_BACKLIGHT_EN, value); } int CFbcCommunication::cfbc_Get_backlight_onoff(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, VPU_CMD_BACKLIGHT_EN, value); + return Fbc_Get_Value_INT8(fromDev, VPU_CMD_BACKLIGHT_EN, value); } int CFbcCommunication::cfbc_Set_LVDS_SSG_Set(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, CMD_LVDS_SSG_SET, value); + return Fbc_Set_Value_INT8(fromDev, CMD_LVDS_SSG_SET, value); } int CFbcCommunication::cfbc_Set_AUTO_ELEC_MODE(COMM_DEV_TYPE_E fromDev, int value) { - LOGD("%s cmd =0x%x, value=%d~~~~~~~~", __FUNCTION__, VPU_CMD_SET_ELEC_MODE, value); - return Fbc_Set_Value_INT8(fromDev, VPU_CMD_SET_ELEC_MODE, value); + LOGD("%s cmd =0x%x, value=%d~~~~~~~~", __FUNCTION__, VPU_CMD_SET_ELEC_MODE, value); + return Fbc_Set_Value_INT8(fromDev, VPU_CMD_SET_ELEC_MODE, value); } int CFbcCommunication::cfbc_Get_AUTO_ELEC_MODE(COMM_DEV_TYPE_E fromDev, int *value) { - return 0; + return 0; } int CFbcCommunication::cfbc_Set_Thermal_state(COMM_DEV_TYPE_E fromDev, int value) { - LOGD("%s cmd =0x%x, data%d ~~~~~~~~~\n", __FUNCTION__, CMD_HDMI_STAT, value); - //return Fbc_Set_Value_INT8(fromDev, CMD_HDMI_STAT, value); - return Fbc_Set_Value_INT32(fromDev, CMD_HDMI_STAT, value); + LOGD("%s cmd =0x%x, data%d ~~~~~~~~~\n", __FUNCTION__, CMD_HDMI_STAT, value); + //return Fbc_Set_Value_INT8(fromDev, CMD_HDMI_STAT, value); + return Fbc_Set_Value_INT32(fromDev, CMD_HDMI_STAT, value); } int CFbcCommunication::cfbc_Set_LightSensor_N310(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, 0x84, value); - // return Fbc_Set_Value_INT8(fromDev, CMD_LIGHT_SENSOR, value); + return Fbc_Set_Value_INT8(fromDev, 0x84, value); + // return Fbc_Set_Value_INT8(fromDev, CMD_LIGHT_SENSOR, value); } int CFbcCommunication::cfbc_Get_LightSensor_N310(COMM_DEV_TYPE_E fromDev, int *value) { - // return Fbc_Get_Value_INT8(fromDev, CMD_LIGHT_SENSOR|0x80, value); - return 0; + // return Fbc_Get_Value_INT8(fromDev, CMD_LIGHT_SENSOR|0x80, value); + return 0; } int CFbcCommunication::cfbc_Set_Dream_Panel_N310(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, 0x83, value); - // return Fbc_Set_Value_INT8(fromDev, CMD_DREAM_PANEL, value); + return Fbc_Set_Value_INT8(fromDev, 0x83, value); + // return Fbc_Set_Value_INT8(fromDev, CMD_DREAM_PANEL, value); } int CFbcCommunication::cfbc_Get_Dream_Panel_N310(COMM_DEV_TYPE_E fromDev, int *value) { - // return Fbc_Get_Value_INT8(fromDev, CMD_DREAM_PANEL|0x80, value); - return 0; + // return Fbc_Get_Value_INT8(fromDev, CMD_DREAM_PANEL|0x80, value); + return 0; } int CFbcCommunication::cfbc_Set_MULT_PQ_N310(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, 0x81, value); - // return Fbc_Set_Value_INT8(fromDev, CMD_MUTI_PQ, value); + return Fbc_Set_Value_INT8(fromDev, 0x81, value); + // return Fbc_Set_Value_INT8(fromDev, CMD_MUTI_PQ, value); } int CFbcCommunication::cfbc_Get_MULT_PQ_N310(COMM_DEV_TYPE_E fromDev, int *value) { - // return Fbc_Get_Value_INT8(fromDev, CMD_MUTI_PQ|0x80, value); - return 0; + // return Fbc_Get_Value_INT8(fromDev, CMD_MUTI_PQ|0x80, value); + return 0; } int CFbcCommunication::cfbc_Set_MEMC_N310(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, 0x82, value); - // return Fbc_Set_Value_INT8(fromDev, CMD_MEMC, value); + return Fbc_Set_Value_INT8(fromDev, 0x82, value); + // return Fbc_Set_Value_INT8(fromDev, CMD_MEMC, value); } int CFbcCommunication::cfbc_Get_MEMC_N310(COMM_DEV_TYPE_E fromDev, int *value) { - // return Fbc_Get_Value_INT8(fromDev, CMD_MEMC|0x80, value); - return 0; + // return Fbc_Get_Value_INT8(fromDev, CMD_MEMC|0x80, value); + return 0; } int CFbcCommunication::cfbc_Set_Bluetooth_IIS_onoff(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, CMD_BLUETOOTH_I2S_STATUS, value); + return Fbc_Set_Value_INT8(fromDev, CMD_BLUETOOTH_I2S_STATUS, value); } int CFbcCommunication::cfbc_Get_Bluetooth_IIS_onoff(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, CMD_BLUETOOTH_I2S_STATUS | 0x80, value); + return Fbc_Get_Value_INT8(fromDev, CMD_BLUETOOTH_I2S_STATUS | 0x80, value); } int CFbcCommunication::cfbc_Set_Led_onoff(COMM_DEV_TYPE_E fromDev, int val_1, int val_2, int val_3) { - unsigned char cmd[512]; - memset(cmd, 0, 512); + unsigned char cmd[512]; + memset(cmd, 0, 512); - cmd[0] = CMD_SET_LED_MODE; - cmd[1] = val_1; - cmd[2] = val_2; - cmd[3] = val_3; + cmd[0] = CMD_SET_LED_MODE; + cmd[1] = val_1; + cmd[2] = val_2; + cmd[3] = val_3; - return Fbc_Set_BatchValue(fromDev, cmd, 4); + return Fbc_Set_BatchValue(fromDev, cmd, 4); } int CFbcCommunication::cfbc_Set_LockN_state(COMM_DEV_TYPE_E fromDev, int value) { - LOGD("%s cmd =0x%x, data%d ~~~~~~~~~\n", __FUNCTION__, CMD_SET_LOCKN_DISABLE, value); - return Fbc_Set_Value_INT8(fromDev, CMD_SET_LOCKN_DISABLE, value); + LOGD("%s cmd =0x%x, data%d ~~~~~~~~~\n", __FUNCTION__, CMD_SET_LOCKN_DISABLE, value); + return Fbc_Set_Value_INT8(fromDev, CMD_SET_LOCKN_DISABLE, value); } int CFbcCommunication::cfbc_SET_SPLIT_SCREEN_DEMO(COMM_DEV_TYPE_E fromDev, int value) { - LOGD("%s,cmd[%#x], data[%d]\n", __FUNCTION__, CMD_SET_SPLIT_SCREEN_DEMO, value); - return Fbc_Set_Value_INT8(fromDev, CMD_SET_SPLIT_SCREEN_DEMO, value); + LOGD("%s,cmd[%#x], data[%d]\n", __FUNCTION__, CMD_SET_SPLIT_SCREEN_DEMO, value); + return Fbc_Set_Value_INT8(fromDev, CMD_SET_SPLIT_SCREEN_DEMO, value); } int CFbcCommunication::cfbc_Set_AP_STANDBY_N310(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, CMD_PANEL_ON_OFF, value); - // return 0; + return Fbc_Set_Value_INT8(fromDev, CMD_PANEL_ON_OFF, value); + // return 0; } int CFbcCommunication::cfbc_Get_AP_STANDBY_N310(COMM_DEV_TYPE_E fromDev, int *value) { - return Fbc_Get_Value_INT8(fromDev, CMD_PANEL_ON_OFF | 0x80, value); - // return 0; + return Fbc_Get_Value_INT8(fromDev, CMD_PANEL_ON_OFF | 0x80, value); + // return 0; } int CFbcCommunication::cfbc_Set_Fbc_Uboot_Stage(COMM_DEV_TYPE_E fromDev, int value) { - return Fbc_Set_Value_INT8(fromDev, CMD_SET_UBOOT_STAGE, value); + return Fbc_Set_Value_INT8(fromDev, CMD_SET_UBOOT_STAGE, value); } void CFbcCommunication::CFbcMsgQueue::handleMessage ( CMessage &msg ) { - LOGD ( "%s, CFbcCommunication::CFbcMsgQueue::handleMessage type = %d", __FUNCTION__, msg.mType ); + LOGD ( "%s, CFbcCommunication::CFbcMsgQueue::handleMessage type = %d", __FUNCTION__, msg.mType ); - switch ( msg.mType ) { - case TV_MSG_COMMON: - break; + switch ( msg.mType ) { + case TV_MSG_COMMON: + break; - case TV_MSG_SEND_KEY: { - LOGD("CFbcMsgQueue msg type = %d", msg.mType); - //CFbcCommunication *pFbc = ( CFbcCommunication * ) ( msg.mpData ); - //pFbc->mTvInput.sendkeyCode_Down(4); - //pFbc->mbDownHaveSend = 1;//true - break; - } + case TV_MSG_SEND_KEY: { + LOGD("CFbcMsgQueue msg type = %d", msg.mType); + //CFbcCommunication *pFbc = ( CFbcCommunication * ) ( msg.mpData ); + //pFbc->mTvInput.sendkeyCode_Down(4); + //pFbc->mbDownHaveSend = 1;//true + break; + } - default: - break; - } + default: + break; + } } diff --git a/tvapi/libtv/tv/CFbcCommunication.h b/tvapi/libtv/tv/CFbcCommunication.h index ba8b270..6bfb055 100644 --- a/tvapi/libtv/tv/CFbcCommunication.h +++ b/tvapi/libtv/tv/CFbcCommunication.h @@ -8,392 +8,392 @@ #include "tvutils//CTvInput.h" #include "../tvutils/CMsgQueue.h" typedef enum COMM_DEV_TYPE_NO { - COMM_DEV_CEC = 0, - COMM_DEV_SERIAL = 1, + COMM_DEV_CEC = 0, + COMM_DEV_SERIAL = 1, } COMM_DEV_TYPE_E; typedef enum vpu_modules_e { - VPU_MODULE_NULL = 0, - VPU_MODULE_VPU, //vpu uint - VPU_MODULE_TIMGEN, - VPU_MODULE_PATGEN, - VPU_MODULE_GAMMA, - VPU_MODULE_WB, //WhiteBalance - VPU_MODULE_BC, //Brightness&Contrast - VPU_MODULE_BCRGB, //RGB Brightness&Contrast - VPU_MODULE_CM2, - VPU_MODULE_CSC1, - VPU_MODULE_DNLP, - VPU_MODULE_CSC0, - VPU_MODULE_OSD, - VPU_MODULE_BLEND, - VPU_MODULE_DEMURE, //15 - VPU_MODULE_OUTPUT, //LVDS/VX1 output - VPU_MODULE_OSDDEC, //OSD decoder - VPU_MODULE_MAX, + VPU_MODULE_NULL = 0, + VPU_MODULE_VPU, //vpu uint + VPU_MODULE_TIMGEN, + VPU_MODULE_PATGEN, + VPU_MODULE_GAMMA, + VPU_MODULE_WB, //WhiteBalance + VPU_MODULE_BC, //Brightness&Contrast + VPU_MODULE_BCRGB, //RGB Brightness&Contrast + VPU_MODULE_CM2, + VPU_MODULE_CSC1, + VPU_MODULE_DNLP, + VPU_MODULE_CSC0, + VPU_MODULE_OSD, + VPU_MODULE_BLEND, + VPU_MODULE_DEMURE, //15 + VPU_MODULE_OUTPUT, //LVDS/VX1 output + VPU_MODULE_OSDDEC, //OSD decoder + VPU_MODULE_MAX, } vpu_modules_t; typedef enum fbc_command_e { - VPU_CMD_NULL = 0, - FBC_REBOOT_UPGRADE = 0x1, - FBC_USER_SETTING_DEFAULT = 0x02, - FBC_USER_SETTING_SET, - FBC_GET_HDCP_KEY, - FBC_PANEL_POWER, - FBC_SUSPEND_POWER, - //TOP CMD num:6 - VPU_CMD_INIT = 0x8, //parameter num 0 - VPU_CMD_ENABLE, //parameter num 1;bit0~6:module;bit7:enable(1) or disable(0) - VPU_CMD_BYPASS, //parameter num 1;bit0~6:module;bit7:bypass(1) or not(0) - VPU_CMD_OUTPUT_MUX, //parameter num 1;1:lvds;2:vx1;3:minilvds - VPU_CMD_TIMING, //parameter num 1;reference vpu_timing_t - VPU_CMD_SOURCE, //parameter num 1;reference vpu_source_t - VPU_CMD_GAMMA_MOD, //parameter num 1;reference vpu_gammamod_t - VPU_CMD_D2D3 = 0xf, //0xf:D2D3 - // + VPU_CMD_NULL = 0, + FBC_REBOOT_UPGRADE = 0x1, + FBC_USER_SETTING_DEFAULT = 0x02, + FBC_USER_SETTING_SET, + FBC_GET_HDCP_KEY, + FBC_PANEL_POWER, + FBC_SUSPEND_POWER, + //TOP CMD num:6 + VPU_CMD_INIT = 0x8, //parameter num 0 + VPU_CMD_ENABLE, //parameter num 1;bit0~6:module;bit7:enable(1) or disable(0) + VPU_CMD_BYPASS, //parameter num 1;bit0~6:module;bit7:bypass(1) or not(0) + VPU_CMD_OUTPUT_MUX, //parameter num 1;1:lvds;2:vx1;3:minilvds + VPU_CMD_TIMING, //parameter num 1;reference vpu_timing_t + VPU_CMD_SOURCE, //parameter num 1;reference vpu_source_t + VPU_CMD_GAMMA_MOD, //parameter num 1;reference vpu_gammamod_t + VPU_CMD_D2D3 = 0xf, //0xf:D2D3 + // - CMD_BRIDGE_SW_VER = 0x10, - CMD_DEVICE_ID, - CMD_CLIENT_TYPE, - CMD_DEVICE_NUM, - CMD_ACTIVE_KEY, - CMD_ACTIVE_STATUS, - CMD_PANEL_INFO, - CMD_LVDS_SSG_SET, + CMD_BRIDGE_SW_VER = 0x10, + CMD_DEVICE_ID, + CMD_CLIENT_TYPE, + CMD_DEVICE_NUM, + CMD_ACTIVE_KEY, + CMD_ACTIVE_STATUS, + CMD_PANEL_INFO, + CMD_LVDS_SSG_SET, - CMD_DBG_REGISTER_ACCESS = 0x18, - CMD_DBG_MEMORY_ACCESS, - CMD_DBG_SPI_ACCESS, - CMD_DBG_VPU_MEMORY_ACCESS, - CMD_DBG_MEMORY_TRANSFER, - CMD_INPUT_DOWN, - CMD_INPUT_UP, - CMD_FBC_MAIN_CODE_VERSION, + CMD_DBG_REGISTER_ACCESS = 0x18, + CMD_DBG_MEMORY_ACCESS, + CMD_DBG_SPI_ACCESS, + CMD_DBG_VPU_MEMORY_ACCESS, + CMD_DBG_MEMORY_TRANSFER, + CMD_INPUT_DOWN, + CMD_INPUT_UP, + CMD_FBC_MAIN_CODE_VERSION, - //0x1f reserved - //PQ+debug CMD num:32 - VPU_CMD_NATURE_LIGHT_EN = 0x20, //0 or 1;on or off ???? - VPU_CMD_BACKLIGHT_EN, //0 or 1;on or off - VPU_CMD_BRIGHTNESS, //parameter num 2;parameter1:distinguish two modules;parameter2:ui value - VPU_CMD_CONTRAST, //parameter num 2;parameter1:distinguish two modules;parameter2:ui value - VPU_CMD_BACKLIGHT, //parameter num 1; - VPU_CMD_RES1, //reserved - VPU_CMD_SATURATION, //parameter num 1; - VPU_CMD_DYNAMIC_CONTRAST, //0 or 1;?? - VPU_CMD_PICTURE_MODE, //?? - VPU_CMD_PATTERN_EN, //0 or 1;on or off - VPU_CMD_PATTEN_SEL, //0x2a parameter num 1;PATTEN SELECT - VPU_CMD_RES2, - VPU_CMD_RES3, - VPU_CMD_RES4, - VPU_CMD_RES5, - VPU_CMD_USER_VMUTE = 0x2e, - VPU_CMD_USER_GAMMA , - //0x30:sound_mode_def - VPU_CMD_COLOR_TEMPERATURE_DEF = 0x31, //def:factory setting - VPU_CMD_BRIGHTNESS_DEF, - VPU_CMD_CONTRAST_DEF, - VPU_CMD_COLOR_DEF, - VPU_CMD_HUE_DEF, - VPU_CMD_BACKLIGHT_DEF, - VPU_CMD_RES7, - VPU_CMD_AUTO_LUMA_EN = 0x38,//0 or 1;on or off;appoint to backlight? - VPU_CMD_HIST, //parameter num 0;read hist info - VPU_CMD_BLEND, //parameter num ?; - VPU_CMD_DEMURA, //parameter num ?; - VPU_CMD_CSC, //parameter num ?; - VPU_CMD_CM2, //parameter num 1;index - VPU_CMD_GAMMA, //parameter num 1;index - VPU_CMD_SRCIF, - //WB CMD num:10 - VPU_CMD_RED_GAIN_DEF = 0x40, - VPU_CMD_GREEN_GAIN_DEF, - VPU_CMD_BLUE_GAIN_DEF, - VPU_CMD_PRE_RED_OFFSET_DEF, - VPU_CMD_PRE_GREEN_OFFSET_DEF, - VPU_CMD_PRE_BLUE_OFFSET_DEF, - VPU_CMD_POST_RED_OFFSET_DEF, - VPU_CMD_POST_GREEN_OFFSET_DEF, - VPU_CMD_POST_BLUE_OFFSET_DEF, - VPU_CMD_RES9, - VPU_CMD_WB = 0x4a, - //DNLP PARM - VPU_CMD_DNLP_PARM, - VPU_CMD_WB_VALUE, - VPU_CMD_GRAY_PATTERN, - VPU_CMD_BURN, - CMD_HDMI_STAT, - VPU_CMD_READ = 0x80, - //VPU_CMD_HUE_ADJUST, //parameter num 1; - //VPU_CMD_WB, //parameter num 3;one parameter include two items so that six items can all be included - VPU_CMD_MAX = 50,//temp define 50 // + //0x1f reserved + //PQ+debug CMD num:32 + VPU_CMD_NATURE_LIGHT_EN = 0x20, //0 or 1;on or off ???? + VPU_CMD_BACKLIGHT_EN, //0 or 1;on or off + VPU_CMD_BRIGHTNESS, //parameter num 2;parameter1:distinguish two modules;parameter2:ui value + VPU_CMD_CONTRAST, //parameter num 2;parameter1:distinguish two modules;parameter2:ui value + VPU_CMD_BACKLIGHT, //parameter num 1; + VPU_CMD_RES1, //reserved + VPU_CMD_SATURATION, //parameter num 1; + VPU_CMD_DYNAMIC_CONTRAST, //0 or 1;?? + VPU_CMD_PICTURE_MODE, //?? + VPU_CMD_PATTERN_EN, //0 or 1;on or off + VPU_CMD_PATTEN_SEL, //0x2a parameter num 1;PATTEN SELECT + VPU_CMD_RES2, + VPU_CMD_RES3, + VPU_CMD_RES4, + VPU_CMD_RES5, + VPU_CMD_USER_VMUTE = 0x2e, + VPU_CMD_USER_GAMMA , + //0x30:sound_mode_def + VPU_CMD_COLOR_TEMPERATURE_DEF = 0x31, //def:factory setting + VPU_CMD_BRIGHTNESS_DEF, + VPU_CMD_CONTRAST_DEF, + VPU_CMD_COLOR_DEF, + VPU_CMD_HUE_DEF, + VPU_CMD_BACKLIGHT_DEF, + VPU_CMD_RES7, + VPU_CMD_AUTO_LUMA_EN = 0x38,//0 or 1;on or off;appoint to backlight? + VPU_CMD_HIST, //parameter num 0;read hist info + VPU_CMD_BLEND, //parameter num ?; + VPU_CMD_DEMURA, //parameter num ?; + VPU_CMD_CSC, //parameter num ?; + VPU_CMD_CM2, //parameter num 1;index + VPU_CMD_GAMMA, //parameter num 1;index + VPU_CMD_SRCIF, + //WB CMD num:10 + VPU_CMD_RED_GAIN_DEF = 0x40, + VPU_CMD_GREEN_GAIN_DEF, + VPU_CMD_BLUE_GAIN_DEF, + VPU_CMD_PRE_RED_OFFSET_DEF, + VPU_CMD_PRE_GREEN_OFFSET_DEF, + VPU_CMD_PRE_BLUE_OFFSET_DEF, + VPU_CMD_POST_RED_OFFSET_DEF, + VPU_CMD_POST_GREEN_OFFSET_DEF, + VPU_CMD_POST_BLUE_OFFSET_DEF, + VPU_CMD_RES9, + VPU_CMD_WB = 0x4a, + //DNLP PARM + VPU_CMD_DNLP_PARM, + VPU_CMD_WB_VALUE, + VPU_CMD_GRAY_PATTERN, + VPU_CMD_BURN, + CMD_HDMI_STAT, + VPU_CMD_READ = 0x80, + //VPU_CMD_HUE_ADJUST, //parameter num 1; + //VPU_CMD_WB, //parameter num 3;one parameter include two items so that six items can all be included + VPU_CMD_MAX = 50,//temp define 50 // - //audio cmd - AUDIO_CMD_SET_SOURCE = 0x50, - AUDIO_CMD_SET_MASTER_VOLUME, - AUDIO_CMD_SET_CHANNEL_VOLUME, - AUDIO_CMD_SET_SUBCHANNEL_VOLUME, - AUDIO_CMD_SET_MASTER_VOLUME_GAIN, - AUDIO_CMD_SET_CHANNEL_VOLUME_INDEX, - AUDIO_CMD_SET_VOLUME_BAR, - AUDIO_CMD_SET_MUTE, - AUDIO_CMD_SET_EQ_MODE, - AUDIO_CMD_SET_BALANCE, - AUDIO_CMD_GET_SOURCE, - AUDIO_CMD_GET_MASTER_VOLUME, - AUDIO_CMD_GET_CHANNEL_VOLUME, - AUDIO_CMD_GET_SUBCHANNEL_VOLUME, - AUDIO_CMD_GET_MASTER_VOLUME_GAIN, - AUDIO_CMD_GET_CHANNEL_VOLUME_INDEX, - AUDIO_CMD_GET_VOLUME_BAR, - AUDIO_CMD_GET_MUTE, - AUDIO_CMD_GET_EQ_MODE, - AUDIO_CMD_GET_BALANCE, + //audio cmd + AUDIO_CMD_SET_SOURCE = 0x50, + AUDIO_CMD_SET_MASTER_VOLUME, + AUDIO_CMD_SET_CHANNEL_VOLUME, + AUDIO_CMD_SET_SUBCHANNEL_VOLUME, + AUDIO_CMD_SET_MASTER_VOLUME_GAIN, + AUDIO_CMD_SET_CHANNEL_VOLUME_INDEX, + AUDIO_CMD_SET_VOLUME_BAR, + AUDIO_CMD_SET_MUTE, + AUDIO_CMD_SET_EQ_MODE, + AUDIO_CMD_SET_BALANCE, + AUDIO_CMD_GET_SOURCE, + AUDIO_CMD_GET_MASTER_VOLUME, + AUDIO_CMD_GET_CHANNEL_VOLUME, + AUDIO_CMD_GET_SUBCHANNEL_VOLUME, + AUDIO_CMD_GET_MASTER_VOLUME_GAIN, + AUDIO_CMD_GET_CHANNEL_VOLUME_INDEX, + AUDIO_CMD_GET_VOLUME_BAR, + AUDIO_CMD_GET_MUTE, + AUDIO_CMD_GET_EQ_MODE, + AUDIO_CMD_GET_BALANCE, - VPU_CMD_SET_ELEC_MODE = 0x64, - CMD_SET_LED_MODE = 0x65, + VPU_CMD_SET_ELEC_MODE = 0x64, + CMD_SET_LED_MODE = 0x65, - CMD_SET_FACTORY_SN = 0x66, - CMD_GET_FACTORY_SN, - CMD_COMMUNICATION_TEST, - CMD_CLR_SETTINGS_DEFAULT, - CMD_BLUETOOTH_I2S_STATUS = 0x6a, - CMD_PANEL_ON_OFF = 0x6b, + CMD_SET_FACTORY_SN = 0x66, + CMD_GET_FACTORY_SN, + CMD_COMMUNICATION_TEST, + CMD_CLR_SETTINGS_DEFAULT, + CMD_BLUETOOTH_I2S_STATUS = 0x6a, + CMD_PANEL_ON_OFF = 0x6b, - CMD_HDMI_REG = 0x70, - CMD_SET_PROJECT_SELECT = 0x71, - CMD_GET_PROJECT_SELECT = 0x72, - CMD_SET_LOCKN_DISABLE = 0x73, //0x73 - CMD_SET_SPLIT_SCREEN_DEMO = 0X74, - CMD_SET_UBOOT_STAGE = 0x7b, + CMD_HDMI_REG = 0x70, + CMD_SET_PROJECT_SELECT = 0x71, + CMD_GET_PROJECT_SELECT = 0x72, + CMD_SET_LOCKN_DISABLE = 0x73, //0x73 + CMD_SET_SPLIT_SCREEN_DEMO = 0X74, + CMD_SET_UBOOT_STAGE = 0x7b, - CMD_SET_AUTO_BACKLIGHT_ONFF = 0x85, - CMD_GET_AUTO_BACKLIGHT_ONFF = 0x86, + CMD_SET_AUTO_BACKLIGHT_ONFF = 0x85, + CMD_GET_AUTO_BACKLIGHT_ONFF = 0x86, } fbc_command_t; typedef struct REQUEST_REPLY_CMD { - CCondition WaitReplyCondition; - int WaitDevNo; - int WaitCmd; - int WaitTimeOut; - unsigned char *replyData; - int reDataLen; + CCondition WaitReplyCondition; + int WaitDevNo; + int WaitCmd; + int WaitTimeOut; + unsigned char *replyData; + int reDataLen; } REQUEST_REPLY_S; class CFbcCommunication: public CThread { public: - static const unsigned char CEC_CMD_WIFI = 0x01; - static const unsigned char CEC_CMD_ETHERNET = 0x02; - static const unsigned char CEC_CMD_3D_TIMING = 0x03; - static const unsigned char CEC_CMD_PANEL_REVERSE = 0x04; - static const unsigned char CEC_CMD_VPU_INIT = 0x08; - static const unsigned char CEC_CMD_VPU_ENABLE = 0x09; - static const unsigned char CEC_CMD_VPU_BYPASS = 0x0a; - static const unsigned char CEC_CMD_VPU_OUTPUT_MUX = 0x0b; - static const unsigned char CEC_CMD_VPU_TIMING = 0x0c; - static const unsigned char CEC_CMD_VPU_SOURCE = 0x0d; - static const unsigned char CEC_CMD_BRIDGE_SW_VER = 0x10; - static const unsigned char CEC_CMD_DEVICE_ID = 0x11; - static const unsigned char CEC_CMD_CLIENT_TYPE = 0x12; - static const unsigned char CEC_CMD_DEVICE_NUM = 0x13; - static const unsigned char CEC_CMD_ACTIVE_KEY = 0x14; - static const unsigned char CEC_CMD_ACTIVE_STATUS = 0x15; + static const unsigned char CEC_CMD_WIFI = 0x01; + static const unsigned char CEC_CMD_ETHERNET = 0x02; + static const unsigned char CEC_CMD_3D_TIMING = 0x03; + static const unsigned char CEC_CMD_PANEL_REVERSE = 0x04; + static const unsigned char CEC_CMD_VPU_INIT = 0x08; + static const unsigned char CEC_CMD_VPU_ENABLE = 0x09; + static const unsigned char CEC_CMD_VPU_BYPASS = 0x0a; + static const unsigned char CEC_CMD_VPU_OUTPUT_MUX = 0x0b; + static const unsigned char CEC_CMD_VPU_TIMING = 0x0c; + static const unsigned char CEC_CMD_VPU_SOURCE = 0x0d; + static const unsigned char CEC_CMD_BRIDGE_SW_VER = 0x10; + static const unsigned char CEC_CMD_DEVICE_ID = 0x11; + static const unsigned char CEC_CMD_CLIENT_TYPE = 0x12; + static const unsigned char CEC_CMD_DEVICE_NUM = 0x13; + static const unsigned char CEC_CMD_ACTIVE_KEY = 0x14; + static const unsigned char CEC_CMD_ACTIVE_STATUS = 0x15; - static const unsigned char CEC_CMD_DBG_REGISTER_ACCESS = 0x18; - static const unsigned char CEC_CMD_DBG_MEMORY_ACCESS = 0x19; - static const unsigned char CEC_CMD_DBG_SPI_ACCESS = 0x1a; - static const unsigned char CEC_CMD_DBG_VPU_MEMORY_ACCESS = 0x1b; - static const unsigned char CEC_CMD_DBG_MEMORY_TRANSFER = 0x1c; - static const unsigned char CEC_CMD_INPUT_KEY_DOWN = 0x1d; - static const unsigned char CEC_CMD_INPUT_KEY_UP = 0x1e; - static const unsigned char CEC_CMD_REBOOT = 0x1f; - static const unsigned char CEC_CMD_NATURE_LIGHT_ONOFF = 0x20; - static const unsigned char CEC_CMD_USR_BACKLIGHT_ONOFF = 0x21; - static const unsigned char CEC_CMD_USR_BRIGHTNESS = 0x22; - static const unsigned char CEC_CMD_USR_CONTRAST = 0x23; - static const unsigned char CEC_CMD_USR_BACKLIGHT = 0x24; - static const unsigned char CEC_CMD_USR_SATURATION = 0x26; - static const unsigned char CEC_CMD_USR_DYNAMIC_CONTRAST = 0x27; - static const unsigned char CEC_CMD_USR_PICTURE_MODE = 0x28; - static const unsigned char CEC_CMD_TEST_PATTERN_ONOFF = 0x29; - static const unsigned char CEC_CMD_TEST_PATTERN_SELECT = 0x2a; - static const unsigned char CEC_CMD_USER_GAMMA = 0x2f; - static const unsigned char CEC_CMD_DEF_SOUND_MODE = 0x30; - static const unsigned char CEC_CMD_DEF_COLOR_TEMPERATURE = 0x31; - static const unsigned char CEC_CMD_DEF_BRIGHTNESS = 0x32; - static const unsigned char CEC_CMD_DEF_CONTRAST = 0x33; - static const unsigned char CEC_CMD_DEF_COLOR = 0x34; - static const unsigned char CEC_CMD_DEF_BACKLIGHT = 0x36; - static const unsigned char CEC_CMD_AUTO_LUMA_ONOFF = 0x38; - static const unsigned char CEC_CMD_HISTOGRAM = 0x39; - static const unsigned char CEC_CMD_BLEND = 0x3a; - static const unsigned char CEC_CMD_DEMULA = 0x3b; - static const unsigned char CEC_CMD_COLOR_SPACE_CONVERSION = 0x3c; - static const unsigned char CEC_CMD_CM2 = 0x3d; - static const unsigned char CEC_CMD_DEF_RED_GAIN = 0x40; - static const unsigned char CEC_CMD_DEF_GREEN_GAIN = 0x41; - static const unsigned char CEC_CMD_DEF_BLUE_GAIN = 0x42; - static const unsigned char CEC_CMD_DEF_RED_OFFSET = 0x43; - static const unsigned char CEC_CMD_DEF_GREEN_OFFSET = 0x44; - static const unsigned char CEC_CMD_DEF_BLUE_OFFSET = 0x45; - static const unsigned char CEC_CMD_DEF_PRE_RED_OFFSET = 0x46; - static const unsigned char CEC_CMD_DEF_PRE_GREEN_OFFSET = 0x47; - static const unsigned char CEC_CMD_DEF_PRE_BLUE_OFFSET = 0x48; - static const unsigned char CEC_CMD_WHITEBALANCE = 0x4a; - static const unsigned char CEC_CMD_SET_SW_VERSION = 0x57; - static const unsigned char CEC_CMD_3D = 0xd0; + static const unsigned char CEC_CMD_DBG_REGISTER_ACCESS = 0x18; + static const unsigned char CEC_CMD_DBG_MEMORY_ACCESS = 0x19; + static const unsigned char CEC_CMD_DBG_SPI_ACCESS = 0x1a; + static const unsigned char CEC_CMD_DBG_VPU_MEMORY_ACCESS = 0x1b; + static const unsigned char CEC_CMD_DBG_MEMORY_TRANSFER = 0x1c; + static const unsigned char CEC_CMD_INPUT_KEY_DOWN = 0x1d; + static const unsigned char CEC_CMD_INPUT_KEY_UP = 0x1e; + static const unsigned char CEC_CMD_REBOOT = 0x1f; + static const unsigned char CEC_CMD_NATURE_LIGHT_ONOFF = 0x20; + static const unsigned char CEC_CMD_USR_BACKLIGHT_ONOFF = 0x21; + static const unsigned char CEC_CMD_USR_BRIGHTNESS = 0x22; + static const unsigned char CEC_CMD_USR_CONTRAST = 0x23; + static const unsigned char CEC_CMD_USR_BACKLIGHT = 0x24; + static const unsigned char CEC_CMD_USR_SATURATION = 0x26; + static const unsigned char CEC_CMD_USR_DYNAMIC_CONTRAST = 0x27; + static const unsigned char CEC_CMD_USR_PICTURE_MODE = 0x28; + static const unsigned char CEC_CMD_TEST_PATTERN_ONOFF = 0x29; + static const unsigned char CEC_CMD_TEST_PATTERN_SELECT = 0x2a; + static const unsigned char CEC_CMD_USER_GAMMA = 0x2f; + static const unsigned char CEC_CMD_DEF_SOUND_MODE = 0x30; + static const unsigned char CEC_CMD_DEF_COLOR_TEMPERATURE = 0x31; + static const unsigned char CEC_CMD_DEF_BRIGHTNESS = 0x32; + static const unsigned char CEC_CMD_DEF_CONTRAST = 0x33; + static const unsigned char CEC_CMD_DEF_COLOR = 0x34; + static const unsigned char CEC_CMD_DEF_BACKLIGHT = 0x36; + static const unsigned char CEC_CMD_AUTO_LUMA_ONOFF = 0x38; + static const unsigned char CEC_CMD_HISTOGRAM = 0x39; + static const unsigned char CEC_CMD_BLEND = 0x3a; + static const unsigned char CEC_CMD_DEMULA = 0x3b; + static const unsigned char CEC_CMD_COLOR_SPACE_CONVERSION = 0x3c; + static const unsigned char CEC_CMD_CM2 = 0x3d; + static const unsigned char CEC_CMD_DEF_RED_GAIN = 0x40; + static const unsigned char CEC_CMD_DEF_GREEN_GAIN = 0x41; + static const unsigned char CEC_CMD_DEF_BLUE_GAIN = 0x42; + static const unsigned char CEC_CMD_DEF_RED_OFFSET = 0x43; + static const unsigned char CEC_CMD_DEF_GREEN_OFFSET = 0x44; + static const unsigned char CEC_CMD_DEF_BLUE_OFFSET = 0x45; + static const unsigned char CEC_CMD_DEF_PRE_RED_OFFSET = 0x46; + static const unsigned char CEC_CMD_DEF_PRE_GREEN_OFFSET = 0x47; + static const unsigned char CEC_CMD_DEF_PRE_BLUE_OFFSET = 0x48; + static const unsigned char CEC_CMD_WHITEBALANCE = 0x4a; + static const unsigned char CEC_CMD_SET_SW_VERSION = 0x57; + static const unsigned char CEC_CMD_3D = 0xd0; - friend class CTvMsgQueue; - class CFbcMsgQueue: public CMsgQueueThread { - public: - static const int TV_MSG_COMMON = 0; - static const int TV_MSG_SEND_KEY = 1; - private: - virtual void handleMessage ( CMessage &msg ); - }; - CFbcCommunication(); - ~CFbcCommunication(); - int start(); - //--------------------------------------------- + friend class CTvMsgQueue; + class CFbcMsgQueue: public CMsgQueueThread { + public: + static const int TV_MSG_COMMON = 0; + static const int TV_MSG_SEND_KEY = 1; + private: + virtual void handleMessage ( CMessage &msg ); + }; + CFbcCommunication(); + ~CFbcCommunication(); + int start(); + //--------------------------------------------- - //--------------------------------------------- - void testUart(); - int handleCmd(COMM_DEV_TYPE_E fromDev, int cmd[], int *pRetValue); - int sendDataOneway(int devno, unsigned char *pData, int dataLen, int flags); - int sendDataAndWaitReply(int devno, int waitForDevno, int waitForCmd, unsigned char *pData, int dataLen, int timeout, unsigned char *pReData, int *reDataLen, int flags); - int closeAll(); - int SetUpgradeFlag(int flag); - int uartReadStream(unsigned char *retData, int rd_max_len, int timeout); - unsigned int Calcrc32(unsigned int crc, const unsigned char *ptr, unsigned int buf_len); - int cfbc_Set_Gain_Red(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Gain_Red(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Gain_Green(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Gain_Green(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Gain_Blue(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Gain_Blue(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Offset_Red(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Offset_Red(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Offset_Green(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Offset_Green(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Offset_Blue(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Offset_Blue(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_WB_Initial(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_WB_Initial(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_ColorTemp_Mode(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_ColorTemp_Mode(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Test_Pattern(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Test_Pattern(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Picture_Mode(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Picture_Mode(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Contrast(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Contrast(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Brightness(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Brightness(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Saturation(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Saturation(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_HueColorTint(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_HueColorTint(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Backlight(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Backlight(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Source(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Source(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Mute(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Mute(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Volume_Bar(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Volume_Bar(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Balance(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Balance(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Master_Volume(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Master_Volume(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_CM(COMM_DEV_TYPE_E fromDev, unsigned char value); - int cfbc_Get_CM(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_DNLP(COMM_DEV_TYPE_E fromDev, unsigned char value); - int cfbc_Get_DNLP(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Gamma(COMM_DEV_TYPE_E fromDev, unsigned char value); - int cfbc_Get_Gamma(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_WhiteBalance_OnOff(COMM_DEV_TYPE_E fromDev, unsigned char value); - int cfbc_Get_WhiteBalance_OnOff(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Auto_Backlight_OnOff(COMM_DEV_TYPE_E fromDev, unsigned char value); - int cfbc_Get_Auto_Backlight_OnOff(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_WhiteBalance_GrayPattern_OnOff(COMM_DEV_TYPE_E fromDev, int onOff); - int cfbc_TestPattern_Select(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_WhiteBalance_SetGrayPattern(COMM_DEV_TYPE_E fromDev, unsigned char value); - int cfbc_Get_WB_Batch(COMM_DEV_TYPE_E fromDev, unsigned char mode, unsigned char *r_gain, unsigned char *g_gain, unsigned char *b_gain, unsigned char *r_offset, unsigned char *g_offset, unsigned char *b_offset); - int cfbc_Set_WB_Batch(COMM_DEV_TYPE_E fromDev, unsigned char mode, unsigned char r_gain, unsigned char g_gain, unsigned char b_gain, unsigned char r_offset, unsigned char g_offset, unsigned char b_offset); - int cfbc_Set_backlight_onoff(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_backlight_onoff(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_LVDS_SSG_Set(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Set_AUTO_ELEC_MODE(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_AUTO_ELEC_MODE(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Get_FBC_MAINCODE_Version(COMM_DEV_TYPE_E fromDev, char sw_ver[], char build_time[], char git_ver[], char git_branch[], char build_name[]); - int cfbc_Get_FBC_Get_PANel_INFO(COMM_DEV_TYPE_E fromDev, char panel_model[]); - int cfbc_Set_FBC_panel_power_switch(COMM_DEV_TYPE_E fromDev, int switch_val); - int cfbc_Set_FBC_suspend(COMM_DEV_TYPE_E fromDev, int switch_val); - int cfbc_FBC_Send_Key_To_Fbc(COMM_DEV_TYPE_E fromDev, int keycode, int param); - int cfbc_Get_FBC_PANEL_REVERSE(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Get_FBC_PANEL_OUTPUT(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_FBC_project_id(COMM_DEV_TYPE_E fromDev, int prj_id); - int cfbc_Get_FBC_project_id(COMM_DEV_TYPE_E fromDev, int *prj_id); - int cfbc_SendRebootToUpgradeCmd(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Set_FBC_User_Setting_Default(COMM_DEV_TYPE_E fromDev, int param); - int cfbc_Set_FBC_Factory_SN(COMM_DEV_TYPE_E fromDev, const char *pSNval) ; - int cfbc_Get_FBC_Factory_SN(COMM_DEV_TYPE_E fromDev, char FactorySN[]); - int cfbc_Set_FBC_Audio_Source(COMM_DEV_TYPE_E fromDev, int value); + //--------------------------------------------- + void testUart(); + int handleCmd(COMM_DEV_TYPE_E fromDev, int cmd[], int *pRetValue); + int sendDataOneway(int devno, unsigned char *pData, int dataLen, int flags); + int sendDataAndWaitReply(int devno, int waitForDevno, int waitForCmd, unsigned char *pData, int dataLen, int timeout, unsigned char *pReData, int *reDataLen, int flags); + int closeAll(); + int SetUpgradeFlag(int flag); + int uartReadStream(unsigned char *retData, int rd_max_len, int timeout); + unsigned int Calcrc32(unsigned int crc, const unsigned char *ptr, unsigned int buf_len); + int cfbc_Set_Gain_Red(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Gain_Red(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Gain_Green(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Gain_Green(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Gain_Blue(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Gain_Blue(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Offset_Red(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Offset_Red(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Offset_Green(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Offset_Green(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Offset_Blue(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Offset_Blue(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_WB_Initial(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_WB_Initial(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_ColorTemp_Mode(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_ColorTemp_Mode(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Test_Pattern(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Test_Pattern(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Picture_Mode(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Picture_Mode(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Contrast(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Contrast(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Brightness(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Brightness(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Saturation(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Saturation(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_HueColorTint(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_HueColorTint(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Backlight(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Backlight(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Source(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Source(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Mute(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Mute(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Volume_Bar(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Volume_Bar(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Balance(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Balance(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Master_Volume(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Master_Volume(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_CM(COMM_DEV_TYPE_E fromDev, unsigned char value); + int cfbc_Get_CM(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_DNLP(COMM_DEV_TYPE_E fromDev, unsigned char value); + int cfbc_Get_DNLP(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Gamma(COMM_DEV_TYPE_E fromDev, unsigned char value); + int cfbc_Get_Gamma(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_WhiteBalance_OnOff(COMM_DEV_TYPE_E fromDev, unsigned char value); + int cfbc_Get_WhiteBalance_OnOff(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Auto_Backlight_OnOff(COMM_DEV_TYPE_E fromDev, unsigned char value); + int cfbc_Get_Auto_Backlight_OnOff(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_WhiteBalance_GrayPattern_OnOff(COMM_DEV_TYPE_E fromDev, int onOff); + int cfbc_TestPattern_Select(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_WhiteBalance_SetGrayPattern(COMM_DEV_TYPE_E fromDev, unsigned char value); + int cfbc_Get_WB_Batch(COMM_DEV_TYPE_E fromDev, unsigned char mode, unsigned char *r_gain, unsigned char *g_gain, unsigned char *b_gain, unsigned char *r_offset, unsigned char *g_offset, unsigned char *b_offset); + int cfbc_Set_WB_Batch(COMM_DEV_TYPE_E fromDev, unsigned char mode, unsigned char r_gain, unsigned char g_gain, unsigned char b_gain, unsigned char r_offset, unsigned char g_offset, unsigned char b_offset); + int cfbc_Set_backlight_onoff(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_backlight_onoff(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_LVDS_SSG_Set(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Set_AUTO_ELEC_MODE(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_AUTO_ELEC_MODE(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Get_FBC_MAINCODE_Version(COMM_DEV_TYPE_E fromDev, char sw_ver[], char build_time[], char git_ver[], char git_branch[], char build_name[]); + int cfbc_Get_FBC_Get_PANel_INFO(COMM_DEV_TYPE_E fromDev, char panel_model[]); + int cfbc_Set_FBC_panel_power_switch(COMM_DEV_TYPE_E fromDev, int switch_val); + int cfbc_Set_FBC_suspend(COMM_DEV_TYPE_E fromDev, int switch_val); + int cfbc_FBC_Send_Key_To_Fbc(COMM_DEV_TYPE_E fromDev, int keycode, int param); + int cfbc_Get_FBC_PANEL_REVERSE(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Get_FBC_PANEL_OUTPUT(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_FBC_project_id(COMM_DEV_TYPE_E fromDev, int prj_id); + int cfbc_Get_FBC_project_id(COMM_DEV_TYPE_E fromDev, int *prj_id); + int cfbc_SendRebootToUpgradeCmd(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Set_FBC_User_Setting_Default(COMM_DEV_TYPE_E fromDev, int param); + int cfbc_Set_FBC_Factory_SN(COMM_DEV_TYPE_E fromDev, const char *pSNval) ; + int cfbc_Get_FBC_Factory_SN(COMM_DEV_TYPE_E fromDev, char FactorySN[]); + int cfbc_Set_FBC_Audio_Source(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Set_Thermal_state(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Set_LightSensor_N310(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_LightSensor_N310(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Dream_Panel_N310(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Dream_Panel_N310(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_MULT_PQ_N310(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_MULT_PQ_N310(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_MEMC_N310(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_MEMC_N310(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_LockN_state(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Set_VMute(COMM_DEV_TYPE_E fromDev, unsigned char value); - int cfbc_SET_SPLIT_SCREEN_DEMO(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Set_Bluetooth_IIS_onoff(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_Bluetooth_IIS_onoff(COMM_DEV_TYPE_E fromDev, int *value); - int cfbc_Set_Led_onoff(COMM_DEV_TYPE_E fromDev, int val_1, int val_2, int val_3); - int cfbc_Set_AP_STANDBY_N310(COMM_DEV_TYPE_E fromDev, int value); - int cfbc_Get_AP_STANDBY_N310(COMM_DEV_TYPE_E fromDev, int *value); - virtual int cfbc_Set_Fbc_Uboot_Stage(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Set_Thermal_state(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Set_LightSensor_N310(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_LightSensor_N310(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Dream_Panel_N310(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Dream_Panel_N310(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_MULT_PQ_N310(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_MULT_PQ_N310(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_MEMC_N310(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_MEMC_N310(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_LockN_state(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Set_VMute(COMM_DEV_TYPE_E fromDev, unsigned char value); + int cfbc_SET_SPLIT_SCREEN_DEMO(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Set_Bluetooth_IIS_onoff(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_Bluetooth_IIS_onoff(COMM_DEV_TYPE_E fromDev, int *value); + int cfbc_Set_Led_onoff(COMM_DEV_TYPE_E fromDev, int val_1, int val_2, int val_3); + int cfbc_Set_AP_STANDBY_N310(COMM_DEV_TYPE_E fromDev, int value); + int cfbc_Get_AP_STANDBY_N310(COMM_DEV_TYPE_E fromDev, int *value); + virtual int cfbc_Set_Fbc_Uboot_Stage(COMM_DEV_TYPE_E fromDev, int value); private: - //now,just one item in list,haha... - void showTime(struct timeval *_time); - long getTime(void); - int rmFromRequestList(); - int addToRequestList(); - void initCrc32Table(); - void sendAckCmd(bool isOk); - unsigned int GetCrc32(unsigned char *InStr, unsigned int len); - int processData(COMM_DEV_TYPE_E fromDev, unsigned char *PData, int dataLen); - int uartReadData(unsigned char *retData, int *retLen); - int Fbc_Set_Value_INT8(COMM_DEV_TYPE_E toDev, int cmd_type, int value); - int Fbc_Get_Value_INT8(COMM_DEV_TYPE_E fromDev, int cmd_type, int *value); - int Fbc_Set_Value_INT32(COMM_DEV_TYPE_E toDev, int cmd_type, int value); - int Fbc_Get_BatchValue(COMM_DEV_TYPE_E toDev, unsigned char *cmd_buf, int count); - int Fbc_Set_BatchValue(COMM_DEV_TYPE_E fromDev, unsigned char *cmd_buf, int count); - int cfbc_Set_Get_BatchValue(COMM_DEV_TYPE_E fromDev, unsigned char *cmd_buf, int count, int isSet); - bool threadLoop(); + //now,just one item in list,haha... + void showTime(struct timeval *_time); + long getTime(void); + int rmFromRequestList(); + int addToRequestList(); + void initCrc32Table(); + void sendAckCmd(bool isOk); + unsigned int GetCrc32(unsigned char *InStr, unsigned int len); + int processData(COMM_DEV_TYPE_E fromDev, unsigned char *PData, int dataLen); + int uartReadData(unsigned char *retData, int *retLen); + int Fbc_Set_Value_INT8(COMM_DEV_TYPE_E toDev, int cmd_type, int value); + int Fbc_Get_Value_INT8(COMM_DEV_TYPE_E fromDev, int cmd_type, int *value); + int Fbc_Set_Value_INT32(COMM_DEV_TYPE_E toDev, int cmd_type, int value); + int Fbc_Get_BatchValue(COMM_DEV_TYPE_E toDev, unsigned char *cmd_buf, int count); + int Fbc_Set_BatchValue(COMM_DEV_TYPE_E fromDev, unsigned char *cmd_buf, int count); + int cfbc_Set_Get_BatchValue(COMM_DEV_TYPE_E fromDev, unsigned char *cmd_buf, int count, int isSet); + bool threadLoop(); - int mUpgradeFlag; - CHdmiCec mHdmiCec; - CSerialPort mSerialPort; - Epoll mEpoll; - mutable CMutex mLock; - REQUEST_REPLY_S mReplyList; - //list - epoll_event m_event; - unsigned char *mpRevDataBuf; - unsigned int mCrc32Table[256]; - bool mbSendKeyCode; - CTvInput mTvInput; - CFbcMsgQueue mFbcMsgQueue; - int mbDownHaveSend; + int mUpgradeFlag; + CHdmiCec mHdmiCec; + CSerialPort mSerialPort; + Epoll mEpoll; + mutable CMutex mLock; + REQUEST_REPLY_S mReplyList; + //list + epoll_event m_event; + unsigned char *mpRevDataBuf; + unsigned int mCrc32Table[256]; + bool mbSendKeyCode; + CTvInput mTvInput; + CFbcMsgQueue mFbcMsgQueue; + int mbDownHaveSend; - int mbFbcKeyEnterDown; - nsecs_t mFbcEnterKeyDownTime; + int mbFbcKeyEnterDown; + nsecs_t mFbcEnterKeyDownTime; }; extern CFbcCommunication *GetSingletonFBC(); diff --git a/tvapi/libtv/tv/CFrontEnd.cpp b/tvapi/libtv/tv/CFrontEnd.cpp index 86c4a0c..5453a26 100644 --- a/tvapi/libtv/tv/CFrontEnd.cpp +++ b/tvapi/libtv/tv/CFrontEnd.cpp @@ -24,643 +24,643 @@ extern "C" { CFrontEnd::CFrontEnd() { - mFrontDevID = FE_DEV_ID; - mpObserver = NULL; - mCurFineFreq = 0; - mCurMode = FE_ANALOG; - mCurFreq = -1; - mCurPara1 = -1; - mCurPara2 = -1; - mbFEOpened = false; + mFrontDevID = FE_DEV_ID; + mpObserver = NULL; + mCurFineFreq = 0; + mCurMode = FE_ANALOG; + mCurFreq = -1; + mCurPara1 = -1; + mCurPara2 = -1; + mbFEOpened = false; } CFrontEnd::~CFrontEnd() { - AM_EVT_Unsubscribe(mFrontDevID, AM_FEND_EVT_STATUS_CHANGED, dmd_fend_callback, NULL); - if (mFrontDevID == FE_DEV_ID) - AM_FEND_Close(mFrontDevID); - mFrontDevID = -1; + AM_EVT_Unsubscribe(mFrontDevID, AM_FEND_EVT_STATUS_CHANGED, dmd_fend_callback, NULL); + if (mFrontDevID == FE_DEV_ID) + AM_FEND_Close(mFrontDevID); + mFrontDevID = -1; } int CFrontEnd::Open(int mode) { - AM_FEND_OpenPara_t para; - int rc = 0; - - if (mbFEOpened) { - LOGD("FrontEnd have opened, return"); - return 0; - } - mbFEOpened = true; - memset(¶, 0, sizeof(AM_FEND_OpenPara_t)); - para.mode = mode; - rc = AM_FEND_Open(mFrontDevID, ¶); - if ((rc == AM_FEND_ERR_BUSY) || (rc == 0)) { - AM_EVT_Subscribe(mFrontDevID, AM_FEND_EVT_STATUS_CHANGED, dmd_fend_callback, this); - LOGD("%s,frontend dev open success!\n", __FUNCTION__); - return 0; - } else { - LOGD("%s,frontend dev open failed! dvb error id is %d\n", __FUNCTION__, rc); - return -1; - } - mCurMode = mode; - mCurFreq = -1; - mCurPara1 = -1; - mCurPara2 = -1; + AM_FEND_OpenPara_t para; + int rc = 0; + + if (mbFEOpened) { + LOGD("FrontEnd have opened, return"); + return 0; + } + mbFEOpened = true; + memset(¶, 0, sizeof(AM_FEND_OpenPara_t)); + para.mode = mode; + rc = AM_FEND_Open(mFrontDevID, ¶); + if ((rc == AM_FEND_ERR_BUSY) || (rc == 0)) { + AM_EVT_Subscribe(mFrontDevID, AM_FEND_EVT_STATUS_CHANGED, dmd_fend_callback, this); + LOGD("%s,frontend dev open success!\n", __FUNCTION__); + return 0; + } else { + LOGD("%s,frontend dev open failed! dvb error id is %d\n", __FUNCTION__, rc); + return -1; + } + mCurMode = mode; + mCurFreq = -1; + mCurPara1 = -1; + mCurPara2 = -1; } int CFrontEnd::Close() { - int rc = 0; - if (!mbFEOpened) { - LOGD("FrontEnd have close, but not return"); - } - rc = AM_FEND_Close(mFrontDevID); - mbFEOpened = false; - mCurMode = -1; - mCurFreq = -1; - mCurPara1 = -1; - mCurPara2 = -1; - if (rc != 0) { - LOGD("%s,frontend_close fail! dvb error id is %d\n", __FUNCTION__, rc); - return -1; - } else { - LOGD("%s,close frontend is ok\n", __FUNCTION__); - } - return 0; + int rc = 0; + if (!mbFEOpened) { + LOGD("FrontEnd have close, but not return"); + } + rc = AM_FEND_Close(mFrontDevID); + mbFEOpened = false; + mCurMode = -1; + mCurFreq = -1; + mCurPara1 = -1; + mCurPara2 = -1; + if (rc != 0) { + LOGD("%s,frontend_close fail! dvb error id is %d\n", __FUNCTION__, rc); + return -1; + } else { + LOGD("%s,close frontend is ok\n", __FUNCTION__); + } + return 0; } int CFrontEnd::setMode(int mode) { - int rc = 0; - if (mCurMode == mode) return 0; - rc = AM_FEND_SetMode(mFrontDevID, mode); + int rc = 0; + if (mCurMode == mode) return 0; + rc = AM_FEND_SetMode(mFrontDevID, mode); - if (rc != 0) { - LOGD("%s,front dev set mode failed! dvb error id is %d\n", __FUNCTION__, rc); - return -1; - } - return 0; + if (rc != 0) { + LOGD("%s,front dev set mode failed! dvb error id is %d\n", __FUNCTION__, rc); + return -1; + } + return 0; } int CFrontEnd::setPara(int mode, int freq, int para1, int para2) { - int ret = 0; - int buff_size = 32; - char VideoStdBuff[buff_size]; - char audioStdBuff[buff_size]; - if (mCurMode == mode && mCurFreq == freq && mCurPara1 == para1 && mCurPara2 == para2) { - LOGD("fe setpara is same return"); - return 0; - } - mCurMode = mode; - mCurFreq = freq; - mCurPara1 = para1; - mCurPara2 = para2; - - AM_FENDCTRL_DVBFrontendParameters_t dvbfepara; - memset(&dvbfepara, 0, sizeof(AM_FENDCTRL_DVBFrontendParameters_t)); - LOGD("%s,set fe para mode = %d freq=%d p1=%d p2=%d", __FUNCTION__, mode, freq, para1, para2); - dvbfepara.m_type = mode; - switch (mode) { - case FE_OFDM: - dvbfepara.terrestrial.para.frequency = freq; - dvbfepara.terrestrial.para.u.ofdm.bandwidth = (fe_bandwidth_t)para1; - break; - case FE_DTMB: - LOGD("%s,FE_DTMB is support\n", __FUNCTION__); - LOGD("%s,freq = %d, bandwidth = %d\n", __FUNCTION__, freq, para1); - dvbfepara.dtmb.para.frequency = freq; - dvbfepara.dtmb.para.u.ofdm.bandwidth = (fe_bandwidth_t)para1; - break; - case FE_ATSC: - dvbfepara.atsc.para.frequency = freq; - dvbfepara.atsc.para.u.vsb.modulation = (fe_modulation_t)para1; - break; - case FE_QAM: - dvbfepara.cable.para.frequency = freq; - dvbfepara.cable.para.u.qam.symbol_rate = para1; - dvbfepara.cable.para.u.qam.modulation = (fe_modulation_t)para2; - break; - case FE_ANALOG: - LOGD("%s,FE_ANALOG is support\n", __FUNCTION__); - /*para2 is finetune data */ - dvbfepara.analog.para.frequency = freq; - dvbfepara.analog.para.u.analog.std = para1; - dvbfepara.analog.para.u.analog.afc_range = AFC_RANGE; - if (para2 == 0) { - dvbfepara.analog.para.u.analog.flag |= ANALOG_FLAG_ENABLE_AFC; - } else { - dvbfepara.analog.para.u.analog.flag &= ~ANALOG_FLAG_ENABLE_AFC; - dvbfepara.analog.para.u.analog.afc_range = 0; - } - - printAudioStdStr(para1, audioStdBuff, buff_size); - printVideoStdStr(para1, VideoStdBuff, buff_size); - LOGD("%s,freq = %dHz, video_std = %s, audio_std = %s, fineFreqOffset = %dHz\n", __FUNCTION__, - freq, VideoStdBuff, audioStdBuff, para2); - - break; - } - - ret = AM_FENDCTRL_SetPara(mFrontDevID, &dvbfepara); - - if (ret != 0) { - LOGD("%s,fend set para failed! dvb error id is %d\n", __FUNCTION__, ret); - return -1; - } - return 0; + int ret = 0; + int buff_size = 32; + char VideoStdBuff[buff_size]; + char audioStdBuff[buff_size]; + if (mCurMode == mode && mCurFreq == freq && mCurPara1 == para1 && mCurPara2 == para2) { + LOGD("fe setpara is same return"); + return 0; + } + mCurMode = mode; + mCurFreq = freq; + mCurPara1 = para1; + mCurPara2 = para2; + + AM_FENDCTRL_DVBFrontendParameters_t dvbfepara; + memset(&dvbfepara, 0, sizeof(AM_FENDCTRL_DVBFrontendParameters_t)); + LOGD("%s,set fe para mode = %d freq=%d p1=%d p2=%d", __FUNCTION__, mode, freq, para1, para2); + dvbfepara.m_type = mode; + switch (mode) { + case FE_OFDM: + dvbfepara.terrestrial.para.frequency = freq; + dvbfepara.terrestrial.para.u.ofdm.bandwidth = (fe_bandwidth_t)para1; + break; + case FE_DTMB: + LOGD("%s,FE_DTMB is support\n", __FUNCTION__); + LOGD("%s,freq = %d, bandwidth = %d\n", __FUNCTION__, freq, para1); + dvbfepara.dtmb.para.frequency = freq; + dvbfepara.dtmb.para.u.ofdm.bandwidth = (fe_bandwidth_t)para1; + break; + case FE_ATSC: + dvbfepara.atsc.para.frequency = freq; + dvbfepara.atsc.para.u.vsb.modulation = (fe_modulation_t)para1; + break; + case FE_QAM: + dvbfepara.cable.para.frequency = freq; + dvbfepara.cable.para.u.qam.symbol_rate = para1; + dvbfepara.cable.para.u.qam.modulation = (fe_modulation_t)para2; + break; + case FE_ANALOG: + LOGD("%s,FE_ANALOG is support\n", __FUNCTION__); + /*para2 is finetune data */ + dvbfepara.analog.para.frequency = freq; + dvbfepara.analog.para.u.analog.std = para1; + dvbfepara.analog.para.u.analog.afc_range = AFC_RANGE; + if (para2 == 0) { + dvbfepara.analog.para.u.analog.flag |= ANALOG_FLAG_ENABLE_AFC; + } else { + dvbfepara.analog.para.u.analog.flag &= ~ANALOG_FLAG_ENABLE_AFC; + dvbfepara.analog.para.u.analog.afc_range = 0; + } + + printAudioStdStr(para1, audioStdBuff, buff_size); + printVideoStdStr(para1, VideoStdBuff, buff_size); + LOGD("%s,freq = %dHz, video_std = %s, audio_std = %s, fineFreqOffset = %dHz\n", __FUNCTION__, + freq, VideoStdBuff, audioStdBuff, para2); + + break; + } + + ret = AM_FENDCTRL_SetPara(mFrontDevID, &dvbfepara); + + if (ret != 0) { + LOGD("%s,fend set para failed! dvb error id is %d\n", __FUNCTION__, ret); + return -1; + } + return 0; } int CFrontEnd::fineTune(int fineFreq) { - int ret = 0; - if (mCurFineFreq == fineFreq) return -1; + int ret = 0; + if (mCurFineFreq == fineFreq) return -1; - mCurFineFreq = fineFreq; - ret = AM_FEND_FineTune(FE_DEV_ID, fineFreq); + mCurFineFreq = fineFreq; + ret = AM_FEND_FineTune(FE_DEV_ID, fineFreq); - if (ret != 0) { - LOGD("%s, fail! dvb error id is %d", __FUNCTION__, ret); - return -1; - } - return 0; + if (ret != 0) { + LOGD("%s, fail! dvb error id is %d", __FUNCTION__, ret); + return -1; + } + return 0; } int CFrontEnd::GetTSSource(AM_DMX_Source_t *src) { - AM_FEND_GetTSSource(mFrontDevID, src); - return 0; + AM_FEND_GetTSSource(mFrontDevID, src); + return 0; } void CFrontEnd::dmd_fend_callback(long dev_no, int event_type, void *param, void *user_data) { - CFrontEnd *pFront = (CFrontEnd *)user_data; - if (NULL == pFront) { - LOGD("%s,warnning : dmd_fend_callback NULL == pFront\n", __FUNCTION__); - return ; - } - if (pFront->mpObserver == NULL) { - LOGD("%s,warnning : mpObserver NULL == mpObserver\n", __FUNCTION__); - return; - } - struct dvb_frontend_event *evt = (struct dvb_frontend_event *) param; - if (!evt) - return; - - if (evt->status & FE_HAS_LOCK) { - pFront->mCurSigEv.mCurSigStaus = FEEvent::EVENT_FE_HAS_SIG; - pFront->mCurSigEv.mCurFreq = evt->parameters.frequency; - pFront->mpObserver->onEvent(pFront->mCurSigEv); - } else if (evt->status & FE_TIMEDOUT) { - pFront->mCurSigEv.mCurSigStaus = FEEvent::EVENT_FE_NO_SIG; - pFront->mCurSigEv.mCurFreq = evt->parameters.frequency; - pFront->mpObserver->onEvent(pFront->mCurSigEv); - } + CFrontEnd *pFront = (CFrontEnd *)user_data; + if (NULL == pFront) { + LOGD("%s,warnning : dmd_fend_callback NULL == pFront\n", __FUNCTION__); + return ; + } + if (pFront->mpObserver == NULL) { + LOGD("%s,warnning : mpObserver NULL == mpObserver\n", __FUNCTION__); + return; + } + struct dvb_frontend_event *evt = (struct dvb_frontend_event *) param; + if (!evt) + return; + + if (evt->status & FE_HAS_LOCK) { + pFront->mCurSigEv.mCurSigStaus = FEEvent::EVENT_FE_HAS_SIG; + pFront->mCurSigEv.mCurFreq = evt->parameters.frequency; + pFront->mpObserver->onEvent(pFront->mCurSigEv); + } else if (evt->status & FE_TIMEDOUT) { + pFront->mCurSigEv.mCurSigStaus = FEEvent::EVENT_FE_NO_SIG; + pFront->mCurSigEv.mCurFreq = evt->parameters.frequency; + pFront->mpObserver->onEvent(pFront->mCurSigEv); + } } int CFrontEnd::stdAndColorToAudioEnum(int data) { - atv_audio_std_t std = CC_ATV_AUDIO_STD_DK; - if (((data & V4L2_STD_PAL_DK) == V4L2_STD_PAL_DK) || - ((data & V4L2_STD_SECAM_DK) == V4L2_STD_SECAM_DK)) { - std = CC_ATV_AUDIO_STD_DK; - } else if ((data & V4L2_STD_PAL_I) == V4L2_STD_PAL_I) { - std = CC_ATV_AUDIO_STD_I; - } else if (((data & V4L2_STD_PAL_BG) == V4L2_STD_PAL_BG) || - ((data & V4L2_STD_SECAM_B) == V4L2_STD_SECAM_B) || - ((data & V4L2_STD_SECAM_G) == V4L2_STD_SECAM_G )) { - std = CC_ATV_AUDIO_STD_BG; - } else if (((data & V4L2_STD_PAL_M) == V4L2_STD_PAL_M) || - ((data & V4L2_STD_NTSC_M) == V4L2_STD_NTSC_M)) { - std = CC_ATV_AUDIO_STD_M; - } else if ((data & V4L2_STD_SECAM_L) == V4L2_STD_SECAM_L) { - std = CC_ATV_AUDIO_STD_L; - } - return std ; + atv_audio_std_t std = CC_ATV_AUDIO_STD_DK; + if (((data & V4L2_STD_PAL_DK) == V4L2_STD_PAL_DK) || + ((data & V4L2_STD_SECAM_DK) == V4L2_STD_SECAM_DK)) { + std = CC_ATV_AUDIO_STD_DK; + } else if ((data & V4L2_STD_PAL_I) == V4L2_STD_PAL_I) { + std = CC_ATV_AUDIO_STD_I; + } else if (((data & V4L2_STD_PAL_BG) == V4L2_STD_PAL_BG) || + ((data & V4L2_STD_SECAM_B) == V4L2_STD_SECAM_B) || + ((data & V4L2_STD_SECAM_G) == V4L2_STD_SECAM_G )) { + std = CC_ATV_AUDIO_STD_BG; + } else if (((data & V4L2_STD_PAL_M) == V4L2_STD_PAL_M) || + ((data & V4L2_STD_NTSC_M) == V4L2_STD_NTSC_M)) { + std = CC_ATV_AUDIO_STD_M; + } else if ((data & V4L2_STD_SECAM_L) == V4L2_STD_SECAM_L) { + std = CC_ATV_AUDIO_STD_L; + } + return std ; } int CFrontEnd::stdAndColorToVideoEnum(int std) { - atv_video_std_t video_standard = CC_ATV_VIDEO_STD_PAL; - if ((std & V4L2_COLOR_STD_PAL) == V4L2_COLOR_STD_PAL) { - video_standard = CC_ATV_VIDEO_STD_PAL; - } else if ((std & V4L2_COLOR_STD_NTSC) == V4L2_COLOR_STD_NTSC) { - video_standard = CC_ATV_VIDEO_STD_NTSC; - } else if ((std & V4L2_COLOR_STD_SECAM) == V4L2_COLOR_STD_SECAM) { - video_standard = CC_ATV_VIDEO_STD_SECAM; - } - return video_standard; + atv_video_std_t video_standard = CC_ATV_VIDEO_STD_PAL; + if ((std & V4L2_COLOR_STD_PAL) == V4L2_COLOR_STD_PAL) { + video_standard = CC_ATV_VIDEO_STD_PAL; + } else if ((std & V4L2_COLOR_STD_NTSC) == V4L2_COLOR_STD_NTSC) { + video_standard = CC_ATV_VIDEO_STD_NTSC; + } else if ((std & V4L2_COLOR_STD_SECAM) == V4L2_COLOR_STD_SECAM) { + video_standard = CC_ATV_VIDEO_STD_SECAM; + } + return video_standard; } bool CFrontEnd::stdIsColorAuto(int std) { - return ((std & V4L2_COLOR_STD_AUTO) == V4L2_COLOR_STD_AUTO) ? true : false; + return ((std & V4L2_COLOR_STD_AUTO) == V4L2_COLOR_STD_AUTO) ? true : false; } int CFrontEnd::addColorAutoFlag(int std) { - return std | V4L2_COLOR_STD_AUTO; + return std | V4L2_COLOR_STD_AUTO; } v4l2_std_id CFrontEnd::enumToStdAndColor(int videoStd, int audioStd) { - v4l2_std_id tmpTunerStd = 0; - if (videoStd == CC_ATV_VIDEO_STD_PAL) { - tmpTunerStd |= V4L2_COLOR_STD_PAL; - if (audioStd == CC_ATV_AUDIO_STD_DK) { - tmpTunerStd |= V4L2_STD_PAL_DK; - } else if (audioStd == CC_ATV_AUDIO_STD_I) { - tmpTunerStd |= V4L2_STD_PAL_I; - } else if (audioStd == CC_ATV_AUDIO_STD_BG) { - tmpTunerStd |= V4L2_STD_PAL_BG; - } else if (audioStd == CC_ATV_AUDIO_STD_M) { - tmpTunerStd |= V4L2_STD_PAL_M; - } - } else if (videoStd == CC_ATV_VIDEO_STD_NTSC || videoStd == CC_ATV_VIDEO_STD_AUTO) { - tmpTunerStd |= V4L2_COLOR_STD_NTSC; - if (audioStd == CC_ATV_AUDIO_STD_DK) { - tmpTunerStd |= V4L2_STD_PAL_DK; - } else if (audioStd == CC_ATV_AUDIO_STD_I) { - tmpTunerStd |= V4L2_STD_PAL_I; - } else if (audioStd == CC_ATV_AUDIO_STD_BG) { - tmpTunerStd |= V4L2_STD_PAL_BG; - } else if (audioStd == CC_ATV_AUDIO_STD_M) { - tmpTunerStd |= V4L2_STD_NTSC_M; - } - } else if (videoStd == CC_ATV_VIDEO_STD_SECAM) { - tmpTunerStd |= V4L2_COLOR_STD_SECAM; - if (audioStd == CC_ATV_AUDIO_STD_DK) { - tmpTunerStd |= V4L2_STD_SECAM_DK; - } else if (audioStd == CC_ATV_AUDIO_STD_I) { - tmpTunerStd |= V4L2_STD_PAL_I; - } else if (audioStd == CC_ATV_AUDIO_STD_BG) { - tmpTunerStd |= (V4L2_STD_SECAM_B | V4L2_STD_SECAM_G); - } else if (audioStd == CC_ATV_AUDIO_STD_M) { - tmpTunerStd |= V4L2_STD_NTSC_M; - } else if (audioStd == CC_ATV_AUDIO_STD_L) { - tmpTunerStd |= V4L2_STD_SECAM_L; - } - - } - return tmpTunerStd; + v4l2_std_id tmpTunerStd = 0; + if (videoStd == CC_ATV_VIDEO_STD_PAL) { + tmpTunerStd |= V4L2_COLOR_STD_PAL; + if (audioStd == CC_ATV_AUDIO_STD_DK) { + tmpTunerStd |= V4L2_STD_PAL_DK; + } else if (audioStd == CC_ATV_AUDIO_STD_I) { + tmpTunerStd |= V4L2_STD_PAL_I; + } else if (audioStd == CC_ATV_AUDIO_STD_BG) { + tmpTunerStd |= V4L2_STD_PAL_BG; + } else if (audioStd == CC_ATV_AUDIO_STD_M) { + tmpTunerStd |= V4L2_STD_PAL_M; + } + } else if (videoStd == CC_ATV_VIDEO_STD_NTSC || videoStd == CC_ATV_VIDEO_STD_AUTO) { + tmpTunerStd |= V4L2_COLOR_STD_NTSC; + if (audioStd == CC_ATV_AUDIO_STD_DK) { + tmpTunerStd |= V4L2_STD_PAL_DK; + } else if (audioStd == CC_ATV_AUDIO_STD_I) { + tmpTunerStd |= V4L2_STD_PAL_I; + } else if (audioStd == CC_ATV_AUDIO_STD_BG) { + tmpTunerStd |= V4L2_STD_PAL_BG; + } else if (audioStd == CC_ATV_AUDIO_STD_M) { + tmpTunerStd |= V4L2_STD_NTSC_M; + } + } else if (videoStd == CC_ATV_VIDEO_STD_SECAM) { + tmpTunerStd |= V4L2_COLOR_STD_SECAM; + if (audioStd == CC_ATV_AUDIO_STD_DK) { + tmpTunerStd |= V4L2_STD_SECAM_DK; + } else if (audioStd == CC_ATV_AUDIO_STD_I) { + tmpTunerStd |= V4L2_STD_PAL_I; + } else if (audioStd == CC_ATV_AUDIO_STD_BG) { + tmpTunerStd |= (V4L2_STD_SECAM_B | V4L2_STD_SECAM_G); + } else if (audioStd == CC_ATV_AUDIO_STD_M) { + tmpTunerStd |= V4L2_STD_NTSC_M; + } else if (audioStd == CC_ATV_AUDIO_STD_L) { + tmpTunerStd |= V4L2_STD_SECAM_L; + } + + } + return tmpTunerStd; } int CFrontEnd::getPara(int *mode, int *freq, int *para1, int *para2) { - struct dvb_frontend_parameters para; - memset(¶, 0, sizeof(struct dvb_frontend_parameters)); - /*if((ret1=AM_FEND_GetPara(mFrontDevID, ¶))<0) { - LOGD("%s,getPara faiture\n", __FUNCTION__ ); - return -1; + struct dvb_frontend_parameters para; + memset(¶, 0, sizeof(struct dvb_frontend_parameters)); + /*if((ret1=AM_FEND_GetPara(mFrontDevID, ¶))<0) { + LOGD("%s,getPara faiture\n", __FUNCTION__ ); + return -1; - //fpara->mode = fend_mode ; + //fpara->mode = fend_mode ; - }*/ - *mode = mCurMode; - *freq = mCurFreq; - *para1 = mCurPara1; - *para2 = mCurPara2; - return 0; + }*/ + *mode = mCurMode; + *freq = mCurFreq; + *para1 = mCurPara1; + *para2 = mCurPara2; + return 0; } int CFrontEnd::getSNR() { - int snr = 0; - AM_FEND_GetSNR(mFrontDevID, &snr); - return snr; + int snr = 0; + AM_FEND_GetSNR(mFrontDevID, &snr); + return snr; } int CFrontEnd::getBER() { - int ber = 0; - AM_FEND_GetBER(mFrontDevID, &ber); - return ber; + int ber = 0; + AM_FEND_GetBER(mFrontDevID, &ber); + return ber; } int CFrontEnd::getStrength() { - int Strength = 0; - AM_FEND_GetStrength(mFrontDevID, &Strength); - return Strength; + int Strength = 0; + AM_FEND_GetStrength(mFrontDevID, &Strength); + return Strength; } int CFrontEnd::formatATVFreq(int tmp_freq) { - const int ATV_1MHZ = 1000000; - const int ATV_50KHZ = 50 * 1000; - const int ATV_25KHZ = 25 * 1000; - int mastar = (tmp_freq / ATV_50KHZ) * ATV_50KHZ; - int follow = tmp_freq % ATV_50KHZ; - if (follow >= ATV_25KHZ) { - follow = ATV_50KHZ; - } else { - follow = 0; - } - return mastar + follow; + const int ATV_1MHZ = 1000000; + const int ATV_50KHZ = 50 * 1000; + const int ATV_25KHZ = 25 * 1000; + int mastar = (tmp_freq / ATV_50KHZ) * ATV_50KHZ; + int follow = tmp_freq % ATV_50KHZ; + if (follow >= ATV_25KHZ) { + follow = ATV_50KHZ; + } else { + follow = 0; + } + return mastar + follow; } int CFrontEnd::printVideoStdStr(int compStd, char strBuffer[], int buff_size) { - memset(strBuffer, 0, buff_size); - int videoStd = stdAndColorToVideoEnum(compStd); - switch (videoStd) { - case CC_ATV_VIDEO_STD_AUTO: - strcpy(strBuffer, "AUTO"); - break; - case CC_ATV_VIDEO_STD_PAL: - strcpy(strBuffer, "PAL"); - break; - case CC_ATV_VIDEO_STD_NTSC: - strcpy(strBuffer, "NTSC"); - break; - case CC_ATV_VIDEO_STD_SECAM: - strcpy(strBuffer, "SECAM"); - break; - default: - strcpy(strBuffer, "UnkownVideo"); - break; - } - - return 0; + memset(strBuffer, 0, buff_size); + int videoStd = stdAndColorToVideoEnum(compStd); + switch (videoStd) { + case CC_ATV_VIDEO_STD_AUTO: + strcpy(strBuffer, "AUTO"); + break; + case CC_ATV_VIDEO_STD_PAL: + strcpy(strBuffer, "PAL"); + break; + case CC_ATV_VIDEO_STD_NTSC: + strcpy(strBuffer, "NTSC"); + break; + case CC_ATV_VIDEO_STD_SECAM: + strcpy(strBuffer, "SECAM"); + break; + default: + strcpy(strBuffer, "UnkownVideo"); + break; + } + + return 0; } int CFrontEnd::printAudioStdStr(int compStd, char strBuffer[], int buff_size) { - memset(strBuffer, 0, buff_size); - int audioStd = stdAndColorToAudioEnum(compStd); - switch (audioStd) { - case CC_ATV_AUDIO_STD_DK: - strcpy(strBuffer, "DK"); - break; - case CC_ATV_AUDIO_STD_I: - strcpy(strBuffer, "I"); - break; - case CC_ATV_AUDIO_STD_BG: - strcpy(strBuffer, "BG"); - break; - case CC_ATV_AUDIO_STD_M: - strcpy(strBuffer, "M"); - break; - case CC_ATV_AUDIO_STD_L: - strcpy(strBuffer, "L"); - break; - case CC_ATV_AUDIO_STD_AUTO: - strcpy(strBuffer, "AUTO"); - break; - default: - strcpy(strBuffer, "UnkownAudio"); - break; - } - - return 0; + memset(strBuffer, 0, buff_size); + int audioStd = stdAndColorToAudioEnum(compStd); + switch (audioStd) { + case CC_ATV_AUDIO_STD_DK: + strcpy(strBuffer, "DK"); + break; + case CC_ATV_AUDIO_STD_I: + strcpy(strBuffer, "I"); + break; + case CC_ATV_AUDIO_STD_BG: + strcpy(strBuffer, "BG"); + break; + case CC_ATV_AUDIO_STD_M: + strcpy(strBuffer, "M"); + break; + case CC_ATV_AUDIO_STD_L: + strcpy(strBuffer, "L"); + break; + case CC_ATV_AUDIO_STD_AUTO: + strcpy(strBuffer, "AUTO"); + break; + default: + strcpy(strBuffer, "UnkownAudio"); + break; + } + + return 0; } int CFrontEnd::autoLoadFE() { - FILE *fp = NULL; - int ret = -1; + FILE *fp = NULL; + int ret = -1; - fp = fopen ( "/sys/class/amlfe/setting", "w" ); + fp = fopen ( "/sys/class/amlfe/setting", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/class/amlfe/setting error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/class/amlfe/setting error(%s)!\n", strerror ( errno ) ); + return -1; + } - ret = fprintf ( fp, "%s", "autoload" ); + ret = fprintf ( fp, "%s", "autoload" ); - if ( ret < 0 ) { - LOGW ( "autoload FE error(%s)!\n", strerror ( errno ) ); - } - LOGD("autoLoadFE"); - fclose ( fp ); - fp = NULL; + if ( ret < 0 ) { + LOGW ( "autoload FE error(%s)!\n", strerror ( errno ) ); + } + LOGD("autoLoadFE"); + fclose ( fp ); + fp = NULL; - return ret; + return ret; } int CFrontEnd::setCvbsAmpOut(int tmp) { - int rc = AM_SUCCESS; - rc = AM_FEND_SetCvbsAmpOut(mFrontDevID, tmp); - if (rc == AM_SUCCESS) { - LOGD("%s, sucessful!", __FUNCTION__); - rc = 0; - } else { - LOGD("%s, fail!", __FUNCTION__); - rc = -1; - } - return rc; + int rc = AM_SUCCESS; + rc = AM_FEND_SetCvbsAmpOut(mFrontDevID, tmp); + if (rc == AM_SUCCESS) { + LOGD("%s, sucessful!", __FUNCTION__); + rc = 0; + } else { + LOGD("%s, fail!", __FUNCTION__); + rc = -1; + } + return rc; } int CFrontEnd::setThreadDelay(int delay) { - int rc = AM_SUCCESS; + int rc = AM_SUCCESS; - rc = AM_FEND_SetThreadDelay(mFrontDevID, delay); - if (rc == AM_SUCCESS) { - LOGD("frontend_setThreadDelay sucessful!\n"); - return 0; - } else { - LOGD("frontend_setThreadDelay fail! %d\n\n", rc); - return -1; - } + rc = AM_FEND_SetThreadDelay(mFrontDevID, delay); + if (rc == AM_SUCCESS) { + LOGD("frontend_setThreadDelay sucessful!\n"); + return 0; + } else { + LOGD("frontend_setThreadDelay fail! %d\n\n", rc); + return -1; + } } int CFrontEnd::lock(int frequency, int symbol_rate, int modulation, int bandwidth) { - int rt = -1; - struct dvb_frontend_parameters fparam; - struct dvb_frontend_info finfo; + int rt = -1; + struct dvb_frontend_parameters fparam; + struct dvb_frontend_info finfo; - memset(&fparam, 0, sizeof(struct dvb_frontend_parameters)); - memset(&finfo, 0, sizeof(struct dvb_frontend_info)); + memset(&fparam, 0, sizeof(struct dvb_frontend_parameters)); + memset(&finfo, 0, sizeof(struct dvb_frontend_info)); - AM_FEND_GetInfo(mFrontDevID, &finfo); + AM_FEND_GetInfo(mFrontDevID, &finfo); - if (frequency == 0) - return -1; - fparam.frequency = frequency; + if (frequency == 0) + return -1; + fparam.frequency = frequency; - switch (finfo.type) { + switch (finfo.type) { - case FE_QAM: - default: + case FE_QAM: + default: - if (symbol_rate == 0) - return -1; - fparam.u.qam.symbol_rate = symbol_rate; + if (symbol_rate == 0) + return -1; + fparam.u.qam.symbol_rate = symbol_rate; - if (modulation == 0) - return -1; - fparam.u.qam.modulation = (fe_modulation_t)modulation; + if (modulation == 0) + return -1; + fparam.u.qam.modulation = (fe_modulation_t)modulation; - LOGD("mFrontDevID = %d;fre=%d;sym=%d;qam=%d ", - mFrontDevID, fparam.frequency, fparam.u.qam.symbol_rate, fparam.u.qam.modulation); - break; - case FE_OFDM: - case FE_ATSC: - LOGD("mFrontDevID = %d;fre=%d;bw=%d\n ", - mFrontDevID, fparam.frequency, fparam.u.ofdm.bandwidth); - break; - case FE_QPSK: - LOGD("QPSK are not supported.\n "); - break; - case FE_ANALOG: - LOGD("ANALOG is supported.\n "); - fparam.u.analog.std = V4L2_STD_PAL_I; - break; - } + LOGD("mFrontDevID = %d;fre=%d;sym=%d;qam=%d ", + mFrontDevID, fparam.frequency, fparam.u.qam.symbol_rate, fparam.u.qam.modulation); + break; + case FE_OFDM: + case FE_ATSC: + LOGD("mFrontDevID = %d;fre=%d;bw=%d\n ", + mFrontDevID, fparam.frequency, fparam.u.ofdm.bandwidth); + break; + case FE_QPSK: + LOGD("QPSK are not supported.\n "); + break; + case FE_ANALOG: + LOGD("ANALOG is supported.\n "); + fparam.u.analog.std = V4L2_STD_PAL_I; + break; + } - fe_status_t status; + fe_status_t status; - rt = AM_FEND_Lock(FE_DEV_ID, &fparam, &status); + rt = AM_FEND_Lock(FE_DEV_ID, &fparam, &status); - if ((!rt) && (status & FE_HAS_LOCK)) { - LOGD("frontend_lock sucessful!\n"); - return true; - } else { - LOGD("frontend_lock fail %d!\n", rt); - return false; - } + if ((!rt) && (status & FE_HAS_LOCK)) { + LOGD("frontend_lock sucessful!\n"); + return true; + } else { + LOGD("frontend_lock fail %d!\n", rt); + return false; + } } int CFrontEnd::getInfo() { - struct dvb_frontend_info finfo; + struct dvb_frontend_info finfo; - AM_FEND_GetInfo(mFrontDevID, &finfo); + AM_FEND_GetInfo(mFrontDevID, &finfo); - //return fend_info; noitfy FrontEnd message - return 0; + //return fend_info; noitfy FrontEnd message + return 0; } int CFrontEnd::setTunerAfc(int afc) { - AM_FEND_SetAfc(FE_DEV_ID, afc); - return 0; + AM_FEND_SetAfc(FE_DEV_ID, afc); + return 0; } int CFrontEnd::getStatus() { - fe_status_t status; - AM_FEND_GetStatus(mFrontDevID, &status); + fe_status_t status; + AM_FEND_GetStatus(mFrontDevID, &status); - return status; + return status; } int CFrontEnd::checkStatusOnce() { - fe_status_t status; - AM_FEND_GetStatus(mFrontDevID, &status); - LOGD("%s,get status = %x", __FUNCTION__, status); - if (status & FE_HAS_LOCK) { - mCurSigEv.mCurSigStaus = FEEvent::EVENT_FE_HAS_SIG; - mCurSigEv.mCurFreq = 0; - mpObserver->onEvent(mCurSigEv); - } else if (status & FE_TIMEDOUT) { - mCurSigEv.mCurSigStaus = FEEvent::EVENT_FE_NO_SIG; - mCurSigEv.mCurFreq = 0; - mpObserver->onEvent(mCurSigEv); - } - return 0; + fe_status_t status; + AM_FEND_GetStatus(mFrontDevID, &status); + LOGD("%s,get status = %x", __FUNCTION__, status); + if (status & FE_HAS_LOCK) { + mCurSigEv.mCurSigStaus = FEEvent::EVENT_FE_HAS_SIG; + mCurSigEv.mCurFreq = 0; + mpObserver->onEvent(mCurSigEv); + } else if (status & FE_TIMEDOUT) { + mCurSigEv.mCurSigStaus = FEEvent::EVENT_FE_NO_SIG; + mCurSigEv.mCurFreq = 0; + mpObserver->onEvent(mCurSigEv); + } + return 0; } int CFrontEnd::stdEnumToCvbsFmt (int videoStd, int audioStd) { - tvin_sig_fmt_e cvbs_fmt = TVIN_SIG_FMT_NULL; - - if ( videoStd == CC_ATV_VIDEO_STD_PAL ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_PAL_I; - if ( audioStd == CC_ATV_AUDIO_STD_DK ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_PAL_I; - } else if ( audioStd == CC_ATV_AUDIO_STD_I ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_PAL_I; - } else if ( audioStd == CC_ATV_AUDIO_STD_BG ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_PAL_I; - } else if ( audioStd == CC_ATV_AUDIO_STD_M ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_PAL_M; - } - } else if ( videoStd == CC_ATV_VIDEO_STD_NTSC ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_NTSC_M; - if ( audioStd == CC_ATV_AUDIO_STD_DK ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_NTSC_M; - } else if ( audioStd == CC_ATV_AUDIO_STD_I ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_NTSC_M; - } else if ( audioStd == CC_ATV_AUDIO_STD_BG ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_NTSC_M; - } else if ( audioStd == CC_ATV_AUDIO_STD_M ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_NTSC_M; - } - } else if ( videoStd == CC_ATV_VIDEO_STD_SECAM ) { - if ( audioStd == CC_ATV_AUDIO_STD_DK ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_SECAM; - } else if ( audioStd == CC_ATV_AUDIO_STD_I ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_SECAM; - } else if ( audioStd == CC_ATV_AUDIO_STD_BG ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_SECAM; - } else if ( audioStd == CC_ATV_AUDIO_STD_M ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_SECAM; - } else if ( audioStd == CC_ATV_AUDIO_STD_L ) { - cvbs_fmt = TVIN_SIG_FMT_CVBS_SECAM; - } - } - return cvbs_fmt; + tvin_sig_fmt_e cvbs_fmt = TVIN_SIG_FMT_NULL; + + if ( videoStd == CC_ATV_VIDEO_STD_PAL ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_PAL_I; + if ( audioStd == CC_ATV_AUDIO_STD_DK ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_PAL_I; + } else if ( audioStd == CC_ATV_AUDIO_STD_I ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_PAL_I; + } else if ( audioStd == CC_ATV_AUDIO_STD_BG ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_PAL_I; + } else if ( audioStd == CC_ATV_AUDIO_STD_M ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_PAL_M; + } + } else if ( videoStd == CC_ATV_VIDEO_STD_NTSC ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_NTSC_M; + if ( audioStd == CC_ATV_AUDIO_STD_DK ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_NTSC_M; + } else if ( audioStd == CC_ATV_AUDIO_STD_I ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_NTSC_M; + } else if ( audioStd == CC_ATV_AUDIO_STD_BG ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_NTSC_M; + } else if ( audioStd == CC_ATV_AUDIO_STD_M ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_NTSC_M; + } + } else if ( videoStd == CC_ATV_VIDEO_STD_SECAM ) { + if ( audioStd == CC_ATV_AUDIO_STD_DK ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_SECAM; + } else if ( audioStd == CC_ATV_AUDIO_STD_I ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_SECAM; + } else if ( audioStd == CC_ATV_AUDIO_STD_BG ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_SECAM; + } else if ( audioStd == CC_ATV_AUDIO_STD_M ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_SECAM; + } else if ( audioStd == CC_ATV_AUDIO_STD_L ) { + cvbs_fmt = TVIN_SIG_FMT_CVBS_SECAM; + } + } + return cvbs_fmt; } int CFrontEnd::ClearAnalogFrontEnd() { - return this->setPara ( FE_ANALOG, 44250000, V4L2_COLOR_STD_PAL | V4L2_STD_PAL_DK, 0 ); + return this->setPara ( FE_ANALOG, 44250000, V4L2_COLOR_STD_PAL | V4L2_STD_PAL_DK, 0 ); } /*to control afc function*/ int CFrontEnd::SetAnalogFrontEndTimerSwitch(int onOff) { - FILE *fp = NULL; - int ret = -1; + FILE *fp = NULL; + int ret = -1; - fp = fopen ( "/sys/module/aml_fe/parameters/aml_timer_en", "w" ); + fp = fopen ( "/sys/module/aml_fe/parameters/aml_timer_en", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/aml_fe/parameters/aml_timer_en error(%s)!\n", strerror ( errno ) ); - return -1; - } - if (onOff) - ret = fprintf(fp, "%s", "1"); - else - ret = fprintf(fp, "%s", "0"); - if ( ret < 0 ) { - LOGW ( "set aml_timer_en error(%s)!\n", strerror ( errno ) ); - } - LOGD("SetAnalogFrontEndTimerSwitch %d", onOff); - fclose ( fp ); - fp = NULL; + if ( fp == NULL ) { + LOGW ( "Open /sys/module/aml_fe/parameters/aml_timer_en error(%s)!\n", strerror ( errno ) ); + return -1; + } + if (onOff) + ret = fprintf(fp, "%s", "1"); + else + ret = fprintf(fp, "%s", "0"); + if ( ret < 0 ) { + LOGW ( "set aml_timer_en error(%s)!\n", strerror ( errno ) ); + } + LOGD("SetAnalogFrontEndTimerSwitch %d", onOff); + fclose ( fp ); + fp = NULL; - return ret; + return ret; } int CFrontEnd::SetAnalogFrontEndSearhSlowMode(int onOff) { - FILE *fp = NULL; - int ret = -1; - - fp = fopen ( "/sys/module/aml_fe/parameters/slow_mode", "w" ); - - if ( fp == NULL ) { - LOGW ( "Open /sys/module/aml_fe/parameters/slow_mode error(%s)!\n", strerror ( errno ) ); - return -1; - } - if (onOff) - ret = fprintf(fp, "%s", "1"); - else - ret = fprintf(fp, "%s", "0"); - if ( ret < 0 ) { - LOGW ( "set aml_timer_en error(%s)!\n", strerror ( errno ) ); - } - LOGD("SetAnalogFrontEndSearhSlowMode %d", onOff); - fclose ( fp ); - fp = NULL; - - return ret; + FILE *fp = NULL; + int ret = -1; + + fp = fopen ( "/sys/module/aml_fe/parameters/slow_mode", "w" ); + + if ( fp == NULL ) { + LOGW ( "Open /sys/module/aml_fe/parameters/slow_mode error(%s)!\n", strerror ( errno ) ); + return -1; + } + if (onOff) + ret = fprintf(fp, "%s", "1"); + else + ret = fprintf(fp, "%s", "0"); + if ( ret < 0 ) { + LOGW ( "set aml_timer_en error(%s)!\n", strerror ( errno ) ); + } + LOGD("SetAnalogFrontEndSearhSlowMode %d", onOff); + fclose ( fp ); + fp = NULL; + + return ret; } diff --git a/tvapi/libtv/tv/CFrontEnd.h b/tvapi/libtv/tv/CFrontEnd.h index 86c526e..81b8caf 100644 --- a/tvapi/libtv/tv/CFrontEnd.h +++ b/tvapi/libtv/tv/CFrontEnd.h @@ -13,24 +13,24 @@ extern "C" { } //for app typedef enum atv_audo_std_s { - CC_ATV_AUDIO_STD_START = 0, - CC_ATV_AUDIO_STD_DK = 0, - CC_ATV_AUDIO_STD_I, - CC_ATV_AUDIO_STD_BG, - CC_ATV_AUDIO_STD_M, - CC_ATV_AUDIO_STD_L, - CC_ATV_AUDIO_STD_AUTO, - CC_ATV_AUDIO_STD_END = CC_ATV_AUDIO_STD_AUTO, - CC_ATV_AUDIO_STD_MUTE, + CC_ATV_AUDIO_STD_START = 0, + CC_ATV_AUDIO_STD_DK = 0, + CC_ATV_AUDIO_STD_I, + CC_ATV_AUDIO_STD_BG, + CC_ATV_AUDIO_STD_M, + CC_ATV_AUDIO_STD_L, + CC_ATV_AUDIO_STD_AUTO, + CC_ATV_AUDIO_STD_END = CC_ATV_AUDIO_STD_AUTO, + CC_ATV_AUDIO_STD_MUTE, } atv_audio_std_t; //for app typedef enum atv_video_std_s { - CC_ATV_VIDEO_STD_START = 0, - CC_ATV_VIDEO_STD_AUTO = 0, - CC_ATV_VIDEO_STD_PAL, - CC_ATV_VIDEO_STD_NTSC, - CC_ATV_VIDEO_STD_SECAM, - CC_ATV_VIDEO_STD_END = CC_ATV_VIDEO_STD_SECAM, + CC_ATV_VIDEO_STD_START = 0, + CC_ATV_VIDEO_STD_AUTO = 0, + CC_ATV_VIDEO_STD_PAL, + CC_ATV_VIDEO_STD_NTSC, + CC_ATV_VIDEO_STD_SECAM, + CC_ATV_VIDEO_STD_END = CC_ATV_VIDEO_STD_SECAM, } atv_video_std_t; @@ -43,124 +43,124 @@ static const v4l2_std_id V4L2_COLOR_STD_SECAM = ((v4l2_std_id)0x10000000); static const v4l2_std_id V4L2_COLOR_STD_AUTO = ((v4l2_std_id)0x02000000); typedef struct frontend_para_set_s { - fe_type_t mode; - int freq; - atv_video_std_t videoStd; - atv_audio_std_t audioStd; - int para1; - int para2; + fe_type_t mode; + int freq; + atv_video_std_t videoStd; + atv_audio_std_t audioStd; + int para1; + int para2; } frontend_para_set_t; typedef struct atv_channel_info_s { - int finefreq; - atv_video_std_t videoStd; - atv_audio_std_t audioStd; - int isAutoStd; + int finefreq; + atv_video_std_t videoStd; + atv_audio_std_t audioStd; + int isAutoStd; } atv_channel_info_t; typedef struct dtv_channel_info_s { - int strength; - int quality; - int ber; + int strength; + int quality; + int ber; } dtv_channel_info_t; typedef struct channel_info_s { - int freq; - union { - atv_channel_info_t atvChanInfo; - dtv_channel_info_t dtvChanInfo; - } uInfo; + int freq; + union { + atv_channel_info_t atvChanInfo; + dtv_channel_info_t dtvChanInfo; + } uInfo; } channel_info_t; class CFrontEnd { public: - static const int FE_DEV_ID = 0; - static const int AFC_RANGE = 1000000; - - CFrontEnd(); - ~CFrontEnd(); - - int Open(int mode); - int Close(); - int setMode(int mode); - int fineTune(int freq); - static int formatATVFreq(int freq); - int GetTSSource(AM_DMX_Source_t *src); - int setPara(int mode, int freq, int para1, int para2); - int ClearAnalogFrontEnd(); - int autoLoadFE(); - int SetAnalogFrontEndTimerSwitch(int onOff); - int SetAnalogFrontEndSearhSlowMode(int onOff); - - static int stdAndColorToAudioEnum(int std); - static int stdAndColorToVideoEnum(int std); - static bool stdIsColorAuto(int std); - static int addColorAutoFlag(int std); - static int printVideoStdStr(int videoStd, char strBuffer[], int buff_size); - static int printAudioStdStr(int audioStd, char strBuffer[], int buff_size); - static v4l2_std_id enumToStdAndColor(int videoStd, int audioStd); - static int stdEnumToCvbsFmt (int videoStd, int audioStd); - class FEEvent: public CTvEv { - public: - //static const int EVENT_FE_HAS_SIG = 0X01; /* found something above the noise level */ - //static const int EVENT_FE_HAS_CARRIER = 0x02; /* found a DVB signal */ - //static const int EVENT_FE_HAS_VITERBI = 0X04; /* FEC is stable */ - //static const int EVENT_FE_HAS_SYNC = 0X08; /* found sync bytes */ - // static const int EVENT_FE_HAS_LOCK = 0X10; /* everything's working... */ - //static const int EVENT_FE_HAS_TIMEOUT = 0X20; /* no lock within the last ~2 seconds */ - //static const int EVENT_FE_REINIT = 0X40; /* frontend was reinitialized, */ - static const int EVENT_FE_HAS_SIG = 0x01; - static const int EVENT_FE_NO_SIG = 0x02; - static const int EVENT_FE_INIT = 0x03; - - FEEvent(): CTvEv(CTvEv::TV_EVENT_SIGLE_DETECT) - { - } - ~FEEvent() - { - } - int mCurSigStaus; - int mCurFreq; - }; - - class IObserver { - public: - IObserver() {}; - virtual ~IObserver() {}; - virtual void onEvent(const FEEvent &ev) = 0; - }; - - int setObserver(IObserver *ob) - { - mpObserver = ob; - return 0; - } - - int getSNR(); - int getBER(); - int getInfo(); - int getStatus(); - int checkStatusOnce(); - int getStrength(); - int setCvbsAmpOut(int amp); - int setThreadDelay(int delay) ; - int getPara(int *mode, int *freq, int *para1, int *para2); - int lock(int frequency, int symbol_rate, int modulation, int bandwidth); - int setTunerAfc(int afc); + static const int FE_DEV_ID = 0; + static const int AFC_RANGE = 1000000; + + CFrontEnd(); + ~CFrontEnd(); + + int Open(int mode); + int Close(); + int setMode(int mode); + int fineTune(int freq); + static int formatATVFreq(int freq); + int GetTSSource(AM_DMX_Source_t *src); + int setPara(int mode, int freq, int para1, int para2); + int ClearAnalogFrontEnd(); + int autoLoadFE(); + int SetAnalogFrontEndTimerSwitch(int onOff); + int SetAnalogFrontEndSearhSlowMode(int onOff); + + static int stdAndColorToAudioEnum(int std); + static int stdAndColorToVideoEnum(int std); + static bool stdIsColorAuto(int std); + static int addColorAutoFlag(int std); + static int printVideoStdStr(int videoStd, char strBuffer[], int buff_size); + static int printAudioStdStr(int audioStd, char strBuffer[], int buff_size); + static v4l2_std_id enumToStdAndColor(int videoStd, int audioStd); + static int stdEnumToCvbsFmt (int videoStd, int audioStd); + class FEEvent: public CTvEv { + public: + //static const int EVENT_FE_HAS_SIG = 0X01; /* found something above the noise level */ + //static const int EVENT_FE_HAS_CARRIER = 0x02; /* found a DVB signal */ + //static const int EVENT_FE_HAS_VITERBI = 0X04; /* FEC is stable */ + //static const int EVENT_FE_HAS_SYNC = 0X08; /* found sync bytes */ + // static const int EVENT_FE_HAS_LOCK = 0X10; /* everything's working... */ + //static const int EVENT_FE_HAS_TIMEOUT = 0X20; /* no lock within the last ~2 seconds */ + //static const int EVENT_FE_REINIT = 0X40; /* frontend was reinitialized, */ + static const int EVENT_FE_HAS_SIG = 0x01; + static const int EVENT_FE_NO_SIG = 0x02; + static const int EVENT_FE_INIT = 0x03; + + FEEvent(): CTvEv(CTvEv::TV_EVENT_SIGLE_DETECT) + { + } + ~FEEvent() + { + } + int mCurSigStaus; + int mCurFreq; + }; + + class IObserver { + public: + IObserver() {}; + virtual ~IObserver() {}; + virtual void onEvent(const FEEvent &ev) = 0; + }; + + int setObserver(IObserver *ob) + { + mpObserver = ob; + return 0; + } + + int getSNR(); + int getBER(); + int getInfo(); + int getStatus(); + int checkStatusOnce(); + int getStrength(); + int setCvbsAmpOut(int amp); + int setThreadDelay(int delay) ; + int getPara(int *mode, int *freq, int *para1, int *para2); + int lock(int frequency, int symbol_rate, int modulation, int bandwidth); + int setTunerAfc(int afc); private: - int mFrontDevID; - int mDemuxDevID; - int mTvPlayDevID; - int mCurFineFreq; - IObserver *mpObserver; - FEEvent mCurSigEv; - int mCurMode; - int mCurFreq; - int mCurPara1; - int mCurPara2; - bool mbFEOpened; - static void dmd_fend_callback(long dev_no, int event_type, void *param, void *user_data); + int mFrontDevID; + int mDemuxDevID; + int mTvPlayDevID; + int mCurFineFreq; + IObserver *mpObserver; + FEEvent mCurSigEv; + int mCurMode; + int mCurFreq; + int mCurPara1; + int mCurPara2; + bool mbFEOpened; + static void dmd_fend_callback(long dev_no, int event_type, void *param, void *user_data); }; #endif // ANDROID_FRONTEND_H diff --git a/tvapi/libtv/tv/CTv.cpp b/tvapi/libtv/tv/CTv.cpp index 597aeec..3f4fd4a 100644 --- a/tvapi/libtv/tv/CTv.cpp +++ b/tvapi/libtv/tv/CTv.cpp @@ -65,7 +65,8 @@ extern "C" { using namespace android; // Called each time a message is logged. -static void sqliteLogCallback(void *data, int iErrCode, const char *zMsg) { +static void sqliteLogCallback(void *data, int iErrCode, const char *zMsg) +{ data = data; LOGD( "showbo sqlite (%d) %s\n", iErrCode, zMsg); } @@ -78,7 +79,8 @@ CTv::CTv() : mTvMsgQueue(this), mAutoBackLight( &mVpp, &mTvin ), mTvScannerDetectObserver(this), - mAutoPQparam( &mVpp, &mTvin, &mAv ) { + mAutoPQparam( &mVpp, &mTvin, &mAv ) +{ mAudioMuteStatusForTv = CC_AUDIO_UNMUTE; mAudioMuteStatusForSystem = CC_AUDIO_UNMUTE; //mpClient = pClient; @@ -211,7 +213,8 @@ CTv::CTv() : print_version_info(); }; -CTv::~CTv() { +CTv::~CTv() +{ int iRet; mpObserver = NULL; CTvSettingunLoad(); @@ -227,7 +230,8 @@ CTv::~CTv() { } } -void CTv::onEvent ( const CTvScanner::ScannerEvent &ev ) { +void CTv::onEvent ( const CTvScanner::ScannerEvent &ev ) +{ LOGD ( "%s, CTv::onEvent lockStatus = %d type = %d\n", __FUNCTION__, ev.mLockedStatus, ev.mType ); if ( mDtvScanRunningStatus == DTV_SCAN_RUNNING_ANALYZE_CHANNEL ) { @@ -247,7 +251,8 @@ void CTv::onEvent ( const CTvScanner::ScannerEvent &ev ) { } } -void CTv::onEvent ( const CFrontEnd::FEEvent &ev ) { +void CTv::onEvent ( const CFrontEnd::FEEvent &ev ) +{ const char *config_value = NULL; LOGD ( "%s, FE event type = %d tvaction=%x", __FUNCTION__, ev.mCurSigStaus, mTvAction); if (mTvAction & TV_ACTION_SCANNING) return; @@ -297,157 +302,163 @@ void CTv::onEvent ( const CFrontEnd::FEEvent &ev ) { } } -void CTv::onEvent ( const CTvEpg::EpgEvent &ev ) { +void CTv::onEvent ( const CTvEpg::EpgEvent &ev ) +{ switch ( ev.type ) { - case CTvEpg::EpgEvent::EVENT_TDT_END: - LOGD ( "%s, CTv::onEvent epg time = %ld", __FUNCTION__, ev.time ); - mTvTime.setTime ( ev.time ); + case CTvEpg::EpgEvent::EVENT_TDT_END: + LOGD ( "%s, CTv::onEvent epg time = %ld", __FUNCTION__, ev.time ); + mTvTime.setTime ( ev.time ); break; - case CTvEpg::EpgEvent::EVENT_CHANNEL_UPDATE: { - LOGD ( "%s, CTv:: onEvent channel update", __FUNCTION__ ); - CMessage msg; - msg.mType = CTvMsgQueue::TV_MSG_START_ANALYZE_TS; - msg.mpData = this; - mCurAnalyzeTsChannelID = ev.channelID; - mTvMsgQueue.sendMsg ( msg ); - break; - } + case CTvEpg::EpgEvent::EVENT_CHANNEL_UPDATE: { + LOGD ( "%s, CTv:: onEvent channel update", __FUNCTION__ ); + CMessage msg; + msg.mType = CTvMsgQueue::TV_MSG_START_ANALYZE_TS; + msg.mpData = this; + mCurAnalyzeTsChannelID = ev.channelID; + mTvMsgQueue.sendMsg ( msg ); + break; + } - default: + default: break; } sendTvEvent ( ev ); } -void CTv::onEvent(const CAv::AVEvent &ev) { +void CTv::onEvent(const CAv::AVEvent &ev) +{ const char *config_value = NULL; LOGD("AVEvent = %d", ev.type); switch ( ev.type ) { - case CAv::AVEvent::EVENT_AV_STOP: { - config_value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); - if ( strcmp ( config_value, "black" ) == 0 ) { - mAv.DisableVideoWithBlackColor(); - } else { - mAv.DisableVideoWithBlueColor(); - } - SetAudioMuteForTv ( CC_AUDIO_MUTE ); - - TvEvent::SignalInfoEvent ev; - ev.mStatus = TVIN_SIG_STATUS_NOSIG; - ev.mTrans_fmt = TVIN_TFMT_2D; - ev.mFmt = TVIN_SIG_FMT_NULL; - ev.mReserved = 0; - sendTvEvent ( ev ); - break; + case CAv::AVEvent::EVENT_AV_STOP: { + config_value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); + if ( strcmp ( config_value, "black" ) == 0 ) { + mAv.DisableVideoWithBlackColor(); + } else { + mAv.DisableVideoWithBlueColor(); } + SetAudioMuteForTv ( CC_AUDIO_MUTE ); - case CAv::AVEvent::EVENT_AV_RESUEM: { - //if (mAv.WaittingVideoPlaying() == 0) { - SetDisplayMode ( mVpp.GetDisplayMode ( CTvin::Tvin_SourceInputToSourceInputType(m_source_input) ), - CTvin::Tvin_SourceInputToSourceInputType(m_source_input), - mAv.getVideoResolutionToFmt()); - usleep(50 * 1000); - mAv.EnableVideoNow(); - SetAudioMuteForTv ( CC_AUDIO_UNMUTE ); - //} - TvEvent::AVPlaybackEvent AvPlayBackEvt; - AvPlayBackEvt.mMsgType = TvEvent::AVPlaybackEvent::EVENT_AV_PLAYBACK_RESUME; - AvPlayBackEvt.mProgramId = ( int ) ev.param; - sendTvEvent(AvPlayBackEvt ); - break; - } + TvEvent::SignalInfoEvent ev; + ev.mStatus = TVIN_SIG_STATUS_NOSIG; + ev.mTrans_fmt = TVIN_TFMT_2D; + ev.mFmt = TVIN_SIG_FMT_NULL; + ev.mReserved = 0; + sendTvEvent ( ev ); + break; + } - case CAv::AVEvent::EVENT_AV_SCAMBLED: { - config_value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); - if ( strcmp ( config_value, "black" ) == 0 ) { - mAv.DisableVideoWithBlackColor(); - } else { - mAv.DisableVideoWithBlueColor(); - } - TvEvent::AVPlaybackEvent AvPlayBackEvt; - AvPlayBackEvt.mMsgType = TvEvent::AVPlaybackEvent::EVENT_AV_SCAMBLED; - AvPlayBackEvt.mProgramId = ( int ) ev.param; - sendTvEvent(AvPlayBackEvt ); - break; - } + case CAv::AVEvent::EVENT_AV_RESUEM: { + //if (mAv.WaittingVideoPlaying() == 0) { + SetDisplayMode ( mVpp.GetDisplayMode ( CTvin::Tvin_SourceInputToSourceInputType(m_source_input) ), + CTvin::Tvin_SourceInputToSourceInputType(m_source_input), + mAv.getVideoResolutionToFmt()); + usleep(50 * 1000); + mAv.EnableVideoNow(); + SetAudioMuteForTv ( CC_AUDIO_UNMUTE ); + //} + TvEvent::AVPlaybackEvent AvPlayBackEvt; + AvPlayBackEvt.mMsgType = TvEvent::AVPlaybackEvent::EVENT_AV_PLAYBACK_RESUME; + AvPlayBackEvt.mProgramId = ( int ) ev.param; + sendTvEvent(AvPlayBackEvt ); + break; + } - case CAv::AVEvent::EVENT_AV_UNSUPPORT: { - LOGD("To AVS or AVS+ format");//just avs format, not unsupport, and avs avs+ - break; + case CAv::AVEvent::EVENT_AV_SCAMBLED: { + config_value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); + if ( strcmp ( config_value, "black" ) == 0 ) { + mAv.DisableVideoWithBlackColor(); + } else { + mAv.DisableVideoWithBlueColor(); } + TvEvent::AVPlaybackEvent AvPlayBackEvt; + AvPlayBackEvt.mMsgType = TvEvent::AVPlaybackEvent::EVENT_AV_SCAMBLED; + AvPlayBackEvt.mProgramId = ( int ) ev.param; + sendTvEvent(AvPlayBackEvt ); + break; + } - default: - break; + case CAv::AVEvent::EVENT_AV_UNSUPPORT: { + LOGD("To AVS or AVS+ format");//just avs format, not unsupport, and avs avs+ + break; + } + + default: + break; } } -CTv::CTvMsgQueue::CTvMsgQueue(CTv *tv) { +CTv::CTvMsgQueue::CTvMsgQueue(CTv *tv) +{ mpTv = tv; } -CTv::CTvMsgQueue::~CTvMsgQueue() { +CTv::CTvMsgQueue::~CTvMsgQueue() +{ } -void CTv::CTvMsgQueue::handleMessage ( CMessage &msg ) { +void CTv::CTvMsgQueue::handleMessage ( CMessage &msg ) +{ LOGD ("%s, CTv::CTvMsgQueue::handleMessage type = %d", __FUNCTION__, msg.mType); switch ( msg.mType ) { - case TV_MSG_COMMON: + case TV_MSG_COMMON: break; - case TV_MSG_STOP_ANALYZE_TS: + case TV_MSG_STOP_ANALYZE_TS: //mpTv->Tv_Stop_Analyze_Ts(); break; - case TV_MSG_START_ANALYZE_TS: + case TV_MSG_START_ANALYZE_TS: //mpTv->Tv_Start_Analyze_Ts ( pTv->mCurAnalyzeTsChannelID ); break; - case TV_MSG_CHECK_FE_DELAY: { - mpTv->mFrontDev.checkStatusOnce(); - break; - } + case TV_MSG_CHECK_FE_DELAY: { + mpTv->mFrontDev.checkStatusOnce(); + break; + } - case TV_MSG_AV_EVENT: { - mpTv->onEvent(*((CAv::AVEvent *)(msg.mpPara))); - break; - } + case TV_MSG_AV_EVENT: { + mpTv->onEvent(*((CAv::AVEvent *)(msg.mpPara))); + break; + } - case TV_MSG_FE_EVENT: { - mpTv->onEvent(*((CFrontEnd::FEEvent *)(msg.mpPara))); - break; - } + case TV_MSG_FE_EVENT: { + mpTv->onEvent(*((CFrontEnd::FEEvent *)(msg.mpPara))); + break; + } - case TV_MSG_SCAN_EVENT: { - mpTv->onEvent(*((CTvScanner::ScannerEvent *)(msg.mpPara))); - break; - } + case TV_MSG_SCAN_EVENT: { + mpTv->onEvent(*((CTvScanner::ScannerEvent *)(msg.mpPara))); + break; + } - case TV_MSG_EPG_EVENT: { - mpTv->onEvent(*((CTvEpg::EpgEvent *)(msg.mpPara))); - break; - } + case TV_MSG_EPG_EVENT: { + mpTv->onEvent(*((CTvEpg::EpgEvent *)(msg.mpPara))); + break; + } - case TV_MSG_HDMI_SR_CHANGED: { - int sr = ((int *)(msg.mpPara))[0]; - mpTv->onHdmiSrChanged(sr, (((int *)(msg.mpPara))[1] == 0) ? true : false); - break; - } + case TV_MSG_HDMI_SR_CHANGED: { + int sr = ((int *)(msg.mpPara))[0]; + mpTv->onHdmiSrChanged(sr, (((int *)(msg.mpPara))[1] == 0) ? true : false); + break; + } - case TV_MSG_ENABLE_VIDEO_LATER: { - int fc = msg.mpPara[0]; - mpTv->onEnableVideoLater(fc); - break; - } + case TV_MSG_ENABLE_VIDEO_LATER: { + int fc = msg.mpPara[0]; + mpTv->onEnableVideoLater(fc); + break; + } - default: + default: break; } } -void CTv::onHdmiSrChanged(int sr, bool bInit) { +void CTv::onHdmiSrChanged(int sr, bool bInit) +{ if (bInit) { LOGD ( "%s, Init HDMI audio, sampling rate:%d", __FUNCTION__, sr ); sr = HanldeAudioInputSr(sr); @@ -458,7 +469,8 @@ void CTv::onHdmiSrChanged(int sr, bool bInit) { } } -void CTv::onHMDIAudioStatusChanged(int status) { +void CTv::onHMDIAudioStatusChanged(int status) +{ if (status == 0) {//change to no audio data SetAudioMuteForTv ( CC_AUDIO_MUTE ); } else if (status == 1) {//change to audio data come @@ -468,7 +480,8 @@ void CTv::onHMDIAudioStatusChanged(int status) { } } -void CTv::CTvMsgQueue::onEvent ( const CTvScanner::ScannerEvent &ev ) { +void CTv::CTvMsgQueue::onEvent ( const CTvScanner::ScannerEvent &ev ) +{ CMessage msg; msg.mDelayMs = 0; msg.mType = CTvMsgQueue::TV_MSG_SCAN_EVENT; @@ -476,7 +489,8 @@ void CTv::CTvMsgQueue::onEvent ( const CTvScanner::ScannerEvent &ev ) { this->sendMsg ( msg ); } -void CTv::CTvMsgQueue::onEvent ( const CFrontEnd::FEEvent &ev ) { +void CTv::CTvMsgQueue::onEvent ( const CFrontEnd::FEEvent &ev ) +{ CMessage msg; msg.mDelayMs = 0; msg.mType = CTvMsgQueue::TV_MSG_FE_EVENT; @@ -484,7 +498,8 @@ void CTv::CTvMsgQueue::onEvent ( const CFrontEnd::FEEvent &ev ) { this->sendMsg ( msg ); } -void CTv::CTvMsgQueue::onEvent ( const CTvEpg::EpgEvent &ev ) { +void CTv::CTvMsgQueue::onEvent ( const CTvEpg::EpgEvent &ev ) +{ CMessage msg; msg.mDelayMs = 0; msg.mType = CTvMsgQueue::TV_MSG_EPG_EVENT; @@ -492,7 +507,8 @@ void CTv::CTvMsgQueue::onEvent ( const CTvEpg::EpgEvent &ev ) { this->sendMsg ( msg ); } -void CTv::CTvMsgQueue::onEvent(const CAv::AVEvent &ev) { +void CTv::CTvMsgQueue::onEvent(const CAv::AVEvent &ev) +{ CMessage msg; msg.mDelayMs = 0; msg.mType = CTvMsgQueue::TV_MSG_AV_EVENT; @@ -500,12 +516,14 @@ void CTv::CTvMsgQueue::onEvent(const CAv::AVEvent &ev) { this->sendMsg ( msg ); } -int CTv::setTvObserver ( TvIObserver *ob ) { +int CTv::setTvObserver ( TvIObserver *ob ) +{ mpObserver = ob; return 0; } -void CTv::sendTvEvent ( const CTvEv &ev ) { +void CTv::sendTvEvent ( const CTvEv &ev ) +{ //AutoMutex lock(mLock); /* send sigstate to AutoBackLight */ if (ev.getEvType() == CTvEv::TV_EVENT_SIGLE_DETECT) { @@ -527,11 +545,13 @@ void CTv::sendTvEvent ( const CTvEv &ev ) { } } -int CTv::ClearAnalogFrontEnd() { +int CTv::ClearAnalogFrontEnd() +{ return mFrontDev.ClearAnalogFrontEnd (); } -int CTv::dtvAutoScan() { +int CTv::dtvAutoScan() +{ AutoMutex lock ( mLock ); mTvAction |= TV_ACTION_SCANNING; //mTvEpg.leaveChannel(); @@ -547,7 +567,8 @@ int CTv::dtvAutoScan() { return 0; } -int CTv::dtvCleanProgramByFreq ( int freq ) { +int CTv::dtvCleanProgramByFreq ( int freq ) +{ int iOutRet = 0; CTvChannel channel; iOutRet = CTvChannel::SelectByFreq ( freq, channel ); @@ -559,7 +580,8 @@ int CTv::dtvCleanProgramByFreq ( int freq ) { return iOutRet; } -int CTv::dtvManualScan (int beginFreq, int endFreq, int modulation) { +int CTv::dtvManualScan (int beginFreq, int endFreq, int modulation) +{ AutoMutex lock ( mLock ); mTvAction |= TV_ACTION_SCANNING; //mTvEpg.leaveChannel(); @@ -573,11 +595,12 @@ int CTv::dtvManualScan (int beginFreq, int endFreq, int modulation) { return iOutRet; } -int CTv::dtvAutoScanAtscLock(int attenna, int videoStd, int audioStd) { +int CTv::dtvAutoScanAtscLock(int attenna, int videoStd, int audioStd) +{ //for warning attenna = attenna; videoStd = videoStd; - audioStd= audioStd; + audioStd = audioStd; //showboz /* int minScanFreq, maxScanFreq, vStd, aStd; vStd = CC_ATV_VIDEO_STD_PAL; @@ -600,7 +623,8 @@ int CTv::dtvAutoScanAtscLock(int attenna, int videoStd, int audioStd) { } //searchType 0:not 256 1:is 256 Program -int CTv::atvAutoScan(int videoStd, int audioStd, int searchType) { +int CTv::atvAutoScan(int videoStd, int audioStd, int searchType) +{ int minScanFreq, maxScanFreq, vStd, aStd; AutoMutex lock ( mLock ); mAv.DisableVideoWithBlueColor(); @@ -646,7 +670,8 @@ int CTv::atvAutoScan(int videoStd, int audioStd, int searchType) { return 0; } -int CTv::clearAllProgram(int arg0) { +int CTv::clearAllProgram(int arg0) +{ CTvProgram::CleanAllProgramBySrvType ( CTvProgram::TYPE_ATV ); CTvProgram::CleanAllProgramBySrvType ( CTvProgram::TYPE_TV ); CTvProgram::CleanAllProgramBySrvType ( CTvProgram::TYPE_DTV ); @@ -655,7 +680,8 @@ int CTv::clearAllProgram(int arg0) { } int CTv::atvMunualScan ( int startFreq, int endFreq, int videoStd, int audioStd, - int store_Type , int channel_num ) { + int store_Type , int channel_num ) +{ int minScanFreq, maxScanFreq, vStd, aStd; minScanFreq = mFrontDev.formatATVFreq ( startFreq ); @@ -693,7 +719,8 @@ int CTv::atvMunualScan ( int startFreq, int endFreq, int videoStd, int audioStd, return mTvScanner.ATVManualScan ( minScanFreq, maxScanFreq, stdAndColor, store_Type, channel_num); } -int CTv::getVideoFormatInfo ( int *pWidth, int *pHeight, int *pFPS, int *pInterlace ) { +int CTv::getVideoFormatInfo ( int *pWidth, int *pHeight, int *pFPS, int *pInterlace ) +{ int iOutRet = -1; AM_AV_VideoStatus_t video_status; @@ -719,12 +746,14 @@ int CTv::getVideoFormatInfo ( int *pWidth, int *pHeight, int *pFPS, int *pInterl return iOutRet; } -int CTv::stopScanLock() { +int CTv::stopScanLock() +{ AutoMutex lock ( mLock ); return stopScan(); } -int CTv::stopScan() { +int CTv::stopScan() +{ const char *config_value = NULL; if (!(mTvAction & TV_ACTION_SCANNING)) { LOGD("%s, tv not scanning ,return\n", __FUNCTION__); @@ -747,7 +776,8 @@ int CTv::stopScan() { return 0; } -int CTv::playProgramLock ( int progId ) { +int CTv::playProgramLock ( int progId ) +{ /*AutoMutex lock ( mLock ); CTvProgram prog; int ret = CTvProgram::selectByID ( progId, prog ); @@ -787,7 +817,8 @@ int CTv::playProgramLock ( int progId ) { return 0; } -int CTv::playDvbcProgram ( int progId ) { +int CTv::playDvbcProgram ( int progId ) +{ LOGD ( "%s, progId = %d\n", __FUNCTION__, progId ); CTvProgram prog; @@ -832,7 +863,8 @@ int CTv::playDvbcProgram ( int progId ) { return 0; } -int CTv::getAudioTrackNum ( int progId ) { +int CTv::getAudioTrackNum ( int progId ) +{ int iRet, iOutCnt = 0; CTvProgram prog; @@ -852,7 +884,8 @@ int CTv::getAudioTrackNum ( int progId ) { return iOutCnt; } -int CTv::getAudioInfoByIndex ( int progId, int idx, int *pAFmt, String8 &lang ) { +int CTv::getAudioInfoByIndex ( int progId, int idx, int *pAFmt, String8 &lang ) +{ int iRet, iOutRet = -1; CTvProgram prog; CTvProgram::Audio *pA = NULL; @@ -885,7 +918,8 @@ int CTv::getAudioInfoByIndex ( int progId, int idx, int *pAFmt, String8 &lang ) return iOutRet; } -int CTv::switchAudioTrack ( int aPid, int aFmt, int aParam ) { +int CTv::switchAudioTrack ( int aPid, int aFmt, int aParam ) +{ int iOutRet = 0; do { @@ -900,7 +934,8 @@ int CTv::switchAudioTrack ( int aPid, int aFmt, int aParam ) { return iOutRet; } -int CTv::switchAudioTrack ( int progId, int idx ) { +int CTv::switchAudioTrack ( int progId, int idx ) +{ int iOutRet = 0; CTvProgram prog; CTvProgram::Audio *pAudio = NULL; @@ -943,7 +978,8 @@ int CTv::switchAudioTrack ( int progId, int idx ) { return iOutRet; } -int CTv::ResetAudioDecoderForPCMOutput() { +int CTv::ResetAudioDecoderForPCMOutput() +{ int iOutRet = 0; iOutRet = mAv.ResetAudioDecoder (); @@ -952,7 +988,8 @@ int CTv::ResetAudioDecoderForPCMOutput() { } int CTv::playDtvProgram ( int mode, int freq, int para1, int para2, - int vpid, int vfmt, int apid, int afmt, int pcr, int audioCompetation) { + int vpid, int vfmt, int apid, int afmt, int pcr, int audioCompetation) +{ AutoMutex lock ( mLock ); mTvAction |= TV_ACTION_PLAYING; if ( m_blackout_enable == 1 ) { @@ -974,7 +1011,8 @@ int CTv::playDtvProgram ( int mode, int freq, int para1, int para2, } -int CTv::playDtmbProgram ( int progId ) { +int CTv::playDtmbProgram ( int progId ) +{ CTvProgram prog; CTvChannel channel; int vpid = 0x1fff, apid = 0x1fff, vfmt = -1, afmt = -1; @@ -1024,7 +1062,8 @@ int CTv::playDtmbProgram ( int progId ) { return 0; } -int CTv::playAtvProgram (int freq, int videoStd, int audioStd, int fineTune, int audioCompetation) { +int CTv::playAtvProgram (int freq, int videoStd, int audioStd, int fineTune, int audioCompetation) +{ mTvAction |= TV_ACTION_PLAYING; if ( m_blackout_enable == 1 ) { mAv.EnableVideoBlackout(); @@ -1052,7 +1091,8 @@ int CTv::playAtvProgram (int freq, int videoStd, int audioStd, int fineTune, in return 0; } -int CTv::resetFrontEndPara ( frontend_para_set_t feParms ) { +int CTv::resetFrontEndPara ( frontend_para_set_t feParms ) +{ if ( feParms.mode == FE_ANALOG ) { int progID = -1; int tmpFreq = feParms.freq; @@ -1089,7 +1129,8 @@ int CTv::resetFrontEndPara ( frontend_para_set_t feParms ) { return 0; } -int CTv::resetDmxAndAvSource() { +int CTv::resetDmxAndAvSource() +{ AM_DMX_Source_t curdmxSource; mFrontDev.GetTSSource ( &curdmxSource ); LOGD ( "%s, AM_FEND_GetTSSource %d", __FUNCTION__, curdmxSource ); @@ -1103,7 +1144,8 @@ int CTv::resetDmxAndAvSource() { return 0; } -int CTv::SetCurProgramAudioVolumeCompensationVal ( int tmpVal ) { +int CTv::SetCurProgramAudioVolumeCompensationVal ( int tmpVal ) +{ SetAudioVolumeCompensationVal ( tmpVal ); SetAudioMasterVolume (GetAudioMasterVolume() ); @@ -1121,7 +1163,8 @@ int CTv::SetCurProgramAudioVolumeCompensationVal ( int tmpVal ) { return 0; } -int CTv::GetAudioVolumeCompensationVal(int progxxId) { +int CTv::GetAudioVolumeCompensationVal(int progxxId) +{ int tmpVolValue = 0; CTvProgram prog; if ( CTvProgram::selectByID ( m_cur_playing_prog_id, prog ) != 0 ) { @@ -1134,7 +1177,8 @@ int CTv::GetAudioVolumeCompensationVal(int progxxId) { return tmpVolValue; } -int CTv::startPlayTv ( int source, int vid, int aid, int vfat, int afat ) { +int CTv::startPlayTv ( int source, int vid, int aid, int vfat, int afat ) +{ if ( source == SOURCE_DTV ) { AM_FileEcho ( DEVICE_CLASS_TSYNC_AV_THRESHOLD_MIN, AV_THRESHOLD_MIN_MS ); LOGD ( "%s, startPlayTv", __FUNCTION__); @@ -1143,14 +1187,16 @@ int CTv::startPlayTv ( int source, int vid, int aid, int vfat, int afat ) { return 0; } -int CTv::stopPlayingLock() { +int CTv::stopPlayingLock() +{ AutoMutex lock ( mLock ); if (getSubSwitchStatus() == 1) stopSubtitle(); return stopPlaying(); } -int CTv::stopPlaying() { +int CTv::stopPlaying() +{ const char *config_value = NULL; if (!(mTvAction & TV_ACTION_PLAYING)) { LOGD("%s, stopplay cur action = %x not playing , return", __FUNCTION__, mTvAction); @@ -1178,21 +1224,24 @@ int CTv::stopPlaying() { return 0; } -int CTv::GetATVAFCType() { +int CTv::GetATVAFCType() +{ return 1; } -int CTv::GetATVSourceTimerSwitch() { +int CTv::GetATVSourceTimerSwitch() +{ return 1; } -int CTv::getAudioChannel() { +int CTv::getAudioChannel() +{ int iRet = -1; AM_AOUT_OutputMode_t audioChanneleMod; do { iRet = mAv.AudioGetOutputMode (&audioChanneleMod ); if ( AM_SUCCESS != iRet ) { - LOGD ( "%s, jianfei.lan GetOutputMode is FAILED %d\n", __FUNCTION__, iRet ); + LOGD ( "%s, jianfei.lan GetOutputMode is FAILED %d\n", __FUNCTION__, iRet ); break; } LOGD ( "%s, jianfei.lan getAudioChannel iRet : %d audioChanneleMod %d\n", __FUNCTION__, iRet, audioChanneleMod ); @@ -1200,7 +1249,8 @@ int CTv::getAudioChannel() { return audioChanneleMod; } -int CTv::setAudioChannel ( int channelIdx ) { +int CTv::setAudioChannel ( int channelIdx ) +{ int iOutRet = 0; AM_AOUT_OutputMode_t audioChanneleMod; LOGD ( "%s, channelIdx : %d\n", __FUNCTION__, channelIdx ); @@ -1221,25 +1271,29 @@ int CTv::setAudioChannel ( int channelIdx ) { return 0; } -int CTv::getFrontendSignalStrength() { +int CTv::getFrontendSignalStrength() +{ int Strength = 0; Strength = mFrontDev.getStrength(); return Strength; } -int CTv::getFrontendSNR() { +int CTv::getFrontendSNR() +{ int snr = 0; snr = mFrontDev.getSNR(); return snr; } -int CTv::getFrontendBER() { +int CTv::getFrontendBER() +{ int ber = 0; ber = mFrontDev.getBER(); return ber; } -int CTv::getChannelInfoBydbID ( int dbID, channel_info_t &chan_info ) { +int CTv::getChannelInfoBydbID ( int dbID, channel_info_t &chan_info ) +{ CTvProgram prog; CTvChannel channel; Vector<sp<CTvProgram> > out; @@ -1283,7 +1337,8 @@ int CTv::getChannelInfoBydbID ( int dbID, channel_info_t &chan_info ) { return 0; } -bool CTv::Tv_Start_Analyze_Ts ( int channelID ) { +bool CTv::Tv_Start_Analyze_Ts ( int channelID ) +{ int freq, ret; CTvChannel channel; @@ -1305,30 +1360,36 @@ bool CTv::Tv_Start_Analyze_Ts ( int channelID ) { return true; } -bool CTv::Tv_Stop_Analyze_Ts() { +bool CTv::Tv_Stop_Analyze_Ts() +{ stopScanLock(); return true; } -int CTv::saveATVProgramID ( int dbID ) { +int CTv::saveATVProgramID ( int dbID ) +{ config_set_int ( CFG_SECTION_TV, "atv.get.program.id", dbID ); return 0; } -int CTv::getATVProgramID ( void ) { +int CTv::getATVProgramID ( void ) +{ return config_get_int ( CFG_SECTION_TV, "atv.get.program.id", -1 ); } -int CTv::saveDTVProgramID ( int dbID ) { +int CTv::saveDTVProgramID ( int dbID ) +{ config_set_int ( CFG_SECTION_TV, "dtv.get.program.id", dbID ); return 0; } -int CTv::getDTVProgramID ( void ) { +int CTv::getDTVProgramID ( void ) +{ return config_get_int ( CFG_SECTION_TV, "dtv.get.program.id", -1 ); } -int CTv::getATVMinMaxFreq ( int *scanMinFreq, int *scanMaxFreq ) { +int CTv::getATVMinMaxFreq ( int *scanMinFreq, int *scanMaxFreq ) +{ int tmpVal, i = 0; const char *config_value; const char *strDelimit = ","; @@ -1359,11 +1420,13 @@ int CTv::getATVMinMaxFreq ( int *scanMinFreq, int *scanMaxFreq ) { return 0; } -int CTv::IsDVISignal() { +int CTv::IsDVISignal() +{ return ( ( TVIN_SIG_FMT_NULL != mSigDetectThread.getCurSigInfo().fmt ) && ( mSigDetectThread.getCurSigInfo().reserved & 0x1 ) ); } -int CTv::getHDMIFrameRate() { +int CTv::getHDMIFrameRate() +{ int ConstRate[5] = {24, 25, 30, 50, 60}; float ConstRateDiffHz[5] = {0.5, 0.5, 0.5, 2, 2}; //å差便 int fps = mSigDetectThread.getCurSigInfo().fps; @@ -1375,11 +1438,13 @@ int CTv::getHDMIFrameRate() { return fps; } -tv_source_input_t CTv::GetLastSourceInput ( void ) { +tv_source_input_t CTv::GetLastSourceInput ( void ) +{ return m_last_source_input; } -int CTv::isVgaFmtInHdmi ( void ) { +int CTv::isVgaFmtInHdmi ( void ) +{ tvin_sig_fmt_t fmt = mSigDetectThread.getCurSigInfo().fmt; if ( CTvin::Tvin_SourceInputToSourceInputType(m_source_input) != SOURCE_TYPE_HDMI ) { @@ -1388,7 +1453,8 @@ int CTv::isVgaFmtInHdmi ( void ) { return CTvin::isVgaFmtInHdmi ( fmt ); } -int CTv::isSDFmtInHdmi ( void ) { +int CTv::isSDFmtInHdmi ( void ) +{ tvin_sig_fmt_t fmt = mSigDetectThread.getCurSigInfo().fmt; if ( CTvin::Tvin_SourceInputToSourceInputType(m_source_input) != SOURCE_TYPE_HDMI ) { @@ -1397,7 +1463,8 @@ int CTv::isSDFmtInHdmi ( void ) { return CTvin::isSDFmtInHdmi ( fmt ); } -void CTv::print_version_info ( void ) { +void CTv::print_version_info ( void ) +{ // print tvapi version info LOGD ( "libtvservice git branch:%s\n", tvservice_get_git_branch_info() ); LOGD ( "libtvservice git version:%s\n", tvservice_get_git_version_info() ); @@ -1414,7 +1481,8 @@ void CTv::print_version_info ( void ) { LOGD ( "libdvb Builer Name:%s\n", dvb_get_build_name_info() ); } -int CTv::Tvin_GetTvinConfig ( void ) { +int CTv::Tvin_GetTvinConfig ( void ) +{ const char *config_value; int i = 0; @@ -1455,12 +1523,14 @@ int CTv::Tvin_GetTvinConfig ( void ) { return 0; } -TvRunStatus_t CTv::GetTvStatus() { +TvRunStatus_t CTv::GetTvStatus() +{ Mutex::Autolock _l ( mLock ); return mTvStatus; } -int CTv::OpenTv ( void ) { +int CTv::OpenTv ( void ) +{ int tmp_val = 0; const char *value; Tv_Spread_Spectrum(); @@ -1591,7 +1661,8 @@ int CTv::OpenTv ( void ) { return 0; } -int CTv::CloseTv ( void ) { +int CTv::CloseTv ( void ) +{ LOGD ( "tv close"); mSigDetectThread.stopDetect(); if (mpUpgradeFBC != NULL) { @@ -1605,7 +1676,8 @@ int CTv::CloseTv ( void ) { return 0; } -int CTv::StartTvLock () { +int CTv::StartTvLock () +{ LOGD ( "%s, tv start status = %d", __FUNCTION__, mTvStatus); if (mTvStatus == TV_START_ED) return 0; @@ -1648,7 +1720,8 @@ int CTv::StartTvLock () { return 0; } -int CTv::DoInstabootSuspend() { +int CTv::DoInstabootSuspend() +{ CTvDatabase::GetTvDb()->UnInitTvDb(); CTvSettingdoSuspend(); mVpp.doSuspend(); @@ -1656,7 +1729,8 @@ int CTv::DoInstabootSuspend() { return 0; } -int CTv::DoInstabootResume() { +int CTv::DoInstabootResume() +{ CTvDatabase::GetTvDb()->InitTvDb(TV_DB_PATH); CTvSettingdoResume(); mVpp.doResume(); @@ -1664,21 +1738,24 @@ int CTv::DoInstabootResume() { return 0; } -int CTv::DoSuspend(int type) { +int CTv::DoSuspend(int type) +{ if (type == 1) { DoInstabootSuspend(); } return 0; } -int CTv::DoResume(int type) { +int CTv::DoResume(int type) +{ if (type == 1) { DoInstabootResume(); } return 0; } -int CTv::StopTvLock ( void ) { +int CTv::StopTvLock ( void ) +{ LOGD("%s, call Tv_Stop status = %d \n", __FUNCTION__, mTvStatus); const char *value; Mutex::Autolock _l ( mLock ); @@ -1732,49 +1809,52 @@ int CTv::StopTvLock ( void ) { return 0; } -const char *CTv::getPqDbPath() { +const char *CTv::getPqDbPath() +{ return config_get_str(CFG_SECTION_TV, "pq_db_path", "/param/pq.db"); } -int CTv::Tv_MiscSetBySource ( tv_source_input_t source_input ) { +int CTv::Tv_MiscSetBySource ( tv_source_input_t source_input ) +{ int ret = -1; switch ( source_input ) { - case SOURCE_TV: - mVpp.VPP_SetScalerPathSel(1); - ret = SetFileAttrValue ( "/sys/module/am_vecm/parameters/dnlp_adj_level", "4" ); - break; + case SOURCE_TV: + mVpp.VPP_SetScalerPathSel(1); + ret = SetFileAttrValue ( "/sys/module/am_vecm/parameters/dnlp_adj_level", "4" ); + break; - case SOURCE_HDMI1: - case SOURCE_HDMI2: - case SOURCE_HDMI3: - mVpp.VPP_SetScalerPathSel(0); - //ret = mVpp.Tv_SavePanoramaMode ( VPP_PANORAMA_MODE_FULL, SOURCE_TYPE_HDMI ); - ret |= SetFileAttrValue ( "/sys/module/am_vecm/parameters/dnlp_adj_level", "5" ); - break; + case SOURCE_HDMI1: + case SOURCE_HDMI2: + case SOURCE_HDMI3: + mVpp.VPP_SetScalerPathSel(0); + //ret = mVpp.Tv_SavePanoramaMode ( VPP_PANORAMA_MODE_FULL, SOURCE_TYPE_HDMI ); + ret |= SetFileAttrValue ( "/sys/module/am_vecm/parameters/dnlp_adj_level", "5" ); + break; - case SOURCE_DTV: - mVpp.VPP_SetScalerPathSel(0); + case SOURCE_DTV: + mVpp.VPP_SetScalerPathSel(0); - case SOURCE_AV1: - case SOURCE_AV2: - case SOURCE_VGA: - mVpp.VPP_SetScalerPathSel(1); - ret |= SetFileAttrValue ( "/sys/module/am_vecm/parameters/dnlp_adj_level", "5" ); - break; + case SOURCE_AV1: + case SOURCE_AV2: + case SOURCE_VGA: + mVpp.VPP_SetScalerPathSel(1); + ret |= SetFileAttrValue ( "/sys/module/am_vecm/parameters/dnlp_adj_level", "5" ); + break; - case SOURCE_SVIDEO: - case SOURCE_IPTV: - mVpp.VPP_SetScalerPathSel(1); - default: - mVpp.VPP_SetScalerPathSel(0); - ret |= SetFileAttrValue ( "/sys/module/am_vecm/parameters/dnlp_adj_level", "5" ); - break; + case SOURCE_SVIDEO: + case SOURCE_IPTV: + mVpp.VPP_SetScalerPathSel(1); + default: + mVpp.VPP_SetScalerPathSel(0); + ret |= SetFileAttrValue ( "/sys/module/am_vecm/parameters/dnlp_adj_level", "5" ); + break; } return ret; } -int CTv::SetSourceSwitchInput (tv_source_input_t source_input ) { +int CTv::SetSourceSwitchInput (tv_source_input_t source_input ) +{ Mutex::Autolock _l ( mLock ); LOGD ( "%s, source input = %d", __FUNCTION__, source_input ); tv_source_input_t cur_source_input = m_source_input; @@ -1791,18 +1871,18 @@ int CTv::SetSourceSwitchInput (tv_source_input_t source_input ) { if (m_is_set_hdmi_edid) { int tmp_ret = 0; switch ( source_input ) { - case SOURCE_HDMI1: - tmp_ret = SSMSetHDMIEdid(1); - break; - case SOURCE_HDMI2: - tmp_ret = SSMSetHDMIEdid(2); - break; - case SOURCE_HDMI3: - tmp_ret = SSMSetHDMIEdid(3); - break; - default: - tmp_ret = -1; - break; + case SOURCE_HDMI1: + tmp_ret = SSMSetHDMIEdid(1); + break; + case SOURCE_HDMI2: + tmp_ret = SSMSetHDMIEdid(2); + break; + case SOURCE_HDMI3: + tmp_ret = SSMSetHDMIEdid(3); + break; + default: + tmp_ret = -1; + break; } if (tmp_ret < 0) LOGE ( "%s, do not set hdmi port%d edid.ret=%d", __FUNCTION__, source_input - 4, tmp_ret ); @@ -1884,7 +1964,7 @@ int CTv::SetSourceSwitchInput (tv_source_input_t source_input ) { static int sigchkcnt = 0; while ( true ) { if ( ( mTvin.Tvin_CheckPathActive ( TV_PATH_TYPE_DEFAULT, isNeedCheckD2D3 ) == TV_PATH_STATUS_INACTIVE ) - && ( mTvin.Tvin_CheckPathActive ( TV_PATH_TYPE_TVIN, isNeedCheckD2D3 ) == TV_PATH_STATUS_INACTIVE ) ) { + && ( mTvin.Tvin_CheckPathActive ( TV_PATH_TYPE_TVIN, isNeedCheckD2D3 ) == TV_PATH_STATUS_INACTIVE ) ) { LOGD("%s, path check is ok, and break\n", __FUNCTION__); break; } else { @@ -1901,7 +1981,7 @@ int CTv::SetSourceSwitchInput (tv_source_input_t source_input ) { // Uninit data UnInitTvAudio(); if (source_input == SOURCE_HDMI1 || source_input == SOURCE_HDMI2 || source_input == SOURCE_HDMI3 || - source_input == SOURCE_MPEG || source_input == SOURCE_DTV ) { + source_input == SOURCE_MPEG || source_input == SOURCE_DTV ) { SwitchAVOutBypass(0); } else { SwitchAVOutBypass(1); @@ -1954,7 +2034,8 @@ int CTv::SetSourceSwitchInput (tv_source_input_t source_input ) { return 0; } -void CTv::onSigToStable() { +void CTv::onSigToStable() +{ if (m_autoset_displayfreq) { int freq = 60; if (CTvin::Tvin_SourceInputToSourceInputType(m_source_input) == SOURCE_TYPE_HDMI ) { @@ -1985,7 +2066,8 @@ void CTv::onSigToStable() { m_sig_stable_nums = 0; } -void CTv::onSigStillStable() { +void CTv::onSigStillStable() +{ if ( m_sig_stable_nums == 20) { tvin_info_t info = mSigDetectThread.getCurSigInfo(); TvEvent::SignalInfoEvent ev; @@ -2020,7 +2102,8 @@ void CTv::onSigStillStable() { m_sig_stable_nums++; } -void CTv::onEnableVideoLater(int framecount) { +void CTv::onEnableVideoLater(int framecount) +{ LOGD("onEnableVideoLater framecount = %d", framecount); mAv.EnableVideoWhenVideoPlaying(2); //if(CTvin::Tvin_SourceInputToSourceInputType(m_source_input) != SOURCE_TYPE_HDMI ){ @@ -2031,10 +2114,11 @@ void CTv::onEnableVideoLater(int framecount) { } } -void CTv::Tv_SetAVOutPut_Input_gain(tv_source_input_t source_input) { +void CTv::Tv_SetAVOutPut_Input_gain(tv_source_input_t source_input) +{ int nPgaValueIndex = 0; int nAdcValueIndex = 0; - int nDdcValueIndex= 0; + int nDdcValueIndex = 0; int tmpAvoutBufPtr[9]; if (GetAvOutGainBuf_Cfg(tmpAvoutBufPtr) != 0) { @@ -2042,28 +2126,28 @@ void CTv::Tv_SetAVOutPut_Input_gain(tv_source_input_t source_input) { } switch (source_input) { - case SOURCE_AV1: - case SOURCE_AV2: - nPgaValueIndex = 0; - nAdcValueIndex = 1; - nDdcValueIndex = 2; - break; - case SOURCE_HDMI1: - case SOURCE_HDMI2: - case SOURCE_HDMI3: - case SOURCE_DTV: - case SOURCE_MPEG: - nPgaValueIndex = 3; - nAdcValueIndex = 4; - nDdcValueIndex = 5; - break; - case SOURCE_TV: - nPgaValueIndex = 6; - nAdcValueIndex = 7; - nDdcValueIndex = 8; - break; - default: - break; + case SOURCE_AV1: + case SOURCE_AV2: + nPgaValueIndex = 0; + nAdcValueIndex = 1; + nDdcValueIndex = 2; + break; + case SOURCE_HDMI1: + case SOURCE_HDMI2: + case SOURCE_HDMI3: + case SOURCE_DTV: + case SOURCE_MPEG: + nPgaValueIndex = 3; + nAdcValueIndex = 4; + nDdcValueIndex = 5; + break; + case SOURCE_TV: + nPgaValueIndex = 6; + nAdcValueIndex = 7; + nDdcValueIndex = 8; + break; + default: + break; } SetPGA_IN_Value(tmpAvoutBufPtr[nPgaValueIndex]); @@ -2071,14 +2155,16 @@ void CTv::Tv_SetAVOutPut_Input_gain(tv_source_input_t source_input) { SetDAC_Digital_PlayBack_Volume(tmpAvoutBufPtr[nDdcValueIndex]); } -void CTv::onSigStableToUnstable() { +void CTv::onSigStableToUnstable() +{ LOGD ( "%s, stable to unstable\n", __FUNCTION__); SetAudioMuteForTv(CC_AUDIO_MUTE); mAv.DisableVideoWithBlackColor(); mTvin.Tvin_StopDecoder(); } -void CTv::onSigStableToUnSupport() { +void CTv::onSigStableToUnSupport() +{ SetAudioMuteForTv(CC_AUDIO_MUTE); mAv.DisableVideoWithBlackColor(); mTvin.Tvin_StopDecoder(); @@ -2093,9 +2179,10 @@ void CTv::onSigStableToUnSupport() { LOGD ( "%s, Enable blackscreen for signal change in StableToUnSupport!", __FUNCTION__ ); } -void CTv::onSigStableToNoSig() { +void CTv::onSigStableToNoSig() +{ SetAudioMuteForTv(CC_AUDIO_MUTE); - const char * value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); + const char *value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); if ( strcmp ( value, "black" ) == 0 ) { mAv.DisableVideoWithBlackColor(); } else { @@ -2114,7 +2201,8 @@ void CTv::onSigStableToNoSig() { LOGD ( "%s, Enable bluescreen for signal change in StableToNoSig!", __FUNCTION__); } -void CTv::onSigUnStableToUnSupport() { +void CTv::onSigUnStableToUnSupport() +{ mAv.DisableVideoWithBlackColor(); mTvin.Tvin_StopDecoder(); tvin_info_t info = mSigDetectThread.getCurSigInfo(); @@ -2128,9 +2216,10 @@ void CTv::onSigUnStableToUnSupport() { LOGD ( "%s, Enable blackscreen for signal change in UnStableToUnSupport!", __FUNCTION__); } -void CTv::onSigUnStableToNoSig() { +void CTv::onSigUnStableToNoSig() +{ SetAudioMuteForTv(CC_AUDIO_MUTE); - const char * value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); + const char *value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); if ( strcmp ( value, "black" ) == 0 ) { mAv.DisableVideoWithBlackColor(); } else { @@ -2149,9 +2238,10 @@ void CTv::onSigUnStableToNoSig() { LOGD ( "%s, Enable bluescreen for signal change in UnStableToNoSig! status = %d", __FUNCTION__, ev.mStatus ); } -void CTv::onSigNullToNoSig() { +void CTv::onSigNullToNoSig() +{ SetAudioMuteForTv(CC_AUDIO_MUTE); - const char * value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); + const char *value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); if ( strcmp ( value, "black" ) == 0 ) { mAv.DisableVideoWithBlackColor(); } else { @@ -2171,8 +2261,9 @@ void CTv::onSigNullToNoSig() { LOGD ( "%s, Enable bluescreen for signal change in NullToNoSig!", __FUNCTION__); } -void CTv::onSigNoSigToUnstable() { - const char * value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); +void CTv::onSigNoSigToUnstable() +{ + const char *value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); if ( strcmp ( value, "black" ) == 0 ) { mAv.DisableVideoWithBlackColor(); } else { @@ -2181,13 +2272,16 @@ void CTv::onSigNoSigToUnstable() { LOGD("Enable bluescreen for signal change in NoSigToUnstable\n"); } -void CTv::onSigStillUnstable(){ +void CTv::onSigStillUnstable() +{ } -void CTv::onSigStillNosig(){ +void CTv::onSigStillNosig() +{ } -void CTv::onSigStillNoSupport() { +void CTv::onSigStillNoSupport() +{ return;//change for gxtvbb, don't send event when sitll not support /* tvin_info_t info = mSigDetectThread.getCurSigInfo(); @@ -2201,10 +2295,12 @@ void CTv::onSigStillNoSupport() { */ } -void CTv::onSigStillNull(){ +void CTv::onSigStillNull() +{ } -void CTv::onStableSigFmtChange() { +void CTv::onStableSigFmtChange() +{ if ( m_autoset_displayfreq) { if (CTvin::Tvin_SourceInputToSourceInputType(m_source_input) == SOURCE_TYPE_HDMI ) { int fps = getHDMIFrameRate(); @@ -2232,14 +2328,17 @@ void CTv::onStableSigFmtChange() { } } -void CTv::onStableTransFmtChange() { +void CTv::onStableTransFmtChange() +{ LOGD("onStableTransFmtChange trans_fmt = %d", mSigDetectThread.getCurSigInfo().trans_fmt); } -void CTv::onSigDetectEnter(){ +void CTv::onSigDetectEnter() +{ } -void CTv::onSigDetectLoop() { +void CTv::onSigDetectLoop() +{ if (( CTvin::Tvin_SourceInputToSourceInputType(m_source_input) == SOURCE_TYPE_HDMI ) ) { int sr = mTvin.get_hdmi_sampling_rate(); if ( ( sr > 0 ) && ( sr != m_hdmi_sampling_rate ) ) { @@ -2263,16 +2362,18 @@ void CTv::onSigDetectLoop() { } } -CTv::CTvDetectObserverForScanner::CTvDetectObserverForScanner(CTv *pTv) { +CTv::CTvDetectObserverForScanner::CTvDetectObserverForScanner(CTv *pTv) +{ mpTv = pTv; m_sig_stable_nums = 0; } -void CTv::CTvDetectObserverForScanner::onSigStableToUnstable() { +void CTv::CTvDetectObserverForScanner::onSigStableToUnstable() +{ LOGD ( "%s, stable to unstable\n", __FUNCTION__); mpTv->SetAudioMuteForTv(CC_AUDIO_MUTE); mpTv->SetAudioMuteForTv(CC_AUDIO_MUTE); - const char * value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); + const char *value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); if ( strcmp ( value, "black" ) == 0 ) { mpTv->mAv.DisableVideoWithBlackColor(); } else { @@ -2281,9 +2382,10 @@ void CTv::CTvDetectObserverForScanner::onSigStableToUnstable() { mpTv->mTvin.Tvin_StopDecoder(); } -void CTv::CTvDetectObserverForScanner::onSigUnStableToNoSig() { +void CTv::CTvDetectObserverForScanner::onSigUnStableToNoSig() +{ mpTv->SetAudioMuteForTv(CC_AUDIO_MUTE); - const char * value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); + const char *value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); if ( strcmp ( value, "black" ) == 0 ) { mpTv->mAv.DisableVideoWithBlackColor(); } else { @@ -2292,9 +2394,10 @@ void CTv::CTvDetectObserverForScanner::onSigUnStableToNoSig() { mpTv->mTvin.Tvin_StopDecoder(); } -void CTv::CTvDetectObserverForScanner::onSigStableToNoSig() { +void CTv::CTvDetectObserverForScanner::onSigStableToNoSig() +{ mpTv->SetAudioMuteForTv(CC_AUDIO_MUTE); - const char * value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); + const char *value = config_get_str ( CFG_SECTION_TV, CFG_BLUE_SCREEN_COLOR, "null" ); if ( strcmp ( value, "black" ) == 0 ) { mpTv->mAv.DisableVideoWithBlackColor(); } else { @@ -2304,17 +2407,19 @@ void CTv::CTvDetectObserverForScanner::onSigStableToNoSig() { LOGD ( "%s, Enable bluescreen for signal change in StableToNoSig!", __FUNCTION__); } -void CTv::CTvDetectObserverForScanner::onSigToStable() { +void CTv::CTvDetectObserverForScanner::onSigToStable() +{ mpTv->mAv.setVideoScreenMode ( CAv::VIDEO_WIDEOPTION_16_9 ); m_sig_stable_nums = 0; } -void CTv::CTvDetectObserverForScanner::onSigStillStable() { +void CTv::CTvDetectObserverForScanner::onSigStillStable() +{ if (m_sig_stable_nums == 1) { LOGD("%s still stable , to start decoder", __FUNCTION__); int startdec_status = mpTv->mTvin.Tvin_StartDecoder (mpTv->mSigDetectThread.getCurSigInfo() ); if ( startdec_status == 0 ) { - const char * value = config_get_str ( CFG_SECTION_TV, "tvin.db.reg.en", "null" ); + const char *value = config_get_str ( CFG_SECTION_TV, "tvin.db.reg.en", "null" ); if ( strcmp ( value, "enable" ) == 0 ) { usleep ( 20 * 1000 ); mpTv->Tvin_SetPLLValues (); @@ -2329,14 +2434,16 @@ void CTv::CTvDetectObserverForScanner::onSigStillStable() { m_sig_stable_nums++; } -void CTv::onSourceConnect(int source_type, int connect_status) { +void CTv::onSourceConnect(int source_type, int connect_status) +{ TvEvent::SourceConnectEvent ev; ev.mSourceInput = source_type; ev.connectionState = connect_status; sendTvEvent(ev); } -void CTv::onVframeSizeChange() { +void CTv::onVframeSizeChange() +{ if (m_source_input == SOURCE_DTV) { mVpp.LoadVppSettings ( SOURCE_TYPE_DTV, mAv.getVideoResolutionToFmt(), INDEX_2D, TVIN_TFMT_2D ); } else if (m_source_input == SOURCE_INVALID) { @@ -2344,17 +2451,20 @@ void CTv::onVframeSizeChange() { } } -int CTv::GetSourceConnectStatus(tv_source_input_t source_input) { +int CTv::GetSourceConnectStatus(tv_source_input_t source_input) +{ return mSourceConnectDetectThread.GetSourceConnectStatus((tv_source_input_t)source_input); } -tv_source_input_t CTv::GetCurrentSourceInputLock ( void ) { +tv_source_input_t CTv::GetCurrentSourceInputLock ( void ) +{ Mutex::Autolock _l ( mLock ); return m_source_input; } //dtv and tvin -tvin_info_t CTv::GetCurrentSignalInfo ( void ) { +tvin_info_t CTv::GetCurrentSignalInfo ( void ) +{ tvin_trans_fmt det_fmt = TVIN_TFMT_2D; tvin_sig_status_t signalState = TVIN_SIG_STATUS_NULL; tvin_info_t signal_info = mSigDetectThread.getCurSigInfo(); @@ -2375,14 +2485,16 @@ tvin_info_t CTv::GetCurrentSignalInfo ( void ) { return signal_info; } -int CTv::Tv_GetHistgram(int *histgram_buf) { +int CTv::Tv_GetHistgram(int *histgram_buf) +{ if (histgram_buf == NULL) { return -1; } return mTvin.VDIN_GetHistgram(histgram_buf); } -int CTv::Tv_Set3DMode ( VIDEO_3D_MODE_T mode ) { +int CTv::Tv_Set3DMode ( VIDEO_3D_MODE_T mode ) +{ if (mode == VIDEO_3D_MODE_AUTO) { mTvin.VDIN_SetDI3DDetc (1); } else { @@ -2395,49 +2507,57 @@ int CTv::Tv_Set3DMode ( VIDEO_3D_MODE_T mode ) { return 0; } -VIDEO_3D_MODE_T CTv::Tv_Get3DMode ( void ) { +VIDEO_3D_MODE_T CTv::Tv_Get3DMode ( void ) +{ return m_mode_3d; } -int CTv::Tv_Set3DLRSwith ( int on_off) { +int CTv::Tv_Set3DLRSwith ( int on_off) +{ LOGW ( "%s,Set3D LRSwith on_off %d ,status %d !!! ", __FUNCTION__, on_off); mAv.set3DMode(m_mode_3d, on_off, 0); SSMSave3DLRSwitch(on_off); return 0; } -int CTv::Tv_Get3DLRSwith ( void ) { +int CTv::Tv_Get3DLRSwith ( void ) +{ unsigned char val = 0; SSMRead3DLRSwitch ( &val ); return ( int ) val; } -int CTv::Tv_Set3DTo2DMode ( int mode) { +int CTv::Tv_Set3DTo2DMode ( int mode) +{ LOGW ( "%s,Set3D to 2D mode %d ,status %d !!! ", __FUNCTION__ , mode); mAv.set3DMode(m_mode_3d, 0, mode); SSMSave3DTO2D ( mode ); return 0; } -int CTv::Tv_Get3DTo2DMode ( void ) { +int CTv::Tv_Get3DTo2DMode ( void ) +{ unsigned char val = 0; SSMRead3DTO2D ( &val ); return val; } -int CTv::Tv_Set3DDepth ( int value ) { +int CTv::Tv_Set3DDepth ( int value ) +{ mTvin.Tvin_SetDepthOf2Dto3D( value ); SSMSave3DDepth ( value ); return 0; } -int CTv::GetSave3DDepth ( void ) { +int CTv::GetSave3DDepth ( void ) +{ unsigned char val = 0; SSMRead3DDepth ( &val ); return val; } -is_3d_type_t CTv::Check2Dor3D ( VIDEO_3D_MODE_T mode3d, tvin_trans_fmt_t trans_fmt ) { +is_3d_type_t CTv::Check2Dor3D ( VIDEO_3D_MODE_T mode3d, tvin_trans_fmt_t trans_fmt ) +{ if ( mode3d == VIDEO_3D_MODE_DISABLE ) { return INDEX_2D; } else if ( mode3d == VIDEO_3D_MODE_AUTO ) { @@ -2451,7 +2571,8 @@ is_3d_type_t CTv::Check2Dor3D ( VIDEO_3D_MODE_T mode3d, tvin_trans_fmt_t trans_f } } -int CTv::Tvin_SetPLLValues (){ +int CTv::Tvin_SetPLLValues () +{ tvin_sig_fmt_t sig_fmt = mSigDetectThread.getCurSigInfo().fmt; tvin_port_t source_port = CTvin::Tvin_GetSourcePortBySourceInput(m_source_input); am_regs_t regs; @@ -2471,14 +2592,15 @@ int CTv::Tvin_SetPLLValues (){ return 0; } -int CTv::SetCVD2Values () { +int CTv::SetCVD2Values () +{ tvin_sig_fmt_t sig_fmt = mSigDetectThread.getCurSigInfo().fmt; tvin_port_t source_port = CTvin::Tvin_GetSourcePortBySourceInput(m_source_input); am_regs_t regs; if (mVpp.getPqData()->PQ_GetCVD2Params ( source_port, sig_fmt, ®s ) == 0) { LOGD ( "%s, PQ_GetCVD2Params(source_port[%d], sig_fmt[%d],®s).\n", __FUNCTION__, - source_port, sig_fmt ); + source_port, sig_fmt ); if ( mTvin.TvinApi_LoadCVD2Values ( regs ) < 0 ) { LOGE ( "%s, TvinApi_LoadCVD2Values failed!\n", __FUNCTION__); @@ -2492,7 +2614,8 @@ int CTv::SetCVD2Values () { return 0; } -int CTv::SetPreviewWindow ( tvin_window_pos_t pos ) { +int CTv::SetPreviewWindow ( tvin_window_pos_t pos ) +{ m_win_pos.x1 = pos.x1; m_win_pos.y1 = pos.y1; m_win_pos.x2 = pos.x2; @@ -2512,7 +2635,8 @@ int CTv::SetPreviewWindow ( tvin_window_pos_t pos ) { } /*********************** Audio start **********************/ -int CTv::SetAudioVolDigitLUTTable ( tv_source_input_t source_input ) { +int CTv::SetAudioVolDigitLUTTable ( tv_source_input_t source_input ) +{ int tmpDefDigitLutBuf[CC_LUT_BUF_SIZE] = { 0 }; int lut_table_index = 0; if (source_input == SOURCE_TV) { @@ -2544,7 +2668,8 @@ int CTv::SetAudioVolDigitLUTTable ( tv_source_input_t source_input ) { return 0; } -void CTv::RefreshAudioMasterVolume ( tv_source_input_t source_input ) { +void CTv::RefreshAudioMasterVolume ( tv_source_input_t source_input ) +{ if (source_input == SOURCE_HDMI1 || source_input == SOURCE_HDMI2 || source_input == SOURCE_HDMI3) { if ( GetAudioDVISupportEnable() == 1 ) { if ( IsDVISignal() ) { @@ -2559,7 +2684,8 @@ void CTv::RefreshAudioMasterVolume ( tv_source_input_t source_input ) { SetAudioMasterVolume ( GetAudioMasterVolume() ); } -int CTv::Tv_SetAudioInSource (tv_source_input_t source_input) { +int CTv::Tv_SetAudioInSource (tv_source_input_t source_input) +{ int vol = 255; if (source_input == SOURCE_TV) { if (mTvin.Tvin_GetAudioInSourceType(source_input) == TV_AUDIO_IN_SOURCE_TYPE_ATV) { @@ -2578,7 +2704,7 @@ int CTv::Tv_SetAudioInSource (tv_source_input_t source_input) { AudioSetAudioInSource(CC_AUDIO_IN_SOURCE_HDMI); vol = GetAudioInternalDACDigitalPlayBackVolume_Cfg(CC_AUDIO_IN_SOURCE_HDMI); } else if (source_input == SOURCE_YPBPR1 || source_input == SOURCE_YPBPR2 || - source_input == SOURCE_TYPE_VGA) { + source_input == SOURCE_TYPE_VGA) { AudioSetAudioInSource(CC_AUDIO_IN_SOURCE_LINEIN); vol = GetAudioInternalDACDigitalPlayBackVolume_Cfg(CC_AUDIO_IN_SOURCE_LINEIN); } else if (source_input == SOURCE_MPEG) { @@ -2594,7 +2720,8 @@ int CTv::Tv_SetAudioInSource (tv_source_input_t source_input) { return 0; } -int CTv::Tv_SetAudioSourceType (tv_source_input_t source_input) { +int CTv::Tv_SetAudioSourceType (tv_source_input_t source_input) +{ int audio_source = -1; if (source_input == SOURCE_TV) { @@ -2602,10 +2729,10 @@ int CTv::Tv_SetAudioSourceType (tv_source_input_t source_input) { } else if (source_input == SOURCE_AV1 || source_input == SOURCE_AV2) { audio_source = AUDIO_AV_SOURCE; } else if (source_input == SOURCE_HDMI1 || source_input == SOURCE_HDMI2 || - source_input == SOURCE_HDMI3) { + source_input == SOURCE_HDMI3) { audio_source = AUDIO_HDMI_SOURCE; } else if (source_input == SOURCE_YPBPR1 || source_input == SOURCE_YPBPR2 || - source_input == SOURCE_TYPE_VGA) { + source_input == SOURCE_TYPE_VGA) { audio_source = AUDIO_AV_SOURCE; } else if (source_input == SOURCE_DTV) { audio_source = AUDIO_MPEG_SOURCE; @@ -2616,50 +2743,55 @@ int CTv::Tv_SetAudioSourceType (tv_source_input_t source_input) { return AudioSetAudioSourceType(audio_source); } -void CTv::Tv_SetAudioOutputSwap_Type (tv_source_input_t source_input) { +void CTv::Tv_SetAudioOutputSwap_Type (tv_source_input_t source_input) +{ int sw_status = GetAudioOutputSwapStatus(source_input); SetOutput_Swap(sw_status); } -void CTv::Tv_ADCDigitalCapture_Volume (void) { +void CTv::Tv_ADCDigitalCapture_Volume (void) +{ int capture_vol = GetADCDigitalCaptureVol_Cfg(); LOGD("%s, we have read ADCDigitalCaptureVol_Config = %d \n", __FUNCTION__, capture_vol); SetADC_Digital_Capture_Volume(capture_vol); } -void CTv::Tv_SetPGAIn_Gain (void) { +void CTv::Tv_SetPGAIn_Gain (void) +{ int gain_val = GetAudioInternalDacPGAInGain_Cfg(); LOGD("%s, we have read ADCDigitalCaptureVol_Config = %d \n", __FUNCTION__, gain_val); SetPGA_IN_Value(gain_val); } -void CTv::Tv_SetDACDigitalPlayBack_Volume (int audio_src_in_type) { +void CTv::Tv_SetDACDigitalPlayBack_Volume (int audio_src_in_type) +{ int vol = GetAudioInternalDACDigitalPlayBackVolume_Cfg(audio_src_in_type); LOGD("%s, we have read DACDigitalPlayBackVolume config = %d \n", __FUNCTION__, vol); SetDAC_Digital_PlayBack_Volume(vol); } /*********************** Audio end **********************/ -unsigned int CTv::Vpp_GetDisplayResolutionInfo(tvin_window_pos_t *win_pos) { +unsigned int CTv::Vpp_GetDisplayResolutionInfo(tvin_window_pos_t *win_pos) +{ int display_resolution = mAv.getVideoDisplayResolution(); int width = 0, height = 0; switch (display_resolution) { - case VPP_DISPLAY_RESOLUTION_1366X768: - width = CC_RESOLUTION_1366X768_W; - height = CC_RESOLUTION_1366X768_H; - break; - case VPP_DISPLAY_RESOLUTION_1920X1080: - width = CC_RESOLUTION_1920X1080_W; - height = CC_RESOLUTION_1920X1080_H; - break; - case VPP_DISPLAY_RESOLUTION_3840X2160: - width = CC_RESOLUTION_3840X2160_W; - height = CC_RESOLUTION_3840X2160_H; - break; - default: - width = CC_RESOLUTION_3840X2160_W; - height = CC_RESOLUTION_3840X2160_H; - break; + case VPP_DISPLAY_RESOLUTION_1366X768: + width = CC_RESOLUTION_1366X768_W; + height = CC_RESOLUTION_1366X768_H; + break; + case VPP_DISPLAY_RESOLUTION_1920X1080: + width = CC_RESOLUTION_1920X1080_W; + height = CC_RESOLUTION_1920X1080_H; + break; + case VPP_DISPLAY_RESOLUTION_3840X2160: + width = CC_RESOLUTION_3840X2160_W; + height = CC_RESOLUTION_3840X2160_H; + break; + default: + width = CC_RESOLUTION_3840X2160_W; + height = CC_RESOLUTION_3840X2160_H; + break; } if (win_pos != NULL) { @@ -2671,18 +2803,21 @@ unsigned int CTv::Vpp_GetDisplayResolutionInfo(tvin_window_pos_t *win_pos) { return 0; } -int CTv::setBlackoutEnable(int enable) { +int CTv::setBlackoutEnable(int enable) +{ m_blackout_enable = enable; return SSMSaveBlackoutEnable(enable); } -int CTv::getSaveBlackoutEnable() { +int CTv::getSaveBlackoutEnable() +{ int8_t enable; SSMReadBlackoutEnable(&enable); return enable; } -void CTv::startAutoBackLight() { +void CTv::startAutoBackLight() +{ if (mHdmiOutFbc) { Tv_FactorySet_FBC_Auto_Backlight_OnOff(1); } else { @@ -2690,7 +2825,8 @@ void CTv::startAutoBackLight() { } } -void CTv::stopAutoBackLight() { +void CTv::stopAutoBackLight() +{ if (mHdmiOutFbc) { Tv_FactorySet_FBC_Auto_Backlight_OnOff(0); } else { @@ -2698,7 +2834,8 @@ void CTv::stopAutoBackLight() { } } -int CTv::getAutoBackLight_on_off() { +int CTv::getAutoBackLight_on_off() +{ if (mHdmiOutFbc) { return Tv_FactoryGet_FBC_Auto_Backlight_OnOff(); } else { @@ -2706,14 +2843,16 @@ int CTv::getAutoBackLight_on_off() { } } -int CTv::getAverageLuma() { +int CTv::getAverageLuma() +{ return mTvin.VDIN_Get_avg_luma(); } -int CTv::setAutobacklightData(const char* value) { - const char* KEY ="haier.autobacklight.mp.data"; +int CTv::setAutobacklightData(const char *value) +{ + const char *KEY = "haier.autobacklight.mp.data"; - const char * keyValue = config_get_str(CFG_SECTION_TV, KEY, "null"); + const char *keyValue = config_get_str(CFG_SECTION_TV, KEY, "null"); if (strcmp(keyValue, value) != 0) { config_set_str(CFG_SECTION_TV, KEY, value); LOGD("%s, config string now set as: %s \n", __FUNCTION__, keyValue); @@ -2723,11 +2862,12 @@ int CTv::setAutobacklightData(const char* value) { return 0; } -int CTv::getAutoBacklightData(int* data) { +int CTv::getAutoBacklightData(int *data) +{ char datas[512] = {0}; char delims[] = ","; char *result = NULL; - const char* KEY ="haier.autobacklight.mp.data"; + const char *KEY = "haier.autobacklight.mp.data"; int i = 0; if (NULL == data) { @@ -2735,18 +2875,18 @@ int CTv::getAutoBacklightData(int* data) { return -1; } - const char * keyValue = config_get_str(CFG_SECTION_TV, KEY, (char *) "null"); - if (strcmp(keyValue,"null") == 0) { - LOGD("%s, value is NULL\n",__FUNCTION__); + const char *keyValue = config_get_str(CFG_SECTION_TV, KEY, (char *) "null"); + if (strcmp(keyValue, "null") == 0) { + LOGD("%s, value is NULL\n", __FUNCTION__); return -1; } - strncpy(datas, keyValue, sizeof(datas)-1); + strncpy(datas, keyValue, sizeof(datas) - 1); result = strtok( datas, delims ); while ( result != NULL ) { char *pd = strstr(result, ":"); if (pd != NULL) { - data[i] = strtol(pd+1, NULL, 10 ); + data[i] = strtol(pd + 1, NULL, 10 ); i++; } result = strtok( NULL, delims ); @@ -2755,7 +2895,8 @@ int CTv::getAutoBacklightData(int* data) { } /*********************** SSM start **********************/ -int CTv::Tv_SSMRestoreDefaultSetting() { +int CTv::Tv_SSMRestoreDefaultSetting() +{ SSMRestoreDeviceMarkValues(); AudioSSMRestoreDefaultSetting(); mVpp.VPPSSMRestoreDefault(); @@ -2771,11 +2912,13 @@ int CTv::Tv_SSMRestoreDefaultSetting() { return 0; } -int CTv::clearDbAllProgramInfoTable() { +int CTv::clearDbAllProgramInfoTable() +{ return CTvDatabase::GetTvDb()->clearDbAllProgramInfoTable(); } -int CTv::Tv_SSMFacRestoreDefaultSetting() { +int CTv::Tv_SSMFacRestoreDefaultSetting() +{ mVpp.VPPSSMFacRestoreDefault(); AudioSSMRestoreDefaultSetting(); MiscSSMFacRestoreDefault(); @@ -2785,7 +2928,8 @@ int CTv::Tv_SSMFacRestoreDefaultSetting() { /*********************** SSM End **********************/ //not in CTv, not use lock -void CTv::setSourceSwitchAndPlay() { +void CTv::setSourceSwitchAndPlay() +{ int progID = 0, ret = -1; CTvProgram prog; LOGD ( "%s\n", __FUNCTION__ ); @@ -2811,12 +2955,14 @@ void CTv::setSourceSwitchAndPlay() { playProgramLock(progID); } -int CTv::startCC(int country, int src, int channel, int service) { +int CTv::startCC(int country, int src, int channel, int service) +{ //turn_on_cc = true; return mSubtitle.sub_start_atsc_cc((enum cc_param_country)country, (enum cc_param_source_type)src, channel, (enum cc_param_caption_type)service); } -int CTv::stopCC() { +int CTv::stopCC() +{ //because cc,vchip data both come from vbi thread , here judge cc, vchip is whether both turn off /*turn_on_cc = false; if (config_get_int(CFG_SECTION_TV,"tv.vchip.enable", 0)) @@ -2826,7 +2972,8 @@ int CTv::stopCC() { return mSubtitle.sub_stop_atsc_cc(); } -void CTv::printDebugInfo() { +void CTv::printDebugInfo() +{ print_version_info(); LOGD("%s, TvAction = %x", __FUNCTION__, mTvAction); LOGD("%s, TvRunStatus = %d", __FUNCTION__, mTvStatus); @@ -2836,34 +2983,41 @@ void CTv::printDebugInfo() { //==============vchip end================================ //----------------DVR API============================ -void CTv::SetRecordFileName ( char *name ) { +void CTv::SetRecordFileName ( char *name ) +{ char tmp[256]; strcpy ( tmp, name ); mTvRec.SetRecordFileName ( tmp ); } -void CTv::StartToRecord() { +void CTv::StartToRecord() +{ int progID = getDTVProgramID(); mTvRec.StartRecord ( progID ); } -void CTv::StopRecording() { +void CTv::StopRecording() +{ mTvRec.StopRecord(); } -void CTv::SetRecCurTsOrCurProgram ( int sel ) { +void CTv::SetRecCurTsOrCurProgram ( int sel ) +{ mTvRec.SetRecCurTsOrCurProgram ( sel ); } -int CTv::GetDisplayResolutionConfig() { +int CTv::GetDisplayResolutionConfig() +{ return mAv.getVideoDisplayResolution(); } -int CTv::GetDisplayResolutionInfo() { +int CTv::GetDisplayResolutionInfo() +{ return Vpp_GetDisplayResolutionInfo(NULL); } -void CTv::onHDMIRxCECMessage(int msg_len, unsigned char msg_buf[]) { +void CTv::onHDMIRxCECMessage(int msg_len, unsigned char msg_buf[]) +{ int i = 0; TvEvent::HDMIRxCECEvent ev; ev.mDataCount = msg_len; @@ -2873,22 +3027,26 @@ void CTv::onHDMIRxCECMessage(int msg_len, unsigned char msg_buf[]) { sendTvEvent(ev); } -int CTv::SendHDMIRxCECCustomMessage(unsigned char data_buf[]) { +int CTv::SendHDMIRxCECCustomMessage(unsigned char data_buf[]) +{ tv_source_input_t source_input = m_source_input; return mHDMIRxCEC.SendCustomMessage(source_input, data_buf); } -int CTv::SendHDMIRxCECCustomMessageAndWaitReply(unsigned char data_buf[], unsigned char reply_buf[], int WaitCmd, int timeout) { +int CTv::SendHDMIRxCECCustomMessageAndWaitReply(unsigned char data_buf[], unsigned char reply_buf[], int WaitCmd, int timeout) +{ tv_source_input_t source_input = m_source_input; return mHDMIRxCEC.SendCustomMessageAndWaitReply(source_input, data_buf, reply_buf, WaitCmd, timeout); } -int CTv::SendHDMIRxCECBoradcastStandbyMessage(void) { +int CTv::SendHDMIRxCECBoradcastStandbyMessage(void) +{ tv_source_input_t source_input = m_source_input; return mHDMIRxCEC.SendBoradcastStandbyMessage(source_input); } -int CTv::SendHDMIRxCECGiveCECVersionMessage(tv_source_input_t source_input, unsigned char data_buf[]) { +int CTv::SendHDMIRxCECGiveCECVersionMessage(tv_source_input_t source_input, unsigned char data_buf[]) +{ if (mHDMIRxCEC.processRefreshSrcDevice(source_input) == 0) { return mHDMIRxCEC.SendGiveCECVersionMessage(source_input, data_buf); } @@ -2896,7 +3054,8 @@ int CTv::SendHDMIRxCECGiveCECVersionMessage(tv_source_input_t source_input, unsi return -1; } -int CTv::SendHDMIRxCECGiveDeviceVendorIDMessage(tv_source_input_t source_input, unsigned char data_buf[]) { +int CTv::SendHDMIRxCECGiveDeviceVendorIDMessage(tv_source_input_t source_input, unsigned char data_buf[]) +{ if (mHDMIRxCEC.processRefreshSrcDevice(source_input) == 0) { return mHDMIRxCEC.SendGiveDeviceVendorIDMessage(source_input, data_buf); } @@ -2904,7 +3063,8 @@ int CTv::SendHDMIRxCECGiveDeviceVendorIDMessage(tv_source_input_t source_input, return -1; } -int CTv::SendHDMIRxCECGiveOSDNameMessage(tv_source_input_t source_input, unsigned char data_buf[]) { +int CTv::SendHDMIRxCECGiveOSDNameMessage(tv_source_input_t source_input, unsigned char data_buf[]) +{ if (mHDMIRxCEC.processRefreshSrcDevice(source_input) == 0) { return mHDMIRxCEC.SendGiveOSDNameMessage(source_input, data_buf); } @@ -2912,12 +3072,14 @@ int CTv::SendHDMIRxCECGiveOSDNameMessage(tv_source_input_t source_input, unsigne return -1; } -int CTv::GetHdmiHdcpKeyKsvInfo(int data_buf[]) { +int CTv::GetHdmiHdcpKeyKsvInfo(int data_buf[]) +{ return mTvin.get_hdmi_ksv_info(m_source_input, data_buf); } -bool CTv::hdmiOutWithFbc() { - const char * value = config_get_str(CFG_SECTION_TV, "platform.havefbc", "true"); +bool CTv::hdmiOutWithFbc() +{ + const char *value = config_get_str(CFG_SECTION_TV, "platform.havefbc", "true"); if (strcmp(value, "true") == 0) { return true; } @@ -2925,14 +3087,16 @@ bool CTv::hdmiOutWithFbc() { return false; } -void CTv::onUpgradeStatus(int state, int param) { +void CTv::onUpgradeStatus(int state, int param) +{ TvEvent::UpgradeFBCEvent ev; ev.mState = state; ev.param = param; sendTvEvent(ev); } -int CTv::StartUpgradeFBC(char *file_name, int mode, int upgrade_blk_size) { +int CTv::StartUpgradeFBC(char *file_name, int mode, int upgrade_blk_size) +{ if (mpUpgradeFBC != NULL) { mpUpgradeFBC->SetUpgradeFileName(file_name); mpUpgradeFBC->SetUpgradeMode(mode); @@ -2944,7 +3108,8 @@ int CTv::StartUpgradeFBC(char *file_name, int mode, int upgrade_blk_size) { return -1; } -void CTv::onSerialCommunication(int dev_id, int rd_len, unsigned char data_buf[]) { +void CTv::onSerialCommunication(int dev_id, int rd_len, unsigned char data_buf[]) +{ int i = 0; TvEvent::SerialCommunicationEvent ev; ev.mDevId = dev_id; @@ -2955,12 +3120,14 @@ void CTv::onSerialCommunication(int dev_id, int rd_len, unsigned char data_buf[] sendTvEvent(ev); } -int CTv::StartHeadSetDetect() { +int CTv::StartHeadSetDetect() +{ mHeadSet.startDetect(); return 0; } -void CTv::onHeadSetDetect(int state,int para) { +void CTv::onHeadSetDetect(int state, int para) +{ TvEvent::HeadSetOf2d4GEvent ev; if (state == 1) property_set("audio.headset_plug.enable", "1"); @@ -2971,7 +3138,8 @@ void CTv::onHeadSetDetect(int state,int para) { sendTvEvent(ev); } -void CTv::onThermalDetect(int state) { +void CTv::onThermalDetect(int state) +{ const char *value; const char *value_normal; const char *value_cold; @@ -3012,7 +3180,8 @@ void CTv::onThermalDetect(int state) { } } -int CTv::SetDebugSerialOnOff(int on_off) { +int CTv::SetDebugSerialOnOff(int on_off) +{ if (on_off) { property_set("ubootenv.var.console", "ttyS0,115200n8"); } else { @@ -3021,7 +3190,8 @@ int CTv::SetDebugSerialOnOff(int on_off) { return 0; } -int CTv::GetDebugSerialOnOff() { +int CTv::GetDebugSerialOnOff() +{ char prop[256]; memset(prop, '\0', 256); property_get("ubootenv.var.console", prop, "null" ); @@ -3033,7 +3203,8 @@ int CTv::GetDebugSerialOnOff() { } } -int CTv::SetSerialSwitch(int dev_id, int switch_val) { +int CTv::SetSerialSwitch(int dev_id, int switch_val) +{ int tmp_ret = 0; if (dev_id == SERIAL_A) { if (switch_val == 0) { @@ -3070,7 +3241,8 @@ int CTv::SetSerialSwitch(int dev_id, int switch_val) { return tmp_ret; } -int CTv::SendSerialData(int dev_id, int data_len, unsigned char data_buf[]) { +int CTv::SendSerialData(int dev_id, int data_len, unsigned char data_buf[]) +{ int tmp_ret = 0; if (dev_id == SERIAL_A) { @@ -3084,7 +3256,8 @@ int CTv::SendSerialData(int dev_id, int data_len, unsigned char data_buf[]) { return tmp_ret; } -int CTv::ChannelExport(const char *destPath) { +int CTv::ChannelExport(const char *destPath) +{ //DIR *dirptr = NULL; //dirptr = opendir("/storage/external_storage/sda1/"); //if(NULL == dirptr) { @@ -3116,7 +3289,8 @@ int CTv::ChannelExport(const char *destPath) { //} } -int CTv::ChannelImport(const char *srcPath) { +int CTv::ChannelImport(const char *srcPath) +{ if (srcPath == NULL) { srcPath = "/storage/external_storage/sda1/dvb.db"; } @@ -3159,15 +3333,18 @@ int CTv::ChannelImport(const char *srcPath) { } } -int CTv::Tv_GetProjectInfo(project_info_t *ptrInfo) { +int CTv::Tv_GetProjectInfo(project_info_t *ptrInfo) +{ return GetProjectInfo(ptrInfo, fbcIns); } -int CTv::Tv_GetPlatformType() { +int CTv::Tv_GetPlatformType() +{ return mHdmiOutFbc ? 1 : 0; } -int CTv::Tv_HandeHDMIEDIDFilePathConfig() { +int CTv::Tv_HandeHDMIEDIDFilePathConfig() +{ int i, file_exist_flag = 1; const char *value = NULL; char val_buf[256]; @@ -3178,13 +3355,13 @@ int CTv::Tv_HandeHDMIEDIDFilePathConfig() { if (strtoul(value, NULL, 10) == 1) { LOGD( "%s, get config \"%s\" is \"%s\".\n", - __FUNCTION__, "ssm.handle.hdmi.edid.en", value); + __FUNCTION__, "ssm.handle.hdmi.edid.en", value); //get hdmi edid use mode memset(val_buf, '\0', 256); property_get("ubootenv.var.outputmode", val_buf, "null"); LOGD( "%s, get property \"%s\" is \"%s\".\n", - __FUNCTION__, "ubootenv.var.outputmode", val_buf); + __FUNCTION__, "ubootenv.var.outputmode", val_buf); if (strcmp(val_buf, "null") != 0) { config_set_str ( CFG_SECTION_TV, CS_HDMI_EDID_USE_CFG, val_buf); @@ -3239,7 +3416,8 @@ int CTv::Tv_HandeHDMIEDIDFilePathConfig() { return 0; } -int CTv::Tv_SetDDDRCMode(tv_source_input_t source_input) { +int CTv::Tv_SetDDDRCMode(tv_source_input_t source_input) +{ if (source_input == SOURCE_DTV) { if (GetPlatformHaveDDFlag() == 1) { Tv_Utils_SetFileAttrStr("/sys/class/audiodsp/ac3_drc_control", (char *)"drcmode 3"); @@ -3253,79 +3431,98 @@ int CTv::Tv_SetDDDRCMode(tv_source_input_t source_input) { } //PQ -int CTv::Tv_SetBrightness ( int brightness, tv_source_input_type_t source_type, int is_save ) { +int CTv::Tv_SetBrightness ( int brightness, tv_source_input_type_t source_type, int is_save ) +{ return mVpp.SetBrightness(brightness, (tv_source_input_type_t)source_type, mSigDetectThread.getCurSigInfo().fmt, mSigDetectThread.getCurSigInfo().trans_fmt, Check2Dor3D(m_mode_3d, mSigDetectThread.getCurSigInfo().trans_fmt ), is_save); } -int CTv::Tv_GetBrightness ( tv_source_input_type_t source_type ) { +int CTv::Tv_GetBrightness ( tv_source_input_type_t source_type ) +{ return mVpp.GetBrightness((tv_source_input_type_t)source_type); } -int CTv::Tv_SaveBrightness ( int brightness, tv_source_input_type_t source_type ) { +int CTv::Tv_SaveBrightness ( int brightness, tv_source_input_type_t source_type ) +{ return SSMSaveBrightness ( source_type, brightness ); } -int CTv::Tv_SetContrast ( int contrast, tv_source_input_type_t source_type, int is_save ) { +int CTv::Tv_SetContrast ( int contrast, tv_source_input_type_t source_type, int is_save ) +{ return mVpp.SetContrast(contrast, (tv_source_input_type_t)source_type, mSigDetectThread.getCurSigInfo().fmt, mSigDetectThread.getCurSigInfo().trans_fmt, Check2Dor3D(m_mode_3d, mSigDetectThread.getCurSigInfo().trans_fmt ), is_save); } -int CTv::Tv_GetContrast ( tv_source_input_type_t source_type ) { +int CTv::Tv_GetContrast ( tv_source_input_type_t source_type ) +{ return mVpp.GetContrast((tv_source_input_type_t)source_type); } -int CTv::Tv_SaveContrast ( int contrast, tv_source_input_type_t source_type ) { +int CTv::Tv_SaveContrast ( int contrast, tv_source_input_type_t source_type ) +{ return SSMSaveContrast ( source_type, contrast ); } -int CTv::Tv_SetSaturation ( int satuation, tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, int is_save ) { +int CTv::Tv_SetSaturation ( int satuation, tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, int is_save ) +{ return mVpp.SetSaturation(satuation, (tv_source_input_type_t)source_type, (tvin_sig_fmt_t)fmt, mSigDetectThread.getCurSigInfo().trans_fmt, Check2Dor3D(m_mode_3d, mSigDetectThread.getCurSigInfo().trans_fmt ), is_save); } -int CTv::Tv_GetSaturation ( tv_source_input_type_t source_type ) { +int CTv::Tv_GetSaturation ( tv_source_input_type_t source_type ) +{ return mVpp.GetSaturation((tv_source_input_type_t)source_type); } -int CTv::Tv_SaveSaturation ( int satuation, tv_source_input_type_t source_type ) { +int CTv::Tv_SaveSaturation ( int satuation, tv_source_input_type_t source_type ) +{ return SSMSaveSaturation ( source_type, satuation ); } -int CTv::Tv_SetHue ( int hue, tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, int is_save ) { +int CTv::Tv_SetHue ( int hue, tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, int is_save ) +{ return mVpp.SetHue(hue, (tv_source_input_type_t)source_type, (tvin_sig_fmt_t)fmt, mSigDetectThread.getCurSigInfo().trans_fmt, Check2Dor3D(m_mode_3d, mSigDetectThread.getCurSigInfo().trans_fmt ), is_save); } -int CTv::Tv_GetHue ( tv_source_input_type_t source_type ) { +int CTv::Tv_GetHue ( tv_source_input_type_t source_type ) +{ return mVpp.GetHue((tv_source_input_type_t)source_type); } -int CTv::Tv_SaveHue ( int hue, tv_source_input_type_t source_type ) { +int CTv::Tv_SaveHue ( int hue, tv_source_input_type_t source_type ) +{ return SSMSaveHue ( source_type, hue ); } -int CTv::Tv_SetPQMode ( vpp_picture_mode_t mode, tv_source_input_type_t source_type, int is_save ) { +int CTv::Tv_SetPQMode ( vpp_picture_mode_t mode, tv_source_input_type_t source_type, int is_save ) +{ return mVpp.SetPQMode((vpp_picture_mode_t)mode, (tv_source_input_type_t)source_type, mSigDetectThread.getCurSigInfo().fmt, mSigDetectThread.getCurSigInfo().trans_fmt, Check2Dor3D(m_mode_3d, mSigDetectThread.getCurSigInfo().trans_fmt ), is_save); } -vpp_picture_mode_t CTv::Tv_GetPQMode ( tv_source_input_type_t source_type ) { +vpp_picture_mode_t CTv::Tv_GetPQMode ( tv_source_input_type_t source_type ) +{ return mVpp.GetPQMode((tv_source_input_type_t)source_type); } -int CTv::Tv_SavePQMode ( vpp_picture_mode_t mode, tv_source_input_type_t source_type ) { +int CTv::Tv_SavePQMode ( vpp_picture_mode_t mode, tv_source_input_type_t source_type ) +{ return mVpp.SavePQMode ( mode, source_type ); } -int CTv::Tv_SetSharpness ( int value, tv_source_input_type_t source_type, int en, int is_save ) { +int CTv::Tv_SetSharpness ( int value, tv_source_input_type_t source_type, int en, int is_save ) +{ return mVpp.SetSharpness(value, (tv_source_input_type_t)source_type, en, Check2Dor3D(m_mode_3d, mSigDetectThread.getCurSigInfo().trans_fmt ), mSigDetectThread.getCurSigInfo().fmt, mSigDetectThread.getCurSigInfo().trans_fmt, is_save); } -int CTv::Tv_GetSharpness ( tv_source_input_type_t source_type ) { +int CTv::Tv_GetSharpness ( tv_source_input_type_t source_type ) +{ return mVpp.GetSharpness((tv_source_input_type_t)source_type); } -int CTv::Tv_SaveSharpness ( int value, tv_source_input_type_t source_type ) { +int CTv::Tv_SaveSharpness ( int value, tv_source_input_type_t source_type ) +{ return SSMSaveSharpness ( source_type, value ); } -int CTv::Tv_SetBacklight ( int value, tv_source_input_type_t source_type, int is_save ) { +int CTv::Tv_SetBacklight ( int value, tv_source_input_type_t source_type, int is_save ) +{ if (mHdmiOutFbc) { return Tv_FactorySet_FBC_Backlight(value); } else { @@ -3333,7 +3530,8 @@ int CTv::Tv_SetBacklight ( int value, tv_source_input_type_t source_type, int is } } -int CTv::Tv_GetBacklight ( tv_source_input_type_t source_type ) { +int CTv::Tv_GetBacklight ( tv_source_input_type_t source_type ) +{ if (mHdmiOutFbc) { return Tv_FactoryGet_FBC_Backlight(); } else { @@ -3341,11 +3539,13 @@ int CTv::Tv_GetBacklight ( tv_source_input_type_t source_type ) { } } -int CTv::Tv_SaveBacklight ( int value, tv_source_input_type_t source_type ) { +int CTv::Tv_SaveBacklight ( int value, tv_source_input_type_t source_type ) +{ return mVpp.SaveBacklight ( value, source_type ); } -int CTv::Tv_SetBacklight_Switch ( int value ) { +int CTv::Tv_SetBacklight_Switch ( int value ) +{ if (mHdmiOutFbc) { return Tv_FactorySet_FBC_backlight_onoff(value); } else { @@ -3353,7 +3553,8 @@ int CTv::Tv_SetBacklight_Switch ( int value ) { } } -int CTv::Tv_GetBacklight_Switch ( void ) { +int CTv::Tv_GetBacklight_Switch ( void ) +{ if (mHdmiOutFbc) { return Tv_FactoryGet_FBC_backlight_onoff(); } else { @@ -3361,7 +3562,8 @@ int CTv::Tv_GetBacklight_Switch ( void ) { } } -int CTv::Tv_SetColorTemperature ( vpp_color_temperature_mode_t mode, tv_source_input_type_t source_type, int is_save ) { +int CTv::Tv_SetColorTemperature ( vpp_color_temperature_mode_t mode, tv_source_input_type_t source_type, int is_save ) +{ if (mHdmiOutFbc) { return Tv_FactorySet_FBC_ColorTemp_Mode(mode); } else { @@ -3369,7 +3571,8 @@ int CTv::Tv_SetColorTemperature ( vpp_color_temperature_mode_t mode, tv_source_i } } -vpp_color_temperature_mode_t CTv::Tv_GetColorTemperature ( tv_source_input_type_t source_type ) { +vpp_color_temperature_mode_t CTv::Tv_GetColorTemperature ( tv_source_input_type_t source_type ) +{ if (mHdmiOutFbc) { return (vpp_color_temperature_mode_t)Tv_FactoryGet_FBC_ColorTemp_Mode(); } else { @@ -3377,11 +3580,13 @@ vpp_color_temperature_mode_t CTv::Tv_GetColorTemperature ( tv_source_input_type_ } } -int CTv::Tv_SaveColorTemperature ( vpp_color_temperature_mode_t mode, tv_source_input_type_t source_type ) { +int CTv::Tv_SaveColorTemperature ( vpp_color_temperature_mode_t mode, tv_source_input_type_t source_type ) +{ return mVpp.SaveColorTemp ( mode, source_type ); } -int CTv::Tv_SetDisplayMode ( vpp_display_mode_t mode, tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, int is_save ) { +int CTv::Tv_SetDisplayMode ( vpp_display_mode_t mode, tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, int is_save ) +{ int ret = 0; if (m_mode_3d == VIDEO_3D_MODE_DISABLE) { ret = SetDisplayMode((vpp_display_mode_t)mode, (tv_source_input_type_t)source_type, (tvin_sig_fmt_t)fmt); @@ -3396,7 +3601,8 @@ int CTv::Tv_SetDisplayMode ( vpp_display_mode_t mode, tv_source_input_type_t sou return ret; } -int CTv::SetDisplayMode ( vpp_display_mode_t display_mode, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt ) { +int CTv::SetDisplayMode ( vpp_display_mode_t display_mode, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt ) +{ LOGD("SetDisplayMode, display_mode = %d, source_type = %d fmt = %d tranfmt = %d\n", display_mode, source_type, sig_fmt, mSigDetectThread.getCurSigInfo().trans_fmt); tvin_cutwin_t cutwin = mVpp.GetOverscan ( source_type, sig_fmt, Check2Dor3D(m_mode_3d, mSigDetectThread.getCurSigInfo().trans_fmt ), mSigDetectThread.getCurSigInfo().trans_fmt); @@ -3406,54 +3612,54 @@ int CTv::SetDisplayMode ( vpp_display_mode_t display_mode, tv_source_input_type_ int display_resolution = Vpp_GetDisplayResolutionInfo(&win_pos); switch ( display_mode ) { - case VPP_DISPLAY_MODE_169: - video_screen_mode = CAv::VIDEO_WIDEOPTION_16_9; - break; - case VPP_DISPLAY_MODE_MODE43: - video_screen_mode = CAv::VIDEO_WIDEOPTION_4_3; - break; - case VPP_DISPLAY_MODE_NORMAL: - video_screen_mode = CAv::VIDEO_WIDEOPTION_NORMAL; - break; - case VPP_DISPLAY_MODE_FULL: - video_screen_mode = CAv::VIDEO_WIDEOPTION_NONLINEAR; - mVpp.VPP_SetNonLinearFactor ( 20 ); - //mVpp.VPP_SetNonLinearFactor ( 20 ); - break; - case VPP_DISPLAY_MODE_CROP_FULL: - cutwin.vs = 0; - cutwin.hs = 0; - cutwin.ve = 0; - cutwin.he = 0; - break; - case VPP_DISPLAY_MODE_NOSCALEUP: - video_screen_mode = CAv::VIDEO_WIDEOPTION_NORMAL_NOSCALEUP; - break; - case VPP_DISPLAY_MODE_FULL_REAL: - video_screen_mode = CAv::VIDEO_WIDEOPTION_16_9; //added for N360 by haifeng.liu - break; - case VPP_DISPLAY_MODE_PERSON: - video_screen_mode = CAv::VIDEO_WIDEOPTION_FULL_STRETCH; - cutwin.vs = cutwin.vs + 20; - cutwin.ve = cutwin.ve + 20; - break; - case VPP_DISPLAY_MODE_MOVIE: - video_screen_mode = CAv::VIDEO_WIDEOPTION_FULL_STRETCH; - cutwin.vs = cutwin.vs + 40; - cutwin.ve = cutwin.ve + 40; - break; - case VPP_DISPLAY_MODE_CAPTION: - video_screen_mode = CAv::VIDEO_WIDEOPTION_FULL_STRETCH; - cutwin.vs = cutwin.vs + 55; - cutwin.ve = cutwin.ve + 55; - break; - case VPP_DISPLAY_MODE_ZOOM: - video_screen_mode = CAv::VIDEO_WIDEOPTION_FULL_STRETCH; - cutwin.vs = cutwin.vs + 70; - cutwin.ve = cutwin.ve + 70; - break; - default: - break; + case VPP_DISPLAY_MODE_169: + video_screen_mode = CAv::VIDEO_WIDEOPTION_16_9; + break; + case VPP_DISPLAY_MODE_MODE43: + video_screen_mode = CAv::VIDEO_WIDEOPTION_4_3; + break; + case VPP_DISPLAY_MODE_NORMAL: + video_screen_mode = CAv::VIDEO_WIDEOPTION_NORMAL; + break; + case VPP_DISPLAY_MODE_FULL: + video_screen_mode = CAv::VIDEO_WIDEOPTION_NONLINEAR; + mVpp.VPP_SetNonLinearFactor ( 20 ); + //mVpp.VPP_SetNonLinearFactor ( 20 ); + break; + case VPP_DISPLAY_MODE_CROP_FULL: + cutwin.vs = 0; + cutwin.hs = 0; + cutwin.ve = 0; + cutwin.he = 0; + break; + case VPP_DISPLAY_MODE_NOSCALEUP: + video_screen_mode = CAv::VIDEO_WIDEOPTION_NORMAL_NOSCALEUP; + break; + case VPP_DISPLAY_MODE_FULL_REAL: + video_screen_mode = CAv::VIDEO_WIDEOPTION_16_9; //added for N360 by haifeng.liu + break; + case VPP_DISPLAY_MODE_PERSON: + video_screen_mode = CAv::VIDEO_WIDEOPTION_FULL_STRETCH; + cutwin.vs = cutwin.vs + 20; + cutwin.ve = cutwin.ve + 20; + break; + case VPP_DISPLAY_MODE_MOVIE: + video_screen_mode = CAv::VIDEO_WIDEOPTION_FULL_STRETCH; + cutwin.vs = cutwin.vs + 40; + cutwin.ve = cutwin.ve + 40; + break; + case VPP_DISPLAY_MODE_CAPTION: + video_screen_mode = CAv::VIDEO_WIDEOPTION_FULL_STRETCH; + cutwin.vs = cutwin.vs + 55; + cutwin.ve = cutwin.ve + 55; + break; + case VPP_DISPLAY_MODE_ZOOM: + video_screen_mode = CAv::VIDEO_WIDEOPTION_FULL_STRETCH; + cutwin.vs = cutwin.vs + 70; + cutwin.ve = cutwin.ve + 70; + break; + default: + break; } if (source_type == SOURCE_TYPE_DTV || source_type == SOURCE_TYPE_MPEG) { cutwin.vs = cutwin.vs + 12; @@ -3483,23 +3689,28 @@ int CTv::SetDisplayMode ( vpp_display_mode_t display_mode, tv_source_input_type_ return 0; } -vpp_display_mode_t CTv::Tv_GetDisplayMode ( tv_source_input_type_t source_type ) { +vpp_display_mode_t CTv::Tv_GetDisplayMode ( tv_source_input_type_t source_type ) +{ return mVpp.GetDisplayMode((tv_source_input_type_t)source_type); } -int CTv::Tv_SaveDisplayMode ( vpp_display_mode_t mode, tv_source_input_type_t source_type ) { +int CTv::Tv_SaveDisplayMode ( vpp_display_mode_t mode, tv_source_input_type_t source_type ) +{ return SSMSaveDisplayMode ( source_type, (int)mode ); } -int CTv::Tv_SetNoiseReductionMode ( vpp_noise_reduction_mode_t mode, tv_source_input_type_t source_type, int is_save ) { +int CTv::Tv_SetNoiseReductionMode ( vpp_noise_reduction_mode_t mode, tv_source_input_type_t source_type, int is_save ) +{ return mVpp.SetNoiseReductionMode((vpp_noise_reduction_mode_t)mode, (tv_source_input_type_t)source_type, mSigDetectThread.getCurSigInfo().fmt, Check2Dor3D(m_mode_3d, mSigDetectThread.getCurSigInfo().trans_fmt ), mSigDetectThread.getCurSigInfo().trans_fmt, is_save); } -int CTv::Tv_SaveNoiseReductionMode ( vpp_noise_reduction_mode_t mode, tv_source_input_type_t source_type ) { +int CTv::Tv_SaveNoiseReductionMode ( vpp_noise_reduction_mode_t mode, tv_source_input_type_t source_type ) +{ return mVpp.SaveNoiseReductionMode ( mode, source_type ); } -int CTv::Tv_Set2k4k_ScalerUp_Mode ( int value ) { +int CTv::Tv_Set2k4k_ScalerUp_Mode ( int value ) +{ int ret = 0, fmt_hd_sd = 0; int nodeVal = 0; char s[8]; @@ -3507,8 +3718,8 @@ int CTv::Tv_Set2k4k_ScalerUp_Mode ( int value ) { LOGD("%s, value [%d]\n", __FUNCTION__ , value); if ( CTvin::Tvin_SourceInputToSourceInputType(m_source_input) != SOURCE_TYPE_HDMI && - CTvin::Tvin_SourceInputToSourceInputType(m_source_input) != SOURCE_TYPE_AV && - CTvin::Tvin_SourceInputToSourceInputType(m_source_input) != SOURCE_TYPE_TV) { + CTvin::Tvin_SourceInputToSourceInputType(m_source_input) != SOURCE_TYPE_AV && + CTvin::Tvin_SourceInputToSourceInputType(m_source_input) != SOURCE_TYPE_TV) { int fd = open("/sys/class/video/frame_height", O_RDONLY); if (fd <= 0) { LOGE("open /sys/class/video/frame_height ERROR!!error = -%s- \n", strerror ( errno )); @@ -3529,35 +3740,36 @@ int CTv::Tv_Set2k4k_ScalerUp_Mode ( int value ) { fmt_hd_sd = 1; } } else if ( CTvin::Tvin_SourceInputToSourceInputType(m_source_input) == SOURCE_TYPE_AV || - CTvin::Tvin_SourceInputToSourceInputType(m_source_input) == SOURCE_TYPE_TV) { + CTvin::Tvin_SourceInputToSourceInputType(m_source_input) == SOURCE_TYPE_TV) { fmt_hd_sd = 0; } switch (value) { - case 1: // on - if (fmt_hd_sd) { - ret = Tv_Utils_SetFileAttrStr("/sys/class/video/video_scaler_path_sel", (char *)"0"); - //LOGD("%s, enable, set 0.\n", __FUNCTION__); - } else { - ret = Tv_Utils_SetFileAttrStr("/sys/class/video/video_scaler_path_sel", (char *)"1"); - } - break; + case 1: // on + if (fmt_hd_sd) { + ret = Tv_Utils_SetFileAttrStr("/sys/class/video/video_scaler_path_sel", (char *)"0"); + //LOGD("%s, enable, set 0.\n", __FUNCTION__); + } else { + ret = Tv_Utils_SetFileAttrStr("/sys/class/video/video_scaler_path_sel", (char *)"1"); + } + break; - case 0: // off - default: - if (fmt_hd_sd) { - ret = Tv_Utils_SetFileAttrStr("/sys/class/video/video_scaler_path_sel", (char *)"1"); - //LOGD("%s, disable, set 1.\n", __FUNCTION__); - } else { - ret = Tv_Utils_SetFileAttrStr("/sys/class/video/video_scaler_path_sel", (char *)"0"); - //LOGD("%s, disable, set 0.\n", __FUNCTION__); - } - break; + case 0: // off + default: + if (fmt_hd_sd) { + ret = Tv_Utils_SetFileAttrStr("/sys/class/video/video_scaler_path_sel", (char *)"1"); + //LOGD("%s, disable, set 1.\n", __FUNCTION__); + } else { + ret = Tv_Utils_SetFileAttrStr("/sys/class/video/video_scaler_path_sel", (char *)"0"); + //LOGD("%s, disable, set 0.\n", __FUNCTION__); + } + break; } return ret; } -int CTv::Tv_Get2k4k_ScalerUp_Mode ( void ) { +int CTv::Tv_Get2k4k_ScalerUp_Mode ( void ) +{ char attrV[64]; int ret = 0, fmt_hd_sd = 0; int nodeVal = 0; @@ -3566,8 +3778,8 @@ int CTv::Tv_Get2k4k_ScalerUp_Mode ( void ) { memset (attrV, '\0', 64); if ( CTvin::Tvin_SourceInputToSourceInputType(m_source_input) != SOURCE_TYPE_HDMI && - CTvin::Tvin_SourceInputToSourceInputType(m_source_input) != SOURCE_TYPE_AV && - CTvin::Tvin_SourceInputToSourceInputType(m_source_input) != SOURCE_TYPE_TV) { + CTvin::Tvin_SourceInputToSourceInputType(m_source_input) != SOURCE_TYPE_AV && + CTvin::Tvin_SourceInputToSourceInputType(m_source_input) != SOURCE_TYPE_TV) { int fd = open("/sys/class/video/frame_height", O_RDONLY); if (fd <= 0) { LOGE("open /sys/class/video/frame_height ERROR!!error = -%s- \n", strerror ( errno )); @@ -3612,7 +3824,8 @@ int CTv::Tv_Get2k4k_ScalerUp_Mode ( void ) { return ret; } -int CTv::Tv_SetSplitScreenDemoStatus(tv_source_input_type_t source_type, int onoff_status) { +int CTv::Tv_SetSplitScreenDemoStatus(tv_source_input_type_t source_type, int onoff_status) +{ int ret = 0; LOGD("%s, split screen demo status source[%d],onoff_stauts[%d]\n", __FUNCTION__ , source_type, onoff_status); if (1 == onoff_status) { @@ -3630,12 +3843,14 @@ int CTv::Tv_SetSplitScreenDemoStatus(tv_source_input_type_t source_type, int ono return ret; } -int CTv::Tv_GetSplitScreenDemoStatus(tv_source_input_type_t source_type) { +int CTv::Tv_GetSplitScreenDemoStatus(tv_source_input_type_t source_type) +{ source_type = source_type; return 0; } -vpp_noise_reduction_mode_t CTv::Tv_GetNoiseReductionMode ( tv_source_input_type_t source_type ) { +vpp_noise_reduction_mode_t CTv::Tv_GetNoiseReductionMode ( tv_source_input_type_t source_type ) +{ return mVpp.GetNoiseReductionMode((tv_source_input_type_t)source_type); } @@ -3654,7 +3869,8 @@ vpp_noise_reduction_mode_t CTv::Tv_GetNoiseReductionMode ( tv_source_input_type_ å³åšæ•ˆæžœå¤„ç† echo w 0x70 v 0x174d > /sys /class/amlogic/debug 僿 echo w 0x77 v 0x174d > /sys/class/amlogic/debug */ -int CTv::Tv_SplitScreenEffect(int mode, int width, int reverse) { +int CTv::Tv_SplitScreenEffect(int mode, int width, int reverse) +{ int ret = -1; if (mode == 0) { @@ -3684,47 +3900,58 @@ int CTv::Tv_SplitScreenEffect(int mode, int width, int reverse) { return ret; } -int CTv::Tv_FactorySetPQMode_Brightness ( int source_type, int pq_mode, int brightness ) { +int CTv::Tv_FactorySetPQMode_Brightness ( int source_type, int pq_mode, int brightness ) +{ return mVpp.FactorySetPQMode_Brightness(source_type, pq_mode, brightness); } -int CTv::Tv_FactoryGetPQMode_Brightness ( int source_type, int pq_mode ) { +int CTv::Tv_FactoryGetPQMode_Brightness ( int source_type, int pq_mode ) +{ return mVpp.FactoryGetPQMode_Brightness(source_type, pq_mode); } -int CTv::Tv_FactorySetPQMode_Contrast ( int source_type, int pq_mode, int contrast ) { +int CTv::Tv_FactorySetPQMode_Contrast ( int source_type, int pq_mode, int contrast ) +{ return mVpp.FactorySetPQMode_Contrast(source_type, pq_mode, contrast); } -int CTv::Tv_FactoryGetPQMode_Contrast ( int source_type, int pq_mode ) { +int CTv::Tv_FactoryGetPQMode_Contrast ( int source_type, int pq_mode ) +{ return mVpp.FactoryGetPQMode_Contrast(source_type, pq_mode); } -int CTv::Tv_FactorySetPQMode_Saturation ( int source_type, int pq_mode, int saturation ) { +int CTv::Tv_FactorySetPQMode_Saturation ( int source_type, int pq_mode, int saturation ) +{ return mVpp.FactorySetPQMode_Saturation(source_type, pq_mode, saturation); } -int CTv::Tv_FactoryGetPQMode_Saturation ( int source_type, int pq_mode ) { +int CTv::Tv_FactoryGetPQMode_Saturation ( int source_type, int pq_mode ) +{ return mVpp.FactoryGetPQMode_Saturation(source_type, pq_mode); } -int CTv::Tv_FactorySetPQMode_Hue ( int source_type, int pq_mode, int hue ) { +int CTv::Tv_FactorySetPQMode_Hue ( int source_type, int pq_mode, int hue ) +{ return mVpp.FactorySetPQMode_Hue(source_type, pq_mode, hue); } -int CTv::Tv_FactoryGetPQMode_Hue ( int source_type, int pq_mode ) { +int CTv::Tv_FactoryGetPQMode_Hue ( int source_type, int pq_mode ) +{ return mVpp.FactoryGetPQMode_Hue(source_type, pq_mode); } -int CTv::Tv_FactorySetPQMode_Sharpness ( int source_type, int pq_mode, int sharpness ) { +int CTv::Tv_FactorySetPQMode_Sharpness ( int source_type, int pq_mode, int sharpness ) +{ return mVpp.FactorySetPQMode_Sharpness(source_type, pq_mode, sharpness); } -int CTv::Tv_FactoryGetPQMode_Sharpness ( int source_type, int pq_mode ) { +int CTv::Tv_FactoryGetPQMode_Sharpness ( int source_type, int pq_mode ) +{ return mVpp.FactoryGetPQMode_Sharpness(source_type, pq_mode); } -int CTv::GetColorTemperatureParams ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ) { +int CTv::GetColorTemperatureParams ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ) +{ if (mHdmiOutFbc) { int ret = Tv_FactoryGet_FBC_ColorTemp_Batch((vpp_color_temperature_mode_t)Tempmode, params); params->r_gain = Tv_FactoryWhiteBalanceFormatOutputFbcGainParams(params->r_gain); @@ -3739,89 +3966,103 @@ int CTv::GetColorTemperatureParams ( vpp_color_temperature_mode_t Tempmode, tcon } } -int CTv::Tv_FactorySetTestPattern ( int pattern ) { +int CTv::Tv_FactorySetTestPattern ( int pattern ) +{ switch ( pattern ) { - case VPP_TEST_PATTERN_NONE: - mAv.SetVideoScreenColor ( 3, 16, 128, 128 ); - break; + case VPP_TEST_PATTERN_NONE: + mAv.SetVideoScreenColor ( 3, 16, 128, 128 ); + break; - case VPP_TEST_PATTERN_RED: - mAv.SetVideoScreenColor ( 0, 81, 90, 240 ); - break; + case VPP_TEST_PATTERN_RED: + mAv.SetVideoScreenColor ( 0, 81, 90, 240 ); + break; - case VPP_TEST_PATTERN_GREEN: - mAv.SetVideoScreenColor ( 0, 145, 54, 34 ); - break; + case VPP_TEST_PATTERN_GREEN: + mAv.SetVideoScreenColor ( 0, 145, 54, 34 ); + break; - case VPP_TEST_PATTERN_BLUE: - mAv.SetVideoScreenColor ( 0, 41, 240, 110 ); - break; + case VPP_TEST_PATTERN_BLUE: + mAv.SetVideoScreenColor ( 0, 41, 240, 110 ); + break; - case VPP_TEST_PATTERN_WHITE: - mAv.SetVideoScreenColor ( 0, 235, 128, 128 ); - break; + case VPP_TEST_PATTERN_WHITE: + mAv.SetVideoScreenColor ( 0, 235, 128, 128 ); + break; - case VPP_TEST_PATTERN_BLACK: - mAv.SetVideoScreenColor ( 0, 16, 128, 128 ); - break; + case VPP_TEST_PATTERN_BLACK: + mAv.SetVideoScreenColor ( 0, 16, 128, 128 ); + break; - default: - return -1; + default: + return -1; } return SSMSaveTestPattern ( pattern ); } -int CTv::Tv_FactoryGetTestPattern ( void ) { +int CTv::Tv_FactoryGetTestPattern ( void ) +{ return mVpp.FactoryGetTestPattern(); } -int CTv::Tv_FactorySetScreenColor ( int vdin_blending_mask, int y, int u, int v ) { +int CTv::Tv_FactorySetScreenColor ( int vdin_blending_mask, int y, int u, int v ) +{ return mAv.SetVideoScreenColor ( vdin_blending_mask, y, u, v ); } -int CTv::Tv_FactoryResetPQMode ( void ) { +int CTv::Tv_FactoryResetPQMode ( void ) +{ return mVpp.FactoryResetPQMode(); } -int CTv::Tv_FactoryResetColorTemp ( void ) { +int CTv::Tv_FactoryResetColorTemp ( void ) +{ return mVpp.FactoryResetColorTemp(); } -int CTv::Tv_FactorySetParamsDefault ( void ) { +int CTv::Tv_FactorySetParamsDefault ( void ) +{ return mVpp.FactorySetParamsDefault(); } -int CTv::Tv_FactorySetDDRSSC ( int step ) { +int CTv::Tv_FactorySetDDRSSC ( int step ) +{ return mVpp.FactorySetDDRSSC(step); } -int CTv::Tv_FactoryGetDDRSSC ( void ) { +int CTv::Tv_FactoryGetDDRSSC ( void ) +{ return mVpp.FactoryGetDDRSSC(); } -int CTv::Tv_FactorySetLVDSSSC ( int step ) { +int CTv::Tv_FactorySetLVDSSSC ( int step ) +{ return mVpp.FactorySetLVDSSSC(step); } -int CTv::Tv_FactoryGetLVDSSSC ( void ) { +int CTv::Tv_FactoryGetLVDSSSC ( void ) +{ return mVpp.FactoryGetLVDSSSC(); } -void CTv::Tv_Spread_Spectrum() { - int value= 0; +void CTv::Tv_Spread_Spectrum() +{ + int value = 0; value = mVpp.FactoryGetLVDSSSC(); mVpp.FactorySetLVDSSSC(value); } -int CTv::Tv_FactorySetNolineParams ( int noline_params_type, int source_type, noline_params_t noline_params ) { +int CTv::Tv_FactorySetNolineParams ( int noline_params_type, int source_type, noline_params_t noline_params ) +{ return mVpp.FactorySetNolineParams(noline_params_type, source_type, noline_params); } -noline_params_t CTv::Tv_FactoryGetNolineParams ( int noline_params_type, int source_type ) { +noline_params_t CTv::Tv_FactoryGetNolineParams ( int noline_params_type, int source_type ) +{ return mVpp.FactoryGetNolineParams(noline_params_type, source_type); } -int CTv::Tv_FactorySetOverscan ( int source_type, int fmt, int status_3d, int trans_fmt, tvin_cutwin_t cutwin_t ) { +int CTv::Tv_FactorySetOverscan ( int source_type, int fmt, int status_3d, int trans_fmt, tvin_cutwin_t cutwin_t ) +{ //tvin_cutwin_t cutwin_t = mVpp.Tv_FactoryGetOverscan(source_type, fmt, status_3d, trans_fmt); mVpp.FactorySetOverscan(source_type, fmt, status_3d, trans_fmt, cutwin_t); //} else { @@ -3836,7 +4077,8 @@ int CTv::Tv_FactorySetOverscan ( int source_type, int fmt, int status_3d, int tr return mVpp.VPP_SetVideoCrop ( ( int ) cutwin_t.vs, ( int ) cutwin_t.hs, ( int ) cutwin_t.ve, ( int ) cutwin_t.he ); } -tvin_cutwin_t CTv::Tv_FactoryGetOverscan ( int source_type, int fmt, int status_3d, int trans_fmt ) { +tvin_cutwin_t CTv::Tv_FactoryGetOverscan ( int source_type, int fmt, int status_3d, int trans_fmt ) +{ status_3d = status_3d; return mVpp.FactoryGetOverscan(source_type, fmt, Check2Dor3D(m_mode_3d, (tvin_trans_fmt_t)trans_fmt), trans_fmt); #if 0 @@ -3864,11 +4106,13 @@ tvin_cutwin_t CTv::Tv_FactoryGetOverscan ( int source_type, int fmt, int status_ #endif } -int CTv::Tv_ReplacePqDb(const char *newFilePath) { +int CTv::Tv_ReplacePqDb(const char *newFilePath) +{ return mVpp.getPqData()->replacePqDb(newFilePath); } -int CTv::Tv_FactorySet_FBC_Brightness ( int value ) { +int CTv::Tv_FactorySet_FBC_Brightness ( int value ) +{ //int temp_value = (255*value)/100; int temp_value = value; @@ -3879,7 +4123,8 @@ int CTv::Tv_FactorySet_FBC_Brightness ( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Brightness ( void ) { +int CTv::Tv_FactoryGet_FBC_Brightness ( void ) +{ int temp_value = 0; int data = 0; @@ -3893,7 +4138,8 @@ int CTv::Tv_FactoryGet_FBC_Brightness ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_Contrast ( int value ) { +int CTv::Tv_FactorySet_FBC_Contrast ( int value ) +{ //int temp_value = (255*value)/100; int temp_value = value; @@ -3904,7 +4150,8 @@ int CTv::Tv_FactorySet_FBC_Contrast ( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Contrast ( void ) { +int CTv::Tv_FactoryGet_FBC_Contrast ( void ) +{ int temp_value = 0; int data = 0; @@ -3917,7 +4164,8 @@ int CTv::Tv_FactoryGet_FBC_Contrast ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_Saturation ( int value ) { +int CTv::Tv_FactorySet_FBC_Saturation ( int value ) +{ //int temp_value = (255*value)/100; int temp_value = value; @@ -3928,7 +4176,8 @@ int CTv::Tv_FactorySet_FBC_Saturation ( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Saturation ( void ) { +int CTv::Tv_FactoryGet_FBC_Saturation ( void ) +{ int temp_value = 0; int data = 0; @@ -3941,7 +4190,8 @@ int CTv::Tv_FactoryGet_FBC_Saturation ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_HueColorTint ( int value ) { +int CTv::Tv_FactorySet_FBC_HueColorTint ( int value ) +{ //int temp_value = (255*value)/100; int temp_value = value; @@ -3952,7 +4202,8 @@ int CTv::Tv_FactorySet_FBC_HueColorTint ( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_HueColorTint ( void ) { +int CTv::Tv_FactoryGet_FBC_HueColorTint ( void ) +{ int temp_value = 0; int data = 0; @@ -3965,7 +4216,8 @@ int CTv::Tv_FactoryGet_FBC_HueColorTint ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_Backlight ( int value ) { +int CTv::Tv_FactorySet_FBC_Backlight ( int value ) +{ int temp_value = value; if (fbcIns != NULL) { temp_value = temp_value * 255 / 100; @@ -3975,7 +4227,8 @@ int CTv::Tv_FactorySet_FBC_Backlight ( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Backlight ( void ) { +int CTv::Tv_FactoryGet_FBC_Backlight ( void ) +{ int temp_value = 0; int data = 0; @@ -3992,7 +4245,8 @@ int CTv::Tv_FactoryGet_FBC_Backlight ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_Auto_Backlight_OnOff( unsigned char status) { +int CTv::Tv_FactorySet_FBC_Auto_Backlight_OnOff( unsigned char status) +{ if (fbcIns != NULL) { return fbcIns->cfbc_Set_Auto_Backlight_OnOff(COMM_DEV_SERIAL, status); } @@ -4000,7 +4254,8 @@ int CTv::Tv_FactorySet_FBC_Auto_Backlight_OnOff( unsigned char status) { return -1; } -int CTv::Tv_FactoryGet_FBC_Auto_Backlight_OnOff( void ) { +int CTv::Tv_FactoryGet_FBC_Auto_Backlight_OnOff( void ) +{ int temp_status = 0; if (fbcIns != NULL) { @@ -4010,7 +4265,8 @@ int CTv::Tv_FactoryGet_FBC_Auto_Backlight_OnOff( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_ELEC_MODE( int value ) { +int CTv::Tv_FactorySet_FBC_ELEC_MODE( int value ) +{ int val = 0; if (fbcIns != NULL) { @@ -4022,13 +4278,15 @@ int CTv::Tv_FactorySet_FBC_ELEC_MODE( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_ELEC_MODE( void ) { +int CTv::Tv_FactoryGet_FBC_ELEC_MODE( void ) +{ int val = 0; SSMReadFBCELECmodeVal(&val); return val; } -int CTv::Tv_FactorySet_FBC_BACKLIGHT_N360( int value ) { +int CTv::Tv_FactorySet_FBC_BACKLIGHT_N360( int value ) +{ int val = 0; val = value; @@ -4036,13 +4294,15 @@ int CTv::Tv_FactorySet_FBC_BACKLIGHT_N360( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_BACKLIGHT_N360( void ) { +int CTv::Tv_FactoryGet_FBC_BACKLIGHT_N360( void ) +{ int val = 0; SSMReadFBCELECmodeVal(&val); return val; } -int CTv::Tv_FactorySet_FBC_Thermal_State( int value ) { +int CTv::Tv_FactorySet_FBC_Thermal_State( int value ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_Thermal_state(COMM_DEV_SERIAL, value); return 0; @@ -4051,7 +4311,8 @@ int CTv::Tv_FactorySet_FBC_Thermal_State( int value ) { return -1; } -int CTv::Tv_FactorySet_FBC_Picture_Mode ( int mode ) { +int CTv::Tv_FactorySet_FBC_Picture_Mode ( int mode ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_Picture_Mode(COMM_DEV_SERIAL, mode); return 0; @@ -4060,7 +4321,8 @@ int CTv::Tv_FactorySet_FBC_Picture_Mode ( int mode ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Picture_Mode ( void ) { +int CTv::Tv_FactoryGet_FBC_Picture_Mode ( void ) +{ int mode = 0; if (fbcIns != NULL) { @@ -4070,7 +4332,8 @@ int CTv::Tv_FactoryGet_FBC_Picture_Mode ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_Set_Test_Pattern ( int mode ) { +int CTv::Tv_FactorySet_FBC_Set_Test_Pattern ( int mode ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_Test_Pattern(COMM_DEV_SERIAL, mode); return 0; @@ -4079,7 +4342,8 @@ int CTv::Tv_FactorySet_FBC_Set_Test_Pattern ( int mode ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Get_Test_Pattern ( void ) { +int CTv::Tv_FactoryGet_FBC_Get_Test_Pattern ( void ) +{ int mode = 0; if (fbcIns != NULL) { @@ -4090,7 +4354,8 @@ int CTv::Tv_FactoryGet_FBC_Get_Test_Pattern ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_Gain_Red( int value ) { +int CTv::Tv_FactorySet_FBC_Gain_Red( int value ) +{ int temp_value = 0; //temp_value = (value*255)/2047; @@ -4105,7 +4370,8 @@ int CTv::Tv_FactorySet_FBC_Gain_Red( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Gain_Red ( void ) { +int CTv::Tv_FactoryGet_FBC_Gain_Red ( void ) +{ int temp_value = 0, value = 0; if (fbcIns != NULL) { @@ -4120,7 +4386,8 @@ int CTv::Tv_FactoryGet_FBC_Gain_Red ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_Gain_Green( int value ) { +int CTv::Tv_FactorySet_FBC_Gain_Green( int value ) +{ int temp_value = 0; //temp_value = (value*255)/2047; @@ -4135,7 +4402,8 @@ int CTv::Tv_FactorySet_FBC_Gain_Green( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Gain_Green ( void ) { +int CTv::Tv_FactoryGet_FBC_Gain_Green ( void ) +{ int temp_value = 0, value = 0; if (fbcIns != NULL) { @@ -4150,7 +4418,8 @@ int CTv::Tv_FactoryGet_FBC_Gain_Green ( void ) { return 0; } -int CTv::Tv_FactoryGet_FBC_VIDEO_MUTE ( void ) { +int CTv::Tv_FactoryGet_FBC_VIDEO_MUTE ( void ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_VMute(COMM_DEV_SERIAL, 1); } @@ -4158,7 +4427,8 @@ int CTv::Tv_FactoryGet_FBC_VIDEO_MUTE ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_Gain_Blue( int value ) { +int CTv::Tv_FactorySet_FBC_Gain_Blue( int value ) +{ int temp_value = 0; //temp_value = (value*255)/2047; @@ -4173,7 +4443,8 @@ int CTv::Tv_FactorySet_FBC_Gain_Blue( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Gain_Blue ( void ) { +int CTv::Tv_FactoryGet_FBC_Gain_Blue ( void ) +{ int temp_value = 0, value = 0; if (fbcIns != NULL) { @@ -4188,7 +4459,8 @@ int CTv::Tv_FactoryGet_FBC_Gain_Blue ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_Offset_Red( int value ) { +int CTv::Tv_FactorySet_FBC_Offset_Red( int value ) +{ //value -1024~+1023 int temp_value = 0; @@ -4203,7 +4475,8 @@ int CTv::Tv_FactorySet_FBC_Offset_Red( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Offset_Red ( void ) { +int CTv::Tv_FactoryGet_FBC_Offset_Red ( void ) +{ int temp_value = 0, value = 0; if (fbcIns != NULL) { @@ -4218,7 +4491,8 @@ int CTv::Tv_FactoryGet_FBC_Offset_Red ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_Offset_Green( int value ) { +int CTv::Tv_FactorySet_FBC_Offset_Green( int value ) +{ //value -1024~+1023 int temp_value = 0; @@ -4233,7 +4507,8 @@ int CTv::Tv_FactorySet_FBC_Offset_Green( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Offset_Green ( void ) { +int CTv::Tv_FactoryGet_FBC_Offset_Green ( void ) +{ int temp_value = 0, value = 0; if (fbcIns != NULL) { @@ -4248,7 +4523,8 @@ int CTv::Tv_FactoryGet_FBC_Offset_Green ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_Offset_Blue( int value ) { +int CTv::Tv_FactorySet_FBC_Offset_Blue( int value ) +{ //value -1024~+1023 int temp_value = 0; @@ -4263,7 +4539,8 @@ int CTv::Tv_FactorySet_FBC_Offset_Blue( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Offset_Blue ( void ) { +int CTv::Tv_FactoryGet_FBC_Offset_Blue ( void ) +{ int temp_value = 0, value = 0; if (fbcIns != NULL) { @@ -4278,7 +4555,8 @@ int CTv::Tv_FactoryGet_FBC_Offset_Blue ( void ) { return 0; } -int CTv::Tv_FactoryGetWhiteBalanceRedGain(int source_type, int colortemp_mode) { +int CTv::Tv_FactoryGetWhiteBalanceRedGain(int source_type, int colortemp_mode) +{ int ret = -1; if (!mHdmiOutFbc) { // not use fbc store the white balance params LOGD("--------- call none fbc method ---------"); @@ -4290,7 +4568,8 @@ int CTv::Tv_FactoryGetWhiteBalanceRedGain(int source_type, int colortemp_mode) { return ret; } -int CTv::Tv_FactoryGetWhiteBalanceGreenGain(int source_type, int colortemp_mode) { +int CTv::Tv_FactoryGetWhiteBalanceGreenGain(int source_type, int colortemp_mode) +{ int ret = -1; if (!mHdmiOutFbc) { // not use fbc store the white balance params ret = mVpp.FactoryGetColorTemp_Ggain(source_type, colortemp_mode); @@ -4300,7 +4579,8 @@ int CTv::Tv_FactoryGetWhiteBalanceGreenGain(int source_type, int colortemp_mode) return ret; } -int CTv::Tv_FactoryGetWhiteBalanceBlueGain(int source_type, int colortemp_mode) { +int CTv::Tv_FactoryGetWhiteBalanceBlueGain(int source_type, int colortemp_mode) +{ int ret = -1; if (!mHdmiOutFbc) { // not use fbc store the white balance params ret = mVpp.FactoryGetColorTemp_Bgain(source_type, colortemp_mode); @@ -4310,7 +4590,8 @@ int CTv::Tv_FactoryGetWhiteBalanceBlueGain(int source_type, int colortemp_mode) return ret; } -int CTv::Tv_FactoryGetWhiteBalanceRedOffset(int source_type, int colortemp_mode) { +int CTv::Tv_FactoryGetWhiteBalanceRedOffset(int source_type, int colortemp_mode) +{ int ret = -1; if (!mHdmiOutFbc) { // not use fbc store the white balance params ret = mVpp.FactoryGetColorTemp_Roffset(source_type, colortemp_mode); @@ -4320,7 +4601,8 @@ int CTv::Tv_FactoryGetWhiteBalanceRedOffset(int source_type, int colortemp_mode) return ret; } -int CTv::Tv_FactoryGetWhiteBalanceGreenOffset(int source_type, int colortemp_mode) { +int CTv::Tv_FactoryGetWhiteBalanceGreenOffset(int source_type, int colortemp_mode) +{ int ret = -1; if (!mHdmiOutFbc) { // not use fbc store the white balance params ret = mVpp.FactoryGetColorTemp_Goffset(source_type, colortemp_mode); @@ -4330,7 +4612,8 @@ int CTv::Tv_FactoryGetWhiteBalanceGreenOffset(int source_type, int colortemp_mod return ret; } -int CTv::Tv_FactoryGetWhiteBalanceBlueOffset(int source_type, int colortemp_mode) { +int CTv::Tv_FactoryGetWhiteBalanceBlueOffset(int source_type, int colortemp_mode) +{ int ret = -1; if (!mHdmiOutFbc) { // not use fbc store the white balance params ret = mVpp.FactoryGetColorTemp_Boffset(source_type, colortemp_mode); @@ -4340,7 +4623,8 @@ int CTv::Tv_FactoryGetWhiteBalanceBlueOffset(int source_type, int colortemp_mode return ret; } -int CTv::Tv_FactorySetWhiteBalanceRedGain(int source_type, int colortemp_mode, int value) { +int CTv::Tv_FactorySetWhiteBalanceRedGain(int source_type, int colortemp_mode, int value) +{ int ret = -1; if (value < 0) { value = 0; @@ -4360,7 +4644,8 @@ int CTv::Tv_FactorySetWhiteBalanceRedGain(int source_type, int colortemp_mode, i return ret; } -int CTv::Tv_FactorySetWhiteBalanceGreenGain(int source_type, int colortemp_mode, int value) { +int CTv::Tv_FactorySetWhiteBalanceGreenGain(int source_type, int colortemp_mode, int value) +{ int ret = -1; if (value < 0) { value = 0; @@ -4380,7 +4665,8 @@ int CTv::Tv_FactorySetWhiteBalanceGreenGain(int source_type, int colortemp_mode, return ret; } -int CTv::Tv_FactorySetWhiteBalanceBlueGain(int source_type, int colortemp_mode, int value) { +int CTv::Tv_FactorySetWhiteBalanceBlueGain(int source_type, int colortemp_mode, int value) +{ int ret = -1; if (value < 0) { value = 0; @@ -4400,7 +4686,8 @@ int CTv::Tv_FactorySetWhiteBalanceBlueGain(int source_type, int colortemp_mode, return ret; } -int CTv::Tv_FactorySetWhiteBalanceRedOffset(int source_type, int colortemp_mode, int value) { +int CTv::Tv_FactorySetWhiteBalanceRedOffset(int source_type, int colortemp_mode, int value) +{ int ret = -1; if (value < -1024) { value = -1024; @@ -4420,7 +4707,8 @@ int CTv::Tv_FactorySetWhiteBalanceRedOffset(int source_type, int colortemp_mode, return ret; } -int CTv::Tv_FactorySetWhiteBalanceGreenOffset(int source_type, int colortemp_mode, int value) { +int CTv::Tv_FactorySetWhiteBalanceGreenOffset(int source_type, int colortemp_mode, int value) +{ int ret = -1; if (value < -1024) { value = -1024; @@ -4440,7 +4728,8 @@ int CTv::Tv_FactorySetWhiteBalanceGreenOffset(int source_type, int colortemp_mod return ret; } -int CTv::Tv_FactorySetWhiteBalanceBlueOffset(int source_type, int colortemp_mode, int value) { +int CTv::Tv_FactorySetWhiteBalanceBlueOffset(int source_type, int colortemp_mode, int value) +{ int ret = -1; if (value < -1024) { value = -1024; @@ -4460,7 +4749,8 @@ int CTv::Tv_FactorySetWhiteBalanceBlueOffset(int source_type, int colortemp_mode return ret; } -int CTv::Tv_FactorySetWhiteBalanceColorTempMode(int source_type, int colortemp_mode, int is_save) { +int CTv::Tv_FactorySetWhiteBalanceColorTempMode(int source_type, int colortemp_mode, int is_save) +{ int ret = -1; if (!mHdmiOutFbc) { // not use fbc store the white balance params ret = mVpp.SetColorTemperature((vpp_color_temperature_mode_t)colortemp_mode, (tv_source_input_type_t)source_type, is_save); @@ -4470,7 +4760,8 @@ int CTv::Tv_FactorySetWhiteBalanceColorTempMode(int source_type, int colortemp_m return ret; } -int CTv::Tv_FactoryGetWhiteBalanceColorTempMode(int source_type ) { +int CTv::Tv_FactoryGetWhiteBalanceColorTempMode(int source_type ) +{ int ret = -1; if (!mHdmiOutFbc) { // not use fbc store the white balance params ret = mVpp.GetColorTemperature((tv_source_input_type_t)source_type); @@ -4480,7 +4771,8 @@ int CTv::Tv_FactoryGetWhiteBalanceColorTempMode(int source_type ) { return ret; } -int CTv::Tv_FactoryWhiteBalanceFormatInputFbcGainParams(int value) { +int CTv::Tv_FactoryWhiteBalanceFormatInputFbcGainParams(int value) +{ int ret = 1024; if (value < 0) { ret = 0; @@ -4493,7 +4785,8 @@ int CTv::Tv_FactoryWhiteBalanceFormatInputFbcGainParams(int value) { return ret; } -int CTv::Tv_FactoryWhiteBalanceFormatInputFbcOffsetParams(int value) { +int CTv::Tv_FactoryWhiteBalanceFormatInputFbcOffsetParams(int value) +{ int ret = 0; if (value < -1024) { ret = -1024; @@ -4507,7 +4800,8 @@ int CTv::Tv_FactoryWhiteBalanceFormatInputFbcOffsetParams(int value) { return ret; } -int CTv::Tv_FactoryWhiteBalanceFormatOutputFbcOffsetParams(int value) { +int CTv::Tv_FactoryWhiteBalanceFormatOutputFbcOffsetParams(int value) +{ if (value == 255) { value = 1023; } else { @@ -4517,7 +4811,8 @@ int CTv::Tv_FactoryWhiteBalanceFormatOutputFbcOffsetParams(int value) { return value; } -int CTv::Tv_FactoryWhiteBalanceFormatOutputFbcGainParams(int value) { +int CTv::Tv_FactoryWhiteBalanceFormatOutputFbcGainParams(int value) +{ value = value << 3; if (value < 0) { value = 0; @@ -4527,7 +4822,8 @@ int CTv::Tv_FactoryWhiteBalanceFormatOutputFbcGainParams(int value) { return value; } -int CTv::Tv_FactorySaveWhiteBalancePramas(int source_type, int tempmode, int r_gain, int g_gain, int b_gain, int r_offset, int g_offset, int b_offset) { +int CTv::Tv_FactorySaveWhiteBalancePramas(int source_type, int tempmode, int r_gain, int g_gain, int b_gain, int r_offset, int g_offset, int b_offset) +{ int ret = 0; if (!mHdmiOutFbc) { // not use fbc store the white balance params mVpp.SaveColorTemp((vpp_color_temperature_mode_t) tempmode, (tv_source_input_type_t) source_type); @@ -4554,20 +4850,21 @@ int CTv::Tv_FactorySaveWhiteBalancePramas(int source_type, int tempmode, int r_g /** * The color temperature enum order is diffrent bettewn G9 and Fbc, so we have to make a mapping **/ -int CTv::Tv_FactoryWhiteBalanceColorTempMappingG92Fbc(int Tempmode) { +int CTv::Tv_FactoryWhiteBalanceColorTempMappingG92Fbc(int Tempmode) +{ int ret = Tempmode; switch (Tempmode) { - case 0: //standard - ret = 1; - break; - case 1: //warm - ret = 2; - break; - case 2: //cold - ret = 0; - break; - default: - break; + case 0: //standard + ret = 1; + break; + case 1: //warm + ret = 2; + break; + case 2: //cold + ret = 0; + break; + default: + break; } return ret; } @@ -4575,7 +4872,8 @@ int CTv::Tv_FactoryWhiteBalanceColorTempMappingG92Fbc(int Tempmode) { /** * The color temperature enum order is diffrent bettewn G9 and Fbc, so we have to make a mapping **/ -int CTv::Tv_FactoryWhiteBalanceColorTempMappingFbc2G9(int Tempmode) { +int CTv::Tv_FactoryWhiteBalanceColorTempMappingFbc2G9(int Tempmode) +{ int ret = Tempmode; switch (Tempmode) { case 0: //cold @@ -4593,7 +4891,8 @@ int CTv::Tv_FactoryWhiteBalanceColorTempMappingFbc2G9(int Tempmode) { return ret; } -int CTv::Tv_SetTestPattern(int value) { +int CTv::Tv_SetTestPattern(int value) +{ int ret = -1; if (fbcIns != NULL) { LOGD("%s, value is %d\n", __FUNCTION__, value); @@ -4603,7 +4902,8 @@ int CTv::Tv_SetTestPattern(int value) { return ret; } -int CTv::Tv_FactoryCloseWhiteBalanceGrayPattern() { +int CTv::Tv_FactoryCloseWhiteBalanceGrayPattern() +{ int useFbc = 0; int ret = -1; if (!mHdmiOutFbc) { // not use fbc store the white balance params @@ -4614,7 +4914,8 @@ int CTv::Tv_FactoryCloseWhiteBalanceGrayPattern() { return ret; } -int CTv::Tv_FactoryOpenWhiteBalanceGrayPattern() { +int CTv::Tv_FactoryOpenWhiteBalanceGrayPattern() +{ int ret = 0; if (mHdmiOutFbc) { //use fbc store the white balance params ret = Tv_FactoryOpen_FBC_GrayPattern(); @@ -4622,7 +4923,8 @@ int CTv::Tv_FactoryOpenWhiteBalanceGrayPattern() { return ret; } -int CTv::Tv_FactorySetWhiteBalanceGrayPattern(int value) { +int CTv::Tv_FactorySetWhiteBalanceGrayPattern(int value) +{ int ret = -1; if (!mHdmiOutFbc) { ret = mVpp.VPP_SetGrayPattern(value); @@ -4632,7 +4934,8 @@ int CTv::Tv_FactorySetWhiteBalanceGrayPattern(int value) { return ret; } -int CTv:: Tv_FactoryGetWhiteBalanceGrayPattern() { +int CTv:: Tv_FactoryGetWhiteBalanceGrayPattern() +{ int ret = -1; if (!mHdmiOutFbc) { ret = mVpp.VPP_GetGrayPattern(); @@ -4640,7 +4943,8 @@ int CTv:: Tv_FactoryGetWhiteBalanceGrayPattern() { return ret; } -int CTv::Tv_FactorySet_FBC_GrayPattern(int value) { +int CTv::Tv_FactorySet_FBC_GrayPattern(int value) +{ int ret = -1; unsigned char grayValue = 0; if (value > 255) { @@ -4656,7 +4960,8 @@ int CTv::Tv_FactorySet_FBC_GrayPattern(int value) { return ret; } -int CTv::Tv_FactoryOpen_FBC_GrayPattern() { +int CTv::Tv_FactoryOpen_FBC_GrayPattern() +{ int ret = -1; if (fbcIns != NULL) { ret = fbcIns->cfbc_WhiteBalance_GrayPattern_OnOff(COMM_DEV_SERIAL, 0); @@ -4664,7 +4969,8 @@ int CTv::Tv_FactoryOpen_FBC_GrayPattern() { return ret; } -int CTv::Tv_FactoryClose_FBC_GrayPattern() { +int CTv::Tv_FactoryClose_FBC_GrayPattern() +{ int ret = -1; if (fbcIns != NULL) { ret = fbcIns->cfbc_WhiteBalance_GrayPattern_OnOff(COMM_DEV_SERIAL, 1); @@ -4672,7 +4978,8 @@ int CTv::Tv_FactoryClose_FBC_GrayPattern() { return ret; } -int CTv::Tv_FactorySet_FBC_ColorTemp_Mode( int mode ) { +int CTv::Tv_FactorySet_FBC_ColorTemp_Mode( int mode ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_ColorTemp_Mode(COMM_DEV_SERIAL, mode); return 0; @@ -4681,7 +4988,8 @@ int CTv::Tv_FactorySet_FBC_ColorTemp_Mode( int mode ) { return -1; } -int CTv::Tv_FactoryGet_FBC_ColorTemp_Mode ( void ) { +int CTv::Tv_FactoryGet_FBC_ColorTemp_Mode ( void ) +{ int temp_mode = 0; if (fbcIns != NULL) { @@ -4692,7 +5000,8 @@ int CTv::Tv_FactoryGet_FBC_ColorTemp_Mode ( void ) { return -1; } -int CTv::Tv_FactorySet_FBC_ColorTemp_Mode_N360( int mode ) { +int CTv::Tv_FactorySet_FBC_ColorTemp_Mode_N360( int mode ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_ColorTemp_Mode(COMM_DEV_SERIAL, mode); SSMSaveFBCN360ColorTempVal(mode); @@ -4702,13 +5011,15 @@ int CTv::Tv_FactorySet_FBC_ColorTemp_Mode_N360( int mode ) { return -1; } -int CTv::Tv_FactoryGet_FBC_ColorTemp_Mode_N360 ( void ) { +int CTv::Tv_FactoryGet_FBC_ColorTemp_Mode_N360 ( void ) +{ int temp_mode = 0; SSMReadFBCN360ColorTempVal(&temp_mode); return temp_mode; } -int CTv::Tv_FactorySet_FBC_LockN_state(int value) { +int CTv::Tv_FactorySet_FBC_LockN_state(int value) +{ LOGE ("Tv_FactorySet_FBC_LockN_state %d!!!\n", value); if (fbcIns != NULL) { fbcIns->cfbc_Set_LockN_state(COMM_DEV_SERIAL, value); @@ -4717,7 +5028,8 @@ int CTv::Tv_FactorySet_FBC_LockN_state(int value) { return -1; } -int CTv::Tv_FactorySet_FBC_WB_Initial( int status ) { +int CTv::Tv_FactorySet_FBC_WB_Initial( int status ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_WB_Initial(COMM_DEV_SERIAL, status); return 0; @@ -4726,7 +5038,8 @@ int CTv::Tv_FactorySet_FBC_WB_Initial( int status ) { return -1; } -int CTv::Tv_FactoryGet_FBC_WB_Initial ( void ) { +int CTv::Tv_FactoryGet_FBC_WB_Initial ( void ) +{ int temp_status = 0; if (fbcIns != NULL) { @@ -4737,7 +5050,8 @@ int CTv::Tv_FactoryGet_FBC_WB_Initial ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_ColorTemp_Batch(vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params) { +int CTv::Tv_FactorySet_FBC_ColorTemp_Batch(vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params) +{ unsigned char mode = 0, r_gain, g_gain, b_gain, r_offset, g_offset, b_offset; switch (Tempmode) { case VPP_COLOR_TEMPERATURE_MODE_STANDARD: @@ -4771,7 +5085,8 @@ int CTv::Tv_FactorySet_FBC_ColorTemp_Batch(vpp_color_temperature_mode_t Tempmode return -1; } -int CTv::Tv_FactoryGet_FBC_ColorTemp_Batch ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ) { +int CTv::Tv_FactoryGet_FBC_ColorTemp_Batch ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ) +{ unsigned char mode = 0, r_gain, g_gain, b_gain, r_offset, g_offset, b_offset; switch (Tempmode) { case VPP_COLOR_TEMPERATURE_MODE_STANDARD: @@ -4806,18 +5121,21 @@ int CTv::Tv_FactoryGet_FBC_ColorTemp_Batch ( vpp_color_temperature_mode_t Tempmo return -1; } -int CTv::Tv_FactorySet_WB_G9_To_FBC( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params ) { +int CTv::Tv_FactorySet_WB_G9_To_FBC( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params ) +{ Tv_FactorySet_FBC_ColorTemp_Batch(Tempmode, params); return 0; } -int CTv::Tv_FactoryGet_WB_G9_To_FBC ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ) { +int CTv::Tv_FactoryGet_WB_G9_To_FBC ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ) +{ int temp_status = 0; Tv_FactoryGet_FBC_ColorTemp_Batch(Tempmode, params); return temp_status; } -int CTv::Tv_FactoryGetItemFromBatch(vpp_color_temperature_mode_t colortemp_mode, int item) { +int CTv::Tv_FactoryGetItemFromBatch(vpp_color_temperature_mode_t colortemp_mode, int item) +{ tcon_rgb_ogo_t params; int ret = 0; @@ -4853,7 +5171,8 @@ int CTv::Tv_FactoryGetItemFromBatch(vpp_color_temperature_mode_t colortemp_mode, return ret; } -int CTv::Tv_FactorySet_FBC_CM_OnOff( unsigned char status ) { +int CTv::Tv_FactorySet_FBC_CM_OnOff( unsigned char status ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_CM(COMM_DEV_SERIAL, status); return 0; @@ -4862,7 +5181,8 @@ int CTv::Tv_FactorySet_FBC_CM_OnOff( unsigned char status ) { return -1; } -int CTv::Tv_FactoryGet_FBC_CM_OnOff (void) { +int CTv::Tv_FactoryGet_FBC_CM_OnOff (void) +{ int temp_status = 0; if (fbcIns != NULL) { @@ -4873,7 +5193,8 @@ int CTv::Tv_FactoryGet_FBC_CM_OnOff (void) { return 0; } -int CTv::Tv_FactorySet_FBC_DNLP_OnOff( unsigned char status ) { +int CTv::Tv_FactorySet_FBC_DNLP_OnOff( unsigned char status ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_DNLP(COMM_DEV_SERIAL, status); return 0; @@ -4882,7 +5203,8 @@ int CTv::Tv_FactorySet_FBC_DNLP_OnOff( unsigned char status ) { return -1; } -int CTv::Tv_FactoryGet_FBC_DNLP_OnOff (void) { +int CTv::Tv_FactoryGet_FBC_DNLP_OnOff (void) +{ int temp_status = 0; if (fbcIns != NULL) { @@ -4893,7 +5215,8 @@ int CTv::Tv_FactoryGet_FBC_DNLP_OnOff (void) { return 0; } -int CTv::Tv_FactorySet_FBC_Gamma_OnOff( unsigned char status ) { +int CTv::Tv_FactorySet_FBC_Gamma_OnOff( unsigned char status ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_Gamma(COMM_DEV_SERIAL, status); return 0; @@ -4902,7 +5225,8 @@ int CTv::Tv_FactorySet_FBC_Gamma_OnOff( unsigned char status ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Gamma_OnOff (void) { +int CTv::Tv_FactoryGet_FBC_Gamma_OnOff (void) +{ int temp_status = 0; if (fbcIns != NULL) { @@ -4913,7 +5237,8 @@ int CTv::Tv_FactoryGet_FBC_Gamma_OnOff (void) { return 0; } -int CTv::Tv_FactorySet_FBC_WhiteBalance_OnOff( unsigned char status ) { +int CTv::Tv_FactorySet_FBC_WhiteBalance_OnOff( unsigned char status ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_WhiteBalance_OnOff(COMM_DEV_SERIAL, status); return 0; @@ -4922,7 +5247,8 @@ int CTv::Tv_FactorySet_FBC_WhiteBalance_OnOff( unsigned char status ) { return -1; } -int CTv::Tv_FactoryGet_FBC_WhiteBalance_OnOff (void) { +int CTv::Tv_FactoryGet_FBC_WhiteBalance_OnOff (void) +{ int temp_status = 0; if (fbcIns != NULL) { @@ -4933,7 +5259,8 @@ int CTv::Tv_FactoryGet_FBC_WhiteBalance_OnOff (void) { return 0; } -int CTv::Tv_FactorySet_FBC_backlight_onoff ( int value ) { +int CTv::Tv_FactorySet_FBC_backlight_onoff ( int value ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_backlight_onoff(COMM_DEV_SERIAL, value); return 0; @@ -4942,7 +5269,8 @@ int CTv::Tv_FactorySet_FBC_backlight_onoff ( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_backlight_onoff ( void ) { +int CTv::Tv_FactoryGet_FBC_backlight_onoff ( void ) +{ int temp_value = 0; if (fbcIns != NULL) { @@ -4953,7 +5281,8 @@ int CTv::Tv_FactoryGet_FBC_backlight_onoff ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_LVDS_SSG_Set( int value ) { +int CTv::Tv_FactorySet_FBC_LVDS_SSG_Set( int value ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_LVDS_SSG_Set(COMM_DEV_SERIAL, value); return 0; @@ -4962,7 +5291,8 @@ int CTv::Tv_FactorySet_FBC_LVDS_SSG_Set( int value ) { return -1; } -int CTv::Tv_FactorySet_FBC_LightSensor_Status_N310 ( int value ) { +int CTv::Tv_FactorySet_FBC_LightSensor_Status_N310 ( int value ) +{ int temp_value = value; if (fbcIns != NULL) { @@ -4974,7 +5304,8 @@ int CTv::Tv_FactorySet_FBC_LightSensor_Status_N310 ( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_LightSensor_Status_N310 ( void ) { +int CTv::Tv_FactoryGet_FBC_LightSensor_Status_N310 ( void ) +{ int temp_value = 0; int data = 0; @@ -4987,7 +5318,8 @@ int CTv::Tv_FactoryGet_FBC_LightSensor_Status_N310 ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_Dream_Panel_Status_N310 ( int value ) { +int CTv::Tv_FactorySet_FBC_Dream_Panel_Status_N310 ( int value ) +{ int temp_value = value; if (fbcIns != NULL) { @@ -4999,7 +5331,8 @@ int CTv::Tv_FactorySet_FBC_Dream_Panel_Status_N310 ( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Dream_Panel_Status_N310 ( void ) { +int CTv::Tv_FactoryGet_FBC_Dream_Panel_Status_N310 ( void ) +{ int temp_value = 0; int data = 0; @@ -5012,7 +5345,8 @@ int CTv::Tv_FactoryGet_FBC_Dream_Panel_Status_N310 ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_MULT_PQ_Status_N310 ( int value ) { +int CTv::Tv_FactorySet_FBC_MULT_PQ_Status_N310 ( int value ) +{ int temp_value = value; if (fbcIns != NULL) { @@ -5024,7 +5358,8 @@ int CTv::Tv_FactorySet_FBC_MULT_PQ_Status_N310 ( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_MULT_PQ_Status_N310 ( void ) { +int CTv::Tv_FactoryGet_FBC_MULT_PQ_Status_N310 ( void ) +{ int temp_value = 0; int data = 0; @@ -5037,7 +5372,8 @@ int CTv::Tv_FactoryGet_FBC_MULT_PQ_Status_N310 ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_MEMC_Status_N310 ( int value ) { +int CTv::Tv_FactorySet_FBC_MEMC_Status_N310 ( int value ) +{ int temp_value = value; if (fbcIns != NULL) { @@ -5049,7 +5385,8 @@ int CTv::Tv_FactorySet_FBC_MEMC_Status_N310 ( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_MEMC_Status_N310 ( void ) { +int CTv::Tv_FactoryGet_FBC_MEMC_Status_N310 ( void ) +{ int temp_value = 0; int data = 0; @@ -5062,7 +5399,8 @@ int CTv::Tv_FactoryGet_FBC_MEMC_Status_N310 ( void ) { return -1; } -int CTv::Tv_FactorySet_FBC_ColorTemp_Mode_N310( int mode ) { +int CTv::Tv_FactorySet_FBC_ColorTemp_Mode_N310( int mode ) +{ //int colorTemp = 0; if (fbcIns != NULL) { //colorTemp = Tv_FactoryWhiteBalanceColorTempMappingG92Fbc(mode); @@ -5074,7 +5412,8 @@ int CTv::Tv_FactorySet_FBC_ColorTemp_Mode_N310( int mode ) { return -1; } -int CTv::Tv_FactoryGet_FBC_ColorTemp_Mode_N310 ( void ) { +int CTv::Tv_FactoryGet_FBC_ColorTemp_Mode_N310 ( void ) +{ int mode = 0; if (fbcIns != NULL) { @@ -5086,7 +5425,8 @@ int CTv::Tv_FactoryGet_FBC_ColorTemp_Mode_N310 ( void ) { return -1; } -int CTv::Tv_FactorySet_FBC_Backlight_N310 ( int value ) { +int CTv::Tv_FactorySet_FBC_Backlight_N310 ( int value ) +{ int val = 0; if (fbcIns != NULL) { @@ -5099,7 +5439,8 @@ int CTv::Tv_FactorySet_FBC_Backlight_N310 ( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Backlight_N310 ( void ) { +int CTv::Tv_FactoryGet_FBC_Backlight_N310 ( void ) +{ int val = 0; if (fbcIns != NULL) { @@ -5110,7 +5451,8 @@ int CTv::Tv_FactoryGet_FBC_Backlight_N310 ( void ) { return -1; } -int CTv::Tv_FactorySet_FBC_Bluetooth_IIS_N310 ( int value ) { +int CTv::Tv_FactorySet_FBC_Bluetooth_IIS_N310 ( int value ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_Bluetooth_IIS_onoff(COMM_DEV_SERIAL, value); return 0; @@ -5119,7 +5461,8 @@ int CTv::Tv_FactorySet_FBC_Bluetooth_IIS_N310 ( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_Bluetooth_IIS_N310 ( void ) { +int CTv::Tv_FactoryGet_FBC_Bluetooth_IIS_N310 ( void ) +{ int temp_value = 0; if (fbcIns != NULL) { @@ -5130,7 +5473,8 @@ int CTv::Tv_FactoryGet_FBC_Bluetooth_IIS_N310 ( void ) { return 0; } -int CTv::Tv_FactorySet_FBC_Led_N310 ( int val_1, int val_2, int val_3 ) { +int CTv::Tv_FactorySet_FBC_Led_N310 ( int val_1, int val_2, int val_3 ) +{ int val = 0; if (fbcIns != NULL) { @@ -5141,7 +5485,8 @@ int CTv::Tv_FactorySet_FBC_Led_N310 ( int val_1, int val_2, int val_3 ) { return -1; } -int CTv::Tv_FactorySet_VbyOne_Spread_Spectrum_N311 ( int value ) { +int CTv::Tv_FactorySet_VbyOne_Spread_Spectrum_N311 ( int value ) +{ if (fbcIns != NULL) { return -1; } else { @@ -5166,7 +5511,8 @@ int CTv::Tv_FactorySet_VbyOne_Spread_Spectrum_N311 ( int value ) { } } -int CTv::Tv_FactoryGet_VbyOne_Spread_Spectrum_N311 ( void ) { +int CTv::Tv_FactoryGet_VbyOne_Spread_Spectrum_N311 ( void ) +{ int val = 0; if (fbcIns != NULL) { return -1; @@ -5176,7 +5522,8 @@ int CTv::Tv_FactoryGet_VbyOne_Spread_Spectrum_N311 ( void ) { } } -int CTv::Tv_FactorySet_FBC_AP_STANDBY_N310 ( int value ) { +int CTv::Tv_FactorySet_FBC_AP_STANDBY_N310 ( int value ) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_AP_STANDBY_N310(COMM_DEV_SERIAL, value); return 0; @@ -5185,7 +5532,8 @@ int CTv::Tv_FactorySet_FBC_AP_STANDBY_N310 ( int value ) { return -1; } -int CTv::Tv_FactoryGet_FBC_AP_STANDBY_N310( void ) { +int CTv::Tv_FactoryGet_FBC_AP_STANDBY_N310( void ) +{ int temp_value = 0; if (fbcIns != NULL) { @@ -5196,7 +5544,8 @@ int CTv::Tv_FactoryGet_FBC_AP_STANDBY_N310( void ) { return 0; } -int CTv::Tv_FactorySet_Uboot_Stage(int value) { +int CTv::Tv_FactorySet_Uboot_Stage(int value) +{ if (fbcIns != NULL) { fbcIns->cfbc_Set_Fbc_Uboot_Stage(COMM_DEV_SERIAL, value); return 0; @@ -5206,7 +5555,8 @@ int CTv::Tv_FactorySet_Uboot_Stage(int value) { } //audio -void CTv::TvAudioOpen() { +void CTv::TvAudioOpen() +{ SetAudioAVOutMute(CC_AUDIO_UNMUTE); SetAudioSPDIFMute(CC_AUDIO_UNMUTE); project_info_t tmp_info; @@ -5216,7 +5566,8 @@ void CTv::TvAudioOpen() { openTvAudio(); } -void CTv::AudioCtlUninit() { +void CTv::AudioCtlUninit() +{ int oldMuteStatus; oldMuteStatus = GetAudioMuteForTv(); @@ -5234,12 +5585,14 @@ void CTv::AudioCtlUninit() { SetAudioMuteForTv(oldMuteStatus); } -char *CTv::GetMainVolLutTableExtraName() { +char *CTv::GetMainVolLutTableExtraName() +{ return mMainVolLutTableExtraName; } //audio -int CTv::SetAudioMuteForSystem(int muteOrUnmute) { +int CTv::SetAudioMuteForSystem(int muteOrUnmute) +{ int ret = 0; LOGD("SetAudioMuteForSystem sysMuteStats=%d, tvMuteStatus=%d, toMute=%d", mAudioMuteStatusForSystem, mAudioMuteStatusForTv, muteOrUnmute); mAudioMuteStatusForSystem = muteOrUnmute; @@ -5248,11 +5601,13 @@ int CTv::SetAudioMuteForSystem(int muteOrUnmute) { return ret; } -int CTv::GetAudioMuteForSystem() { +int CTv::GetAudioMuteForSystem() +{ return mAudioMuteStatusForSystem; } -int CTv::SetAudioMuteForTv(int muteOrUnmute) { +int CTv::SetAudioMuteForTv(int muteOrUnmute) +{ int ret = 0; mAudioMuteStatusForTv = muteOrUnmute; LOGD("SetAudioMuteForTv sysMuteStats=%d, tvMuteStatus=%d, toMute=%d", mAudioMuteStatusForSystem, mAudioMuteStatusForTv, muteOrUnmute); @@ -5261,16 +5616,19 @@ int CTv::SetAudioMuteForTv(int muteOrUnmute) { return ret; } -int CTv::GetAudioMuteForTv() { +int CTv::GetAudioMuteForTv() +{ return mAudioMuteStatusForTv; } -int CTv::GetDbxTvMode(int *mode, int *son_value, int *vol_value, int *sur_value) { +int CTv::GetDbxTvMode(int *mode, int *son_value, int *vol_value, int *sur_value) +{ *mode = 0; return SSMReadAudioDbxTvValue(son_value, vol_value, sur_value); } -int CTv::SetAudioSPDIFSwitch(int tmp_val) { +int CTv::SetAudioSPDIFSwitch(int tmp_val) +{ int muteStatus = CC_AUDIO_UNMUTE; SaveCurAudioSPDIFSwitch(tmp_val); @@ -5285,56 +5643,68 @@ int CTv::SetAudioSPDIFSwitch(int tmp_val) { return 0; } -int CTv::AudioHandleHeadsetPlugIn() { +int CTv::AudioHandleHeadsetPlugIn() +{ return 0; } -int CTv::AudioHandleHeadsetPullOut() { +int CTv::AudioHandleHeadsetPullOut() +{ return 0; } -int CTv::Tv_SetDRC_OnOff(int on_off) { +int CTv::Tv_SetDRC_OnOff(int on_off) +{ on_off = on_off; return 0; } -int CTv::Tv_GetDRC_OnOff(void) { +int CTv::Tv_GetDRC_OnOff(void) +{ return 0; } -void CTv::updateSubtitle(int pic_width, int pic_height) { +void CTv::updateSubtitle(int pic_width, int pic_height) +{ TvEvent::SubtitleEvent ev; ev.pic_width = pic_width; ev.pic_height = pic_height; sendTvEvent(ev); } -int CTv::setSubtitleBuffer(char *share_mem) { +int CTv::setSubtitleBuffer(char *share_mem) +{ mSubtitle.setBuffer(share_mem); return 0; } -int CTv::initSubtitle(int bitmapWidth, int bitmapHeight) { +int CTv::initSubtitle(int bitmapWidth, int bitmapHeight) +{ return mSubtitle.sub_init(bitmapWidth, bitmapHeight); } -int CTv::lockSubtitle() { +int CTv::lockSubtitle() +{ return mSubtitle.sub_lock(); } -int CTv::unlockSubtitle() { +int CTv::unlockSubtitle() +{ return mSubtitle.sub_unlock(); } -int CTv::getSubSwitchStatus() { +int CTv::getSubSwitchStatus() +{ return mSubtitle.sub_switch_status(); } -int CTv::startSubtitle(int dmx_id, int pid, int page_id, int anc_page_id) { +int CTv::startSubtitle(int dmx_id, int pid, int page_id, int anc_page_id) +{ return mSubtitle.sub_start_dvb_sub(dmx_id, pid, page_id, anc_page_id); } -int CTv::stopSubtitle() { +int CTv::stopSubtitle() +{ return mSubtitle.sub_stop_dvb_sub(); } @@ -5342,7 +5712,8 @@ int CTv::stopSubtitle() { //Audio Mute -int CTv::SetAudioI2sMute(int muteStatus) { +int CTv::SetAudioI2sMute(int muteStatus) +{ int vol = 256; if (muteStatus == CC_AUDIO_MUTE) { vol = 0; @@ -5354,7 +5725,8 @@ int CTv::SetAudioI2sMute(int muteStatus) { return 0; } -int CTv::SetDacMute(int muteStatus, int mute_type) { +int CTv::SetDacMute(int muteStatus, int mute_type) +{ int tmp_ret = 0; if (mute_type & CC_DAC_MUTE_TYPE_INTERNAL) { tmp_ret |= mAudioAlsa.SetInternalDacMute(muteStatus); @@ -5389,18 +5761,21 @@ int CTv::SetDacMute(int muteStatus, int mute_type) { return tmp_ret; } -int CTv::SetAudioAVOutMute(int muteStatus) { +int CTv::SetAudioAVOutMute(int muteStatus) +{ SSMSaveAudioAVOutMuteVal(muteStatus); return mAudioAlsa.SetInternalDacMute(muteStatus); } -int CTv::GetAudioAVOutMute() { +int CTv::GetAudioAVOutMute() +{ int8_t tmp_ch = 0; SSMReadAudioAVOutMuteVal(&tmp_ch); return tmp_ch; } -int CTv::SetAudioSPDIFMute(int muteStatus) { +int CTv::SetAudioSPDIFMute(int muteStatus) +{ if (GetCurAudioSPDIFSwitch() == CC_SWITCH_OFF) { muteStatus = CC_AUDIO_MUTE; } @@ -5409,17 +5784,20 @@ int CTv::SetAudioSPDIFMute(int muteStatus) { return mAudioAlsa.SetSPDIFMute(muteStatus); } -int CTv::GetAudioSPDIFMute() { +int CTv::GetAudioSPDIFMute() +{ int8_t tmp_ch = 0; SSMReadAudioSPIDFMuteVal(&tmp_ch); return tmp_ch; } -int CTv::GetCurAudioSPDIFSwitch() { +int CTv::GetCurAudioSPDIFSwitch() +{ return mCurAudioSPDIFSwitch; } -int CTv::SaveCurAudioSPDIFSwitch(int tmp_val) { +int CTv::SaveCurAudioSPDIFSwitch(int tmp_val) +{ int8_t tmp_ch = 0; mCurAudioSPDIFSwitch = tmp_val; @@ -5429,7 +5807,8 @@ int CTv::SaveCurAudioSPDIFSwitch(int tmp_val) { return mCurAudioSPDIFSwitch; } -int CTv::LoadCurAudioSPDIFSwitch() { +int CTv::LoadCurAudioSPDIFSwitch() +{ int8_t tmp_ch = 0; SSMReadAudioSPDIFSwitchVal(&tmp_ch); mCurAudioSPDIFSwitch = tmp_ch; @@ -5441,7 +5820,8 @@ int CTv::LoadCurAudioSPDIFSwitch() { } //Audio SPDIF Mode -int CTv::SetAudioSPDIFMode(int tmp_val) { +int CTv::SetAudioSPDIFMode(int tmp_val) +{ LOGD("%s : tmp_val = %d\n", __FUNCTION__, tmp_val); mCurAudioSPDIFMode = tmp_val; @@ -5449,11 +5829,13 @@ int CTv::SetAudioSPDIFMode(int tmp_val) { return 0; } -int CTv::GetCurAudioSPDIFMode() { +int CTv::GetCurAudioSPDIFMode() +{ return mCurAudioSPDIFMode; } -int CTv::SaveCurAudioSPDIFMode(int tmp_val) { +int CTv::SaveCurAudioSPDIFMode(int tmp_val) +{ int8_t tmp_ch = 0; mCurAudioSPDIFMode = tmp_val; @@ -5463,7 +5845,8 @@ int CTv::SaveCurAudioSPDIFMode(int tmp_val) { return mCurAudioSPDIFMode; } -int CTv::LoadCurAudioSPDIFMode() { +int CTv::LoadCurAudioSPDIFMode() +{ int8_t tmp_ch = 0; SSMReadAudioSPDIFModeVal(&tmp_ch); mCurAudioSPDIFMode = tmp_ch; @@ -5474,7 +5857,8 @@ int CTv::LoadCurAudioSPDIFMode() { return mCurAudioSPDIFMode; } -int CTv::SetAudioMasterVolume(int tmp_vol) { +int CTv::SetAudioMasterVolume(int tmp_vol) +{ mCustomAudioMasterVolume = tmp_vol; //Volume Compensation @@ -5525,21 +5909,25 @@ int CTv::SetAudioMasterVolume(int tmp_vol) { return 0; } -int CTv::GetAudioMasterVolume() { +int CTv::GetAudioMasterVolume() +{ return mCustomAudioMasterVolume; } -int CTv::GetCurAudioMasterVolume() { +int CTv::GetCurAudioMasterVolume() +{ return mCurAudioMasterVolume; } -int CTv::SaveCurAudioMasterVolume(int tmp_vol) { +int CTv::SaveCurAudioMasterVolume(int tmp_vol) +{ mCurAudioMasterVolume = tmp_vol; SSMSaveAudioMasterVolume(tmp_vol); return mCurAudioMasterVolume; } -int CTv::LoadCurAudioMasterVolume() { +int CTv::LoadCurAudioMasterVolume() +{ int8_t tmp_ch = 0; SSMReadAudioMasterVolume(&tmp_ch); mCurAudioMasterVolume = tmp_ch; @@ -5552,7 +5940,8 @@ int CTv::LoadCurAudioMasterVolume() { return mCurAudioMasterVolume; } -int CTv::SetAudioBalance(int tmp_val) { +int CTv::SetAudioBalance(int tmp_val) +{ mCustomAudioBalance = tmp_val; int aud_arch_type = GetAudioArchitectureTypeCFG(); @@ -5569,15 +5958,18 @@ int CTv::SetAudioBalance(int tmp_val) { return 0; } -int CTv::GetAudioBalance() { +int CTv::GetAudioBalance() +{ return mCustomAudioBalance; } -int CTv::GetCurAudioBalance() { +int CTv::GetCurAudioBalance() +{ return mCurAudioBalance; } -int CTv::SaveCurAudioBalance(int tmp_val) { +int CTv::SaveCurAudioBalance(int tmp_val) +{ int8_t tmp_ch = 0; mCurAudioBalance = tmp_val; @@ -5587,7 +5979,8 @@ int CTv::SaveCurAudioBalance(int tmp_val) { return mCurAudioBalance; } -int CTv::LoadCurAudioBalance() { +int CTv::LoadCurAudioBalance() +{ int8_t tmp_ch = 0; SSMReadAudioBalanceVal(&tmp_ch); mCurAudioBalance = tmp_ch; @@ -5601,13 +5994,15 @@ int CTv::LoadCurAudioBalance() { return mCurAudioBalance; } -int CTv::SetAudioVolumeCompensationVal(int tmp_vol_comp_val) { +int CTv::SetAudioVolumeCompensationVal(int tmp_vol_comp_val) +{ mVolumeCompensationVal = tmp_vol_comp_val; LOGD("%s, new vol comp value = %d.\n", __FUNCTION__, tmp_vol_comp_val); return mVolumeCompensationVal; } -int CTv::SetAudioSupperBassVolume(int tmp_vol) { +int CTv::SetAudioSupperBassVolume(int tmp_vol) +{ mCustomAudioSupperBassVolume = tmp_vol; int aud_arch_type = GetAudioArchitectureTypeCFG(); @@ -5637,15 +6032,18 @@ int CTv::SetAudioSupperBassVolume(int tmp_vol) { return tmp_ret; } -int CTv::GetAudioSupperBassVolume() { +int CTv::GetAudioSupperBassVolume() +{ return mCustomAudioSupperBassVolume; } -int CTv::GetCurAudioSupperBassVolume() { +int CTv::GetCurAudioSupperBassVolume() +{ return mCurAudioSupperBassVolume; } -int CTv::SaveCurAudioSupperBassVolume(int tmp_vol) { +int CTv::SaveCurAudioSupperBassVolume(int tmp_vol) +{ int8_t tmp_ch = 0; mCurAudioSupperBassVolume = tmp_vol; @@ -5655,7 +6053,8 @@ int CTv::SaveCurAudioSupperBassVolume(int tmp_vol) { return mCurAudioSupperBassVolume; } -int CTv::LoadCurAudioSupperBassVolume() { +int CTv::LoadCurAudioSupperBassVolume() +{ int8_t tmp_ch = 0; SSMReadAudioSupperBassVolume(&tmp_ch); mCurAudioSupperBassVolume = tmp_ch; @@ -5668,7 +6067,8 @@ int CTv::LoadCurAudioSupperBassVolume() { return mCurAudioSupperBassVolume; } -int CTv::SetAudioSupperBassSwitch(int tmp_val) { +int CTv::SetAudioSupperBassSwitch(int tmp_val) +{ mCustomAudioSupperBassSwitch = tmp_val; if (GetAudioSupperBassSwitch() == CC_SWITCH_OFF) { @@ -5678,7 +6078,8 @@ int CTv::SetAudioSupperBassSwitch(int tmp_val) { return SetAudioSupperBassVolume(GetAudioSupperBassVolume()); } -int CTv::GetAudioSupperBassSwitch() { +int CTv::GetAudioSupperBassSwitch() +{ if (GetAudioSupperBassSwitchDisableCFG() != 0) { return CC_SWITCH_ON; } @@ -5686,7 +6087,8 @@ int CTv::GetAudioSupperBassSwitch() { return mCustomAudioSupperBassSwitch; } -int CTv::GetCurAudioSupperBassSwitch() { +int CTv::GetCurAudioSupperBassSwitch() +{ if (GetAudioSupperBassSwitchDisableCFG() != 0) { return CC_SWITCH_ON; } @@ -5694,7 +6096,8 @@ int CTv::GetCurAudioSupperBassSwitch() { return mCurAudioSupperBassSwitch; } -int CTv::SaveCurAudioSupperBassSwitch(int tmp_val) { +int CTv::SaveCurAudioSupperBassSwitch(int tmp_val) +{ int8_t tmp_ch = 0; mCurAudioSupperBassSwitch = tmp_val; @@ -5706,7 +6109,8 @@ int CTv::SaveCurAudioSupperBassSwitch(int tmp_val) { return mCurAudioSupperBassSwitch; } -int CTv::LoadCurAudioSupperBassSwitch() { +int CTv::LoadCurAudioSupperBassSwitch() +{ int8_t tmp_ch = 0; SSMReadAudioSupperBassSwitch(&tmp_ch); mCurAudioSupperBassSwitch = tmp_ch; @@ -5719,7 +6123,8 @@ int CTv::LoadCurAudioSupperBassSwitch() { return mCurAudioSupperBassSwitch; } -void CTv::SetSupperBassSRSSpeakerSize() { +void CTv::SetSupperBassSRSSpeakerSize() +{ int tmp_speakersize = -1; if (GetAudioSrsTruBass() == CC_SWITCH_ON) { @@ -5730,22 +6135,26 @@ void CTv::SetSupperBassSRSSpeakerSize() { } } -int CTv::SetAudioSRSSurround(int tmp_val) { +int CTv::SetAudioSRSSurround(int tmp_val) +{ mCustomAudioSRSSurround = tmp_val; RefreshSrsEffectAndDacGain(); return 0; } -int CTv::GetAudioSRSSurround() { +int CTv::GetAudioSRSSurround() +{ return mCustomAudioSRSSurround; } -int CTv::GetCurAudioSRSSurround() { +int CTv::GetCurAudioSRSSurround() +{ return mCurAudioSRSSurround; } -int CTv::SaveCurAudioSrsSurround(int tmp_val) { +int CTv::SaveCurAudioSrsSurround(int tmp_val) +{ int8_t tmp_ch = 0; mCurAudioSRSSurround = tmp_val; @@ -5755,7 +6164,8 @@ int CTv::SaveCurAudioSrsSurround(int tmp_val) { return mCurAudioSRSSurround; } -int CTv::LoadCurAudioSrsSurround() { +int CTv::LoadCurAudioSrsSurround() +{ int8_t tmp_ch = 0; SSMReadAudioSRSSurroundSwitch(&tmp_ch); @@ -5769,21 +6179,25 @@ int CTv::LoadCurAudioSrsSurround() { return mCurAudioSRSSurround; } -int CTv::SetAudioSrsDialogClarity(int tmp_val) { +int CTv::SetAudioSrsDialogClarity(int tmp_val) +{ mCustomAudioSrsDialogClarity = tmp_val; RefreshSrsEffectAndDacGain(); return 0; } -int CTv::GetAudioSrsDialogClarity() { +int CTv::GetAudioSrsDialogClarity() +{ return mCustomAudioSrsDialogClarity; } -int CTv::GetCurAudioSrsDialogClarity() { +int CTv::GetCurAudioSrsDialogClarity() +{ return mCurAudioSrsDialogClarity; } -int CTv::SaveCurAudioSrsDialogClarity(int tmp_val) { +int CTv::SaveCurAudioSrsDialogClarity(int tmp_val) +{ int8_t tmp_ch = 0; mCurAudioSrsDialogClarity = tmp_val; @@ -5793,7 +6207,8 @@ int CTv::SaveCurAudioSrsDialogClarity(int tmp_val) { return mCurAudioSrsDialogClarity; } -int CTv::LoadCurAudioSrsDialogClarity() { +int CTv::LoadCurAudioSrsDialogClarity() +{ int8_t tmp_ch = 0; SSMReadAudioSRSDialogClaritySwitch(&tmp_ch); @@ -5807,21 +6222,25 @@ int CTv::LoadCurAudioSrsDialogClarity() { return mCurAudioSrsDialogClarity; } -int CTv::SetAudioSrsTruBass(int tmp_val) { +int CTv::SetAudioSrsTruBass(int tmp_val) +{ mCustomAudioSrsTruBass = tmp_val; RefreshSrsEffectAndDacGain(); return 0; } -int CTv::GetAudioSrsTruBass() { +int CTv::GetAudioSrsTruBass() +{ return mCustomAudioSrsTruBass; } -int CTv::GetCurAudioSrsTruBass() { +int CTv::GetCurAudioSrsTruBass() +{ return mCurAudioSrsTruBass; } -int CTv::SaveCurAudioSrsTruBass(int tmp_val) { +int CTv::SaveCurAudioSrsTruBass(int tmp_val) +{ int8_t tmp_ch = 0; mCurAudioSrsTruBass = tmp_val; @@ -5831,7 +6250,8 @@ int CTv::SaveCurAudioSrsTruBass(int tmp_val) { return mCurAudioSrsTruBass; } -int CTv::LoadCurAudioSrsTruBass() { +int CTv::LoadCurAudioSrsTruBass() +{ int8_t tmp_ch = 0; SSMReadAudioSRSTruBassSwitch(&tmp_ch); @@ -5845,7 +6265,8 @@ int CTv::LoadCurAudioSrsTruBass() { return mCurAudioSrsTruBass; } -void CTv::RefreshSrsEffectAndDacGain() { +void CTv::RefreshSrsEffectAndDacGain() +{ int tmp_gain_val = 0; int surround_switch = CC_SWITCH_OFF; int trubass_switch = CC_SWITCH_OFF; @@ -5868,7 +6289,7 @@ void CTv::RefreshSrsEffectAndDacGain() { mAudioEffect.SetSrsInputOutputGain(input_gain_val, out_gain_val); if (trubass_switch == CC_SWITCH_ON - && dialogclarity_switch == CC_SWITCH_OFF) { + && dialogclarity_switch == CC_SWITCH_OFF) { mAudioEffect.SetSrsTruBassSwitch (CC_SWITCH_ON); tmp_gain_val = GetAudioSRSGainCfg("audio.srs.trubass.gain", 50); @@ -5879,7 +6300,7 @@ void CTv::RefreshSrsEffectAndDacGain() { mAudioEffect.SetSrsDialogClaritySwitch (CC_SWITCH_OFF); } else if (trubass_switch == CC_SWITCH_OFF - && dialogclarity_switch == CC_SWITCH_ON) { + && dialogclarity_switch == CC_SWITCH_ON) { mAudioEffect.SetSrsDialogClaritySwitch (CC_SWITCH_ON); tmp_gain_val = GetAudioSRSGainCfg("audio.srs.dialogclarity.gain", 30); @@ -5890,7 +6311,7 @@ void CTv::RefreshSrsEffectAndDacGain() { mAudioEffect.SetSrsTruBassSwitch (CC_SWITCH_OFF); } else if (trubass_switch == CC_SWITCH_ON - && dialogclarity_switch == CC_SWITCH_ON) { + && dialogclarity_switch == CC_SWITCH_ON) { mAudioEffect.SetSrsTruBassSwitch (CC_SWITCH_ON); tmp_gain_val = GetAudioSRSGainCfg("audio.srs.trubass.gain", 50); @@ -5905,7 +6326,7 @@ void CTv::RefreshSrsEffectAndDacGain() { mAudioEffect.SetSrsDefinitionGain(tmp_gain_val); } else if (trubass_switch == CC_SWITCH_OFF - && dialogclarity_switch == CC_SWITCH_OFF) { + && dialogclarity_switch == CC_SWITCH_OFF) { mAudioEffect.SetSrsTruBassSwitch (CC_SWITCH_OFF); mAudioEffect.SetSrsDialogClaritySwitch(CC_SWITCH_OFF); } @@ -5920,20 +6341,21 @@ void CTv::RefreshSrsEffectAndDacGain() { if (surround_switch == CC_SWITCH_ON) { main_gain_val = GetAudioEffectAmplifierGainCfg("audio.srs.sourround.ampmaster.gain", 6, 24); if (dialogclarity_switch == CC_SWITCH_ON - && trubass_switch == CC_SWITCH_OFF) { + && trubass_switch == CC_SWITCH_OFF) { main_gain_val = GetAudioEffectAmplifierGainCfg("audio.srs.dialogclarity.ampmaster.gain", 6, 24); } else if (dialogclarity_switch == CC_SWITCH_OFF - && trubass_switch == CC_SWITCH_ON) { + && trubass_switch == CC_SWITCH_ON) { main_gain_val = GetAudioEffectAmplifierGainCfg("audio.srs.trubass.ampmaster.gain", 6, 24); } else if (dialogclarity_switch == CC_SWITCH_ON - && trubass_switch == CC_SWITCH_ON) { + && trubass_switch == CC_SWITCH_ON) { main_gain_val = GetAudioEffectAmplifierGainCfg("audio.srs.trubass.dialogclarity.ampmaster.gain", 6, 24); } } mAudioAlsa.SetMainVolumeGain(main_gain_val); } -int CTv::SetAudioBassVolume(int tmp_vol) { +int CTv::SetAudioBassVolume(int tmp_vol) +{ int nMinBassVol = 0, nMaxBassVol = 0; nMinBassVol = GetBassUIMinGainVal(); @@ -5949,15 +6371,18 @@ int CTv::SetAudioBassVolume(int tmp_vol) { return SetSpecialIndexEQGain(CC_EQ_BASS_IND, tmp_vol); } -int CTv::GetAudioBassVolume() { +int CTv::GetAudioBassVolume() +{ return mCustomAudioBassVolume; } -int CTv::GetCurAudioBassVolume() { +int CTv::GetCurAudioBassVolume() +{ return mCurAudioBassVolume; } -int CTv::SaveCurAudioBassVolume(int tmp_vol) { +int CTv::SaveCurAudioBassVolume(int tmp_vol) +{ int nMinBassVol = 0, nMaxBassVol = 0; nMinBassVol = GetBassUIMinGainVal(); @@ -5974,7 +6399,8 @@ int CTv::SaveCurAudioBassVolume(int tmp_vol) { return SaveSpecialIndexEQGain(CC_EQ_BASS_IND, tmp_vol); } -int CTv::RealSaveCurAudioBassVolume(int tmp_vol, int sound_mode_judge) { +int CTv::RealSaveCurAudioBassVolume(int tmp_vol, int sound_mode_judge) +{ int8_t tmp_ch = 0; mCurAudioBassVolume = tmp_vol; tmp_ch = tmp_vol; @@ -5989,7 +6415,8 @@ int CTv::RealSaveCurAudioBassVolume(int tmp_vol, int sound_mode_judge) { return mCurAudioBassVolume; } -int CTv::LoadCurAudioBassVolume() { +int CTv::LoadCurAudioBassVolume() +{ int nMinBassVol = 0, nMaxBassVol = 0; int8_t tmp_ch = 0; @@ -6007,7 +6434,8 @@ int CTv::LoadCurAudioBassVolume() { return mCurAudioBassVolume; } -int CTv::SetAudioTrebleVolume(int tmp_vol) { +int CTv::SetAudioTrebleVolume(int tmp_vol) +{ int nMinTrebleVol = 0, nMaxTrebleVol = 0; nMinTrebleVol = GetTrebleUIMinGainVal(); @@ -6024,15 +6452,18 @@ int CTv::SetAudioTrebleVolume(int tmp_vol) { return SetSpecialIndexEQGain(CC_EQ_TREBLE_IND, tmp_vol); } -int CTv::GetAudioTrebleVolume() { +int CTv::GetAudioTrebleVolume() +{ return mCustomAudioTrebleVolume; } -int CTv::GetCurAudioTrebleVolume() { +int CTv::GetCurAudioTrebleVolume() +{ return mCurAudioTrebleVolume; } -int CTv::SaveCurAudioTrebleVolume(int tmp_vol) { +int CTv::SaveCurAudioTrebleVolume(int tmp_vol) +{ int nMinTrebleVol = 0, nMaxTrebleVol = 0; nMinTrebleVol = GetTrebleUIMinGainVal(); @@ -6049,7 +6480,8 @@ int CTv::SaveCurAudioTrebleVolume(int tmp_vol) { return SaveSpecialIndexEQGain(CC_EQ_TREBLE_IND, tmp_vol); } -int CTv::RealSaveCurAudioTrebleVolume(int tmp_vol, int sound_mode_judge) { +int CTv::RealSaveCurAudioTrebleVolume(int tmp_vol, int sound_mode_judge) +{ int8_t tmp_ch = 0; mCurAudioTrebleVolume = tmp_vol; tmp_ch = tmp_vol; @@ -6065,7 +6497,8 @@ int CTv::RealSaveCurAudioTrebleVolume(int tmp_vol, int sound_mode_judge) { return mCurAudioTrebleVolume; } -int CTv::LoadCurAudioTrebleVolume() { +int CTv::LoadCurAudioTrebleVolume() +{ int nMinTrebleVol = 0, nMaxTrebleVol = 0; int8_t tmp_ch = 0; @@ -6083,7 +6516,8 @@ int CTv::LoadCurAudioTrebleVolume() { return mCurAudioTrebleVolume; } -int CTv::SetAudioSoundMode(int tmp_val) { +int CTv::SetAudioSoundMode(int tmp_val) +{ mCustomAudioSoundMode = tmp_val; SetSpecialModeEQGain(mCustomAudioSoundMode); @@ -6091,21 +6525,25 @@ int CTv::SetAudioSoundMode(int tmp_val) { return 0; } -int CTv::GetAudioSoundMode() { +int CTv::GetAudioSoundMode() +{ return mCustomAudioSoundMode; } -int CTv::GetCurAudioSoundMode() { +int CTv::GetCurAudioSoundMode() +{ return mCurAudioSoundMode; } -int CTv::SaveCurAudioSoundMode(int tmp_val) { +int CTv::SaveCurAudioSoundMode(int tmp_val) +{ mCurAudioSoundMode = tmp_val; SSMSaveAudioSoundModeVal(tmp_val); return tmp_val; } -int CTv::LoadCurAudioSoundMode() { +int CTv::LoadCurAudioSoundMode() +{ int8_t tmp_ch = 0; SSMReadAudioSoundModeVal(&tmp_ch); mCurAudioSoundMode = tmp_ch; @@ -6117,7 +6555,8 @@ int CTv::LoadCurAudioSoundMode() { return mCurAudioSoundMode; } -int CTv::HandleTrebleBassVolume() { +int CTv::HandleTrebleBassVolume() +{ int tmp_vol = 0; int tmpEQGainBuf[128] = { 0 }; int8_t tmp_ch = 0; @@ -6140,7 +6579,8 @@ int CTv::HandleTrebleBassVolume() { return 0; } -int CTv::SetAudioWallEffect(int tmp_val) { +int CTv::SetAudioWallEffect(int tmp_val) +{ int tmp_treble_val; int tmp_type = 0; @@ -6162,15 +6602,18 @@ int CTv::SetAudioWallEffect(int tmp_val) { return 0; } -int CTv::GetAudioWallEffect() { +int CTv::GetAudioWallEffect() +{ return mCustomAudioWallEffect; } -int CTv::GetCurAudioWallEffect() { +int CTv::GetCurAudioWallEffect() +{ return mCurAudioWallEffect; } -int CTv::SaveCurAudioWallEffect(int tmp_val) { +int CTv::SaveCurAudioWallEffect(int tmp_val) +{ int8_t tmp_ch = 0; mCurAudioWallEffect = tmp_val; @@ -6180,7 +6623,8 @@ int CTv::SaveCurAudioWallEffect(int tmp_val) { return mCurAudioWallEffect; } -int CTv::LoadCurAudioWallEffect() { +int CTv::LoadCurAudioWallEffect() +{ int8_t tmp_ch = 0; SSMReadAudioWallEffectSwitch(&tmp_ch); mCurAudioWallEffect = tmp_ch; @@ -6193,20 +6637,24 @@ int CTv::LoadCurAudioWallEffect() { return mCurAudioWallEffect; } -int CTv::SetAudioEQMode(int tmp_val) { +int CTv::SetAudioEQMode(int tmp_val) +{ mCustomAudioEQMode = tmp_val; return 0; } -int CTv::GetAudioEQMode() { +int CTv::GetAudioEQMode() +{ return mCustomAudioEQMode; } -int CTv::GetCurAudioEQMode() { +int CTv::GetCurAudioEQMode() +{ return mCurAudioEQMode; } -int CTv::SaveCurAudioEQMode(int tmp_val) { +int CTv::SaveCurAudioEQMode(int tmp_val) +{ int8_t tmp_ch = 0; mCurAudioEQMode = tmp_val; @@ -6216,7 +6664,8 @@ int CTv::SaveCurAudioEQMode(int tmp_val) { return tmp_val; } -int CTv::LoadCurAudioEQMode() { +int CTv::LoadCurAudioEQMode() +{ int8_t tmp_ch = 0; SSMReadAudioEQModeVal(&tmp_ch); mCurAudioEQMode = tmp_ch; @@ -6229,39 +6678,47 @@ int CTv::LoadCurAudioEQMode() { return mCurAudioEQMode; } -int CTv::GetAudioEQRange(int range_buf[]) { +int CTv::GetAudioEQRange(int range_buf[]) +{ range_buf[0] = CC_MIN_EQ_GAIN_VAL; range_buf[1] = CC_MAX_EQ_GAIN_VAL; return 0; } -int CTv::GetAudioEQBandCount() { +int CTv::GetAudioEQBandCount() +{ return mAudioEffect.GetEQBandCount(); } -int CTv::SetAudioEQGain(int gain_buf[]) { +int CTv::SetAudioEQGain(int gain_buf[]) +{ return AudioSetEQGain(gain_buf); } -int CTv::GetAudioEQGain(int gain_buf[]) { +int CTv::GetAudioEQGain(int gain_buf[]) +{ return GetCustomEQGain(gain_buf); } -int CTv::GetCurAudioEQGain(int gain_buf[]) { +int CTv::GetCurAudioEQGain(int gain_buf[]) +{ RealReadCurAudioEQGain(gain_buf); return 0; } -int CTv::SaveCurAudioEQGain(int gain_buf[]) { +int CTv::SaveCurAudioEQGain(int gain_buf[]) +{ return RealSaveCurAudioEQGain(gain_buf, 1); } -int CTv::RealReadCurAudioEQGain(int gain_buf[]) { +int CTv::RealReadCurAudioEQGain(int gain_buf[]) +{ ArrayCopy(gain_buf, mCurEQGainBuf, GetAudioEQBandCount()); return 0; } -int CTv::RealSaveCurAudioEQGain(int gain_buf[], int sound_mode_judge) { +int CTv::RealSaveCurAudioEQGain(int gain_buf[], int sound_mode_judge) +{ ArrayCopy(mCurEQGainBuf, gain_buf, GetAudioEQBandCount()); ArrayCopy(mCurEQGainChBuf, gain_buf, GetAudioEQBandCount()); SSMSaveAudioEQGain(0, GetAudioEQBandCount(), mCurEQGainChBuf); @@ -6275,7 +6732,8 @@ int CTv::RealSaveCurAudioEQGain(int gain_buf[], int sound_mode_judge) { return 0; } -int CTv::LoadCurAudioEQGain() { +int CTv::LoadCurAudioEQGain() +{ int i = 0; SSMReadAudioEQGain(0, GetAudioEQBandCount(), mCurEQGainChBuf); @@ -6289,40 +6747,48 @@ int CTv::LoadCurAudioEQGain() { return 0; } -int CTv::SetAudioEQSwitch(int switch_val) { +int CTv::SetAudioEQSwitch(int switch_val) +{ return mAudioEffect.SetEQSwitch(switch_val); } -int CTv::SetDbxTvMode(int mode, int son_value, int vol_value, int sur_value) { +int CTv::SetDbxTvMode(int mode, int son_value, int vol_value, int sur_value) +{ return mAudioEffect.DbxTv_SetMode(mode, son_value, vol_value, sur_value); } -int CTv::GetBassUIMinGainVal() { +int CTv::GetBassUIMinGainVal() +{ return 0; } -int CTv::GetBassUIMaxGainVal() { +int CTv::GetBassUIMaxGainVal() +{ return 100; } -int CTv::GetTrebleUIMinGainVal() { +int CTv::GetTrebleUIMinGainVal() +{ return 0; } -int CTv::GetTrebleUIMaxGainVal() { +int CTv::GetTrebleUIMaxGainVal() +{ return 100; } -int CTv::MappingLine(int map_val, int src_min, int src_max, int dst_min, int dst_max) { +int CTv::MappingLine(int map_val, int src_min, int src_max, int dst_min, int dst_max) +{ if (dst_min < 0) { return (map_val - (src_max + src_min) / 2) * (dst_max - dst_min) - / (src_max - src_min); + / (src_max - src_min); } else { return (map_val - src_min) * (dst_max - dst_min) / (src_max - src_min); } } -int CTv::MappingTrebleBassAndEqualizer(int tmp_vol, int direct, int tb_min, int tb_max) { +int CTv::MappingTrebleBassAndEqualizer(int tmp_vol, int direct, int tb_min, int tb_max) +{ int tmp_ret = 0; if (direct == 0) { @@ -6332,12 +6798,13 @@ int CTv::MappingTrebleBassAndEqualizer(int tmp_vol, int direct, int tb_min, int } LOGD("%s, tmp_vol = %d, direct = %d, tmp_ret = %d\n", __FUNCTION__, tmp_vol, - direct, tmp_ret); + direct, tmp_ret); return tmp_ret; } -int CTv::MappingEQGain(int src_gain_buf[], int dst_gain_buf[], int direct) { +int CTv::MappingEQGain(int src_gain_buf[], int dst_gain_buf[], int direct) +{ int i = 0; int nMinUIVal = 0, nMaxUIVal = 0, nMinVal = 0, nMaxVal = 0; @@ -6354,17 +6821,18 @@ int CTv::MappingEQGain(int src_gain_buf[], int dst_gain_buf[], int direct) { for (i = 0; i < GetAudioEQBandCount(); i++) { if (direct == 0) { dst_gain_buf[i] = MappingLine(src_gain_buf[i], nMinUIVal, - nMaxUIVal, nMinVal, nMaxVal); + nMaxUIVal, nMinVal, nMaxVal); } else { dst_gain_buf[i] = MappingLine(src_gain_buf[i], nMinVal, nMaxVal, - nMinUIVal, nMaxUIVal); + nMinUIVal, nMaxUIVal); } } } return 0; } -int CTv::RestoreToAudioDefEQGain(int gain_buf[]) { +int CTv::RestoreToAudioDefEQGain(int gain_buf[]) +{ int i = 0; for (i = 0; i < GetAudioEQBandCount(); i++) { @@ -6381,12 +6849,14 @@ int CTv::RestoreToAudioDefEQGain(int gain_buf[]) { return 0; } -int CTv::GetCustomEQGain(int gain_buf[]) { +int CTv::GetCustomEQGain(int gain_buf[]) +{ ArrayCopy(gain_buf, mCustomEQGainBuf, GetAudioEQBandCount()); return 0; } -int CTv::SetCustomEQGain() { +int CTv::SetCustomEQGain() +{ int tmpEQGainBuf[128] = { 0 }; if (MappingEQGain(mCustomEQGainBuf, tmpEQGainBuf, 0) < 0) { @@ -6396,7 +6866,8 @@ int CTv::SetCustomEQGain() { return RealSetEQGain(tmpEQGainBuf); } -int CTv::AudioSetEQGain(int gain_buf[]) { +int CTv::AudioSetEQGain(int gain_buf[]) +{ int tmpEQGainBuf[128] = { 0 }; ArrayCopy(mCustomEQGainBuf, gain_buf, GetAudioEQBandCount()); @@ -6408,7 +6879,8 @@ int CTv::AudioSetEQGain(int gain_buf[]) { return RealSetEQGain(tmpEQGainBuf); } -int CTv::handleEQGainBeforeSet(int src_buf[], int dst_buf[]) { +int CTv::handleEQGainBeforeSet(int src_buf[], int dst_buf[]) +{ int i = 0, nMinGain, nMaxGain; nMinGain = CC_MIN_EQ_GAIN_VAL; @@ -6435,7 +6907,8 @@ int CTv::handleEQGainBeforeSet(int src_buf[], int dst_buf[]) { return 0; } -int CTv::RealSetEQGain(int gain_buf[]) { +int CTv::RealSetEQGain(int gain_buf[]) +{ if (GetAudioWallEffect() == CC_SWITCH_ON && GetAudioWallEffectTypeCfg() == 0) { for (int i = 0; i < GetAudioEQBandCount(); i++) { gain_buf[i] = mWallEffectValueBuf[i] + gain_buf[i]; @@ -6454,14 +6927,16 @@ int CTv::RealSetEQGain(int gain_buf[]) { return 0; } -int CTv::SetAtvInGain(int gain_val) { +int CTv::SetAtvInGain(int gain_val) +{ char set_str[32] = {0}; sprintf ( set_str, "audio_gain_set %x", gain_val ); return SetFileAttrValue ( "/sys/class/amlatvdemod/atvdemod_debug", set_str ); } -int CTv::SetSpecialModeEQGain(int tmp_val) { +int CTv::SetSpecialModeEQGain(int tmp_val) +{ int i = 0; int tmpEQPresetBufPtr[24]; if (GetAudioEQPresetBufferPtr(tmpEQPresetBufPtr) != 0) { @@ -6473,15 +6948,16 @@ int CTv::SetSpecialModeEQGain(int tmp_val) { RealReadCurAudioEQGain(tmpEQGainBuf); } else { ArrayCopy(tmpEQGainBuf, - tmpEQPresetBufPtr + tmp_val * GetAudioEQBandCount(), - GetAudioEQBandCount()); + tmpEQPresetBufPtr + tmp_val * GetAudioEQBandCount(), + GetAudioEQBandCount()); } AudioSetEQGain(tmpEQGainBuf); return tmp_val; } -int CTv::SetSpecialIndexEQGain(int buf_index, int w_val) { +int CTv::SetSpecialIndexEQGain(int buf_index, int w_val) +{ int tmpEQGainBuf[128] = { 0 }; if (buf_index >= 0 && buf_index < GetAudioEQBandCount()) { @@ -6493,7 +6969,8 @@ int CTv::SetSpecialIndexEQGain(int buf_index, int w_val) { return -1; } -int CTv::SaveSpecialIndexEQGain(int buf_index, int w_val) { +int CTv::SaveSpecialIndexEQGain(int buf_index, int w_val) +{ int tmpEQGainBuf[128] = { 0 }; if (buf_index >= 0 && buf_index < GetAudioEQBandCount()) { @@ -6507,21 +6984,25 @@ int CTv::SaveSpecialIndexEQGain(int buf_index, int w_val) { } // amAudio -int CTv::OpenAmAudio(unsigned int sr, int input_device, int output_device) { +int CTv::OpenAmAudio(unsigned int sr, int input_device, int output_device) +{ LOGD("OpenAmAudio input_device = %d", input_device); return amAudioOpen(sr, input_device, output_device); } -int CTv::CloseAmAudio(void) { +int CTv::CloseAmAudio(void) +{ return amAudioClose(); } -int CTv::SetAmAudioInputSr(unsigned int sr, int output_device) { +int CTv::SetAmAudioInputSr(unsigned int sr, int output_device) +{ LOGD("SetAmAudioInputSr "); return amAudioSetInputSr(sr, CC_IN_USE_SPDIF_DEVICE, output_device); } -int CTv::SetAmAudioOutputMode(int mode) { +int CTv::SetAmAudioOutputMode(int mode) +{ if (mode != CC_AMAUDIO_OUT_MODE_DIRECT && mode != CC_AMAUDIO_OUT_MODE_INTER_MIX && mode != CC_AMAUDIO_OUT_MODE_DIRECT_MIX) { LOGE("%s, mode error, it should be mix or direct!\n", __FUNCTION__); @@ -6531,28 +7012,34 @@ int CTv::SetAmAudioOutputMode(int mode) { return amAudioSetOutputMode(mode); } -int CTv::SetAmAudioMusicGain(int gain) { +int CTv::SetAmAudioMusicGain(int gain) +{ return amAudioSetMusicGain(gain); } -int CTv::SetAmAudioLeftGain(int gain) { +int CTv::SetAmAudioLeftGain(int gain) +{ return amAudioSetLeftGain(gain); } -int CTv::SetAmAudioRightGain(int gain) { +int CTv::SetAmAudioRightGain(int gain) +{ return amAudioSetRightGain(gain); } -int CTv::SetAudioDumpDataFlag(int tmp_flag) { +int CTv::SetAudioDumpDataFlag(int tmp_flag) +{ return amAudioSetDumpDataFlag(tmp_flag); } -int GetAudioDumpDataFlag() { +int GetAudioDumpDataFlag() +{ return amAudioGetDumpDataFlag(); } static int RealCalVolDigitLUTBuf(int start_ind, int end_ind, int start_val, - int end_val, int lut_buf[]) { + int end_val, int lut_buf[]) +{ int i = 0; float tmp_step = 0; @@ -6570,7 +7057,8 @@ static int RealCalVolDigitLUTBuf(int start_ind, int end_ind, int start_val, return 1; } -void CTv::AudioSetVolumeDigitLUTBuf(int lut_table_index, int *MainVolLutBuf) { +void CTv::AudioSetVolumeDigitLUTBuf(int lut_table_index, int *MainVolLutBuf) +{ int tmpDefDigitLutBuf[CC_LUT_BUF_SIZE] = { 0 }; mAudioAlsa.SetMainVolDigitLutBuf(MainVolLutBuf); @@ -6578,7 +7066,8 @@ void CTv::AudioSetVolumeDigitLUTBuf(int lut_table_index, int *MainVolLutBuf) { mAudioAlsa.SetSupperBassVolDigitLutBuf(tmpDefDigitLutBuf); } -int CTv::InitTvAudio(int sr, int input_device) { +int CTv::InitTvAudio(int sr, int input_device) +{ OpenAmAudio(sr, input_device, CC_OUT_USE_AMAUDIO); RefreshSrsEffectAndDacGain(); @@ -6586,11 +7075,13 @@ int CTv::InitTvAudio(int sr, int input_device) { return 0; } -int CTv::UnInitTvAudio() { +int CTv::UnInitTvAudio() +{ return CloseAmAudio(); } -int CTv::AudioChangeSampleRate(int sr) { +int CTv::AudioChangeSampleRate(int sr) +{ sr = HanldeAudioInputSr(sr); if (SetAmAudioInputSr(sr, CC_OUT_USE_AMAUDIO) != 0) { @@ -6602,11 +7093,13 @@ int CTv::AudioChangeSampleRate(int sr) { return 0; } -int CTv::AudioSetAudioInSource(int audio_src_in_type) { +int CTv::AudioSetAudioInSource(int audio_src_in_type) +{ return mAudioAlsa.SetAudioInSource(audio_src_in_type); } -int CTv::AudioSetAudioSourceType(int source_type) { +int CTv::AudioSetAudioSourceType(int source_type) +{ int aud_arch_type = GetAudioArchitectureTypeCFG(); if (aud_arch_type == CC_DAC_G9TV_EXTERNAL_DAC_ON_BOARD) { @@ -6619,13 +7112,15 @@ int CTv::AudioSetAudioSourceType(int source_type) { return 0; } -int CTv::AudioLineInSelectChannel(int audio_channel) { +int CTv::AudioLineInSelectChannel(int audio_channel) +{ LOGD ("%s, audio_channel = %d", __FUNCTION__, audio_channel); mAudioAlsa.SetInternalDacLineInSelectChannel(audio_channel); return 0; } -int CTv::SetKalaokIO(int level) { +int CTv::SetKalaokIO(int level) +{ LOGD ("%s, SetKalaokIO = %d", __FUNCTION__, level); if (GetKaraokAvEnable() == 1) { mAudioAlsa.SetAudioSwitchIO(level); @@ -6633,12 +7128,14 @@ int CTv::SetKalaokIO(int level) { return 0; } -int CTv::AudioSetLineInCaptureVolume(int l_vol, int r_vol) { +int CTv::AudioSetLineInCaptureVolume(int l_vol, int r_vol) +{ mAudioAlsa.SetInternalDacLineInCaptureVolume(l_vol, r_vol); return 0; } -int CTv::openTvAudio() { +int CTv::openTvAudio() +{ int tmp_val = 0; LOGD("%s, entering...\n", __FUNCTION__); @@ -6660,11 +7157,13 @@ int CTv::openTvAudio() { return 0; } -int CTv::closeTvAudio() { +int CTv::closeTvAudio() +{ return 0; } -void CTv::LoadAudioCtl() { +void CTv::LoadAudioCtl() +{ // Get Current Audio Volume LoadCurAudioMasterVolume(); @@ -6709,7 +7208,8 @@ void CTv::LoadAudioCtl() { LoadCurAudioEQGain(); } -void CTv::InitSetAudioCtl() { +void CTv::InitSetAudioCtl() +{ // Set Current Audio balance value SetAudioBalance(GetAudioBalance()); @@ -6729,19 +7229,23 @@ void CTv::InitSetAudioCtl() { SetAudioSPDIFMode(GetCurAudioSPDIFMode()); } -int CTv::SetADC_Digital_Capture_Volume(int value) { +int CTv::SetADC_Digital_Capture_Volume(int value) +{ return mAudioAlsa.SetAudioInternalDacADCDigitalCaptureVolume( value, value); } -int CTv::SetPGA_IN_Value(int value) { +int CTv::SetPGA_IN_Value(int value) +{ return mAudioAlsa.SetAudioInternalDacPGAInGain( value, value); } -int CTv::SetDAC_Digital_PlayBack_Volume(int value) { +int CTv::SetDAC_Digital_PlayBack_Volume(int value) +{ return mAudioAlsa.SetAudioInternalDacDACDigitalPlayBackVolume( value, value); } -int CTv::setAudioPcmPlaybackVolume(int val) { +int CTv::setAudioPcmPlaybackVolume(int val) +{ int pcm_volume = 0; pcm_volume = val / 2; if (pcm_volume > 24) pcm_volume = 24; @@ -6749,7 +7253,8 @@ int CTv::setAudioPcmPlaybackVolume(int val) { return 0; } -int CTv::HanldeAudioInputSr(unsigned int sr) { +int CTv::HanldeAudioInputSr(unsigned int sr) +{ int tmp_cfg = 0; tmp_cfg = GetAudioResampleTypeCFG(); @@ -6766,7 +7271,8 @@ int CTv::HanldeAudioInputSr(unsigned int sr) { return sr; } -int CTv::AudioSSMRestoreDefaultSetting() { +int CTv::AudioSSMRestoreDefaultSetting() +{ int i = 0, tmp_val = 0; int nMinUIVol = 0, nMaxUIVol = 0; int *tmp_ptr = NULL; @@ -6829,7 +7335,8 @@ int CTv::AudioSSMRestoreDefaultSetting() { static const char *gDefCapturePropName = "snd.card.default.card.capture"; -int CTv::InitSetTvAudioCard() { +int CTv::InitSetTvAudioCard() +{ int i = 0, totle_num = 0, capture_ind = 0; char tmp_buf[32] = { 0 }; char tv_card_name[64] = { 0 }; @@ -6877,7 +7384,8 @@ int CTv::InitSetTvAudioCard() { return 0; } -int CTv::UnInitSetTvAudioCard() { +int CTv::UnInitSetTvAudioCard() +{ char tmp_buf[32] = { 0 }; #ifndef BOARD_ALSA_AUDIO_TINY @@ -6891,7 +7399,8 @@ int CTv::UnInitSetTvAudioCard() { #define CS_SPDIF_MODE_DEV_PATH "/sys/class/audiodsp/digital_raw" -int CTv::SetSPDIFMode(int mode_val) { +int CTv::SetSPDIFMode(int mode_val) +{ FILE *spdif_mode_fp = NULL; spdif_mode_fp = fopen(CS_SPDIF_MODE_DEV_PATH, "w"); @@ -6912,7 +7421,8 @@ int CTv::SetSPDIFMode(int mode_val) { return 0; } -int CTv::SwitchAVOutBypass(int sw) { +int CTv::SwitchAVOutBypass(int sw) +{ if (sw == 0 ) { mAudioAlsa.SetMixerBypassSwitch ( CC_SWITCH_OFF ); mAudioAlsa.SetMixerDacSwitch ( CC_SWITCH_ON ); @@ -6923,15 +7433,18 @@ int CTv::SwitchAVOutBypass(int sw) { return 0; } -int CTv::SetAudioSwitchIO(int value) { +int CTv::SetAudioSwitchIO(int value) +{ return mAudioAlsa.SetAudioSwitchIO( value); } -int CTv::SetOutput_Swap(int value) { +int CTv::SetOutput_Swap(int value) +{ return mAudioAlsa.SetOutput_Swap( value); } -int CTv::SendCmdToOffBoardFBCExternalDac(int cmd, int para) { +int CTv::SendCmdToOffBoardFBCExternalDac(int cmd, int para) +{ int set_val = 0; CFbcCommunication *pFBC = GetSingletonFBC(); if (pFBC != NULL) { @@ -6959,7 +7472,8 @@ int CTv::SendCmdToOffBoardFBCExternalDac(int cmd, int para) { return 0; } -int CTv::GetHdmiAvHotplugDetectOnoff() { +int CTv::GetHdmiAvHotplugDetectOnoff() +{ return m_hdmiav_hotplugdetect_en; } diff --git a/tvapi/libtv/tv/CTv.h b/tvapi/libtv/tv/CTv.h index 2520962..d4c65f0 100644 --- a/tvapi/libtv/tv/CTv.h +++ b/tvapi/libtv/tv/CTv.h @@ -55,765 +55,765 @@ static const char *TV_SSM_DATA_PARAM_PATH = "/param/ssm_data"; typedef enum tv_fmt_ratio_e { - RATIO_43, - RATIO_169, - RATIO_MAX, + RATIO_43, + RATIO_169, + RATIO_MAX, } tv_fmt_ratio_t; typedef enum tv_color_fmt_e { - COLOR_RGB444, - COLOR_YUV422, - COLOR_YUV444, - COLOR_MAX, + COLOR_RGB444, + COLOR_YUV422, + COLOR_YUV444, + COLOR_MAX, } tv_color_fmt_t; typedef enum tv_window_mode_e { - NORMAL_WONDOW, - PREVIEW_WONDOW, + NORMAL_WONDOW, + PREVIEW_WONDOW, } tv_window_mode_t; typedef enum tv_dtv_scan_running_status_e { - DTV_SCAN_RUNNING_NORMAL, - DTV_SCAN_RUNNING_ANALYZE_CHANNEL, + DTV_SCAN_RUNNING_NORMAL, + DTV_SCAN_RUNNING_ANALYZE_CHANNEL, } tv_dtv_scan_running_status_t; typedef struct tv_config_s { - bool kernelpet_disable; - unsigned int kernelpet_timeout; - bool userpet; - unsigned int userpet_timeout; - unsigned int userpet_reset; - bool memory512m; + bool kernelpet_disable; + unsigned int kernelpet_timeout; + bool userpet; + unsigned int userpet_timeout; + unsigned int userpet_reset; + bool memory512m; } tv_config_t; typedef enum TvRunStatus_s { - TV_INIT_ED = -1, - TV_OPEN_ED = 0, - TV_START_ED , - TV_RESUME_ED, - TV_PAUSE_ED, - TV_STOP_ED, - TV_CLOSE_ED, + TV_INIT_ED = -1, + TV_OPEN_ED = 0, + TV_START_ED , + TV_RESUME_ED, + TV_PAUSE_ED, + TV_STOP_ED, + TV_CLOSE_ED, } TvRunStatus_t; -class CTv : public CTvin::CTvinSigDetect::ISigDetectObserver, public CSourceConnectDetect::ISourceConnectObserver, public CTvin::CHDMIRxCEC::IHDMIRxCECObserver, public CUpgradeFBC::IUpgradeFBCObserver, public CSerialCommunication::ISerialCommunicationObserver, public CTvSubtitle::IObserver,public CTv2d4GHeadSetDetect::IHeadSetObserver{ +class CTv : public CTvin::CTvinSigDetect::ISigDetectObserver, public CSourceConnectDetect::ISourceConnectObserver, public CTvin::CHDMIRxCEC::IHDMIRxCECObserver, public CUpgradeFBC::IUpgradeFBCObserver, public CSerialCommunication::ISerialCommunicationObserver, public CTvSubtitle::IObserver, public CTv2d4GHeadSetDetect::IHeadSetObserver { public: - static const int TV_ACTION_NULL = 0x0000; - static const int TV_ACTION_STARTING = 0x0001; - static const int TV_ACTION_STOPING = 0x0002; - static const int TV_ACTION_SCANNING = 0x0004; - static const int TV_ACTION_PLAYING = 0x0008; - static const int TV_ACTION_RECORDING = 0x0010; - static const int TV_ACTION_SOURCE_SWITCHING = 0x0020; + static const int TV_ACTION_NULL = 0x0000; + static const int TV_ACTION_STARTING = 0x0001; + static const int TV_ACTION_STOPING = 0x0002; + static const int TV_ACTION_SCANNING = 0x0004; + static const int TV_ACTION_PLAYING = 0x0008; + static const int TV_ACTION_RECORDING = 0x0010; + static const int TV_ACTION_SOURCE_SWITCHING = 0x0020; public: - class TvIObserver { - public: - TvIObserver() {}; - virtual ~TvIObserver() {}; - virtual void onTvEvent ( const CTvEv &ev ) = 0; - }; - //main - CTv(); - virtual ~CTv(); - virtual int OpenTv ( void ); - virtual int CloseTv ( void ); - virtual int StartTvLock (); - virtual int StopTvLock ( void ); - virtual int DoSuspend(int type); - virtual int DoResume(int type); - virtual int DoInstabootSuspend(); - virtual int DoInstabootResume(); - virtual TvRunStatus_t GetTvStatus(); - virtual int ClearAnalogFrontEnd(); - virtual tv_source_input_t GetLastSourceInput (void); - virtual int SetSourceSwitchInput (tv_source_input_t source_input ); - virtual tv_source_input_t GetCurrentSourceInputLock ( void ); - virtual tvin_info_t GetCurrentSignalInfo ( void ); - virtual int SetPreviewWindow ( tvin_window_pos_t pos ); - virtual int dtvAutoScan(); - virtual int dtvManualScan (int beginFreq, int endFreq, int modulation = -1); - virtual int atvAutoScan(int videoStd, int audioStd, int searchType); - virtual int clearAllProgram(int arg0); - virtual int clearDbAllProgramInfoTable(); - virtual void setSourceSwitchAndPlay(); - virtual int GetDisplayResolutionConfig(); - virtual int GetDisplayResolutionInfo(); - virtual int atvMunualScan ( int startFreq, int endFreq, int videoStd, int audioStd, int store_Type = 0, int channel_num = 0 ); - virtual int stopScanLock(); - virtual int dtvAutoScanAtscLock(int attenna, int videoStd, int audioStd); - virtual void SetRecordFileName ( char *name ); - virtual void StartToRecord(); - virtual void StopRecording(); - virtual void SetRecCurTsOrCurProgram ( int sel ); - virtual int startCC(int country, int src, int channel, int service); - virtual int stopCC(); - virtual void printDebugInfo(); - virtual int playProgramLock ( int progId ); - virtual int playDvbcProgram ( int progId ); - virtual int playDtmbProgram ( int progId ); - virtual int playAtvProgram ( int, int, int, int, int); - virtual int playDtvProgram ( int, int, int, int, int, int, int, int, int, int); - virtual int stopPlayingLock(); - virtual int resetFrontEndPara ( frontend_para_set_t feParms ); - virtual int SetDisplayMode ( vpp_display_mode_t display_mode, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt ); - virtual void startAutoBackLight(); - virtual void stopAutoBackLight(); - virtual const char *getPqDbPath(); - virtual void onHdmiSrChanged(int sr, bool bInit); - virtual void onHMDIAudioStatusChanged(int status); - virtual int GetATVAFCType(); - virtual int GetATVSourceTimerSwitch(); - int SetCurProgramAudioVolumeCompensationVal ( int tmpVal ); - int GetAudioVolumeCompensationVal(int progDbId); - //dtv audio track info - int getAudioTrackNum ( int progId ); - int getAudioInfoByIndex ( int progId, int idx, int *pAFmt, String8 &lang ); - int switchAudioTrack ( int progId, int idx ); - int switchAudioTrack ( int aPid, int aFmt, int aParam ); - int getVideoFormatInfo ( int *pWidth, int *pHeight, int *pFPS, int *pInterlace ); - int ResetAudioDecoderForPCMOutput(); - int setAudioChannel ( int channelIdx ); - int getAudioChannel(); - int setTvObserver (TvIObserver *ob); - int getAtscAttenna(); - long getTvTime() - { - return mTvTime.getTime(); - }; - void getFrontendStatus(); - int getFrontendSignalStrength(); - int getFrontendSNR(); - int getFrontendBER(); - int getChannelInfoBydbID ( int dbID, channel_info_t &chan_info ); - int setBlackoutEnable(int enable); - int getSaveBlackoutEnable(); - int getAutoBackLight_on_off(); - int saveATVProgramID ( int dbID ); - int getATVProgramID ( void ); - int saveDTVProgramID ( int dbID ); - int getDTVProgramID ( void ); - int getCurPlayProgId(); - int getATVMinMaxFreq ( int *scanMinFreq, int *scanMaxFreq ); - int getAverageLuma(); - int setAutobacklightData(const char* value); - int getAutoBacklightData(int* data); - - virtual int Tv_SSMRestoreDefaultSetting(); - - // - int GetSourceConnectStatus(tv_source_input_t source_input); - int IsDVISignal(); - int isVgaFmtInHdmi(); - int isSDFmtInHdmi ( void ); - // - int getHDMIFrameRate ( void ); - void RefreshAudioMasterVolume ( tv_source_input_t source_input ); - - int Tv_Set3DMode ( VIDEO_3D_MODE_T mode ); - VIDEO_3D_MODE_T Tv_Get3DMode ( void ); - int Tv_Set3DLRSwith ( int on_off); - int Tv_Get3DLRSwith ( void ); - int Tv_Set3DTo2DMode ( int mode); - int Tv_Get3DTo2DMode ( void ); - int Tv_Set3DDepth ( int value ); - int GetSave3DDepth ( void ); - is_3d_type_t Check2Dor3D ( VIDEO_3D_MODE_T mode3d, tvin_trans_fmt_t trans_fmt ); - int Tvin_SetPLLValues (); - int SetCVD2Values (); - unsigned int Vpp_GetDisplayResolutionInfo(tvin_window_pos_t *win_pos); - int get_hdmi_sampling_rate(); - //SSM - virtual int Tv_SSMFacRestoreDefaultSetting(); - int Tv_GetHistgram(int *histgram_buf); - int StartHeadSetDetect(); - virtual void onHeadSetDetect(int state,int para); - - CTvin::CTvinSigDetect mSigDetectThread; - CSourceConnectDetect mSourceConnectDetectThread; - CTvin::CHDMIRxCEC mHDMIRxCEC; - CUpgradeFBC *mpUpgradeFBC; - CSerialCommunication mSerialA; - CSerialCommunication mSerialB; - CSerialCommunication mSerialC; - CTvSubtitle mSubtitle; - CTv2d4GHeadSetDetect mHeadSet; - - int SendHDMIRxCECCustomMessage(unsigned char data_buf[]); - int SendHDMIRxCECCustomMessageAndWaitReply(unsigned char data_buf[], unsigned char reply_buf[], int WaitCmd, int timeout); - int SendHDMIRxCECBoradcastStandbyMessage(); - int SendHDMIRxCECGiveCECVersionMessage(tv_source_input_t source_input, unsigned char data_buf[]); - int SendHDMIRxCECGiveDeviceVendorIDMessage(tv_source_input_t source_input, unsigned char data_buf[]); - int SendHDMIRxCECGiveOSDNameMessage(tv_source_input_t source_input, unsigned char data_buf[]); - - int GetHdmiHdcpKeyKsvInfo(int data_buf[]); - virtual bool hdmiOutWithFbc(); - int StartUpgradeFBC(char *file_name, int mode, int upgrade_blk_size); - int SetSerialSwitch(int dev_id, int switch_val); - int SendSerialData(int dev_id, int data_len, unsigned char data_buf[]); - int SetDebugSerialOnOff(int on_off); - int GetDebugSerialOnOff(); - int ChannelExport(const char *destPath); - int ChannelImport(const char *srcPath); - int Tv_GetProjectInfo(project_info_t *ptrInfo); - int Tv_GetPlatformType(); - int Tv_HandeHDMIEDIDFilePathConfig(); - int Tv_SetDDDRCMode(tv_source_input_t source_input); - int Tv_SetAudioSourceType (tv_source_input_t source_input); - - //PQ - virtual int Tv_SetBrightness ( int brightness, tv_source_input_type_t source_type, int is_save ); - virtual int Tv_GetBrightness ( tv_source_input_type_t source_type ); - virtual int Tv_SaveBrightness ( int brightness, tv_source_input_type_t source_type ); - virtual int Tv_SetContrast ( int contrast, tv_source_input_type_t source_type, int is_save ); - virtual int Tv_GetContrast ( tv_source_input_type_t source_type ); - virtual int Tv_SaveContrast ( int contrast, tv_source_input_type_t source_type ); - virtual int Tv_SetSaturation ( int satuation, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, int is_save ); - virtual int Tv_GetSaturation ( tv_source_input_type_t source_type ); - virtual int Tv_SaveSaturation ( int satuation, tv_source_input_type_t source_type ); - virtual int Tv_SetHue ( int hue, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, int is_save ); - virtual int Tv_GetHue ( tv_source_input_type_t source_type ); - virtual int Tv_SaveHue ( int hue, tv_source_input_type_t source_type ); - virtual int Tv_SetPQMode ( vpp_picture_mode_t mode, tv_source_input_type_t source_type, int is_save ); - virtual vpp_picture_mode_t Tv_GetPQMode ( tv_source_input_type_t source_type ); - virtual int Tv_SavePQMode ( vpp_picture_mode_t mode, tv_source_input_type_t source_type ); - virtual int Tv_SetSharpness ( int value, tv_source_input_type_t source_type, int en, int is_save ); - virtual int Tv_GetSharpness ( tv_source_input_type_t source_type ); - virtual int Tv_SaveSharpness ( int value, tv_source_input_type_t source_type ); - virtual int Tv_SetBacklight ( int value, tv_source_input_type_t source_type, int is_save ); - virtual int Tv_GetBacklight ( tv_source_input_type_t source_type ); - virtual int Tv_SaveBacklight ( int value, tv_source_input_type_t source_type ); - int Tv_SetBacklight_Switch ( int value ); - int Tv_GetBacklight_Switch ( void ); - int Tv_SetColorTemperature ( vpp_color_temperature_mode_t mode, tv_source_input_type_t source_type, int is_save ); - vpp_color_temperature_mode_t Tv_GetColorTemperature ( tv_source_input_type_t source_type ); - virtual int Tv_SetDisplayMode ( vpp_display_mode_t mode, tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, int is_save ); - virtual int Tv_SaveDisplayMode ( vpp_display_mode_t mode, tv_source_input_type_t source_type ); - virtual int Tv_SaveColorTemperature ( vpp_color_temperature_mode_t mode, tv_source_input_type_t source_type ); - virtual vpp_display_mode_t Tv_GetDisplayMode ( tv_source_input_type_t source_type ); - virtual int Tv_SetNoiseReductionMode ( vpp_noise_reduction_mode_t mode, tv_source_input_type_t source_type, int is_save ); - virtual vpp_noise_reduction_mode_t Tv_GetNoiseReductionMode ( tv_source_input_type_t source_type ); - virtual int Tv_SaveNoiseReductionMode ( vpp_noise_reduction_mode_t mode, tv_source_input_type_t source_type ); - int Tv_SetSplitScreenDemoStatus(tv_source_input_type_t source_type, int onoff_status); - int Tv_GetSplitScreenDemoStatus(tv_source_input_type_t source_type); - int Tv_SplitScreenEffect(int mode, int width, int reverse = 0); - // - int Tv_FactorySetPQMode_Brightness ( int source_type, int pq_mode, int brightness ); - int Tv_FactoryGetPQMode_Brightness ( int source_type, int pq_mode ); - int Tv_FactorySetPQMode_Contrast ( int source_type, int pq_mode, int contrast ); - int Tv_FactoryGetPQMode_Contrast ( int source_type, int pq_mode ); - int Tv_FactorySetPQMode_Saturation ( int source_type, int pq_mode, int saturation ); - int Tv_FactoryGetPQMode_Saturation ( int source_type, int pq_mode ); - int Tv_FactorySetPQMode_Hue ( int source_type, int pq_mode, int hue ); - int Tv_FactoryGetPQMode_Hue ( int source_type, int pq_mode ); - int Tv_FactorySetPQMode_Sharpness ( int source_type, int pq_mode, int sharpness ); - int Tv_FactoryGetPQMode_Sharpness ( int source_type, int pq_mode ); - - int GetColorTemperatureParams ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ); - int Tv_FactorySetTestPattern ( int pattern ); - int Tv_FactoryGetTestPattern ( void ); - int Tv_FactorySetScreenColor ( int vdin_blending_mask, int y, int u, int v ); - int Tv_FactoryResetPQMode ( void ); - int Tv_FactoryResetColorTemp ( void ); - int Tv_FactorySetParamsDefault ( void ); - int Tv_FactorySetDDRSSC ( int step ); - int Tv_FactoryGetDDRSSC ( void ); - int Tv_FactorySetLVDSSSC ( int step ); - int Tv_FactoryGetLVDSSSC ( void ); - void Tv_Spread_Spectrum(void); - int Tv_FactorySetNolineParams ( int noline_params_type, int source_type, noline_params_t noline_params ); - noline_params_t Tv_FactoryGetNolineParams ( int noline_params_type, int source_type ); - int Tv_FactorySetOverscan ( int source_type, int fmt, int status_3d, int trans_fmt, tvin_cutwin_t cutwin_t ); - tvin_cutwin_t Tv_FactoryGetOverscan ( int source_type, int fmt, int status_3d, int trans_fmt ); - int Tv_ReplacePqDb(const char *newFilePath = NULL); - //end PQ - - //TV TO FBC - int Tv_FactorySet_FBC_Brightness ( int value ); - int Tv_FactoryGet_FBC_Brightness ( void ); - int Tv_FactorySet_FBC_Contrast( int value ); - int Tv_FactoryGet_FBC_Contrast ( void ); - int Tv_FactorySet_FBC_Saturation( int value ); - int Tv_FactoryGet_FBC_Saturation ( void ); - int Tv_FactorySet_FBC_HueColorTint( int value ); - int Tv_FactoryGet_FBC_HueColorTint ( void ); - virtual int Tv_FactorySet_FBC_Backlight ( int value ); - virtual int Tv_FactoryGet_FBC_Backlight ( void ); - int Tv_FactorySet_FBC_Backlight_N360 ( int value ); - int Tv_FactoryGet_FBC_Backlight_N360 ( void ); - int Tv_FactorySet_FBC_ELEC_MODE( int value ); - int Tv_FactoryGet_FBC_ELEC_MODE( void ); - int Tv_FactorySet_FBC_BACKLIGHT_N360( int value ); - int Tv_FactoryGet_FBC_BACKLIGHT_N360( void ); - int Tv_FactorySet_FBC_Picture_Mode ( int mode ); - int Tv_FactoryGet_FBC_Picture_Mode ( void ); - int Tv_FactorySet_FBC_Set_Test_Pattern ( int mode ); - int Tv_FactoryGet_FBC_Get_Test_Pattern ( void ); - int Tv_FactorySet_FBC_Gain_Red( int value ); - int Tv_FactoryGet_FBC_Gain_Red ( void ); - int Tv_FactorySet_FBC_Gain_Green( int value ); - int Tv_FactoryGet_FBC_Gain_Green( void ); - int Tv_FactorySet_FBC_Gain_Blue( int value ); - int Tv_FactoryGet_FBC_Gain_Blue ( void ); - int Tv_FactorySet_FBC_Offset_Red( int value ); - int Tv_FactoryGet_FBC_Offset_Red ( void ); - int Tv_FactorySet_FBC_Offset_Green( int value ); - int Tv_FactoryGet_FBC_Offset_Green( void ); - int Tv_FactorySet_FBC_Offset_Blue( int value ); - int Tv_FactoryGet_FBC_Offset_Blue ( void ); - int Tv_FactoryGetWhiteBalanceRedGain(int source_type, int colortemp_mode); - int Tv_FactoryGetWhiteBalanceGreenGain(int source_type, int colortemp_mode); - int Tv_FactoryGetWhiteBalanceBlueGain(int source_type, int colortemp_mode); - int Tv_FactoryGetWhiteBalanceRedOffset(int source_type, int colortemp_mode); - int Tv_FactoryGetWhiteBalanceGreenOffset(int source_type, int colortemp_mode); - int Tv_FactoryGetWhiteBalanceBlueOffset(int source_type, int colortemp_mode); - int Tv_FactorySetWhiteBalanceRedGain(int source_type, int colortemp_mode, int value); - int Tv_FactorySetWhiteBalanceGreenGain(int source_type, int colortemp_mode, int value); - int Tv_FactorySetWhiteBalanceBlueGain(int source_type, int colortemp_mode, int value); - int Tv_FactorySetWhiteBalanceRedOffset(int source_type, int colortemp_mode, int value); - int Tv_FactorySetWhiteBalanceGreenOffset(int source_type, int colortemp_mode, int value); - int Tv_FactorySetWhiteBalanceBlueOffset(int source_type, int colortemp_mode, int value); - int Tv_FactorySetWhiteBalanceColorTempMode(int source_type, int colortemp_mode, int is_save); - int Tv_FactoryGetWhiteBalanceColorTempMode(int source_type ); - int Tv_FactoryWhiteBalanceFormatInputFbcGainParams(int value); - int Tv_FactoryWhiteBalanceFormatInputFbcOffsetParams(int value); - int Tv_FactoryWhiteBalanceFormatOutputFbcOffsetParams(int value); - int Tv_FactoryWhiteBalanceFormatOutputFbcGainParams(int value); - int Tv_FactorySaveWhiteBalancePramas(int source_type, int tempmode, int r_gain, int g_gain, int b_gain, int r_offset, int g_offset, int b_offset); - int Tv_FactoryCloseWhiteBalanceGrayPattern(); - int Tv_FactoryOpenWhiteBalanceGrayPattern(); - int Tv_FactorySetWhiteBalanceGrayPattern(int value); - int Tv_FactoryGetWhiteBalanceGrayPattern(); - int Tv_FactoryWhiteBalanceColorTempMappingG92Fbc(int Tempmode); - int Tv_FactoryWhiteBalanceColorTempMappingFbc2G9(int Tempmode); - int Tv_FactorySet_FBC_GrayPattern(int value); - int Tv_FactoryOpen_FBC_GrayPattern(); - int Tv_FactoryClose_FBC_GrayPattern(); - int Tv_FactorySet_FBC_ColorTemp_Mode( int mode ); - int Tv_FactoryGet_FBC_ColorTemp_Mode ( void ); - int Tv_FactorySet_FBC_ColorTemp_Mode_N360( int mode ); - int Tv_FactoryGet_FBC_ColorTemp_Mode_N360 ( void ); - int Tv_FactorySet_FBC_LockN_state(int value); - int Tv_FactorySet_FBC_WB_Initial( int status ); - int Tv_FactoryGet_FBC_WB_Initial ( void ); - virtual int Tv_FactorySet_FBC_ColorTemp_Batch(vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params); - virtual int Tv_FactoryGet_FBC_ColorTemp_Batch ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ); - int Tv_FactorySet_WB_G9_To_FBC( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params ); - int Tv_FactoryGet_WB_G9_To_FBC ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ); - int Tv_FactoryGetItemFromBatch(vpp_color_temperature_mode_t colortemp_mode, int item); - int Tv_FactorySet_FBC_CM_OnOff( unsigned char status ); - int Tv_FactoryGet_FBC_CM_OnOff (void); - int Tv_FactorySet_FBC_DNLP_OnOff( unsigned char status ); - int Tv_FactoryGet_FBC_DNLP_OnOff (void); - int Tv_FactorySet_FBC_Gamma_OnOff( unsigned char status ); - int Tv_FactoryGet_FBC_Gamma_OnOff (void); - int Tv_FactorySet_FBC_WhiteBalance_OnOff( unsigned char status ); - int Tv_FactoryGet_FBC_WhiteBalance_OnOff (void); - int Tv_FactorySet_FBC_Thermal_State( int value ); - int Tv_FactorySet_FBC_backlight_onoff(int value); - int Tv_FactoryGet_FBC_backlight_onoff ( void ); - int Tv_FactorySet_FBC_Auto_Backlight_OnOff(unsigned char status); - int Tv_FactoryGet_FBC_Auto_Backlight_OnOff ( void ); - int Tv_FactoryGet_FBC_VIDEO_MUTE ( void ); - int Tv_FactorySet_FBC_LVDS_SSG_Set( int value ); - int Tv_FactorySet_FBC_LightSensor_Status_N310 ( int value ); - int Tv_FactoryGet_FBC_LightSensor_Status_N310 ( void ); - int Tv_FactorySet_FBC_Dream_Panel_Status_N310 ( int value ); - int Tv_FactoryGet_FBC_Dream_Panel_Status_N310 ( void ); - int Tv_FactorySet_FBC_MULT_PQ_Status_N310 ( int value ); - int Tv_FactoryGet_FBC_MULT_PQ_Status_N310 ( void ); - int Tv_FactorySet_FBC_MEMC_Status_N310 ( int value ); - int Tv_FactoryGet_FBC_MEMC_Status_N310 ( void ); - int Tv_FactorySet_FBC_ColorTemp_Mode_N310( int mode ); - int Tv_FactoryGet_FBC_ColorTemp_Mode_N310 ( void ); - virtual int Tv_FactorySet_FBC_Backlight_N310 ( int value ); - virtual int Tv_FactoryGet_FBC_Backlight_N310 ( void ); - int Tv_FactorySet_FBC_Bluetooth_IIS_N310 ( int value ); - int Tv_FactoryGet_FBC_Bluetooth_IIS_N310 ( void ); - int Tv_FactorySet_FBC_Led_N310 ( int val_1, int val_2, int val_3 ); - int Tv_FactorySet_VbyOne_Spread_Spectrum_N311 ( int value ); - int Tv_FactoryGet_VbyOne_Spread_Spectrum_N311 ( void ); - int Tv_FactorySet_FBC_AP_STANDBY_N310 ( int value ); - int Tv_FactoryGet_FBC_AP_STANDBY_N310( void ); - int Tv_FactorySet_Uboot_Stage(int value); - //end TV TO FBC - - int Tv_SetTestPattern(int value); - int Tv_Set2k4k_ScalerUp_Mode ( int value ); - int Tv_Get2k4k_ScalerUp_Mode ( void ); - //audio - virtual int Tv_SetDRC_OnOff(int on_off); - virtual int Tv_GetDRC_OnOff(void); - virtual void updateSubtitle(int, int); - int setSubtitleBuffer(char *); - int initSubtitle(int, int) ; - int lockSubtitle(); - int unlockSubtitle(); - int getSubSwitchStatus(); - int startSubtitle(int dmx_id, int pid, int page_id, int anc_page_id) ; - int stopSubtitle() ; - - //audio - virtual void TvAudioOpen(); - virtual void AudioCtlUninit(); - virtual int SetAudioMuteForSystem(int muteOrUnmute); - virtual int GetAudioMuteForSystem(); - virtual int SetAudioMuteForTv(int muteOrUnmute); - virtual int GetAudioMuteForTv(); - virtual char *GetMainVolLutTableExtraName(); - virtual int SetDbxTvMode(int mode, int son_value, int vol_value, int sur_value); - virtual int GetDbxTvMode(int *mode, int *son_value, int *vol_value, int *sur_value); - int AudioHandleHeadsetPlugIn(); - int AudioHandleHeadsetPullOut(); - int SetAudioAVOutMute(int muteStatus); - int GetAudioAVOutMute(); - int SetAudioSPDIFMute(int muteStatus); - int GetAudioSPDIFMute(); - int SetDacMute(int muteStatus, int mute_type); - int SetAudioI2sMute(int); - int SetAudioMasterVolume(int tmp_vol); - int GetAudioMasterVolume(); - int SaveCurAudioMasterVolume(int tmp_vol); - int GetCurAudioMasterVolume(); - int SetAudioBalance(int tmp_val); - int GetAudioBalance(); - int SaveCurAudioBalance(int tmp_val); - int GetCurAudioBalance(); - int SetAudioSupperBassVolume(int tmp_vol); - int GetAudioSupperBassVolume(); - int SaveCurAudioSupperBassVolume(int tmp_vol); - int GetCurAudioSupperBassVolume(); - int SetAudioSupperBassSwitch(int tmp_val); - int GetAudioSupperBassSwitch(); - int SaveCurAudioSupperBassSwitch(int tmp_val); - int GetCurAudioSupperBassSwitch(); - int SetAudioSRSSurround(int tmp_val); - int GetAudioSRSSurround(); - int SaveCurAudioSrsSurround(int tmp_val); - int GetCurAudioSRSSurround(); - int SetAudioSrsDialogClarity(int tmp_val); - int GetAudioSrsDialogClarity(); - int SaveCurAudioSrsDialogClarity(int tmp_val); - int GetCurAudioSrsDialogClarity(); - int SetAudioSrsTruBass(int tmp_val); - int GetAudioSrsTruBass(); - int SaveCurAudioSrsTruBass(int tmp_val); - int GetCurAudioSrsTruBass(); - int SetAudioSPDIFSwitch(int tmp_val); - int GetCurAudioSPDIFSwitch(); - int SaveCurAudioSPDIFSwitch(int tmp_val); - - //Audio SPDIF Mode - int SetAudioSPDIFMode(int tmp_val); - int GetCurAudioSPDIFMode(); - int SaveCurAudioSPDIFMode(int tmp_val); - int SetAudioBassVolume(int tmp_vol); - int GetAudioBassVolume(); - int SaveCurAudioBassVolume(int tmp_vol); - int GetCurAudioBassVolume(); - int SetAudioTrebleVolume(int tmp_vol); - int GetAudioTrebleVolume(); - int SaveCurAudioTrebleVolume(int tmp_vol); - int GetCurAudioTrebleVolume(); - int SetAudioSoundMode(int tmp_val); - int GetAudioSoundMode(); - int SaveCurAudioSoundMode(int tmp_val); - int GetCurAudioSoundMode(); - int SetAudioWallEffect(int tmp_val); - int GetAudioWallEffect(); - int SaveCurAudioWallEffect(int tmp_val); - int GetCurAudioWallEffect(); - int SetAudioEQMode(int tmp_val); - int GetAudioEQMode(); - int SaveCurAudioEQMode(int tmp_val); - int GetCurAudioEQMode(); - int GetAudioEQRange(int range_buf[]); - int GetAudioEQBandCount(); - int SetAudioEQGain(int gain_buf[]); - int GetAudioEQGain(int gain_buf[]); - int GetCurAudioEQGain(int gain_buf[]); - int SaveCurAudioEQGain(int gain_buf[]); - int SetAudioEQSwitch(int switch_val); - int OpenAmAudio(unsigned int sr, int input_device, int output_device); - int CloseAmAudio(void); - int SetAmAudioInputSr(unsigned int sr, int output_device); - int SetAmAudioOutputMode(int mode); - int SetAmAudioMusicGain(int gain); - int SetAmAudioLeftGain(int gain); - int SetAmAudioRightGain(int gain); - int SetAudioVolumeCompensationVal(int tmp_vol_comp_val); - int AudioLineInSelectChannel(int audio_channel); - int AudioSetLineInCaptureVolume(int l_vol, int r_vol); - int SetKalaokIO(int level); - int setAudioPcmPlaybackVolume(int val); - - int openTvAudio(); - int closeTvAudio(); - - int InitTvAudio(int sr, int input_device); - int UnInitTvAudio(); - int AudioChangeSampleRate(int sr); - int AudioSetAudioInSource(int audio_src_in_type); - int AudioSetAudioSourceType(int source_type); - int AudioSSMRestoreDefaultSetting(); - int SetAudioDumpDataFlag(int tmp_flag); - int GetAudioDumpDataFlag(); - int SetAudioLeftRightMode(unsigned int mode); - unsigned int GetAudioLeftRightMode(); - int SwitchAVOutBypass (int); - int SetAudioSwitchIO(int value); - int SetOutput_Swap(int value); - int HanldeAudioInputSr(unsigned int); - void AudioSetVolumeDigitLUTBuf(int lut_sel_flag, int *MainVolLutBuf); - int SetADC_Digital_Capture_Volume(int value); - int SetPGA_IN_Value(int value); - int SetDAC_Digital_PlayBack_Volume(int value); - int InitSetTvAudioCard(); - int UnInitSetTvAudioCard(); - void RefreshSrsEffectAndDacGain(); - int SetCustomEQGain(); - int SetAtvInGain(int gain_val); - int GetHdmiAvHotplugDetectOnoff(); + class TvIObserver { + public: + TvIObserver() {}; + virtual ~TvIObserver() {}; + virtual void onTvEvent ( const CTvEv &ev ) = 0; + }; + //main + CTv(); + virtual ~CTv(); + virtual int OpenTv ( void ); + virtual int CloseTv ( void ); + virtual int StartTvLock (); + virtual int StopTvLock ( void ); + virtual int DoSuspend(int type); + virtual int DoResume(int type); + virtual int DoInstabootSuspend(); + virtual int DoInstabootResume(); + virtual TvRunStatus_t GetTvStatus(); + virtual int ClearAnalogFrontEnd(); + virtual tv_source_input_t GetLastSourceInput (void); + virtual int SetSourceSwitchInput (tv_source_input_t source_input ); + virtual tv_source_input_t GetCurrentSourceInputLock ( void ); + virtual tvin_info_t GetCurrentSignalInfo ( void ); + virtual int SetPreviewWindow ( tvin_window_pos_t pos ); + virtual int dtvAutoScan(); + virtual int dtvManualScan (int beginFreq, int endFreq, int modulation = -1); + virtual int atvAutoScan(int videoStd, int audioStd, int searchType); + virtual int clearAllProgram(int arg0); + virtual int clearDbAllProgramInfoTable(); + virtual void setSourceSwitchAndPlay(); + virtual int GetDisplayResolutionConfig(); + virtual int GetDisplayResolutionInfo(); + virtual int atvMunualScan ( int startFreq, int endFreq, int videoStd, int audioStd, int store_Type = 0, int channel_num = 0 ); + virtual int stopScanLock(); + virtual int dtvAutoScanAtscLock(int attenna, int videoStd, int audioStd); + virtual void SetRecordFileName ( char *name ); + virtual void StartToRecord(); + virtual void StopRecording(); + virtual void SetRecCurTsOrCurProgram ( int sel ); + virtual int startCC(int country, int src, int channel, int service); + virtual int stopCC(); + virtual void printDebugInfo(); + virtual int playProgramLock ( int progId ); + virtual int playDvbcProgram ( int progId ); + virtual int playDtmbProgram ( int progId ); + virtual int playAtvProgram ( int, int, int, int, int); + virtual int playDtvProgram ( int, int, int, int, int, int, int, int, int, int); + virtual int stopPlayingLock(); + virtual int resetFrontEndPara ( frontend_para_set_t feParms ); + virtual int SetDisplayMode ( vpp_display_mode_t display_mode, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt ); + virtual void startAutoBackLight(); + virtual void stopAutoBackLight(); + virtual const char *getPqDbPath(); + virtual void onHdmiSrChanged(int sr, bool bInit); + virtual void onHMDIAudioStatusChanged(int status); + virtual int GetATVAFCType(); + virtual int GetATVSourceTimerSwitch(); + int SetCurProgramAudioVolumeCompensationVal ( int tmpVal ); + int GetAudioVolumeCompensationVal(int progDbId); + //dtv audio track info + int getAudioTrackNum ( int progId ); + int getAudioInfoByIndex ( int progId, int idx, int *pAFmt, String8 &lang ); + int switchAudioTrack ( int progId, int idx ); + int switchAudioTrack ( int aPid, int aFmt, int aParam ); + int getVideoFormatInfo ( int *pWidth, int *pHeight, int *pFPS, int *pInterlace ); + int ResetAudioDecoderForPCMOutput(); + int setAudioChannel ( int channelIdx ); + int getAudioChannel(); + int setTvObserver (TvIObserver *ob); + int getAtscAttenna(); + long getTvTime() + { + return mTvTime.getTime(); + }; + void getFrontendStatus(); + int getFrontendSignalStrength(); + int getFrontendSNR(); + int getFrontendBER(); + int getChannelInfoBydbID ( int dbID, channel_info_t &chan_info ); + int setBlackoutEnable(int enable); + int getSaveBlackoutEnable(); + int getAutoBackLight_on_off(); + int saveATVProgramID ( int dbID ); + int getATVProgramID ( void ); + int saveDTVProgramID ( int dbID ); + int getDTVProgramID ( void ); + int getCurPlayProgId(); + int getATVMinMaxFreq ( int *scanMinFreq, int *scanMaxFreq ); + int getAverageLuma(); + int setAutobacklightData(const char *value); + int getAutoBacklightData(int *data); + + virtual int Tv_SSMRestoreDefaultSetting(); + + // + int GetSourceConnectStatus(tv_source_input_t source_input); + int IsDVISignal(); + int isVgaFmtInHdmi(); + int isSDFmtInHdmi ( void ); + // + int getHDMIFrameRate ( void ); + void RefreshAudioMasterVolume ( tv_source_input_t source_input ); + + int Tv_Set3DMode ( VIDEO_3D_MODE_T mode ); + VIDEO_3D_MODE_T Tv_Get3DMode ( void ); + int Tv_Set3DLRSwith ( int on_off); + int Tv_Get3DLRSwith ( void ); + int Tv_Set3DTo2DMode ( int mode); + int Tv_Get3DTo2DMode ( void ); + int Tv_Set3DDepth ( int value ); + int GetSave3DDepth ( void ); + is_3d_type_t Check2Dor3D ( VIDEO_3D_MODE_T mode3d, tvin_trans_fmt_t trans_fmt ); + int Tvin_SetPLLValues (); + int SetCVD2Values (); + unsigned int Vpp_GetDisplayResolutionInfo(tvin_window_pos_t *win_pos); + int get_hdmi_sampling_rate(); + //SSM + virtual int Tv_SSMFacRestoreDefaultSetting(); + int Tv_GetHistgram(int *histgram_buf); + int StartHeadSetDetect(); + virtual void onHeadSetDetect(int state, int para); + + CTvin::CTvinSigDetect mSigDetectThread; + CSourceConnectDetect mSourceConnectDetectThread; + CTvin::CHDMIRxCEC mHDMIRxCEC; + CUpgradeFBC *mpUpgradeFBC; + CSerialCommunication mSerialA; + CSerialCommunication mSerialB; + CSerialCommunication mSerialC; + CTvSubtitle mSubtitle; + CTv2d4GHeadSetDetect mHeadSet; + + int SendHDMIRxCECCustomMessage(unsigned char data_buf[]); + int SendHDMIRxCECCustomMessageAndWaitReply(unsigned char data_buf[], unsigned char reply_buf[], int WaitCmd, int timeout); + int SendHDMIRxCECBoradcastStandbyMessage(); + int SendHDMIRxCECGiveCECVersionMessage(tv_source_input_t source_input, unsigned char data_buf[]); + int SendHDMIRxCECGiveDeviceVendorIDMessage(tv_source_input_t source_input, unsigned char data_buf[]); + int SendHDMIRxCECGiveOSDNameMessage(tv_source_input_t source_input, unsigned char data_buf[]); + + int GetHdmiHdcpKeyKsvInfo(int data_buf[]); + virtual bool hdmiOutWithFbc(); + int StartUpgradeFBC(char *file_name, int mode, int upgrade_blk_size); + int SetSerialSwitch(int dev_id, int switch_val); + int SendSerialData(int dev_id, int data_len, unsigned char data_buf[]); + int SetDebugSerialOnOff(int on_off); + int GetDebugSerialOnOff(); + int ChannelExport(const char *destPath); + int ChannelImport(const char *srcPath); + int Tv_GetProjectInfo(project_info_t *ptrInfo); + int Tv_GetPlatformType(); + int Tv_HandeHDMIEDIDFilePathConfig(); + int Tv_SetDDDRCMode(tv_source_input_t source_input); + int Tv_SetAudioSourceType (tv_source_input_t source_input); + + //PQ + virtual int Tv_SetBrightness ( int brightness, tv_source_input_type_t source_type, int is_save ); + virtual int Tv_GetBrightness ( tv_source_input_type_t source_type ); + virtual int Tv_SaveBrightness ( int brightness, tv_source_input_type_t source_type ); + virtual int Tv_SetContrast ( int contrast, tv_source_input_type_t source_type, int is_save ); + virtual int Tv_GetContrast ( tv_source_input_type_t source_type ); + virtual int Tv_SaveContrast ( int contrast, tv_source_input_type_t source_type ); + virtual int Tv_SetSaturation ( int satuation, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, int is_save ); + virtual int Tv_GetSaturation ( tv_source_input_type_t source_type ); + virtual int Tv_SaveSaturation ( int satuation, tv_source_input_type_t source_type ); + virtual int Tv_SetHue ( int hue, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, int is_save ); + virtual int Tv_GetHue ( tv_source_input_type_t source_type ); + virtual int Tv_SaveHue ( int hue, tv_source_input_type_t source_type ); + virtual int Tv_SetPQMode ( vpp_picture_mode_t mode, tv_source_input_type_t source_type, int is_save ); + virtual vpp_picture_mode_t Tv_GetPQMode ( tv_source_input_type_t source_type ); + virtual int Tv_SavePQMode ( vpp_picture_mode_t mode, tv_source_input_type_t source_type ); + virtual int Tv_SetSharpness ( int value, tv_source_input_type_t source_type, int en, int is_save ); + virtual int Tv_GetSharpness ( tv_source_input_type_t source_type ); + virtual int Tv_SaveSharpness ( int value, tv_source_input_type_t source_type ); + virtual int Tv_SetBacklight ( int value, tv_source_input_type_t source_type, int is_save ); + virtual int Tv_GetBacklight ( tv_source_input_type_t source_type ); + virtual int Tv_SaveBacklight ( int value, tv_source_input_type_t source_type ); + int Tv_SetBacklight_Switch ( int value ); + int Tv_GetBacklight_Switch ( void ); + int Tv_SetColorTemperature ( vpp_color_temperature_mode_t mode, tv_source_input_type_t source_type, int is_save ); + vpp_color_temperature_mode_t Tv_GetColorTemperature ( tv_source_input_type_t source_type ); + virtual int Tv_SetDisplayMode ( vpp_display_mode_t mode, tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, int is_save ); + virtual int Tv_SaveDisplayMode ( vpp_display_mode_t mode, tv_source_input_type_t source_type ); + virtual int Tv_SaveColorTemperature ( vpp_color_temperature_mode_t mode, tv_source_input_type_t source_type ); + virtual vpp_display_mode_t Tv_GetDisplayMode ( tv_source_input_type_t source_type ); + virtual int Tv_SetNoiseReductionMode ( vpp_noise_reduction_mode_t mode, tv_source_input_type_t source_type, int is_save ); + virtual vpp_noise_reduction_mode_t Tv_GetNoiseReductionMode ( tv_source_input_type_t source_type ); + virtual int Tv_SaveNoiseReductionMode ( vpp_noise_reduction_mode_t mode, tv_source_input_type_t source_type ); + int Tv_SetSplitScreenDemoStatus(tv_source_input_type_t source_type, int onoff_status); + int Tv_GetSplitScreenDemoStatus(tv_source_input_type_t source_type); + int Tv_SplitScreenEffect(int mode, int width, int reverse = 0); + // + int Tv_FactorySetPQMode_Brightness ( int source_type, int pq_mode, int brightness ); + int Tv_FactoryGetPQMode_Brightness ( int source_type, int pq_mode ); + int Tv_FactorySetPQMode_Contrast ( int source_type, int pq_mode, int contrast ); + int Tv_FactoryGetPQMode_Contrast ( int source_type, int pq_mode ); + int Tv_FactorySetPQMode_Saturation ( int source_type, int pq_mode, int saturation ); + int Tv_FactoryGetPQMode_Saturation ( int source_type, int pq_mode ); + int Tv_FactorySetPQMode_Hue ( int source_type, int pq_mode, int hue ); + int Tv_FactoryGetPQMode_Hue ( int source_type, int pq_mode ); + int Tv_FactorySetPQMode_Sharpness ( int source_type, int pq_mode, int sharpness ); + int Tv_FactoryGetPQMode_Sharpness ( int source_type, int pq_mode ); + + int GetColorTemperatureParams ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ); + int Tv_FactorySetTestPattern ( int pattern ); + int Tv_FactoryGetTestPattern ( void ); + int Tv_FactorySetScreenColor ( int vdin_blending_mask, int y, int u, int v ); + int Tv_FactoryResetPQMode ( void ); + int Tv_FactoryResetColorTemp ( void ); + int Tv_FactorySetParamsDefault ( void ); + int Tv_FactorySetDDRSSC ( int step ); + int Tv_FactoryGetDDRSSC ( void ); + int Tv_FactorySetLVDSSSC ( int step ); + int Tv_FactoryGetLVDSSSC ( void ); + void Tv_Spread_Spectrum(void); + int Tv_FactorySetNolineParams ( int noline_params_type, int source_type, noline_params_t noline_params ); + noline_params_t Tv_FactoryGetNolineParams ( int noline_params_type, int source_type ); + int Tv_FactorySetOverscan ( int source_type, int fmt, int status_3d, int trans_fmt, tvin_cutwin_t cutwin_t ); + tvin_cutwin_t Tv_FactoryGetOverscan ( int source_type, int fmt, int status_3d, int trans_fmt ); + int Tv_ReplacePqDb(const char *newFilePath = NULL); + //end PQ + + //TV TO FBC + int Tv_FactorySet_FBC_Brightness ( int value ); + int Tv_FactoryGet_FBC_Brightness ( void ); + int Tv_FactorySet_FBC_Contrast( int value ); + int Tv_FactoryGet_FBC_Contrast ( void ); + int Tv_FactorySet_FBC_Saturation( int value ); + int Tv_FactoryGet_FBC_Saturation ( void ); + int Tv_FactorySet_FBC_HueColorTint( int value ); + int Tv_FactoryGet_FBC_HueColorTint ( void ); + virtual int Tv_FactorySet_FBC_Backlight ( int value ); + virtual int Tv_FactoryGet_FBC_Backlight ( void ); + int Tv_FactorySet_FBC_Backlight_N360 ( int value ); + int Tv_FactoryGet_FBC_Backlight_N360 ( void ); + int Tv_FactorySet_FBC_ELEC_MODE( int value ); + int Tv_FactoryGet_FBC_ELEC_MODE( void ); + int Tv_FactorySet_FBC_BACKLIGHT_N360( int value ); + int Tv_FactoryGet_FBC_BACKLIGHT_N360( void ); + int Tv_FactorySet_FBC_Picture_Mode ( int mode ); + int Tv_FactoryGet_FBC_Picture_Mode ( void ); + int Tv_FactorySet_FBC_Set_Test_Pattern ( int mode ); + int Tv_FactoryGet_FBC_Get_Test_Pattern ( void ); + int Tv_FactorySet_FBC_Gain_Red( int value ); + int Tv_FactoryGet_FBC_Gain_Red ( void ); + int Tv_FactorySet_FBC_Gain_Green( int value ); + int Tv_FactoryGet_FBC_Gain_Green( void ); + int Tv_FactorySet_FBC_Gain_Blue( int value ); + int Tv_FactoryGet_FBC_Gain_Blue ( void ); + int Tv_FactorySet_FBC_Offset_Red( int value ); + int Tv_FactoryGet_FBC_Offset_Red ( void ); + int Tv_FactorySet_FBC_Offset_Green( int value ); + int Tv_FactoryGet_FBC_Offset_Green( void ); + int Tv_FactorySet_FBC_Offset_Blue( int value ); + int Tv_FactoryGet_FBC_Offset_Blue ( void ); + int Tv_FactoryGetWhiteBalanceRedGain(int source_type, int colortemp_mode); + int Tv_FactoryGetWhiteBalanceGreenGain(int source_type, int colortemp_mode); + int Tv_FactoryGetWhiteBalanceBlueGain(int source_type, int colortemp_mode); + int Tv_FactoryGetWhiteBalanceRedOffset(int source_type, int colortemp_mode); + int Tv_FactoryGetWhiteBalanceGreenOffset(int source_type, int colortemp_mode); + int Tv_FactoryGetWhiteBalanceBlueOffset(int source_type, int colortemp_mode); + int Tv_FactorySetWhiteBalanceRedGain(int source_type, int colortemp_mode, int value); + int Tv_FactorySetWhiteBalanceGreenGain(int source_type, int colortemp_mode, int value); + int Tv_FactorySetWhiteBalanceBlueGain(int source_type, int colortemp_mode, int value); + int Tv_FactorySetWhiteBalanceRedOffset(int source_type, int colortemp_mode, int value); + int Tv_FactorySetWhiteBalanceGreenOffset(int source_type, int colortemp_mode, int value); + int Tv_FactorySetWhiteBalanceBlueOffset(int source_type, int colortemp_mode, int value); + int Tv_FactorySetWhiteBalanceColorTempMode(int source_type, int colortemp_mode, int is_save); + int Tv_FactoryGetWhiteBalanceColorTempMode(int source_type ); + int Tv_FactoryWhiteBalanceFormatInputFbcGainParams(int value); + int Tv_FactoryWhiteBalanceFormatInputFbcOffsetParams(int value); + int Tv_FactoryWhiteBalanceFormatOutputFbcOffsetParams(int value); + int Tv_FactoryWhiteBalanceFormatOutputFbcGainParams(int value); + int Tv_FactorySaveWhiteBalancePramas(int source_type, int tempmode, int r_gain, int g_gain, int b_gain, int r_offset, int g_offset, int b_offset); + int Tv_FactoryCloseWhiteBalanceGrayPattern(); + int Tv_FactoryOpenWhiteBalanceGrayPattern(); + int Tv_FactorySetWhiteBalanceGrayPattern(int value); + int Tv_FactoryGetWhiteBalanceGrayPattern(); + int Tv_FactoryWhiteBalanceColorTempMappingG92Fbc(int Tempmode); + int Tv_FactoryWhiteBalanceColorTempMappingFbc2G9(int Tempmode); + int Tv_FactorySet_FBC_GrayPattern(int value); + int Tv_FactoryOpen_FBC_GrayPattern(); + int Tv_FactoryClose_FBC_GrayPattern(); + int Tv_FactorySet_FBC_ColorTemp_Mode( int mode ); + int Tv_FactoryGet_FBC_ColorTemp_Mode ( void ); + int Tv_FactorySet_FBC_ColorTemp_Mode_N360( int mode ); + int Tv_FactoryGet_FBC_ColorTemp_Mode_N360 ( void ); + int Tv_FactorySet_FBC_LockN_state(int value); + int Tv_FactorySet_FBC_WB_Initial( int status ); + int Tv_FactoryGet_FBC_WB_Initial ( void ); + virtual int Tv_FactorySet_FBC_ColorTemp_Batch(vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params); + virtual int Tv_FactoryGet_FBC_ColorTemp_Batch ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ); + int Tv_FactorySet_WB_G9_To_FBC( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params ); + int Tv_FactoryGet_WB_G9_To_FBC ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ); + int Tv_FactoryGetItemFromBatch(vpp_color_temperature_mode_t colortemp_mode, int item); + int Tv_FactorySet_FBC_CM_OnOff( unsigned char status ); + int Tv_FactoryGet_FBC_CM_OnOff (void); + int Tv_FactorySet_FBC_DNLP_OnOff( unsigned char status ); + int Tv_FactoryGet_FBC_DNLP_OnOff (void); + int Tv_FactorySet_FBC_Gamma_OnOff( unsigned char status ); + int Tv_FactoryGet_FBC_Gamma_OnOff (void); + int Tv_FactorySet_FBC_WhiteBalance_OnOff( unsigned char status ); + int Tv_FactoryGet_FBC_WhiteBalance_OnOff (void); + int Tv_FactorySet_FBC_Thermal_State( int value ); + int Tv_FactorySet_FBC_backlight_onoff(int value); + int Tv_FactoryGet_FBC_backlight_onoff ( void ); + int Tv_FactorySet_FBC_Auto_Backlight_OnOff(unsigned char status); + int Tv_FactoryGet_FBC_Auto_Backlight_OnOff ( void ); + int Tv_FactoryGet_FBC_VIDEO_MUTE ( void ); + int Tv_FactorySet_FBC_LVDS_SSG_Set( int value ); + int Tv_FactorySet_FBC_LightSensor_Status_N310 ( int value ); + int Tv_FactoryGet_FBC_LightSensor_Status_N310 ( void ); + int Tv_FactorySet_FBC_Dream_Panel_Status_N310 ( int value ); + int Tv_FactoryGet_FBC_Dream_Panel_Status_N310 ( void ); + int Tv_FactorySet_FBC_MULT_PQ_Status_N310 ( int value ); + int Tv_FactoryGet_FBC_MULT_PQ_Status_N310 ( void ); + int Tv_FactorySet_FBC_MEMC_Status_N310 ( int value ); + int Tv_FactoryGet_FBC_MEMC_Status_N310 ( void ); + int Tv_FactorySet_FBC_ColorTemp_Mode_N310( int mode ); + int Tv_FactoryGet_FBC_ColorTemp_Mode_N310 ( void ); + virtual int Tv_FactorySet_FBC_Backlight_N310 ( int value ); + virtual int Tv_FactoryGet_FBC_Backlight_N310 ( void ); + int Tv_FactorySet_FBC_Bluetooth_IIS_N310 ( int value ); + int Tv_FactoryGet_FBC_Bluetooth_IIS_N310 ( void ); + int Tv_FactorySet_FBC_Led_N310 ( int val_1, int val_2, int val_3 ); + int Tv_FactorySet_VbyOne_Spread_Spectrum_N311 ( int value ); + int Tv_FactoryGet_VbyOne_Spread_Spectrum_N311 ( void ); + int Tv_FactorySet_FBC_AP_STANDBY_N310 ( int value ); + int Tv_FactoryGet_FBC_AP_STANDBY_N310( void ); + int Tv_FactorySet_Uboot_Stage(int value); + //end TV TO FBC + + int Tv_SetTestPattern(int value); + int Tv_Set2k4k_ScalerUp_Mode ( int value ); + int Tv_Get2k4k_ScalerUp_Mode ( void ); + //audio + virtual int Tv_SetDRC_OnOff(int on_off); + virtual int Tv_GetDRC_OnOff(void); + virtual void updateSubtitle(int, int); + int setSubtitleBuffer(char *); + int initSubtitle(int, int) ; + int lockSubtitle(); + int unlockSubtitle(); + int getSubSwitchStatus(); + int startSubtitle(int dmx_id, int pid, int page_id, int anc_page_id) ; + int stopSubtitle() ; + + //audio + virtual void TvAudioOpen(); + virtual void AudioCtlUninit(); + virtual int SetAudioMuteForSystem(int muteOrUnmute); + virtual int GetAudioMuteForSystem(); + virtual int SetAudioMuteForTv(int muteOrUnmute); + virtual int GetAudioMuteForTv(); + virtual char *GetMainVolLutTableExtraName(); + virtual int SetDbxTvMode(int mode, int son_value, int vol_value, int sur_value); + virtual int GetDbxTvMode(int *mode, int *son_value, int *vol_value, int *sur_value); + int AudioHandleHeadsetPlugIn(); + int AudioHandleHeadsetPullOut(); + int SetAudioAVOutMute(int muteStatus); + int GetAudioAVOutMute(); + int SetAudioSPDIFMute(int muteStatus); + int GetAudioSPDIFMute(); + int SetDacMute(int muteStatus, int mute_type); + int SetAudioI2sMute(int); + int SetAudioMasterVolume(int tmp_vol); + int GetAudioMasterVolume(); + int SaveCurAudioMasterVolume(int tmp_vol); + int GetCurAudioMasterVolume(); + int SetAudioBalance(int tmp_val); + int GetAudioBalance(); + int SaveCurAudioBalance(int tmp_val); + int GetCurAudioBalance(); + int SetAudioSupperBassVolume(int tmp_vol); + int GetAudioSupperBassVolume(); + int SaveCurAudioSupperBassVolume(int tmp_vol); + int GetCurAudioSupperBassVolume(); + int SetAudioSupperBassSwitch(int tmp_val); + int GetAudioSupperBassSwitch(); + int SaveCurAudioSupperBassSwitch(int tmp_val); + int GetCurAudioSupperBassSwitch(); + int SetAudioSRSSurround(int tmp_val); + int GetAudioSRSSurround(); + int SaveCurAudioSrsSurround(int tmp_val); + int GetCurAudioSRSSurround(); + int SetAudioSrsDialogClarity(int tmp_val); + int GetAudioSrsDialogClarity(); + int SaveCurAudioSrsDialogClarity(int tmp_val); + int GetCurAudioSrsDialogClarity(); + int SetAudioSrsTruBass(int tmp_val); + int GetAudioSrsTruBass(); + int SaveCurAudioSrsTruBass(int tmp_val); + int GetCurAudioSrsTruBass(); + int SetAudioSPDIFSwitch(int tmp_val); + int GetCurAudioSPDIFSwitch(); + int SaveCurAudioSPDIFSwitch(int tmp_val); + + //Audio SPDIF Mode + int SetAudioSPDIFMode(int tmp_val); + int GetCurAudioSPDIFMode(); + int SaveCurAudioSPDIFMode(int tmp_val); + int SetAudioBassVolume(int tmp_vol); + int GetAudioBassVolume(); + int SaveCurAudioBassVolume(int tmp_vol); + int GetCurAudioBassVolume(); + int SetAudioTrebleVolume(int tmp_vol); + int GetAudioTrebleVolume(); + int SaveCurAudioTrebleVolume(int tmp_vol); + int GetCurAudioTrebleVolume(); + int SetAudioSoundMode(int tmp_val); + int GetAudioSoundMode(); + int SaveCurAudioSoundMode(int tmp_val); + int GetCurAudioSoundMode(); + int SetAudioWallEffect(int tmp_val); + int GetAudioWallEffect(); + int SaveCurAudioWallEffect(int tmp_val); + int GetCurAudioWallEffect(); + int SetAudioEQMode(int tmp_val); + int GetAudioEQMode(); + int SaveCurAudioEQMode(int tmp_val); + int GetCurAudioEQMode(); + int GetAudioEQRange(int range_buf[]); + int GetAudioEQBandCount(); + int SetAudioEQGain(int gain_buf[]); + int GetAudioEQGain(int gain_buf[]); + int GetCurAudioEQGain(int gain_buf[]); + int SaveCurAudioEQGain(int gain_buf[]); + int SetAudioEQSwitch(int switch_val); + int OpenAmAudio(unsigned int sr, int input_device, int output_device); + int CloseAmAudio(void); + int SetAmAudioInputSr(unsigned int sr, int output_device); + int SetAmAudioOutputMode(int mode); + int SetAmAudioMusicGain(int gain); + int SetAmAudioLeftGain(int gain); + int SetAmAudioRightGain(int gain); + int SetAudioVolumeCompensationVal(int tmp_vol_comp_val); + int AudioLineInSelectChannel(int audio_channel); + int AudioSetLineInCaptureVolume(int l_vol, int r_vol); + int SetKalaokIO(int level); + int setAudioPcmPlaybackVolume(int val); + + int openTvAudio(); + int closeTvAudio(); + + int InitTvAudio(int sr, int input_device); + int UnInitTvAudio(); + int AudioChangeSampleRate(int sr); + int AudioSetAudioInSource(int audio_src_in_type); + int AudioSetAudioSourceType(int source_type); + int AudioSSMRestoreDefaultSetting(); + int SetAudioDumpDataFlag(int tmp_flag); + int GetAudioDumpDataFlag(); + int SetAudioLeftRightMode(unsigned int mode); + unsigned int GetAudioLeftRightMode(); + int SwitchAVOutBypass (int); + int SetAudioSwitchIO(int value); + int SetOutput_Swap(int value); + int HanldeAudioInputSr(unsigned int); + void AudioSetVolumeDigitLUTBuf(int lut_sel_flag, int *MainVolLutBuf); + int SetADC_Digital_Capture_Volume(int value); + int SetPGA_IN_Value(int value); + int SetDAC_Digital_PlayBack_Volume(int value); + int InitSetTvAudioCard(); + int UnInitSetTvAudioCard(); + void RefreshSrsEffectAndDacGain(); + int SetCustomEQGain(); + int SetAtvInGain(int gain_val); + int GetHdmiAvHotplugDetectOnoff(); private: - int SendCmdToOffBoardFBCExternalDac(int, int); - int LoadCurAudioSPDIFMode(); - int LoadCurAudioMasterVolume(); - int LoadCurAudioBalance(); - int LoadCurAudioSupperBassVolume(); - int LoadCurAudioSupperBassSwitch(); - int LoadCurAudioSrsSurround(); - int LoadCurAudioSrsDialogClarity(); - int LoadCurAudioSPDIFSwitch(); - void SetSupperBassSRSSpeakerSize(); - int LoadCurAudioSoundMode(); - int LoadCurAudioEQMode(); - int LoadCurAudioSrsTruBass(); - int RealSaveCurAudioBassVolume(int, int); - int LoadCurAudioBassVolume(); - int RealSaveCurAudioTrebleVolume(int, int); - int LoadCurAudioTrebleVolume(); - int HandleTrebleBassVolume(); - int LoadCurAudioWallEffect(); - int RealReadCurAudioEQGain(int *); - int RealSaveCurAudioEQGain(int *, int); - int LoadCurAudioEQGain(); - int MappingEQGain(int *, int *, int); - int RestoreToAudioDefEQGain(int *); - int GetCustomEQGain(int *); - int AudioSetEQGain(int *); - int handleEQGainBeforeSet(int *, int *); - int RealSetEQGain(int *); - int SetSpecialModeEQGain(int); - int SetSpecialIndexEQGain(int, int); - int SaveSpecialIndexEQGain(int, int); - void LoadAudioCtl(); - void InitSetAudioCtl(); - int GetBassUIMinGainVal(); - int GetBassUIMaxGainVal(); - int GetTrebleUIMinGainVal(); - int GetTrebleUIMaxGainVal(); - int MappingLine(int, int, int, int, int); - int MappingTrebleBassAndEqualizer(int, int, int, int); - int SetSPDIFMode(int mode_val); - - CAudioAlsa mAudioAlsa; - CAudioEffect mAudioEffect; - - CAudioCustomerCtrl mCustomerCtrl; - int mCurAudioMasterVolume; - int mCurAudioBalance; - int mCurAudioSupperBassVolume; - int mCurAudioSupperBassSwitch; - int mCurAudioSRSSurround; - int mCurAudioSrsDialogClarity; - int mCurAudioSrsTruBass; - int mCurAudioSPDIFSwitch; - int mCurAudioSPDIFMode; - int mCurAudioBassVolume; - int mCurAudioTrebleVolume; - int mCurAudioSoundMode; - int mCurAudioWallEffect; - int mCurAudioEQMode; - int mCustomAudioMasterVolume; - int mCustomAudioBalance; - int mCustomAudioSupperBassVolume; - int mCustomAudioSupperBassSwitch; - int mCustomAudioSRSSurround; - int mCustomAudioSrsDialogClarity; - int mCustomAudioSrsTruBass; - int mCustomAudioBassVolume; - int mCustomAudioTrebleVolume; - int mCustomAudioSoundMode; - int mCustomAudioWallEffect; - int mCustomAudioEQMode; - int mCustomAudioSoundEnhancementSwitch; - int mCustomEQGainBuf[CC_BAND_ITEM_CNT]; - int mCurEQGainBuf[CC_BAND_ITEM_CNT] ; - int8_t mCurEQGainChBuf[CC_BAND_ITEM_CNT]; - int mWallEffectValueBuf[CC_BAND_ITEM_CNT]; - int mVolumeCompensationVal; - int mMainVolumeBalanceVal; - //end audio + int SendCmdToOffBoardFBCExternalDac(int, int); + int LoadCurAudioSPDIFMode(); + int LoadCurAudioMasterVolume(); + int LoadCurAudioBalance(); + int LoadCurAudioSupperBassVolume(); + int LoadCurAudioSupperBassSwitch(); + int LoadCurAudioSrsSurround(); + int LoadCurAudioSrsDialogClarity(); + int LoadCurAudioSPDIFSwitch(); + void SetSupperBassSRSSpeakerSize(); + int LoadCurAudioSoundMode(); + int LoadCurAudioEQMode(); + int LoadCurAudioSrsTruBass(); + int RealSaveCurAudioBassVolume(int, int); + int LoadCurAudioBassVolume(); + int RealSaveCurAudioTrebleVolume(int, int); + int LoadCurAudioTrebleVolume(); + int HandleTrebleBassVolume(); + int LoadCurAudioWallEffect(); + int RealReadCurAudioEQGain(int *); + int RealSaveCurAudioEQGain(int *, int); + int LoadCurAudioEQGain(); + int MappingEQGain(int *, int *, int); + int RestoreToAudioDefEQGain(int *); + int GetCustomEQGain(int *); + int AudioSetEQGain(int *); + int handleEQGainBeforeSet(int *, int *); + int RealSetEQGain(int *); + int SetSpecialModeEQGain(int); + int SetSpecialIndexEQGain(int, int); + int SaveSpecialIndexEQGain(int, int); + void LoadAudioCtl(); + void InitSetAudioCtl(); + int GetBassUIMinGainVal(); + int GetBassUIMaxGainVal(); + int GetTrebleUIMinGainVal(); + int GetTrebleUIMaxGainVal(); + int MappingLine(int, int, int, int, int); + int MappingTrebleBassAndEqualizer(int, int, int, int); + int SetSPDIFMode(int mode_val); + + CAudioAlsa mAudioAlsa; + CAudioEffect mAudioEffect; + + CAudioCustomerCtrl mCustomerCtrl; + int mCurAudioMasterVolume; + int mCurAudioBalance; + int mCurAudioSupperBassVolume; + int mCurAudioSupperBassSwitch; + int mCurAudioSRSSurround; + int mCurAudioSrsDialogClarity; + int mCurAudioSrsTruBass; + int mCurAudioSPDIFSwitch; + int mCurAudioSPDIFMode; + int mCurAudioBassVolume; + int mCurAudioTrebleVolume; + int mCurAudioSoundMode; + int mCurAudioWallEffect; + int mCurAudioEQMode; + int mCustomAudioMasterVolume; + int mCustomAudioBalance; + int mCustomAudioSupperBassVolume; + int mCustomAudioSupperBassSwitch; + int mCustomAudioSRSSurround; + int mCustomAudioSrsDialogClarity; + int mCustomAudioSrsTruBass; + int mCustomAudioBassVolume; + int mCustomAudioTrebleVolume; + int mCustomAudioSoundMode; + int mCustomAudioWallEffect; + int mCustomAudioEQMode; + int mCustomAudioSoundEnhancementSwitch; + int mCustomEQGainBuf[CC_BAND_ITEM_CNT]; + int mCurEQGainBuf[CC_BAND_ITEM_CNT] ; + int8_t mCurEQGainChBuf[CC_BAND_ITEM_CNT]; + int mWallEffectValueBuf[CC_BAND_ITEM_CNT]; + int mVolumeCompensationVal; + int mMainVolumeBalanceVal; + //end audio protected: - class CTvMsgQueue: public CMsgQueueThread, public CAv::IObserver, public CTvScanner::IObserver , public CTvEpg::IObserver, public CFrontEnd::IObserver { - public: - static const int TV_MSG_COMMON = 0; - static const int TV_MSG_STOP_ANALYZE_TS = 1; - static const int TV_MSG_START_ANALYZE_TS = 2; - static const int TV_MSG_CHECK_FE_DELAY = 3; - static const int TV_MSG_AV_EVENT = 4; - static const int TV_MSG_FE_EVENT = 5; - static const int TV_MSG_SCAN_EVENT = 6; - static const int TV_MSG_EPG_EVENT = 7; - static const int TV_MSG_HDMI_SR_CHANGED = 8; - static const int TV_MSG_ENABLE_VIDEO_LATER = 9; - CTvMsgQueue(CTv *tv); - ~CTvMsgQueue(); - //scan observer - void onEvent ( const CTvScanner::ScannerEvent &ev ); - //epg observer - void onEvent ( const CTvEpg::EpgEvent &ev ); - //FE observer - void onEvent ( const CFrontEnd::FEEvent &ev ); - //AV - void onEvent(const CAv::AVEvent &ev); - private: - virtual void handleMessage ( CMessage &msg ); - CTv *mpTv; - }; - - class CTvDetectObserverForScanner: public CTvin::CTvinSigDetect::ISigDetectObserver { - public: - CTvDetectObserverForScanner(CTv *); - ~CTvDetectObserverForScanner() {}; - virtual void onSigToStable(); - virtual void onSigStableToUnstable(); - virtual void onSigStableToNoSig(); - virtual void onSigUnStableToNoSig(); - virtual void onSigStillStable(); - private: - CTv *mpTv; - int m_sig_stable_nums; - }; - void onEnableVideoLater(int framecount); - int resetDmxAndAvSource(); - int stopScan(); - int stopPlaying(); - void sendTvEvent ( const CTvEv &ev ); - int startPlayTv ( int source, int vid, int aid, int vfat, int afat ); - //scan observer - void onEvent ( const CTvScanner::ScannerEvent &ev ); - //epg observer - void onEvent ( const CTvEpg::EpgEvent &ev ); - //FE observer - void onEvent ( const CFrontEnd::FEEvent &ev ); - //AV - void onEvent(const CAv::AVEvent &ev); - bool Tv_Start_Analyze_Ts ( int channelID ); - bool Tv_Stop_Analyze_Ts(); - int Tvin_Stop ( void ); - int Tvin_GetTvinConfig(); - int Tv_init_audio(); - int Tv_MiscSetBySource ( tv_source_input_t ); - void print_version_info ( void ); - int dtvCleanProgramByFreq ( int freq ); - /*********************** Audio start **********************/ - int SetAudioVolDigitLUTTable ( tv_source_input_t source_input ); - virtual int Tv_SetAudioInSource (tv_source_input_t source_input); - void Tv_SetAudioOutputSwap_Type (tv_source_input_t source_input); - void Tv_ADCDigitalCapture_Volume (void); - void Tv_SetPGAIn_Gain (void); - void Tv_SetDACDigitalPlayBack_Volume (int audio_src_in_type); - void Tv_SetAVOutPut_Input_gain(tv_source_input_t source_input); - /*********************** Audio end **********************/ - - // - virtual void onSigToStable(); - virtual void onSigStableToUnstable(); - virtual void onSigStableToUnSupport(); - virtual void onSigStableToNoSig(); - virtual void onSigUnStableToUnSupport(); - virtual void onSigUnStableToNoSig(); - virtual void onSigNullToNoSig(); - virtual void onSigNoSigToUnstable(); - virtual void onSigStillStable(); - virtual void onSigStillUnstable(); - virtual void onSigStillNosig(); - virtual void onSigStillNoSupport(); - virtual void onSigStillNull(); - virtual void onStableSigFmtChange(); - virtual void onStableTransFmtChange(); - virtual void onSigDetectEnter(); - virtual void onSigDetectLoop(); - - virtual void onSourceConnect(int source_type, int connect_status); - virtual void onHDMIRxCECMessage(int msg_len, unsigned char msg_buf[]); - virtual void onUpgradeStatus(int status, int progress); - virtual void onSerialCommunication(int dev_id, int rd_len, unsigned char data_buf[]); - virtual void onThermalDetect(int state); - virtual void onVframeSizeChange(); - - CTvEpg mTvEpg; - CTvScanner mTvScanner; - mutable Mutex mLock; - CTvTime mTvTime; - CVpp mVpp; - CTvin mTvin; - CTvRecord mTvRec; - CFrontEnd mFrontDev; - CTvDimension mTvVchip; - CTvSubtitle mTvSub; - CAv mAv; - CTvDmx mTvDmx; - CTvMsgQueue mTvMsgQueue; - AutoBackLight mAutoBackLight; - CAutoPQparam mAutoPQparam; - CTvDetectObserverForScanner mTvScannerDetectObserver; - // - volatile int mTvAction; - volatile TvRunStatus_t mTvStatus; - volatile tv_source_input_t m_source_input; - volatile tv_source_input_t m_last_source_input; - /* for tvin window mode and pos*/ - tvin_window_pos_t m_win_pos; - tv_window_mode_t m_win_mode; - int m_blackout_enable;//1 enable 0 disable - int m_cur_playing_prog_id; - bool mHdmiOutFbc; - CFbcCommunication *fbcIns; - - - bool mlastlockstatus; - String8 mlastdm; - String8 mlastabbrev; - String8 mlastabbtext; - pthread_t vchipthread; - int mvchip_running; - friend class CTvMsgQueue; - int mCurAnalyzeTsChannelID; - TvIObserver *mpObserver; - tv_dtv_scan_running_status_t mDtvScanRunningStatus; - volatile tv_config_t gTvinConfig; - int dtv_auto_3d_flag; - int m_hdmiav_hotplugdetect_en; - bool m_autoset_displayfreq; - int m_sig_stable_nums; - bool m_is_set_hdmi_edid; - /** for L/R or B/T 3d mode overscan **/ - /** for 3D **/ - VIDEO_3D_MODE_T m_mode_3d; - /** for HDMI-in sampling detection. **/ - int m_hdmi_sampling_rate; - int m_hdmi_audio_data; - /** for display mode to bottom **/ - int screen_mode; - - //audio mute - int mAudioMuteStatusForTv; - int mAudioMuteStatusForSystem; - char mMainVolLutTableExtraName[16]; + class CTvMsgQueue: public CMsgQueueThread, public CAv::IObserver, public CTvScanner::IObserver , public CTvEpg::IObserver, public CFrontEnd::IObserver { + public: + static const int TV_MSG_COMMON = 0; + static const int TV_MSG_STOP_ANALYZE_TS = 1; + static const int TV_MSG_START_ANALYZE_TS = 2; + static const int TV_MSG_CHECK_FE_DELAY = 3; + static const int TV_MSG_AV_EVENT = 4; + static const int TV_MSG_FE_EVENT = 5; + static const int TV_MSG_SCAN_EVENT = 6; + static const int TV_MSG_EPG_EVENT = 7; + static const int TV_MSG_HDMI_SR_CHANGED = 8; + static const int TV_MSG_ENABLE_VIDEO_LATER = 9; + CTvMsgQueue(CTv *tv); + ~CTvMsgQueue(); + //scan observer + void onEvent ( const CTvScanner::ScannerEvent &ev ); + //epg observer + void onEvent ( const CTvEpg::EpgEvent &ev ); + //FE observer + void onEvent ( const CFrontEnd::FEEvent &ev ); + //AV + void onEvent(const CAv::AVEvent &ev); + private: + virtual void handleMessage ( CMessage &msg ); + CTv *mpTv; + }; + + class CTvDetectObserverForScanner: public CTvin::CTvinSigDetect::ISigDetectObserver { + public: + CTvDetectObserverForScanner(CTv *); + ~CTvDetectObserverForScanner() {}; + virtual void onSigToStable(); + virtual void onSigStableToUnstable(); + virtual void onSigStableToNoSig(); + virtual void onSigUnStableToNoSig(); + virtual void onSigStillStable(); + private: + CTv *mpTv; + int m_sig_stable_nums; + }; + void onEnableVideoLater(int framecount); + int resetDmxAndAvSource(); + int stopScan(); + int stopPlaying(); + void sendTvEvent ( const CTvEv &ev ); + int startPlayTv ( int source, int vid, int aid, int vfat, int afat ); + //scan observer + void onEvent ( const CTvScanner::ScannerEvent &ev ); + //epg observer + void onEvent ( const CTvEpg::EpgEvent &ev ); + //FE observer + void onEvent ( const CFrontEnd::FEEvent &ev ); + //AV + void onEvent(const CAv::AVEvent &ev); + bool Tv_Start_Analyze_Ts ( int channelID ); + bool Tv_Stop_Analyze_Ts(); + int Tvin_Stop ( void ); + int Tvin_GetTvinConfig(); + int Tv_init_audio(); + int Tv_MiscSetBySource ( tv_source_input_t ); + void print_version_info ( void ); + int dtvCleanProgramByFreq ( int freq ); + /*********************** Audio start **********************/ + int SetAudioVolDigitLUTTable ( tv_source_input_t source_input ); + virtual int Tv_SetAudioInSource (tv_source_input_t source_input); + void Tv_SetAudioOutputSwap_Type (tv_source_input_t source_input); + void Tv_ADCDigitalCapture_Volume (void); + void Tv_SetPGAIn_Gain (void); + void Tv_SetDACDigitalPlayBack_Volume (int audio_src_in_type); + void Tv_SetAVOutPut_Input_gain(tv_source_input_t source_input); + /*********************** Audio end **********************/ + + // + virtual void onSigToStable(); + virtual void onSigStableToUnstable(); + virtual void onSigStableToUnSupport(); + virtual void onSigStableToNoSig(); + virtual void onSigUnStableToUnSupport(); + virtual void onSigUnStableToNoSig(); + virtual void onSigNullToNoSig(); + virtual void onSigNoSigToUnstable(); + virtual void onSigStillStable(); + virtual void onSigStillUnstable(); + virtual void onSigStillNosig(); + virtual void onSigStillNoSupport(); + virtual void onSigStillNull(); + virtual void onStableSigFmtChange(); + virtual void onStableTransFmtChange(); + virtual void onSigDetectEnter(); + virtual void onSigDetectLoop(); + + virtual void onSourceConnect(int source_type, int connect_status); + virtual void onHDMIRxCECMessage(int msg_len, unsigned char msg_buf[]); + virtual void onUpgradeStatus(int status, int progress); + virtual void onSerialCommunication(int dev_id, int rd_len, unsigned char data_buf[]); + virtual void onThermalDetect(int state); + virtual void onVframeSizeChange(); + + CTvEpg mTvEpg; + CTvScanner mTvScanner; + mutable Mutex mLock; + CTvTime mTvTime; + CVpp mVpp; + CTvin mTvin; + CTvRecord mTvRec; + CFrontEnd mFrontDev; + CTvDimension mTvVchip; + CTvSubtitle mTvSub; + CAv mAv; + CTvDmx mTvDmx; + CTvMsgQueue mTvMsgQueue; + AutoBackLight mAutoBackLight; + CAutoPQparam mAutoPQparam; + CTvDetectObserverForScanner mTvScannerDetectObserver; + // + volatile int mTvAction; + volatile TvRunStatus_t mTvStatus; + volatile tv_source_input_t m_source_input; + volatile tv_source_input_t m_last_source_input; + /* for tvin window mode and pos*/ + tvin_window_pos_t m_win_pos; + tv_window_mode_t m_win_mode; + int m_blackout_enable;//1 enable 0 disable + int m_cur_playing_prog_id; + bool mHdmiOutFbc; + CFbcCommunication *fbcIns; + + + bool mlastlockstatus; + String8 mlastdm; + String8 mlastabbrev; + String8 mlastabbtext; + pthread_t vchipthread; + int mvchip_running; + friend class CTvMsgQueue; + int mCurAnalyzeTsChannelID; + TvIObserver *mpObserver; + tv_dtv_scan_running_status_t mDtvScanRunningStatus; + volatile tv_config_t gTvinConfig; + int dtv_auto_3d_flag; + int m_hdmiav_hotplugdetect_en; + bool m_autoset_displayfreq; + int m_sig_stable_nums; + bool m_is_set_hdmi_edid; + /** for L/R or B/T 3d mode overscan **/ + /** for 3D **/ + VIDEO_3D_MODE_T m_mode_3d; + /** for HDMI-in sampling detection. **/ + int m_hdmi_sampling_rate; + int m_hdmi_audio_data; + /** for display mode to bottom **/ + int screen_mode; + + //audio mute + int mAudioMuteStatusForTv; + int mAudioMuteStatusForSystem; + char mMainVolLutTableExtraName[16]; }; #endif //_CDTV_H diff --git a/tvapi/libtv/tv/CTvBooking.cpp b/tvapi/libtv/tv/CTvBooking.cpp index e821809..1ad45db 100644 --- a/tvapi/libtv/tv/CTvBooking.cpp +++ b/tvapi/libtv/tv/CTvBooking.cpp @@ -8,147 +8,147 @@ #endif int CTvBooking::InitFromCursor(CTvDatabase::Cursor &c) { - int col; + int col; - col = c.getColumnIndex("db_id"); - this->id = c.getInt(col); + col = c.getColumnIndex("db_id"); + this->id = c.getInt(col); - col = c.getColumnIndex("db_srv_id"); - this->programId = c.getInt(col); + col = c.getColumnIndex("db_srv_id"); + this->programId = c.getInt(col); - col = c.getColumnIndex("db_evt_id"); - this->eventId = c.getInt(col); + col = c.getColumnIndex("db_evt_id"); + this->eventId = c.getInt(col); - col = c.getColumnIndex("flag"); - this->flag = c.getInt(col); + col = c.getColumnIndex("flag"); + this->flag = c.getInt(col); - col = c.getColumnIndex("status"); - this->status = c.getInt(col); + col = c.getColumnIndex("status"); + this->status = c.getInt(col); - col = c.getColumnIndex("repeat"); - this->repeat = c.getInt(col); + col = c.getColumnIndex("repeat"); + this->repeat = c.getInt(col); - col = c.getColumnIndex("start"); - this->start = (long)c.getInt(col); + col = c.getColumnIndex("start"); + this->start = (long)c.getInt(col); - col = c.getColumnIndex("duration"); - this->duration = (long)c.getInt(col) ; + col = c.getColumnIndex("duration"); + this->duration = (long)c.getInt(col) ; - col = c.getColumnIndex("srv_name"); - this->progName = c.getString(col); + col = c.getColumnIndex("srv_name"); + this->progName = c.getString(col); - col = c.getColumnIndex("evt_name"); - this->evtName = c.getString(col); + col = c.getColumnIndex("evt_name"); + this->evtName = c.getString(col); - return 0; + return 0; } int CTvBooking::selectByID(int id, CTvBooking &CtvBook) { - CTvDatabase::Cursor c; - String8 sql; - - sql = String8("select * from booking_table where booking_table.db_evt_id = ") + String8::format("%d", id); - CTvDatabase::GetTvDb()->select(sql.string(), c); - if (c.moveToFirst()) { - CtvBook.InitFromCursor(c); - } else { - c.close(); - return -1; - } - - c.close(); - return 0; + CTvDatabase::Cursor c; + String8 sql; + + sql = String8("select * from booking_table where booking_table.db_evt_id = ") + String8::format("%d", id); + CTvDatabase::GetTvDb()->select(sql.string(), c); + if (c.moveToFirst()) { + CtvBook.InitFromCursor(c); + } else { + c.close(); + return -1; + } + + c.close(); + return 0; } int CTvBooking::getBookedEventList(Vector<sp<CTvBooking> > &vBv) { - String8 cmd; + String8 cmd; - cmd = String8("select * from booking_table order by start"); + cmd = String8("select * from booking_table order by start"); - CTvDatabase::Cursor c; - int ret = CTvDatabase::GetTvDb()->select(cmd, c); + CTvDatabase::Cursor c; + int ret = CTvDatabase::GetTvDb()->select(cmd, c); - if (c.moveToFirst()) { - do { - vBv.add(new CTvBooking(c)); - } while (c.moveToNext()); + if (c.moveToFirst()) { + do { + vBv.add(new CTvBooking(c)); + } while (c.moveToNext()); - } else { - c.close(); - return -1; - } + } else { + c.close(); + return -1; + } - c.close(); - return 0; + c.close(); + return 0; } int CTvBooking::bookProgram(CTvProgram &prog, CTvEvent &evt) { - String8 cmd; - String8 progName = String8(prog.getName()); - String8 evtName = String8(evt.getName()); + String8 cmd; + String8 progName = String8(prog.getName()); + String8 evtName = String8(evt.getName()); - /*book this program*/ - cmd = String8("insert into booking_table(db_srv_id, db_evt_id, srv_name, evt_name,") - + String8("start,duration,flag,status,file_name,vid_pid,vid_fmt,aud_pids,aud_fmts,aud_languages,") - + String8("sub_pids,sub_types,sub_composition_page_ids,sub_ancillary_page_ids,sub_languages,") - + String8("ttx_pids,ttx_types,ttx_magazine_numbers,ttx_page_numbers,ttx_languages, other_pids,from_storage,repeat)") - + String8("values(") + String8::format("%d,", prog.getID()) + String8::format("%d,", evt.getEventId()) + progName.string() + String8(",") + evtName.string() - + String8::format("%d,", evt.getStartTime()) + String8::format("%d,", evt.getEndTime() - evt.getStartTime()) + String8::format("%d,", flag) - + String8::format("%d,", status) + String8(",") + String8::format("%d,", prog.getVideo()->getPID()) + String8::format("%d,", prog.getVideo()->getFormat()) - + String8::format("%d,", prog.getAudio(0)->getPID()) + String8::format("%d,", prog.getAudio(0)->getFormat()) + prog.getAudio(0)->getLang().string() - + String8(" , , , , , , , , , , , , ,)"); + /*book this program*/ + cmd = String8("insert into booking_table(db_srv_id, db_evt_id, srv_name, evt_name,") + + String8("start,duration,flag,status,file_name,vid_pid,vid_fmt,aud_pids,aud_fmts,aud_languages,") + + String8("sub_pids,sub_types,sub_composition_page_ids,sub_ancillary_page_ids,sub_languages,") + + String8("ttx_pids,ttx_types,ttx_magazine_numbers,ttx_page_numbers,ttx_languages, other_pids,from_storage,repeat)") + + String8("values(") + String8::format("%d,", prog.getID()) + String8::format("%d,", evt.getEventId()) + progName.string() + String8(",") + evtName.string() + + String8::format("%d,", evt.getStartTime()) + String8::format("%d,", evt.getEndTime() - evt.getStartTime()) + String8::format("%d,", flag) + + String8::format("%d,", status) + String8(",") + String8::format("%d,", prog.getVideo()->getPID()) + String8::format("%d,", prog.getVideo()->getFormat()) + + String8::format("%d,", prog.getAudio(0)->getPID()) + String8::format("%d,", prog.getAudio(0)->getFormat()) + prog.getAudio(0)->getLang().string() + + String8(" , , , , , , , , , , , , ,)"); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); - return 0; + return 0; } int CTvBooking::deleteBook(int evtIdFlag) { - String8 cmd; + String8 cmd; - cmd = String8("delete from booking_table where db_evt_id=") - + String8::format("%d", evtIdFlag); + cmd = String8("delete from booking_table where db_evt_id=") + + String8::format("%d", evtIdFlag); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); - return 0; + return 0; } int CTvBooking::bookEvent(int evtId, bool bBookFlag) { - String8 cmd; + String8 cmd; - cmd = String8("update evt_table set sub_flag=") + String8::format("%d", bBookFlag) - + String8(" where db_id=") + String8::format("%d", evtId); + cmd = String8("update evt_table set sub_flag=") + String8::format("%d", bBookFlag) + + String8(" where db_id=") + String8::format("%d", evtId); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); - if (true == bBookFlag) { - CTvEvent evt; - CTvEvent::selectByID(evtId, evt); + if (true == bBookFlag) { + CTvEvent evt; + CTvEvent::selectByID(evtId, evt); - CTvProgram prog; - CTvProgram::selectByID(evt.getProgramId(), prog); + CTvProgram prog; + CTvProgram::selectByID(evt.getProgramId(), prog); - bookProgram(prog, evt); - } else { - deleteBook(evtId); - } + bookProgram(prog, evt); + } else { + deleteBook(evtId); + } - return 0; + return 0; } CTvBooking::CTvBooking(CTvDatabase::Cursor &c) { - InitFromCursor(c); + InitFromCursor(c); } CTvBooking::CTvBooking() diff --git a/tvapi/libtv/tv/CTvBooking.h b/tvapi/libtv/tv/CTvBooking.h index bf01afd..d724a7e 100644 --- a/tvapi/libtv/tv/CTvBooking.h +++ b/tvapi/libtv/tv/CTvBooking.h @@ -25,59 +25,59 @@ // ??????/ ??? class CTvBooking : public LightRefBase<CTvBooking> { public: - CTvBooking(CTvDatabase::Cursor &c); - CTvBooking(); - ~CTvBooking(); + CTvBooking(CTvDatabase::Cursor &c); + CTvBooking(); + ~CTvBooking(); - static int selectByID(int id, CTvBooking &CtvBook); + static int selectByID(int id, CTvBooking &CtvBook); - int bookEvent(int evtId, bool bBookFlag); - int getBookedEventList(Vector<sp<CTvBooking> > &vBv); + int bookEvent(int evtId, bool bBookFlag); + int getBookedEventList(Vector<sp<CTvBooking> > &vBv); - int getBookId() - { - return id; - }; - int getProgramId() - { - return programId; - }; - int getEventId() - { - return eventId; - }; - int getStartTime() - { - return start; - }; - int getDurationTime() - { - return duration; - }; - String8 &getProgName() - { - return progName; - }; - String8 &getEvtName() - { - return evtName; - }; + int getBookId() + { + return id; + }; + int getProgramId() + { + return programId; + }; + int getEventId() + { + return eventId; + }; + int getStartTime() + { + return start; + }; + int getDurationTime() + { + return duration; + }; + String8 &getProgName() + { + return progName; + }; + String8 &getEvtName() + { + return evtName; + }; private: - int deleteBook(int evtIdFlag) ; - int bookProgram(CTvProgram &prog, CTvEvent &evt); - int InitFromCursor(CTvDatabase::Cursor &c); + int deleteBook(int evtIdFlag) ; + int bookProgram(CTvProgram &prog, CTvEvent &evt); + int InitFromCursor(CTvDatabase::Cursor &c); private: - int id; - int programId; - int eventId; - int flag; - int status; - int repeat; - long start; - long duration; - String8 progName; - String8 evtName; + int id; + int programId; + int eventId; + int flag; + int status; + int repeat; + long start; + long duration; + String8 progName; + String8 evtName; }; #endif //_CTVBOOKING_H diff --git a/tvapi/libtv/tv/CTvDmx.cpp b/tvapi/libtv/tv/CTvDmx.cpp index 92f5598..ef6262e 100644 --- a/tvapi/libtv/tv/CTvDmx.cpp +++ b/tvapi/libtv/tv/CTvDmx.cpp @@ -1,7 +1,7 @@ #include "CTvDmx.h" CTvDmx::CTvDmx() { - mDmxDevId = 0; + mDmxDevId = 0; } CTvDmx::~CTvDmx() @@ -10,15 +10,15 @@ CTvDmx::~CTvDmx() int CTvDmx::Open(AM_DMX_OpenPara_t ¶) { - return AM_DMX_Open ( mDmxDevId, ¶ ); + return AM_DMX_Open ( mDmxDevId, ¶ ); } int CTvDmx::Close() { - return AM_DMX_Close ( mDmxDevId ); + return AM_DMX_Close ( mDmxDevId ); } int CTvDmx::SetSource(AM_DMX_Source_t source) { - return AM_DMX_SetSource ( mDmxDevId, source ); + return AM_DMX_SetSource ( mDmxDevId, source ); } diff --git a/tvapi/libtv/tv/CTvDmx.h b/tvapi/libtv/tv/CTvDmx.h index 63df2d2..4cefc71 100644 --- a/tvapi/libtv/tv/CTvDmx.h +++ b/tvapi/libtv/tv/CTvDmx.h @@ -6,12 +6,12 @@ class CTvDmx { public: - CTvDmx(); - ~CTvDmx(); - int Open(AM_DMX_OpenPara_t ¶); - int Close(); - int SetSource(AM_DMX_Source_t source); + CTvDmx(); + ~CTvDmx(); + int Open(AM_DMX_OpenPara_t ¶); + int Close(); + int SetSource(AM_DMX_Source_t source); private: - int mDmxDevId; + int mDmxDevId; }; #endif diff --git a/tvapi/libtv/tv/CTvEpg.cpp b/tvapi/libtv/tv/CTvEpg.cpp index 9726ed7..a46f9a9 100644 --- a/tvapi/libtv/tv/CTvEpg.cpp +++ b/tvapi/libtv/tv/CTvEpg.cpp @@ -13,137 +13,137 @@ void CTvEpg::epg_evt_callback(long dev_no, int event_type, void *param, void *user_data) { - CTvEpg *pEpg; - - AM_EPG_GetUserData((AM_EPG_Handle_t)dev_no, (void **)&pEpg); - - if (pEpg == NULL) return; - - if (pEpg->mpObserver == NULL) { - return; - } - switch (event_type) { - case AM_EPG_EVT_NEW_TDT: - case AM_EPG_EVT_NEW_STT: { - int utc_time; - AM_EPG_GetUTCTime(&utc_time); - pEpg->mCurEpgEv.type = EpgEvent::EVENT_TDT_END; - pEpg->mCurEpgEv.time = (long)utc_time; - pEpg->mpObserver->onEvent(pEpg->mCurEpgEv); - } - break; - case AM_EPG_EVT_UPDATE_EVENTS: - pEpg->mCurEpgEv.type = EpgEvent::EVENT_PROGRAM_EVENTS_UPDATE; - pEpg->mCurEpgEv.programID = (int)param; - pEpg->mpObserver->onEvent(pEpg->mCurEpgEv); - break; - case AM_EPG_EVT_UPDATE_PROGRAM_AV: - pEpg->mCurEpgEv.type = EpgEvent::EVENT_PROGRAM_AV_UPDATE; - pEpg->mCurEpgEv.programID = (int)param; - pEpg->mpObserver->onEvent(pEpg->mCurEpgEv); - break; - case AM_EPG_EVT_UPDATE_PROGRAM_NAME: - pEpg->mCurEpgEv.type = EpgEvent::EVENT_PROGRAM_NAME_UPDATE; - pEpg->mCurEpgEv.programID = (int)param; - pEpg->mpObserver->onEvent(pEpg->mCurEpgEv); - break; - case AM_EPG_EVT_UPDATE_TS: - pEpg->mCurEpgEv.type = EpgEvent::EVENT_CHANNEL_UPDATE; - pEpg->mCurEpgEv.channelID = (int)param; - pEpg->mpObserver->onEvent(pEpg->mCurEpgEv); - break; - default: - break; - } + CTvEpg *pEpg; + + AM_EPG_GetUserData((AM_EPG_Handle_t)dev_no, (void **)&pEpg); + + if (pEpg == NULL) return; + + if (pEpg->mpObserver == NULL) { + return; + } + switch (event_type) { + case AM_EPG_EVT_NEW_TDT: + case AM_EPG_EVT_NEW_STT: { + int utc_time; + AM_EPG_GetUTCTime(&utc_time); + pEpg->mCurEpgEv.type = EpgEvent::EVENT_TDT_END; + pEpg->mCurEpgEv.time = (long)utc_time; + pEpg->mpObserver->onEvent(pEpg->mCurEpgEv); + } + break; + case AM_EPG_EVT_UPDATE_EVENTS: + pEpg->mCurEpgEv.type = EpgEvent::EVENT_PROGRAM_EVENTS_UPDATE; + pEpg->mCurEpgEv.programID = (int)param; + pEpg->mpObserver->onEvent(pEpg->mCurEpgEv); + break; + case AM_EPG_EVT_UPDATE_PROGRAM_AV: + pEpg->mCurEpgEv.type = EpgEvent::EVENT_PROGRAM_AV_UPDATE; + pEpg->mCurEpgEv.programID = (int)param; + pEpg->mpObserver->onEvent(pEpg->mCurEpgEv); + break; + case AM_EPG_EVT_UPDATE_PROGRAM_NAME: + pEpg->mCurEpgEv.type = EpgEvent::EVENT_PROGRAM_NAME_UPDATE; + pEpg->mCurEpgEv.programID = (int)param; + pEpg->mpObserver->onEvent(pEpg->mCurEpgEv); + break; + case AM_EPG_EVT_UPDATE_TS: + pEpg->mCurEpgEv.type = EpgEvent::EVENT_CHANNEL_UPDATE; + pEpg->mCurEpgEv.channelID = (int)param; + pEpg->mpObserver->onEvent(pEpg->mCurEpgEv); + break; + default: + break; + } } void CTvEpg::Init(int fend, int dmx, int fend_mod, char *textLanguages, char *dvb_text_coding) { - mFend_dev_id = fend; - mDmx_dev_id = dmx; - mFend_mod = fend_mod; - epg_create(fend, dmx, fend_mod, textLanguages); - epg_set_dvb_text_coding(dvb_text_coding); + mFend_dev_id = fend; + mDmx_dev_id = dmx; + mFend_mod = fend_mod; + epg_create(fend, dmx, fend_mod, textLanguages); + epg_set_dvb_text_coding(dvb_text_coding); } void CTvEpg::epg_create(int fend_id, int dmx_id, int src, char *textLangs) { - AM_EPG_CreatePara_t para; - AM_ErrorCode_t ret; - AM_FEND_OpenPara_t fend_para; - AM_DMX_OpenPara_t dmx_para; - - LOGD("Opening demux%d ...", dmx_id); - memset(&dmx_para, 0, sizeof(dmx_para)); - AM_DMX_Open(dmx_id, &dmx_para); - - para.fend_dev = fend_id; - para.dmx_dev = dmx_id; - para.source = src; - para.hdb = NULL; - - - snprintf(para.text_langs, sizeof(para.text_langs), "%s", textLangs); - - - ret = AM_EPG_Create(¶, &mEpgScanHandle); - if (ret != AM_SUCCESS) { - LOGD("AM_EPG_Create failed"); - return; - } - - /*注册EIT通知事件*/ - AM_EVT_Subscribe((long)mEpgScanHandle, AM_EPG_EVT_NEW_TDT, epg_evt_callback, NULL); - AM_EVT_Subscribe((long)mEpgScanHandle, AM_EPG_EVT_NEW_STT, epg_evt_callback, NULL); - AM_EVT_Subscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_EVENTS, epg_evt_callback, NULL); - AM_EVT_Subscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_PROGRAM_AV, epg_evt_callback, NULL); - AM_EVT_Subscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_PROGRAM_NAME, epg_evt_callback, NULL); - AM_EVT_Subscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_TS, epg_evt_callback, NULL); - AM_EPG_SetUserData(mEpgScanHandle, (void *)this); + AM_EPG_CreatePara_t para; + AM_ErrorCode_t ret; + AM_FEND_OpenPara_t fend_para; + AM_DMX_OpenPara_t dmx_para; + + LOGD("Opening demux%d ...", dmx_id); + memset(&dmx_para, 0, sizeof(dmx_para)); + AM_DMX_Open(dmx_id, &dmx_para); + + para.fend_dev = fend_id; + para.dmx_dev = dmx_id; + para.source = src; + para.hdb = NULL; + + + snprintf(para.text_langs, sizeof(para.text_langs), "%s", textLangs); + + + ret = AM_EPG_Create(¶, &mEpgScanHandle); + if (ret != AM_SUCCESS) { + LOGD("AM_EPG_Create failed"); + return; + } + + /*注册EIT通知事件*/ + AM_EVT_Subscribe((long)mEpgScanHandle, AM_EPG_EVT_NEW_TDT, epg_evt_callback, NULL); + AM_EVT_Subscribe((long)mEpgScanHandle, AM_EPG_EVT_NEW_STT, epg_evt_callback, NULL); + AM_EVT_Subscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_EVENTS, epg_evt_callback, NULL); + AM_EVT_Subscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_PROGRAM_AV, epg_evt_callback, NULL); + AM_EVT_Subscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_PROGRAM_NAME, epg_evt_callback, NULL); + AM_EVT_Subscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_TS, epg_evt_callback, NULL); + AM_EPG_SetUserData(mEpgScanHandle, (void *)this); } void CTvEpg::epg_destroy() { - /*å注册EIT通知事件*/ - AM_EVT_Unsubscribe((long)mEpgScanHandle, AM_EPG_EVT_NEW_TDT, epg_evt_callback, NULL); - AM_EVT_Unsubscribe((long)mEpgScanHandle, AM_EPG_EVT_NEW_STT, epg_evt_callback, NULL); - AM_EVT_Unsubscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_EVENTS, epg_evt_callback, NULL); - AM_EVT_Unsubscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_PROGRAM_AV, epg_evt_callback, NULL); - AM_EVT_Unsubscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_PROGRAM_NAME, epg_evt_callback, NULL); - AM_EVT_Unsubscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_TS, epg_evt_callback, NULL); - AM_EPG_Destroy(mEpgScanHandle); - AM_DMX_Close(mDmx_dev_id); + /*å注册EIT通知事件*/ + AM_EVT_Unsubscribe((long)mEpgScanHandle, AM_EPG_EVT_NEW_TDT, epg_evt_callback, NULL); + AM_EVT_Unsubscribe((long)mEpgScanHandle, AM_EPG_EVT_NEW_STT, epg_evt_callback, NULL); + AM_EVT_Unsubscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_EVENTS, epg_evt_callback, NULL); + AM_EVT_Unsubscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_PROGRAM_AV, epg_evt_callback, NULL); + AM_EVT_Unsubscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_PROGRAM_NAME, epg_evt_callback, NULL); + AM_EVT_Unsubscribe((long)mEpgScanHandle, AM_EPG_EVT_UPDATE_TS, epg_evt_callback, NULL); + AM_EPG_Destroy(mEpgScanHandle); + AM_DMX_Close(mDmx_dev_id); } void CTvEpg::epg_change_mode(int op, int mode) { - AM_ErrorCode_t ret; - ret = AM_EPG_ChangeMode(mEpgScanHandle, op, mode); - if (ret != AM_SUCCESS) - LOGD("AM_EPG_ChangeMode failed"); + AM_ErrorCode_t ret; + ret = AM_EPG_ChangeMode(mEpgScanHandle, op, mode); + if (ret != AM_SUCCESS) + LOGD("AM_EPG_ChangeMode failed"); } void CTvEpg::epg_monitor_service(int srv_id) { - int ret = AM_EPG_MonitorService(mEpgScanHandle, srv_id); - if (ret != AM_SUCCESS) - LOGD("AM_EPG_MonitorService failed"); + int ret = AM_EPG_MonitorService(mEpgScanHandle, srv_id); + if (ret != AM_SUCCESS) + LOGD("AM_EPG_MonitorService failed"); } void CTvEpg::epg_set_dvb_text_coding(char *coding) { - if (!strcmp(coding, "standard")) { - AM_SI_SetDefaultDVBTextCoding(""); - } else { - AM_SI_SetDefaultDVBTextCoding(coding); - } + if (!strcmp(coding, "standard")) { + AM_SI_SetDefaultDVBTextCoding(""); + } else { + AM_SI_SetDefaultDVBTextCoding(coding); + } } @@ -151,13 +151,13 @@ void CTvEpg::epg_set_dvb_text_coding(char *coding) /*Start scan the sections.*/ void CTvEpg::startScan(int mode) { - epg_change_mode(MODE_ADD, mode); + epg_change_mode(MODE_ADD, mode); } /*Stop scan the sections.*/ void CTvEpg::stopScan(int mode) { - epg_change_mode(MODE_REMOVE, mode); + epg_change_mode(MODE_REMOVE, mode); } @@ -165,52 +165,52 @@ void CTvEpg::stopScan(int mode) void CTvEpg::enterChannel(int chan_id) { - if (chan_id == mCurScanChannelId) - return; - //already enter,leave it - if (mCurScanChannelId != INVALID_ID) { - leaveChannel(); - } + if (chan_id == mCurScanChannelId) + return; + //already enter,leave it + if (mCurScanChannelId != INVALID_ID) { + leaveChannel(); + } - if (mFend_mod == CTvChannel::MODE_ATSC) { - startScan(SCAN_PSIP_ETT | SCAN_PSIP_EIT | SCAN_MGT | SCAN_VCT | SCAN_RRT | SCAN_STT); - } else { - startScan(SCAN_EIT_ALL | SCAN_SDT | SCAN_NIT | SCAN_TDT | SCAN_CAT); - } + if (mFend_mod == CTvChannel::MODE_ATSC) { + startScan(SCAN_PSIP_ETT | SCAN_PSIP_EIT | SCAN_MGT | SCAN_VCT | SCAN_RRT | SCAN_STT); + } else { + startScan(SCAN_EIT_ALL | SCAN_SDT | SCAN_NIT | SCAN_TDT | SCAN_CAT); + } - mCurScanChannelId = chan_id; + mCurScanChannelId = chan_id; } /*Leave the channel.*/ void CTvEpg::leaveChannel() { - stopScan(SCAN_ALL); - mCurScanChannelId = INVALID_ID; + stopScan(SCAN_ALL); + mCurScanChannelId = INVALID_ID; } /*Enter the program.*/ void CTvEpg::enterProgram(int prog_id) { - if (prog_id == mCurScanProgramId) - return; + if (prog_id == mCurScanProgramId) + return; - if (mCurScanProgramId != INVALID_ID) { - leaveProgram(); - } + if (mCurScanProgramId != INVALID_ID) { + leaveProgram(); + } - mCurScanProgramId = prog_id; - epg_monitor_service(mCurScanProgramId);//---------db_id - startScan(SCAN_PAT | SCAN_PMT); + mCurScanProgramId = prog_id; + epg_monitor_service(mCurScanProgramId);//---------db_id + startScan(SCAN_PAT | SCAN_PMT); } /*Leave the program.*/ void CTvEpg::leaveProgram() { - if (mCurScanProgramId == INVALID_ID) - return; + if (mCurScanProgramId == INVALID_ID) + return; - stopScan(SCAN_PAT | SCAN_PMT); - epg_monitor_service(-1); - mCurScanProgramId = INVALID_ID; + stopScan(SCAN_PAT | SCAN_PMT); + epg_monitor_service(-1); + mCurScanProgramId = INVALID_ID; } diff --git a/tvapi/libtv/tv/CTvEpg.h b/tvapi/libtv/tv/CTvEpg.h index 2671c12..8242f3c 100644 --- a/tvapi/libtv/tv/CTvEpg.h +++ b/tvapi/libtv/tv/CTvEpg.h @@ -14,145 +14,145 @@ #define _CDTVEPG_H class CTvEpg { public : - static const int MODE_ADD = 0; - static const int MODE_REMOVE = 1; - static const int MODE_SET = 2; - - static const int SCAN_PAT = 0x01; - static const int SCAN_PMT = 0x02; - static const int SCAN_CAT = 0x04; - static const int SCAN_SDT = 0x08; - static const int SCAN_NIT = 0x10; - static const int SCAN_TDT = 0x20; - static const int SCAN_EIT_PF_ACT = 0x40; - static const int SCAN_EIT_PF_OTH = 0x80; - static const int SCAN_EIT_SCHE_ACT = 0x100; - static const int SCAN_EIT_SCHE_OTH = 0x200; - static const int SCAN_MGT = 0x400; - static const int SCAN_VCT = 0x800; - static const int SCAN_STT = 0x1000; - static const int SCAN_RRT = 0x2000; - static const int SCAN_PSIP_EIT = 0x4000; - static const int SCAN_PSIP_ETT = 0x8000; - static const int SCAN_EIT_PF_ALL = SCAN_EIT_PF_ACT | SCAN_EIT_PF_OTH; - static const int SCAN_EIT_SCHE_ALL = SCAN_EIT_SCHE_ACT | SCAN_EIT_SCHE_OTH; - static const int SCAN_EIT_ALL = SCAN_EIT_PF_ALL | SCAN_EIT_SCHE_ALL; - static const int SCAN_ALL = SCAN_PAT | SCAN_PMT | SCAN_CAT | SCAN_SDT | SCAN_NIT | SCAN_TDT | SCAN_EIT_ALL | - SCAN_MGT | SCAN_VCT | SCAN_STT | SCAN_RRT | SCAN_PSIP_EIT | SCAN_PSIP_ETT; - - static const int INVALID_ID = -1; - - //egp notify - /*static const int EVENT_PF_EIT_END = 1; - static const int EVENT_SCH_EIT_END = 2; - static const int EVENT_PMT_END = 3; - static const int EVENT_SDT_END = 4; - static const int EVENT_TDT_END = 5; - static const int EVENT_NIT_END = 6; - static const int EVENT_PROGRAM_AV_UPDATE = 7; - static const int EVENT_PROGRAM_NAME_UPDATE = 8; - static const int EVENT_PROGRAM_EVENTS_UPDATE = 9; - static const int EVENT_CHANNEL_UPDATE = 10;*/ - // - class EpgEvent : public CTvEv { - public: - EpgEvent(): CTvEv(CTvEv::TV_EVENT_EPG) - { - - }; - ~EpgEvent() - { - }; - static const int EVENT_PF_EIT_END = 1; - static const int EVENT_SCH_EIT_END = 2; - static const int EVENT_PMT_END = 3; - static const int EVENT_SDT_END = 4; - static const int EVENT_TDT_END = 5; - static const int EVENT_NIT_END = 6; - static const int EVENT_PROGRAM_AV_UPDATE = 7; - static const int EVENT_PROGRAM_NAME_UPDATE = 8; - static const int EVENT_PROGRAM_EVENTS_UPDATE = 9; - static const int EVENT_CHANNEL_UPDATE = 10; - static const int EVENT_CHANNEL_UPDATE_END = 11; - - int type; - int channelID; - int programID; - int dvbOrigNetID; - int dvbTSID; - int dvbServiceID; - long time; - int dvbVersion; - }; - - class IObserver { - public: - IObserver() {}; - virtual ~IObserver() {}; - virtual void onEvent(const EpgEvent &ev) = 0; - }; - //1 VS n - //int addObserver(IObserver* ob); - //int removeObserver(IObserver* ob); - - //1 VS 1 - int setObserver(IObserver *ob) - { - mpObserver = ob; - return 0; - } - - CTvEpg() - { - mCurScanChannelId = INVALID_ID; - mCurScanProgramId = INVALID_ID; - mEpgScanHandle = NULL; - mpObserver = NULL; - } - void Init(int fend, int dmx, int fend_mod, char *textLanguages, char *dvb_text_coding); - - ~CTvEpg() - { - epg_destroy(); - } - - /*Enter a channel.*/ - void enterChannel(int chan_id); - /*Leave the channel.*/ - void leaveChannel(); - /*Enter the program.*/ - void enterProgram(int prog_id); - /*Leave the program.*/ - void leaveProgram(); + static const int MODE_ADD = 0; + static const int MODE_REMOVE = 1; + static const int MODE_SET = 2; + + static const int SCAN_PAT = 0x01; + static const int SCAN_PMT = 0x02; + static const int SCAN_CAT = 0x04; + static const int SCAN_SDT = 0x08; + static const int SCAN_NIT = 0x10; + static const int SCAN_TDT = 0x20; + static const int SCAN_EIT_PF_ACT = 0x40; + static const int SCAN_EIT_PF_OTH = 0x80; + static const int SCAN_EIT_SCHE_ACT = 0x100; + static const int SCAN_EIT_SCHE_OTH = 0x200; + static const int SCAN_MGT = 0x400; + static const int SCAN_VCT = 0x800; + static const int SCAN_STT = 0x1000; + static const int SCAN_RRT = 0x2000; + static const int SCAN_PSIP_EIT = 0x4000; + static const int SCAN_PSIP_ETT = 0x8000; + static const int SCAN_EIT_PF_ALL = SCAN_EIT_PF_ACT | SCAN_EIT_PF_OTH; + static const int SCAN_EIT_SCHE_ALL = SCAN_EIT_SCHE_ACT | SCAN_EIT_SCHE_OTH; + static const int SCAN_EIT_ALL = SCAN_EIT_PF_ALL | SCAN_EIT_SCHE_ALL; + static const int SCAN_ALL = SCAN_PAT | SCAN_PMT | SCAN_CAT | SCAN_SDT | SCAN_NIT | SCAN_TDT | SCAN_EIT_ALL | + SCAN_MGT | SCAN_VCT | SCAN_STT | SCAN_RRT | SCAN_PSIP_EIT | SCAN_PSIP_ETT; + + static const int INVALID_ID = -1; + + //egp notify + /*static const int EVENT_PF_EIT_END = 1; + static const int EVENT_SCH_EIT_END = 2; + static const int EVENT_PMT_END = 3; + static const int EVENT_SDT_END = 4; + static const int EVENT_TDT_END = 5; + static const int EVENT_NIT_END = 6; + static const int EVENT_PROGRAM_AV_UPDATE = 7; + static const int EVENT_PROGRAM_NAME_UPDATE = 8; + static const int EVENT_PROGRAM_EVENTS_UPDATE = 9; + static const int EVENT_CHANNEL_UPDATE = 10;*/ + // + class EpgEvent : public CTvEv { + public: + EpgEvent(): CTvEv(CTvEv::TV_EVENT_EPG) + { + + }; + ~EpgEvent() + { + }; + static const int EVENT_PF_EIT_END = 1; + static const int EVENT_SCH_EIT_END = 2; + static const int EVENT_PMT_END = 3; + static const int EVENT_SDT_END = 4; + static const int EVENT_TDT_END = 5; + static const int EVENT_NIT_END = 6; + static const int EVENT_PROGRAM_AV_UPDATE = 7; + static const int EVENT_PROGRAM_NAME_UPDATE = 8; + static const int EVENT_PROGRAM_EVENTS_UPDATE = 9; + static const int EVENT_CHANNEL_UPDATE = 10; + static const int EVENT_CHANNEL_UPDATE_END = 11; + + int type; + int channelID; + int programID; + int dvbOrigNetID; + int dvbTSID; + int dvbServiceID; + long time; + int dvbVersion; + }; + + class IObserver { + public: + IObserver() {}; + virtual ~IObserver() {}; + virtual void onEvent(const EpgEvent &ev) = 0; + }; + //1 VS n + //int addObserver(IObserver* ob); + //int removeObserver(IObserver* ob); + + //1 VS 1 + int setObserver(IObserver *ob) + { + mpObserver = ob; + return 0; + } + + CTvEpg() + { + mCurScanChannelId = INVALID_ID; + mCurScanProgramId = INVALID_ID; + mEpgScanHandle = NULL; + mpObserver = NULL; + } + void Init(int fend, int dmx, int fend_mod, char *textLanguages, char *dvb_text_coding); + + ~CTvEpg() + { + epg_destroy(); + } + + /*Enter a channel.*/ + void enterChannel(int chan_id); + /*Leave the channel.*/ + void leaveChannel(); + /*Enter the program.*/ + void enterProgram(int prog_id); + /*Leave the program.*/ + void leaveProgram(); private: - // - void epg_create(int fend_id, int dmx_id, int src, char *textLangs); - void epg_destroy(); - void epg_change_mode(int op, int mode); - void epg_monitor_service(int srv_id); - void epg_set_dvb_text_coding(char *coding); - - - /*Start scan the sections.*/ - void startScan(int mode); - /*Stop scan the sections.*/ - void stopScan(int mode); - - static void epg_evt_callback(long dev_no, int event_type, void *param, void *user_data); - - // - IObserver *mpObserver; - - // - AM_EPG_Handle_t mEpgScanHandle; - int mFend_dev_id; - int mDmx_dev_id ; - int mFend_mod; - int mCurScanChannelId ; - int mCurScanProgramId ; - - // - EpgEvent mCurEpgEv; + // + void epg_create(int fend_id, int dmx_id, int src, char *textLangs); + void epg_destroy(); + void epg_change_mode(int op, int mode); + void epg_monitor_service(int srv_id); + void epg_set_dvb_text_coding(char *coding); + + + /*Start scan the sections.*/ + void startScan(int mode); + /*Stop scan the sections.*/ + void stopScan(int mode); + + static void epg_evt_callback(long dev_no, int event_type, void *param, void *user_data); + + // + IObserver *mpObserver; + + // + AM_EPG_Handle_t mEpgScanHandle; + int mFend_dev_id; + int mDmx_dev_id ; + int mFend_mod; + int mCurScanChannelId ; + int mCurScanProgramId ; + + // + EpgEvent mCurEpgEv; }; #endif //_CDTVEPG_H diff --git a/tvapi/libtv/tv/CTvEv.cpp b/tvapi/libtv/tv/CTvEv.cpp index 93f2580..eb7129d 100644 --- a/tvapi/libtv/tv/CTvEv.cpp +++ b/tvapi/libtv/tv/CTvEv.cpp @@ -7,5 +7,5 @@ #include "CTvEv.h" CTvEv::CTvEv(int type) { - mEvType = type; + mEvType = type; } diff --git a/tvapi/libtv/tv/CTvEv.h b/tvapi/libtv/tv/CTvEv.h index c364656..455cffa 100644 --- a/tvapi/libtv/tv/CTvEv.h +++ b/tvapi/libtv/tv/CTvEv.h @@ -13,180 +13,180 @@ using namespace android; class CTvEv { public: - static const int TV_EVENT_COMMOM = 0;//é€šç”¨æ¶ˆæ¯ - static const int TV_EVENT_SCANNER = 1;//æœç´¢æ¶ˆæ¯ - static const int TV_EVENT_EPG = 2;//EPG状æ€æ¶ˆæ¯ - static const int TV_EVENT_SOURCE_SWITCH = 3;//ä¿¡æºåˆ‡æ¢ - static const int TV_EVENT_SIGLE_DETECT = 4;//ä¿¡å·æ£€æµ‹ - static const int TV_EVENT_ADC_CALIBRATION = 5;//ADCæ ¡å‡† - static const int TV_EVENT_VGA = 6;//VGA - static const int TV_EVENT_3D_STATE = 7;//3D - static const int TV_EVENT_AV_PLAYBACK = 8;//PLAYBACK EVENT MSG - static const int TV_EVENT_SERIAL_COMMUNICATION = 9; - static const int TV_EVENT_SOURCE_CONNECT = 10; - static const int TV_EVENT_HDMIRX_CEC = 11; - static const int TV_EVENT_BLOCK = 12; - static const int TV_EVENT_CC = 13; //close caption - static const int TV_EVENT_VCHIP = 14; //VCHIP - static const int TV_EVENT_HDMI_IN_CAP = 15; - static const int TV_EVENT_UPGRADE_FBC = 16; - static const int TV_EVENT_2d4G_HEADSET = 17; - static const int TV_EVENT_AV = 18; - static const int TV_EVENT_SUBTITLE = 19; + static const int TV_EVENT_COMMOM = 0;//é€šç”¨æ¶ˆæ¯ + static const int TV_EVENT_SCANNER = 1;//æœç´¢æ¶ˆæ¯ + static const int TV_EVENT_EPG = 2;//EPG状æ€æ¶ˆæ¯ + static const int TV_EVENT_SOURCE_SWITCH = 3;//ä¿¡æºåˆ‡æ¢ + static const int TV_EVENT_SIGLE_DETECT = 4;//ä¿¡å·æ£€æµ‹ + static const int TV_EVENT_ADC_CALIBRATION = 5;//ADCæ ¡å‡† + static const int TV_EVENT_VGA = 6;//VGA + static const int TV_EVENT_3D_STATE = 7;//3D + static const int TV_EVENT_AV_PLAYBACK = 8;//PLAYBACK EVENT MSG + static const int TV_EVENT_SERIAL_COMMUNICATION = 9; + static const int TV_EVENT_SOURCE_CONNECT = 10; + static const int TV_EVENT_HDMIRX_CEC = 11; + static const int TV_EVENT_BLOCK = 12; + static const int TV_EVENT_CC = 13; //close caption + static const int TV_EVENT_VCHIP = 14; //VCHIP + static const int TV_EVENT_HDMI_IN_CAP = 15; + static const int TV_EVENT_UPGRADE_FBC = 16; + static const int TV_EVENT_2d4G_HEADSET = 17; + static const int TV_EVENT_AV = 18; + static const int TV_EVENT_SUBTITLE = 19; - CTvEv(int type); - virtual ~CTvEv() {}; - int getEvType() const - { - return mEvType; - }; + CTvEv(int type); + virtual ~CTvEv() {}; + int getEvType() const + { + return mEvType; + }; private: - int mEvType; + int mEvType; }; namespace TvEvent { - //events - class SignalInfoEvent: public CTvEv { - public: - SignalInfoEvent() : CTvEv ( CTvEv::TV_EVENT_SIGLE_DETECT ) - { - } - ~SignalInfoEvent() - { - } - int mTrans_fmt; - int mFmt; - int mStatus; - int mReserved; - }; + //events + class SignalInfoEvent: public CTvEv { + public: + SignalInfoEvent() : CTvEv ( CTvEv::TV_EVENT_SIGLE_DETECT ) + { + } + ~SignalInfoEvent() + { + } + int mTrans_fmt; + int mFmt; + int mStatus; + int mReserved; + }; - class VGAEvent: public CTvEv { - public: - VGAEvent() : CTvEv ( CTvEv::TV_EVENT_VGA ) - { - } - ~VGAEvent() - { - } - int mState; - }; + class VGAEvent: public CTvEv { + public: + VGAEvent() : CTvEv ( CTvEv::TV_EVENT_VGA ) + { + } + ~VGAEvent() + { + } + int mState; + }; - class ADCCalibrationEvent: public CTvEv { - public: - ADCCalibrationEvent() : CTvEv ( CTvEv::TV_EVENT_ADC_CALIBRATION ) - { - } - ~ADCCalibrationEvent() - { - } - int mState; - }; + class ADCCalibrationEvent: public CTvEv { + public: + ADCCalibrationEvent() : CTvEv ( CTvEv::TV_EVENT_ADC_CALIBRATION ) + { + } + ~ADCCalibrationEvent() + { + } + int mState; + }; - class SerialCommunicationEvent: public CTvEv { - public: - SerialCommunicationEvent(): CTvEv(CTvEv::TV_EVENT_SERIAL_COMMUNICATION) - { - } - ~SerialCommunicationEvent() - { - } - public: - int mDevId; - int mDataCount; - unsigned char mDataBuf[CC_MAX_SERIAL_RD_BUF_LEN]; - }; + class SerialCommunicationEvent: public CTvEv { + public: + SerialCommunicationEvent(): CTvEv(CTvEv::TV_EVENT_SERIAL_COMMUNICATION) + { + } + ~SerialCommunicationEvent() + { + } + public: + int mDevId; + int mDataCount; + unsigned char mDataBuf[CC_MAX_SERIAL_RD_BUF_LEN]; + }; - class SourceConnectEvent: public CTvEv { - public: - SourceConnectEvent() : CTvEv ( CTvEv::TV_EVENT_SOURCE_CONNECT ) - { - } - ~SourceConnectEvent() - { - } - int mSourceInput; - int connectionState; - }; + class SourceConnectEvent: public CTvEv { + public: + SourceConnectEvent() : CTvEv ( CTvEv::TV_EVENT_SOURCE_CONNECT ) + { + } + ~SourceConnectEvent() + { + } + int mSourceInput; + int connectionState; + }; - class HDMIRxCECEvent: public CTvEv { - public: - HDMIRxCECEvent() : CTvEv ( CTvEv::TV_EVENT_HDMIRX_CEC ) - { - } - ~HDMIRxCECEvent() - { - } - int mDataCount; - int mDataBuf[32]; - }; + class HDMIRxCECEvent: public CTvEv { + public: + HDMIRxCECEvent() : CTvEv ( CTvEv::TV_EVENT_HDMIRX_CEC ) + { + } + ~HDMIRxCECEvent() + { + } + int mDataCount; + int mDataBuf[32]; + }; - class AVPlaybackEvent: public CTvEv { - public: - AVPlaybackEvent() : CTvEv ( CTvEv::TV_EVENT_AV_PLAYBACK ) - { - } - ~AVPlaybackEvent() - { - } - static const int EVENT_AV_PLAYBACK_NODATA = 1; - static const int EVENT_AV_PLAYBACK_RESUME = 2; - static const int EVENT_AV_SCAMBLED = 3; - static const int EVENT_AV_UNSUPPORT = 4; + class AVPlaybackEvent: public CTvEv { + public: + AVPlaybackEvent() : CTvEv ( CTvEv::TV_EVENT_AV_PLAYBACK ) + { + } + ~AVPlaybackEvent() + { + } + static const int EVENT_AV_PLAYBACK_NODATA = 1; + static const int EVENT_AV_PLAYBACK_RESUME = 2; + static const int EVENT_AV_SCAMBLED = 3; + static const int EVENT_AV_UNSUPPORT = 4; - public: - int mMsgType; - int mProgramId; - }; - class BlockEvent: public CTvEv { - public: - BlockEvent() : CTvEv ( CTvEv::TV_EVENT_BLOCK ) - { - } - ~BlockEvent() - { - } - public: - bool block_status; - int programBlockType; - String8 vchipDimension; - String8 vchipAbbrev; - String8 vchipAbbtext; - }; + public: + int mMsgType; + int mProgramId; + }; + class BlockEvent: public CTvEv { + public: + BlockEvent() : CTvEv ( CTvEv::TV_EVENT_BLOCK ) + { + } + ~BlockEvent() + { + } + public: + bool block_status; + int programBlockType; + String8 vchipDimension; + String8 vchipAbbrev; + String8 vchipAbbtext; + }; - class UpgradeFBCEvent: public CTvEv { - public: - UpgradeFBCEvent() : CTvEv ( CTvEv::TV_EVENT_UPGRADE_FBC ) - { - } - ~UpgradeFBCEvent() - { - } - int mState; - int param; - }; + class UpgradeFBCEvent: public CTvEv { + public: + UpgradeFBCEvent() : CTvEv ( CTvEv::TV_EVENT_UPGRADE_FBC ) + { + } + ~UpgradeFBCEvent() + { + } + int mState; + int param; + }; - class HeadSetOf2d4GEvent: public CTvEv { - public: - HeadSetOf2d4GEvent(): CTvEv(CTvEv::TV_EVENT_2d4G_HEADSET) - { - } - ~HeadSetOf2d4GEvent() - { - } - public: - int state; - int para; - }; - class SubtitleEvent: public CTvEv { - public: - SubtitleEvent(): CTvEv(CTvEv::TV_EVENT_SUBTITLE) - { - } - ~SubtitleEvent() - { - } - int pic_width; - int pic_height; - }; + class HeadSetOf2d4GEvent: public CTvEv { + public: + HeadSetOf2d4GEvent(): CTvEv(CTvEv::TV_EVENT_2d4G_HEADSET) + { + } + ~HeadSetOf2d4GEvent() + { + } + public: + int state; + int para; + }; + class SubtitleEvent: public CTvEv { + public: + SubtitleEvent(): CTvEv(CTvEv::TV_EVENT_SUBTITLE) + { + } + ~SubtitleEvent() + { + } + int pic_width; + int pic_height; + }; }; #endif diff --git a/tvapi/libtv/tv/CTvRecord.cpp b/tvapi/libtv/tv/CTvRecord.cpp index 0327c96..564f4f3 100644 --- a/tvapi/libtv/tv/CTvRecord.cpp +++ b/tvapi/libtv/tv/CTvRecord.cpp @@ -25,252 +25,252 @@ #define DVR_DEV_COUNT (2) typedef struct { - int id; - char file_name[256]; - pthread_t thread; - int running; - int fd; + int id; + char file_name[256]; + pthread_t thread; + int running; + int fd; } DVRData; static DVRData data_threads[DVR_DEV_COUNT]; int pvr_init = 0; CTvRecord::CTvRecord() { - AM_DVR_OpenPara_t dpara; - memset(&dpara, 0, sizeof(dpara)); - AM_DVR_Open(DVR_DEV_NO, &dpara); - data_threads[DVR_DEV_NO].id = 0; - data_threads[DVR_DEV_NO].fd = -1; - data_threads[DVR_DEV_NO].running = 0; - - AM_DVR_SetSource(DVR_DEV_NO, AM_DVR_SRC_ASYNC_FIFO0); - AM_DVR_SetBufferSize(DVR_DEV_NO, DVR_BUF_SIZE); - - memset(filename, 0, sizeof(filename)); - progid = 0xFFFF; - vpid = 0x1fff; - apid = 0x1fff; + AM_DVR_OpenPara_t dpara; + memset(&dpara, 0, sizeof(dpara)); + AM_DVR_Open(DVR_DEV_NO, &dpara); + data_threads[DVR_DEV_NO].id = 0; + data_threads[DVR_DEV_NO].fd = -1; + data_threads[DVR_DEV_NO].running = 0; + + AM_DVR_SetSource(DVR_DEV_NO, AM_DVR_SRC_ASYNC_FIFO0); + AM_DVR_SetBufferSize(DVR_DEV_NO, DVR_BUF_SIZE); + + memset(filename, 0, sizeof(filename)); + progid = 0xFFFF; + vpid = 0x1fff; + apid = 0x1fff; } CTvRecord::~CTvRecord() { - AM_DVR_Close(DVR_DEV_NO); + AM_DVR_Close(DVR_DEV_NO); } void CTvRecord::dvr_init(void) { - AM_DVR_OpenPara_t para; - char buf[32]; + AM_DVR_OpenPara_t para; + char buf[32]; - if (pvr_init) - return; + if (pvr_init) + return; - memset(¶, 0, sizeof(para)); - LOGD("%s,%d", "TV", __LINE__); + memset(¶, 0, sizeof(para)); + LOGD("%s,%d", "TV", __LINE__); - AM_DVR_Open(DVR_DEV_NO, ¶); - AM_DVR_SetSource(DVR_DEV_NO, AM_DVR_SRC_ASYNC_FIFO0); - AM_DVR_SetBufferSize(DVR_DEV_NO, DVR_BUF_SIZE); + AM_DVR_Open(DVR_DEV_NO, ¶); + AM_DVR_SetSource(DVR_DEV_NO, AM_DVR_SRC_ASYNC_FIFO0); + AM_DVR_SetBufferSize(DVR_DEV_NO, DVR_BUF_SIZE); - snprintf(buf, sizeof(buf), "%d", (512 * 1024)); - AM_FileEcho("/sys/class/dmx/asyncfifo_len", buf); + snprintf(buf, sizeof(buf), "%d", (512 * 1024)); + AM_FileEcho("/sys/class/dmx/asyncfifo_len", buf); - pvr_init = 1; + pvr_init = 1; } char *CTvRecord::GetRecordFileName() { - return filename; + return filename; } void CTvRecord::SetRecordFileName(char *name) { - strcpy(filename, name); + strcpy(filename, name); } void CTvRecord::SetCurRecProgramId(int id) { - progid = id; + progid = id; } int CTvRecord::dvr_data_write(int fd, uint8_t *buf, int size) { - int ret; - int left = size; - uint8_t *p = buf; - LOGD("%s,%d", "TV", __LINE__); - - while (left > 0) { - ret = write(fd, p, left); - if (ret == -1) { - if (errno != EINTR) { - LOGD("Write DVR data failed: %s", strerror(errno)); - break; - } - ret = 0; - } - - left -= ret; - p += ret; - } - - return (size - left); + int ret; + int left = size; + uint8_t *p = buf; + LOGD("%s,%d", "TV", __LINE__); + + while (left > 0) { + ret = write(fd, p, left); + if (ret == -1) { + if (errno != EINTR) { + LOGD("Write DVR data failed: %s", strerror(errno)); + break; + } + ret = 0; + } + + left -= ret; + p += ret; + } + + return (size - left); } void *CTvRecord::dvr_data_thread(void *arg) { - DVRData *dd = (DVRData *)arg; - int cnt; - uint8_t buf[256 * 1024]; - - LOGD("Data thread for DVR%d start ,record file will save to '%s'", dd->id, dd->file_name); - LOGD("%s,%d", "TV", __LINE__); - - while (dd->running) { - cnt = AM_DVR_Read(dd->id, buf, sizeof(buf), 1000); - if (cnt <= 0) { - LOGD("No data available from DVR%d", dd->id); - usleep(200 * 1000); - continue; - } - //AM_DEBUG(1, "read from DVR%d return %d bytes", dd->id, cnt); - if (dd->fd != -1) { - dvr_data_write(dd->fd, buf, cnt); - } - } - - if (dd->fd != -1) { - close(dd->fd); - dd->fd = -1; - } - LOGD("Data thread for DVR%d now exit", dd->id); - - return NULL; + DVRData *dd = (DVRData *)arg; + int cnt; + uint8_t buf[256 * 1024]; + + LOGD("Data thread for DVR%d start ,record file will save to '%s'", dd->id, dd->file_name); + LOGD("%s,%d", "TV", __LINE__); + + while (dd->running) { + cnt = AM_DVR_Read(dd->id, buf, sizeof(buf), 1000); + if (cnt <= 0) { + LOGD("No data available from DVR%d", dd->id); + usleep(200 * 1000); + continue; + } + //AM_DEBUG(1, "read from DVR%d return %d bytes", dd->id, cnt); + if (dd->fd != -1) { + dvr_data_write(dd->fd, buf, cnt); + } + } + + if (dd->fd != -1) { + close(dd->fd); + dd->fd = -1; + } + LOGD("Data thread for DVR%d now exit", dd->id); + + return NULL; } void CTvRecord::start_data_thread(int dev_no) { - DVRData *dd = &data_threads[dev_no]; - - if (dd->running) - return; - LOGD("%s,%d,dev=%d", "TV", __LINE__, dev_no); - dd->fd = open(dd->file_name, O_TRUNC | O_WRONLY | O_CREAT, 0666); - if (dd->fd == -1) { - LOGD("Cannot open record file '%s' for DVR%d, %s", dd->file_name, dd->id, strerror(errno)); - return; - } - dd->running = 1; - pthread_create(&dd->thread, NULL, dvr_data_thread, dd); + DVRData *dd = &data_threads[dev_no]; + + if (dd->running) + return; + LOGD("%s,%d,dev=%d", "TV", __LINE__, dev_no); + dd->fd = open(dd->file_name, O_TRUNC | O_WRONLY | O_CREAT, 0666); + if (dd->fd == -1) { + LOGD("Cannot open record file '%s' for DVR%d, %s", dd->file_name, dd->id, strerror(errno)); + return; + } + dd->running = 1; + pthread_create(&dd->thread, NULL, dvr_data_thread, dd); } void CTvRecord::get_cur_program_pid(int progId) { - CTvProgram prog; - int aindex; - CTvProgram::Audio *pA; - CTvProgram::Video *pV; - int ret = CTvProgram::selectByID(progId, prog); - if (ret != 0) return; - - LOGD("%s,%d", "TV", __LINE__); - pV = prog.getVideo(); - if (pV != NULL) { - setvpid(pV->getPID()); - } - - aindex = prog.getCurrAudioTrackIndex(); - if (-1 == aindex) { //db is default - aindex = prog.getCurrentAudio(String8("eng")); - if (aindex >= 0) { - prog.setCurrAudioTrackIndex(progId, aindex); - } - } - - if (aindex >= 0) { - pA = prog.getAudio(aindex); - if (pA != NULL) { - setapid(pA->getPID()); - } - } + CTvProgram prog; + int aindex; + CTvProgram::Audio *pA; + CTvProgram::Video *pV; + int ret = CTvProgram::selectByID(progId, prog); + if (ret != 0) return; + + LOGD("%s,%d", "TV", __LINE__); + pV = prog.getVideo(); + if (pV != NULL) { + setvpid(pV->getPID()); + } + + aindex = prog.getCurrAudioTrackIndex(); + if (-1 == aindex) { //db is default + aindex = prog.getCurrentAudio(String8("eng")); + if (aindex >= 0) { + prog.setCurrAudioTrackIndex(progId, aindex); + } + } + + if (aindex >= 0) { + pA = prog.getAudio(aindex); + if (pA != NULL) { + setapid(pA->getPID()); + } + } } int CTvRecord::start_dvr() { - AM_DVR_StartRecPara_t spara; - int pid_cnt; - int pids[2]; - - /**½ö²âÊÔ×î¶à8¸öPID*/ - get_cur_program_pid(progid); - pids[0] = getvpid(); - pids[1] = getapid(); - - strcpy(data_threads[DVR_DEV_NO].file_name, GetRecordFileName()); - LOGD("%s,%d", "TV", __LINE__); - //sprintf(data_threads[DVR_DEV_NO].file_name,"%s","/storage/external_storage/sda4/testdvr.ts"); - spara.pid_count = 2; - memcpy(&spara.pids, pids, sizeof(pids)); - - if (AM_DVR_StartRecord(DVR_DEV_NO, &spara) == AM_SUCCESS) { - start_data_thread(DVR_DEV_NO); - } - - return 0; + AM_DVR_StartRecPara_t spara; + int pid_cnt; + int pids[2]; + + /**½ö²âÊÔ×î¶à8¸öPID*/ + get_cur_program_pid(progid); + pids[0] = getvpid(); + pids[1] = getapid(); + + strcpy(data_threads[DVR_DEV_NO].file_name, GetRecordFileName()); + LOGD("%s,%d", "TV", __LINE__); + //sprintf(data_threads[DVR_DEV_NO].file_name,"%s","/storage/external_storage/sda4/testdvr.ts"); + spara.pid_count = 2; + memcpy(&spara.pids, pids, sizeof(pids)); + + if (AM_DVR_StartRecord(DVR_DEV_NO, &spara) == AM_SUCCESS) { + start_data_thread(DVR_DEV_NO); + } + + return 0; } void CTvRecord::stop_data_thread(int dev_no) { - DVRData *dd = &data_threads[dev_no]; - LOGD("%s,%d", "TV", __LINE__); - - if (! dd->running) - return; - dd->running = 0; - pthread_join(dd->thread, NULL); - LOGD("Data thread for DVR%d has exit", dd->id); + DVRData *dd = &data_threads[dev_no]; + LOGD("%s,%d", "TV", __LINE__); + + if (! dd->running) + return; + dd->running = 0; + pthread_join(dd->thread, NULL); + LOGD("Data thread for DVR%d has exit", dd->id); } void CTvRecord::StartRecord(int id) { - AM_DVR_OpenPara_t dpara; - fe_status_t status; - char buf[32]; - - AM_FEND_GetStatus(FEND_DEV_NO, &status); - - if (status & FE_HAS_LOCK) { - LOGD("locked\n"); - } else { - LOGD("unlocked\n"); - return ; - } - SetCurRecProgramId(id); - start_dvr(); - - return; + AM_DVR_OpenPara_t dpara; + fe_status_t status; + char buf[32]; + + AM_FEND_GetStatus(FEND_DEV_NO, &status); + + if (status & FE_HAS_LOCK) { + LOGD("locked\n"); + } else { + LOGD("unlocked\n"); + return ; + } + SetCurRecProgramId(id); + start_dvr(); + + return; } void CTvRecord::StopRecord() { - int i = 0; - LOGD("stop record for %d", DVR_DEV_NO); - AM_DVR_StopRecord(DVR_DEV_NO); + int i = 0; + LOGD("stop record for %d", DVR_DEV_NO); + AM_DVR_StopRecord(DVR_DEV_NO); - //for (i=0; i< DVR_DEV_COUNT; i++) - { - if (data_threads[DVR_DEV_NO].running) - stop_data_thread(DVR_DEV_NO); - //LOGD("Closing DMX%d...", i); - } + //for (i=0; i< DVR_DEV_COUNT; i++) + { + if (data_threads[DVR_DEV_NO].running) + stop_data_thread(DVR_DEV_NO); + //LOGD("Closing DMX%d...", i); + } } void CTvRecord::SetRecCurTsOrCurProgram(int sel) { - int i = 0; - char buf[50]; - memset(buf, 0, sizeof(buf)); - for (; i < 3; i++) { - snprintf(buf, sizeof(buf), "/sys/class/stb/dvr%d_mode", i); - if (sel) - AM_FileEcho(buf, "ts"); - else - AM_FileEcho(buf, "pid"); - } + int i = 0; + char buf[50]; + memset(buf, 0, sizeof(buf)); + for (; i < 3; i++) { + snprintf(buf, sizeof(buf), "/sys/class/stb/dvr%d_mode", i); + if (sel) + AM_FileEcho(buf, "ts"); + else + AM_FileEcho(buf, "pid"); + } } diff --git a/tvapi/libtv/tv/CTvRecord.h b/tvapi/libtv/tv/CTvRecord.h index e63581d..29d13e7 100644 --- a/tvapi/libtv/tv/CTvRecord.h +++ b/tvapi/libtv/tv/CTvRecord.h @@ -2,44 +2,44 @@ class CTvRecord { private : - char filename[256]; - int progid; - int vpid; - int apid; - static void dvr_init(void); - void setvpid(int vid) - { - this->vpid = vid; - } - int getvpid() - { - return vpid; - } - void setapid(int aid) - { - this->apid = aid; - } - int getapid() - { - return apid; - } - static int dvr_data_write(int fd, uint8_t *buf, int size); - static void *dvr_data_thread(void *arg); - char *GetRecordFileName(); - void SetCurRecProgramId(int id); - void start_data_thread(int dev_no); - void get_cur_program_pid(int progId); - int start_dvr(void); - void stop_data_thread(int dev_no); + char filename[256]; + int progid; + int vpid; + int apid; + static void dvr_init(void); + void setvpid(int vid) + { + this->vpid = vid; + } + int getvpid() + { + return vpid; + } + void setapid(int aid) + { + this->apid = aid; + } + int getapid() + { + return apid; + } + static int dvr_data_write(int fd, uint8_t *buf, int size); + static void *dvr_data_thread(void *arg); + char *GetRecordFileName(); + void SetCurRecProgramId(int id); + void start_data_thread(int dev_no); + void get_cur_program_pid(int progId); + int start_dvr(void); + void stop_data_thread(int dev_no); public: - CTvRecord(); - ~CTvRecord(); - void SetRecordFileName(char *name); - void StartRecord(int id); - void StopRecord(); - void SetRecCurTsOrCurProgram(int sel); // 1: all program in the Ts; 0:current program + CTvRecord(); + ~CTvRecord(); + void SetRecordFileName(char *name); + void StartRecord(int id); + void StopRecord(); + void SetRecCurTsOrCurProgram(int sel); // 1: all program in the Ts; 0:current program diff --git a/tvapi/libtv/tv/CTvScanner.cpp b/tvapi/libtv/tv/CTvScanner.cpp index d451a27..83430e1 100644 --- a/tvapi/libtv/tv/CTvScanner.cpp +++ b/tvapi/libtv/tv/CTvScanner.cpp @@ -24,272 +24,272 @@ CTvScanner *CTvScanner::m_s_Scanner = NULL; //} CTvScanner::CTvScanner(CTvin *pTvin) { - mbScanStart = false; - mpObserver = NULL; - mSource = 0xff; - mMinFreq = 1; - mMaxFreq = 100; - mCurScanStartFreq = 1; - mCurScanEndFreq = 100; - mpTvin = pTvin; + mbScanStart = false; + mpObserver = NULL; + mSource = 0xff; + mMinFreq = 1; + mMaxFreq = 100; + mCurScanStartFreq = 1; + mCurScanEndFreq = 100; + mpTvin = pTvin; } CTvScanner::~CTvScanner() { - AM_EVT_Unsubscribe((long)mScanHandle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); - AM_EVT_Unsubscribe((long)mScanHandle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); + AM_EVT_Unsubscribe((long)mScanHandle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); + AM_EVT_Unsubscribe((long)mScanHandle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); } AM_Bool_t CTvScanner::atv_cvbs_lock_check(v4l2_std_id *colorStd) { - tvafe_cvbs_video_t cvbs_lock_status; - int ret, i = 0; - - *colorStd = 0; - while (i < 20) { - ret = mpTvin->AFE_GetCVBSLockStatus(&cvbs_lock_status); - - if (cvbs_lock_status == TVAFE_CVBS_VIDEO_HV_LOCKED) - //||cvbs_lock_status == TVAFE_CVBS_VIDEO_V_LOCKED - //||cvbs_lock_status == TVAFE_CVBS_VIDEO_H_LOCKED) - { - usleep(2000 * 1000); - tvin_info_t info; - mpTvin->VDIN_GetSignalInfo(&info); - *colorStd = CTvin::CvbsFtmToV4l2ColorStd(info.fmt); - LOGD("atv_cvbs_lock_check locked and cvbs fmt = 0x%x std = 0x%x", info.fmt, *colorStd); - return true; - } - usleep(50 * 1000); - i++; - } - return false; + tvafe_cvbs_video_t cvbs_lock_status; + int ret, i = 0; + + *colorStd = 0; + while (i < 20) { + ret = mpTvin->AFE_GetCVBSLockStatus(&cvbs_lock_status); + + if (cvbs_lock_status == TVAFE_CVBS_VIDEO_HV_LOCKED) + //||cvbs_lock_status == TVAFE_CVBS_VIDEO_V_LOCKED + //||cvbs_lock_status == TVAFE_CVBS_VIDEO_H_LOCKED) + { + usleep(2000 * 1000); + tvin_info_t info; + mpTvin->VDIN_GetSignalInfo(&info); + *colorStd = CTvin::CvbsFtmToV4l2ColorStd(info.fmt); + LOGD("atv_cvbs_lock_check locked and cvbs fmt = 0x%x std = 0x%x", info.fmt, *colorStd); + return true; + } + usleep(50 * 1000); + i++; + } + return false; } AM_Bool_t CTvScanner::s_atv_cvbs_lock_check(void *data) { - if (data == NULL) return false; - AM_SCAN_ATV_LOCK_PARA_t *pAtvPara = (AM_SCAN_ATV_LOCK_PARA_t *)data; - CTvScanner *pScan = (CTvScanner *)(pAtvPara->pData); - v4l2_std_id std; - AM_Bool_t isLock = pScan->atv_cvbs_lock_check(&std); - pAtvPara->pOutColorSTD = std; - return isLock; + if (data == NULL) return false; + AM_SCAN_ATV_LOCK_PARA_t *pAtvPara = (AM_SCAN_ATV_LOCK_PARA_t *)data; + CTvScanner *pScan = (CTvScanner *)(pAtvPara->pData); + v4l2_std_id std; + AM_Bool_t isLock = pScan->atv_cvbs_lock_check(&std); + pAtvPara->pOutColorSTD = std; + return isLock; } int CTvScanner::ATVManualScan(int min_freq, int max_freq, int std, int store_Type, int channel_num) { - stopScan(); - if (min_freq <= 0 || max_freq <= 0 || min_freq == max_freq) { - LOGD("atv manual scan freq error start = %d end = %d", min_freq, max_freq); - return -1; - } - int direction = (max_freq >= min_freq) ? 1 : 0; + stopScan(); + if (min_freq <= 0 || max_freq <= 0 || min_freq == max_freq) { + LOGD("atv manual scan freq error start = %d end = %d", min_freq, max_freq); + return -1; + } + int direction = (max_freq >= min_freq) ? 1 : 0; - if (!mbScanStart) { //not start or stop - // - mCurScanStartFreq = min_freq; - mCurScanEndFreq = max_freq; - AM_SCAN_CreatePara_t para; - AM_DMX_OpenPara_t dmx_para; - AM_SCAN_Handle_t handle = 0, i; - LOGD("startScanThread"); - // Create the scan - memset(¶, 0, sizeof(para)); - para.fend_dev_id = 0;//default - para.mode = AM_SCAN_MODE_ATV_DTV;// - para.atv_para.mode = AM_SCAN_ATVMODE_MANUAL; - para.atv_para.storeMode = store_Type; - para.dtv_para.mode = AM_SCAN_DTVMODE_NONE; - - para.atv_para.am_scan_atv_cvbs_lock = s_atv_cvbs_lock_check; - - para.atv_para.fe_cnt = 3; - para.atv_para.fe_paras = static_cast<AM_FENDCTRL_DVBFrontendParameters_t *>(calloc(3, sizeof(AM_FENDCTRL_DVBFrontendParameters_t))); - if (para.atv_para.fe_paras != NULL) { - memset(para.atv_para.fe_paras, 0, 3 * sizeof(AM_FENDCTRL_DVBFrontendParameters_t)); - para.atv_para.fe_paras[0].m_type = FE_ANALOG; - para.atv_para.fe_paras[0].analog.para.frequency = min_freq; - para.atv_para.fe_paras[1].m_type = FE_ANALOG; - para.atv_para.fe_paras[1].analog.para.frequency = max_freq; - para.atv_para.fe_paras[2].m_type = FE_ANALOG; - para.atv_para.fe_paras[2].analog.para.frequency = min_freq; - } - para.atv_para.direction = direction; - para.atv_para.default_std = std; + if (!mbScanStart) { //not start or stop + // + mCurScanStartFreq = min_freq; + mCurScanEndFreq = max_freq; + AM_SCAN_CreatePara_t para; + AM_DMX_OpenPara_t dmx_para; + AM_SCAN_Handle_t handle = 0, i; + LOGD("startScanThread"); + // Create the scan + memset(¶, 0, sizeof(para)); + para.fend_dev_id = 0;//default + para.mode = AM_SCAN_MODE_ATV_DTV;// + para.atv_para.mode = AM_SCAN_ATVMODE_MANUAL; + para.atv_para.storeMode = store_Type; + para.dtv_para.mode = AM_SCAN_DTVMODE_NONE; + + para.atv_para.am_scan_atv_cvbs_lock = s_atv_cvbs_lock_check; + + para.atv_para.fe_cnt = 3; + para.atv_para.fe_paras = static_cast<AM_FENDCTRL_DVBFrontendParameters_t *>(calloc(3, sizeof(AM_FENDCTRL_DVBFrontendParameters_t))); + if (para.atv_para.fe_paras != NULL) { + memset(para.atv_para.fe_paras, 0, 3 * sizeof(AM_FENDCTRL_DVBFrontendParameters_t)); + para.atv_para.fe_paras[0].m_type = FE_ANALOG; + para.atv_para.fe_paras[0].analog.para.frequency = min_freq; + para.atv_para.fe_paras[1].m_type = FE_ANALOG; + para.atv_para.fe_paras[1].analog.para.frequency = max_freq; + para.atv_para.fe_paras[2].m_type = FE_ANALOG; + para.atv_para.fe_paras[2].analog.para.frequency = min_freq; + } + para.atv_para.direction = direction; + para.atv_para.default_std = std; - para.atv_para.channel_id = -1; - para.atv_para.cvbs_unlocked_step = 1000000; - para.atv_para.cvbs_locked_step = 3000000; - para.atv_para.afc_range = 2000000; + para.atv_para.channel_id = -1; + para.atv_para.cvbs_unlocked_step = 1000000; + para.atv_para.cvbs_locked_step = 3000000; + para.atv_para.afc_range = 2000000; - para.dtv_para.resort_all = AM_FALSE; - para.dtv_para.sort_method = AM_SCAN_SORT_BY_FREQ_SRV_ID; - para.store_cb = am_scan_atv_store; - para.atv_para.channel_num = channel_num; + para.dtv_para.resort_all = AM_FALSE; + para.dtv_para.sort_method = AM_SCAN_SORT_BY_FREQ_SRV_ID; + para.store_cb = am_scan_atv_store; + para.atv_para.channel_num = channel_num; - memset(&dmx_para, 0, sizeof(dmx_para)); - AM_DMX_Open(para.dtv_para.dmx_dev_id, &dmx_para); + memset(&dmx_para, 0, sizeof(dmx_para)); + AM_DMX_Open(para.dtv_para.dmx_dev_id, &dmx_para); - if ((para.dtv_para.mode & 0x07) != AM_SCAN_DTVMODE_NONE) { - AM_FEND_SetMode(para.fend_dev_id, para.dtv_para.source); - tv_scan_reconnect_dmx_to_fend(para.dtv_para.dmx_dev_id, para.fend_dev_id); - } + if ((para.dtv_para.mode & 0x07) != AM_SCAN_DTVMODE_NONE) { + AM_FEND_SetMode(para.fend_dev_id, para.dtv_para.source); + tv_scan_reconnect_dmx_to_fend(para.dtv_para.dmx_dev_id, para.fend_dev_id); + } - LOGD("atv manual scan mode = %d", para.dtv_para.mode); - // Start Scan - if (AM_SCAN_Create(¶, &handle) != AM_SUCCESS) { - LOGD("SCAN CREATE fail"); - handle = NULL; - } else { - mScanHandle = handle; - AM_SCAN_SetUserData(handle, (void *)this); - AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); - AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); - if (AM_SCAN_Start(handle) != AM_SUCCESS) { - AM_SCAN_Destroy(handle, AM_FALSE); - AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); - AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); - handle = NULL; - } - } - if (para.atv_para.fe_paras != NULL) - free(para.atv_para.fe_paras); - if (para.dtv_para.fe_paras != NULL) - free(para.dtv_para.fe_paras); + LOGD("atv manual scan mode = %d", para.dtv_para.mode); + // Start Scan + if (AM_SCAN_Create(¶, &handle) != AM_SUCCESS) { + LOGD("SCAN CREATE fail"); + handle = NULL; + } else { + mScanHandle = handle; + AM_SCAN_SetUserData(handle, (void *)this); + AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); + AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); + if (AM_SCAN_Start(handle) != AM_SUCCESS) { + AM_SCAN_Destroy(handle, AM_FALSE); + AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); + AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); + handle = NULL; + } + } + if (para.atv_para.fe_paras != NULL) + free(para.atv_para.fe_paras); + if (para.dtv_para.fe_paras != NULL) + free(para.dtv_para.fe_paras); - if (handle == NULL) { - return -1; - } - mbScanStart = true;//start call ok - } else { - LOGD("scanning and not stop"); - } + if (handle == NULL) { + return -1; + } + mbScanStart = true;//start call ok + } else { + LOGD("scanning and not stop"); + } - return 0; + return 0; } void CTvScanner::am_scan_atv_store(AM_SCAN_Result_t *result) { - AM_SCAN_TS_t *ts; - int i, ret, db_sat_id = -1; - //AM_SCAN_RecTab_t srv_tab; - for (ts = result->tses; ts != NULL; ts = ts->p_next) { - // - m_s_Scanner->mCurEv.clear(); - m_s_Scanner->mCurEv.mType = ScannerEvent::EVENT_ATV_PROG_DATA; - m_s_Scanner->mCurEv.mVideoStd = CFrontEnd::stdAndColorToVideoEnum(ts->analog.std); - m_s_Scanner->mCurEv.mAudioStd = CFrontEnd::stdAndColorToAudioEnum(ts->analog.std); - m_s_Scanner->mCurEv.mIsAutoStd = ((ts->analog.std & V4L2_COLOR_STD_AUTO) == V4L2_COLOR_STD_AUTO) ? 1 : 0; - m_s_Scanner->mCurEv.mFrequency = ts->analog.freq; - // - m_s_Scanner->sendEvent(m_s_Scanner->mCurEv); - LOGD("ATV: > freq:%d", m_s_Scanner->mCurEv.mFrequency); - } + AM_SCAN_TS_t *ts; + int i, ret, db_sat_id = -1; + //AM_SCAN_RecTab_t srv_tab; + for (ts = result->tses; ts != NULL; ts = ts->p_next) { + // + m_s_Scanner->mCurEv.clear(); + m_s_Scanner->mCurEv.mType = ScannerEvent::EVENT_ATV_PROG_DATA; + m_s_Scanner->mCurEv.mVideoStd = CFrontEnd::stdAndColorToVideoEnum(ts->analog.std); + m_s_Scanner->mCurEv.mAudioStd = CFrontEnd::stdAndColorToAudioEnum(ts->analog.std); + m_s_Scanner->mCurEv.mIsAutoStd = ((ts->analog.std & V4L2_COLOR_STD_AUTO) == V4L2_COLOR_STD_AUTO) ? 1 : 0; + m_s_Scanner->mCurEv.mFrequency = ts->analog.freq; + // + m_s_Scanner->sendEvent(m_s_Scanner->mCurEv); + LOGD("ATV: > freq:%d", m_s_Scanner->mCurEv.mFrequency); + } } void CTvScanner::setGlobalScanerObject(CTvScanner *s) { - m_s_Scanner = s; + m_s_Scanner = s; } int CTvScanner::autoAtvScan(int min_freq, int max_freq, int std, int search_type) { - stopScan(); - if (min_freq <= 0 || max_freq <= 0 || min_freq > max_freq) - return -1; - if (!mbScanStart) { //not start or stop - mCurScanStartFreq = min_freq; - mCurScanEndFreq = max_freq; + stopScan(); + if (min_freq <= 0 || max_freq <= 0 || min_freq > max_freq) + return -1; + if (!mbScanStart) { //not start or stop + mCurScanStartFreq = min_freq; + mCurScanEndFreq = max_freq; - AM_SCAN_CreatePara_t para; - AM_DMX_OpenPara_t dmx_para; - AM_SCAN_Handle_t handle = 0, i; - // Create the scan - memset(¶, 0, sizeof(para)); + AM_SCAN_CreatePara_t para; + AM_DMX_OpenPara_t dmx_para; + AM_SCAN_Handle_t handle = 0, i; + // Create the scan + memset(¶, 0, sizeof(para)); - para.fend_dev_id = 0;//default - para.mode = AM_SCAN_MODE_ATV_DTV;// - para.atv_para.mode = AM_SCAN_ATVMODE_AUTO; - if (search_type == 1) - para.atv_para.storeMode = 1; - else - para.atv_para.storeMode = 0; - para.dtv_para.mode = AM_SCAN_DTVMODE_NONE; - - para.atv_para.am_scan_atv_cvbs_lock = s_atv_cvbs_lock_check; - - para.atv_para.fe_cnt = 3; - para.atv_para.fe_paras = static_cast<AM_FENDCTRL_DVBFrontendParameters_t *>(calloc(3, sizeof(AM_FENDCTRL_DVBFrontendParameters_t))); - if (para.atv_para.fe_paras != NULL) { - memset(para.atv_para.fe_paras, 0, 3 * sizeof(AM_FENDCTRL_DVBFrontendParameters_t)); - para.atv_para.fe_paras[0].m_type = FE_ANALOG; - para.atv_para.fe_paras[0].analog.para.frequency = min_freq; - para.atv_para.fe_paras[1].m_type = FE_ANALOG; - para.atv_para.fe_paras[1].analog.para.frequency = max_freq; - para.atv_para.fe_paras[2].m_type = FE_ANALOG; - para.atv_para.fe_paras[2].analog.para.frequency = 0; - } + para.fend_dev_id = 0;//default + para.mode = AM_SCAN_MODE_ATV_DTV;// + para.atv_para.mode = AM_SCAN_ATVMODE_AUTO; + if (search_type == 1) + para.atv_para.storeMode = 1; + else + para.atv_para.storeMode = 0; + para.dtv_para.mode = AM_SCAN_DTVMODE_NONE; + + para.atv_para.am_scan_atv_cvbs_lock = s_atv_cvbs_lock_check; + + para.atv_para.fe_cnt = 3; + para.atv_para.fe_paras = static_cast<AM_FENDCTRL_DVBFrontendParameters_t *>(calloc(3, sizeof(AM_FENDCTRL_DVBFrontendParameters_t))); + if (para.atv_para.fe_paras != NULL) { + memset(para.atv_para.fe_paras, 0, 3 * sizeof(AM_FENDCTRL_DVBFrontendParameters_t)); + para.atv_para.fe_paras[0].m_type = FE_ANALOG; + para.atv_para.fe_paras[0].analog.para.frequency = min_freq; + para.atv_para.fe_paras[1].m_type = FE_ANALOG; + para.atv_para.fe_paras[1].analog.para.frequency = max_freq; + para.atv_para.fe_paras[2].m_type = FE_ANALOG; + para.atv_para.fe_paras[2].analog.para.frequency = 0; + } - para.atv_para.direction = 0; - para.atv_para.default_std = std; + para.atv_para.direction = 0; + para.atv_para.default_std = std; - para.atv_para.channel_id = -1; - para.atv_para.afc_unlocked_step = 3000000; - para.atv_para.cvbs_unlocked_step = 1500000; - para.atv_para.cvbs_locked_step = 6000000; - para.atv_para.afc_range = 2000000; + para.atv_para.channel_id = -1; + para.atv_para.afc_unlocked_step = 3000000; + para.atv_para.cvbs_unlocked_step = 1500000; + para.atv_para.cvbs_locked_step = 6000000; + para.atv_para.afc_range = 2000000; - para.dtv_para.resort_all = AM_FALSE; - para.dtv_para.sort_method = AM_SCAN_SORT_BY_FREQ_SRV_ID; - para.store_cb = am_scan_atv_store; + para.dtv_para.resort_all = AM_FALSE; + para.dtv_para.sort_method = AM_SCAN_SORT_BY_FREQ_SRV_ID; + para.store_cb = am_scan_atv_store; - memset(&dmx_para, 0, sizeof(dmx_para)); - AM_DMX_Open(para.dtv_para.dmx_dev_id, &dmx_para); + memset(&dmx_para, 0, sizeof(dmx_para)); + AM_DMX_Open(para.dtv_para.dmx_dev_id, &dmx_para); - if ((para.dtv_para.mode & 0x07) != AM_SCAN_DTVMODE_NONE) { - AM_FEND_SetMode(para.fend_dev_id, para.dtv_para.source); - tv_scan_reconnect_dmx_to_fend(para.dtv_para.dmx_dev_id, para.fend_dev_id); - } + if ((para.dtv_para.mode & 0x07) != AM_SCAN_DTVMODE_NONE) { + AM_FEND_SetMode(para.fend_dev_id, para.dtv_para.source); + tv_scan_reconnect_dmx_to_fend(para.dtv_para.dmx_dev_id, para.fend_dev_id); + } - // prog->dmx_id = para.dtv_para.dmx_dev_id; - // prog->fend_id = para.fend_dev_id; - // prog->mode = para.dtv_para.mode; - LOGD(" mode = %d", para.dtv_para.mode); - // Start Scan - if (AM_SCAN_Create(¶, &handle) != AM_SUCCESS) { - LOGD("SCAN CREATE fail"); - handle = NULL; - } else { - mScanHandle = handle; - AM_SCAN_SetUserData(handle, (void *)this); - //注册æœç´¢äº‹ä»¶ - AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); - //注册信å·è´¨é‡é€šçŸ¥äº‹ä»¶ - AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); - if (AM_SCAN_Start(handle) != AM_SUCCESS) { - AM_SCAN_Destroy(handle, AM_FALSE); - AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); - AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); - handle = NULL; - } - } - if (para.atv_para.fe_paras != NULL) - free(para.atv_para.fe_paras); - if (para.dtv_para.fe_paras != NULL) - free(para.dtv_para.fe_paras); + // prog->dmx_id = para.dtv_para.dmx_dev_id; + // prog->fend_id = para.fend_dev_id; + // prog->mode = para.dtv_para.mode; + LOGD(" mode = %d", para.dtv_para.mode); + // Start Scan + if (AM_SCAN_Create(¶, &handle) != AM_SUCCESS) { + LOGD("SCAN CREATE fail"); + handle = NULL; + } else { + mScanHandle = handle; + AM_SCAN_SetUserData(handle, (void *)this); + //注册æœç´¢äº‹ä»¶ + AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); + //注册信å·è´¨é‡é€šçŸ¥äº‹ä»¶ + AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); + if (AM_SCAN_Start(handle) != AM_SUCCESS) { + AM_SCAN_Destroy(handle, AM_FALSE); + AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); + AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); + handle = NULL; + } + } + if (para.atv_para.fe_paras != NULL) + free(para.atv_para.fe_paras); + if (para.dtv_para.fe_paras != NULL) + free(para.dtv_para.fe_paras); - if (handle == NULL) { - return -1; - } - mbScanStart = true;//start call ok - } else { - LOGD("scanning and not stop"); - } + if (handle == NULL) { + return -1; + } + mbScanStart = true;//start call ok + } else { + LOGD("scanning and not stop"); + } - return 0; + return 0; } /* @@ -409,529 +409,529 @@ int CTvScanner::manualAtscScan(int channelID, int attennaType, int std) dvbpsi_pat_t *CTvScanner::get_valid_pats(AM_SCAN_TS_t *ts) { - dvbpsi_pat_t *valid_pat = NULL; - if (!IS_DVBT2_TS(ts->digital.fend_para)) { - valid_pat = ts->digital.pats; - } else if (IS_ISDBT_TS(ts->digital.fend_para)) { - /* process for isdbt one-seg inserted PAT, which ts_id is 0xffff */ - valid_pat = ts->digital.pats; - while (valid_pat != NULL && valid_pat->i_ts_id == 0xffff) { - valid_pat = valid_pat->p_next; - } + dvbpsi_pat_t *valid_pat = NULL; + if (!IS_DVBT2_TS(ts->digital.fend_para)) { + valid_pat = ts->digital.pats; + } else if (IS_ISDBT_TS(ts->digital.fend_para)) { + /* process for isdbt one-seg inserted PAT, which ts_id is 0xffff */ + valid_pat = ts->digital.pats; + while (valid_pat != NULL && valid_pat->i_ts_id == 0xffff) { + valid_pat = valid_pat->p_next; + } - if (valid_pat == NULL && ts->digital.pats != NULL) { - valid_pat = ts->digital.pats; + if (valid_pat == NULL && ts->digital.pats != NULL) { + valid_pat = ts->digital.pats; - if (ts->digital.sdts != NULL) - valid_pat->i_ts_id = ts->digital.sdts->i_ts_id; - } - } else { - int plp; + if (ts->digital.sdts != NULL) + valid_pat->i_ts_id = ts->digital.sdts->i_ts_id; + } + } else { + int plp; - for (plp = 0; plp < ts->digital.dvbt2_data_plp_num; plp++) { - if (ts->digital.dvbt2_data_plps[plp].pats != NULL) { - valid_pat = ts->digital.dvbt2_data_plps[plp].pats; - break; - } - } - } + for (plp = 0; plp < ts->digital.dvbt2_data_plp_num; plp++) { + if (ts->digital.dvbt2_data_plps[plp].pats != NULL) { + valid_pat = ts->digital.dvbt2_data_plps[plp].pats; + break; + } + } + } - return valid_pat; + return valid_pat; } void CTvScanner::scan_process_ts_info(AM_SCAN_Result_t *result, AM_SCAN_TS_t *ts, ScannerEvent *evt) { - dvbpsi_nit_t *nit; - dvbpsi_descriptor_t *descr; - - evt->mONetId = -1; - evt->mTsId = -1; - - if (ts->digital.sdts) - evt->mONetId = ts->digital.sdts->i_network_id; - else if (IS_DVBT2_TS(ts->digital.fend_para) && ts->digital.dvbt2_data_plp_num > 0 && ts->digital.dvbt2_data_plps[0].sdts) - evt->mONetId = ts->digital.dvbt2_data_plps[0].sdts->i_network_id; - evt->mTsId = get_valid_pats(ts)->i_ts_id; - - evt->mFrequency = (int)dvb_fend_para(ts->digital.fend_para)->frequency; - evt->mMode = ts->digital.fend_para.m_type; - if (IS_DVBT2_TS(ts->digital.fend_para)) - evt->mOfdm_mode = (int)dvb_fend_para(ts->digital.fend_para)->u.ofdm.ofdm_mode; - else if ((ts->digital.fend_para.m_type == FE_DTMB) || (ts->digital.fend_para.m_type == FE_OFDM)) - evt->mBandwidth = (int)dvb_fend_para(ts->digital.fend_para)->u.ofdm.bandwidth; - else if (ts->digital.fend_para.m_type == FE_QAM) { - evt->mSymbolRate = (int)dvb_fend_para(ts->digital.fend_para)->u.qam.symbol_rate; - evt->mModulation = (int)dvb_fend_para(ts->digital.fend_para)->u.qam.modulation; - } + dvbpsi_nit_t *nit; + dvbpsi_descriptor_t *descr; + + evt->mONetId = -1; + evt->mTsId = -1; + + if (ts->digital.sdts) + evt->mONetId = ts->digital.sdts->i_network_id; + else if (IS_DVBT2_TS(ts->digital.fend_para) && ts->digital.dvbt2_data_plp_num > 0 && ts->digital.dvbt2_data_plps[0].sdts) + evt->mONetId = ts->digital.dvbt2_data_plps[0].sdts->i_network_id; + evt->mTsId = get_valid_pats(ts)->i_ts_id; + + evt->mFrequency = (int)dvb_fend_para(ts->digital.fend_para)->frequency; + evt->mMode = ts->digital.fend_para.m_type; + if (IS_DVBT2_TS(ts->digital.fend_para)) + evt->mOfdm_mode = (int)dvb_fend_para(ts->digital.fend_para)->u.ofdm.ofdm_mode; + else if ((ts->digital.fend_para.m_type == FE_DTMB) || (ts->digital.fend_para.m_type == FE_OFDM)) + evt->mBandwidth = (int)dvb_fend_para(ts->digital.fend_para)->u.ofdm.bandwidth; + else if (ts->digital.fend_para.m_type == FE_QAM) { + evt->mSymbolRate = (int)dvb_fend_para(ts->digital.fend_para)->u.qam.symbol_rate; + evt->mModulation = (int)dvb_fend_para(ts->digital.fend_para)->u.qam.modulation; + } } void CTvScanner::scan_init_service_info(SCAN_ServiceInfo_t *srv_info) { - memset(srv_info, 0, sizeof(SCAN_ServiceInfo_t)); - srv_info->vid = 0x1fff; - srv_info->vfmt = -1; - srv_info->free_ca = 1; - srv_info->srv_id = 0xffff; - srv_info->srv_dbid = -1; - srv_info->satpara_dbid = -1; - srv_info->pmt_pid = 0x1fff; - srv_info->plp_id = -1; - srv_info->sdt_version = 0xff; + memset(srv_info, 0, sizeof(SCAN_ServiceInfo_t)); + srv_info->vid = 0x1fff; + srv_info->vfmt = -1; + srv_info->free_ca = 1; + srv_info->srv_id = 0xffff; + srv_info->srv_dbid = -1; + srv_info->satpara_dbid = -1; + srv_info->pmt_pid = 0x1fff; + srv_info->plp_id = -1; + srv_info->sdt_version = 0xff; } int CTvScanner::get_pmt_pid(dvbpsi_pat_t *pats, int program_number) { - dvbpsi_pat_t *pat; - dvbpsi_pat_program_t *prog; + dvbpsi_pat_t *pat; + dvbpsi_pat_program_t *prog; - AM_SI_LIST_BEGIN(pats, pat) - AM_SI_LIST_BEGIN(pat->p_first_program, prog) - if (prog->i_number == program_number) - return prog->i_pid; - AM_SI_LIST_END() - AM_SI_LIST_END() + AM_SI_LIST_BEGIN(pats, pat) + AM_SI_LIST_BEGIN(pat->p_first_program, prog) + if (prog->i_number == program_number) + return prog->i_pid; + AM_SI_LIST_END() + AM_SI_LIST_END() - return 0x1fff; + return 0x1fff; } void CTvScanner::scan_extract_ca_scrambled_flag(dvbpsi_descriptor_t *p_first_descriptor, int *flag) { - dvbpsi_descriptor_t *descr; + dvbpsi_descriptor_t *descr; - AM_SI_LIST_BEGIN(p_first_descriptor, descr) - if (descr->i_tag == AM_SI_DESCR_CA && ! *flag) { - LOGD( "Found CA descr, set scrambled flag to 1"); - *flag = 1; - break; - } - AM_SI_LIST_END() + AM_SI_LIST_BEGIN(p_first_descriptor, descr) + if (descr->i_tag == AM_SI_DESCR_CA && ! *flag) { + LOGD( "Found CA descr, set scrambled flag to 1"); + *flag = 1; + break; + } + AM_SI_LIST_END() } void CTvScanner::scan_extract_srv_info_from_sdt(AM_SCAN_Result_t *result, dvbpsi_sdt_t *sdts, SCAN_ServiceInfo_t *srv_info) { - dvbpsi_sdt_service_t *srv; - dvbpsi_sdt_t *sdt; - dvbpsi_descriptor_t *descr; - const uint8_t split = 0x80; - const int name_size = (int)sizeof(srv_info->name); - int curr_name_len = 0, tmp_len; - char name[AM_DB_MAX_SRV_NAME_LEN + 1]; + dvbpsi_sdt_service_t *srv; + dvbpsi_sdt_t *sdt; + dvbpsi_descriptor_t *descr; + const uint8_t split = 0x80; + const int name_size = (int)sizeof(srv_info->name); + int curr_name_len = 0, tmp_len; + char name[AM_DB_MAX_SRV_NAME_LEN + 1]; - UNUSED(result); + UNUSED(result); #define COPY_NAME(_s, _slen)\ - AM_MACRO_BEGIN\ - int copy_len = ((curr_name_len+_slen)>=name_size) ? (name_size-curr_name_len) : _slen;\ - if (copy_len > 0) {\ - memcpy(srv_info->name+curr_name_len, _s, copy_len);\ - curr_name_len += copy_len;\ - }\ - AM_MACRO_END - - - AM_SI_LIST_BEGIN(sdts, sdt) - AM_SI_LIST_BEGIN(sdt->p_first_service, srv) - /*从SDT表ä¸æŸ¥æ‰¾è¯¥service并获å–ä¿¡æ¯*/ - if (srv->i_service_id == srv_info->srv_id) { - LOGD("SDT for service %d found!", srv_info->srv_id); - srv_info->eit_sche = (uint8_t)srv->b_eit_schedule; - srv_info->eit_pf = (uint8_t)srv->b_eit_present; - srv_info->rs = srv->i_running_status; - srv_info->free_ca = (uint8_t)srv->b_free_ca; - srv_info->sdt_version = sdt->i_version; - - AM_SI_LIST_BEGIN(srv->p_first_descriptor, descr) - if (descr->p_decoded && descr->i_tag == AM_SI_DESCR_SERVICE) { - dvbpsi_service_dr_t *psd = (dvbpsi_service_dr_t *)descr->p_decoded; - if (psd->i_service_name_length > 0) { - name[0] = 0; - AM_SI_ConvertDVBTextCode((char *)psd->i_service_name, psd->i_service_name_length, \ - name, AM_DB_MAX_SRV_NAME_LEN); - name[AM_DB_MAX_SRV_NAME_LEN] = 0; - LOGD("found name [%s]", name); - - /*3bytes language code, using xxx to simulate*/ - COPY_NAME("xxx", 3); - /*following by name text*/ - tmp_len = strlen(name); - COPY_NAME(name, tmp_len); - } - /*业务类型*/ - srv_info->srv_type = psd->i_service_type; - /*service type 0x16 and 0x19 is user defined, as digital television service*/ - /*service type 0xc0 is type of partial reception service in ISDBT*/ - if ((srv_info->srv_type == 0x16) || (srv_info->srv_type == 0x19) || (srv_info->srv_type == 0xc0)) { - srv_info->srv_type = 0x1; - } - break; - } - AM_SI_LIST_END() - - /* store multilingual service name */ - AM_SI_LIST_BEGIN(srv->p_first_descriptor, descr) - if (descr->p_decoded && descr->i_tag == AM_SI_DESCR_MULTI_SERVICE_NAME) { - int i; - dvbpsi_multi_service_name_dr_t *pmsnd = (dvbpsi_multi_service_name_dr_t *)descr->p_decoded; - - for (i = 0; i < pmsnd->i_name_count; i++) { - name[0] = 0; - AM_SI_ConvertDVBTextCode((char *)pmsnd->p_service_name[i].i_service_name, - pmsnd->p_service_name[i].i_service_name_length, - name, AM_DB_MAX_SRV_NAME_LEN); - name[AM_DB_MAX_SRV_NAME_LEN] = 0; - LOGD("found name [%s]", name); - - if (curr_name_len > 0) { - /*extra split mark*/ - COPY_NAME(&split, 1); - } - /*3bytes language code*/ - COPY_NAME(pmsnd->p_service_name[i].i_iso_639_code, 3); - /*following by name text*/ - tmp_len = strlen(name); - COPY_NAME(name, tmp_len); - } - } - AM_SI_LIST_END() + AM_MACRO_BEGIN\ + int copy_len = ((curr_name_len+_slen)>=name_size) ? (name_size-curr_name_len) : _slen;\ + if (copy_len > 0) {\ + memcpy(srv_info->name+curr_name_len, _s, copy_len);\ + curr_name_len += copy_len;\ + }\ + + + AM_MACRO_END + AM_SI_LIST_BEGIN(sdts, sdt) + AM_SI_LIST_BEGIN(sdt->p_first_service, srv) + /*从SDT表ä¸æŸ¥æ‰¾è¯¥service并获å–ä¿¡æ¯*/ + if (srv->i_service_id == srv_info->srv_id) { + LOGD("SDT for service %d found!", srv_info->srv_id); + srv_info->eit_sche = (uint8_t)srv->b_eit_schedule; + srv_info->eit_pf = (uint8_t)srv->b_eit_present; + srv_info->rs = srv->i_running_status; + srv_info->free_ca = (uint8_t)srv->b_free_ca; + srv_info->sdt_version = sdt->i_version; + + AM_SI_LIST_BEGIN(srv->p_first_descriptor, descr) + if (descr->p_decoded && descr->i_tag == AM_SI_DESCR_SERVICE) { + dvbpsi_service_dr_t *psd = (dvbpsi_service_dr_t *)descr->p_decoded; + if (psd->i_service_name_length > 0) { + name[0] = 0; + AM_SI_ConvertDVBTextCode((char *)psd->i_service_name, psd->i_service_name_length, \ + name, AM_DB_MAX_SRV_NAME_LEN); + name[AM_DB_MAX_SRV_NAME_LEN] = 0; + LOGD("found name [%s]", name); + + /*3bytes language code, using xxx to simulate*/ + COPY_NAME("xxx", 3); + /*following by name text*/ + tmp_len = strlen(name); + COPY_NAME(name, tmp_len); + } + /*业务类型*/ + srv_info->srv_type = psd->i_service_type; + /*service type 0x16 and 0x19 is user defined, as digital television service*/ + /*service type 0xc0 is type of partial reception service in ISDBT*/ + if ((srv_info->srv_type == 0x16) || (srv_info->srv_type == 0x19) || (srv_info->srv_type == 0xc0)) { + srv_info->srv_type = 0x1; + } + break; + } + AM_SI_LIST_END() + + /* store multilingual service name */ + AM_SI_LIST_BEGIN(srv->p_first_descriptor, descr) + if (descr->p_decoded && descr->i_tag == AM_SI_DESCR_MULTI_SERVICE_NAME) { + int i; + dvbpsi_multi_service_name_dr_t *pmsnd = (dvbpsi_multi_service_name_dr_t *)descr->p_decoded; + + for (i = 0; i < pmsnd->i_name_count; i++) { + name[0] = 0; + AM_SI_ConvertDVBTextCode((char *)pmsnd->p_service_name[i].i_service_name, + pmsnd->p_service_name[i].i_service_name_length, + name, AM_DB_MAX_SRV_NAME_LEN); + name[AM_DB_MAX_SRV_NAME_LEN] = 0; + LOGD("found name [%s]", name); + + if (curr_name_len > 0) { + /*extra split mark*/ + COPY_NAME(&split, 1); + } + /*3bytes language code*/ + COPY_NAME(pmsnd->p_service_name[i].i_iso_639_code, 3); + /*following by name text*/ + tmp_len = strlen(name); + COPY_NAME(name, tmp_len); + } + } + AM_SI_LIST_END() - /* set the ending null byte */ - if (curr_name_len >= name_size) - srv_info->name[name_size - 1] = 0; - else - srv_info->name[curr_name_len] = 0; + /* set the ending null byte */ + if (curr_name_len >= name_size) + srv_info->name[name_size - 1] = 0; + else + srv_info->name[curr_name_len] = 0; - break; - } - AM_SI_LIST_END() - AM_SI_LIST_END() + break; + } + AM_SI_LIST_END() + AM_SI_LIST_END() } void CTvScanner::scan_update_service_info(AM_SCAN_Result_t *result, SCAN_ServiceInfo_t *srv_info) { #define str(i) (char*)(strings + i) - static char strings[14][256]; + static char strings[14][256]; - if (srv_info->src != FE_ANALOG) { - int standard = result->start_para->dtv_para.standard; - int mode = result->start_para->dtv_para.mode; + if (srv_info->src != FE_ANALOG) { + int standard = result->start_para->dtv_para.standard; + int mode = result->start_para->dtv_para.mode; - /* Transform service types for different dtv standards */ - if (standard != AM_SCAN_DTV_STD_ATSC) { - if (srv_info->srv_type == 0x1) - srv_info->srv_type = AM_SCAN_SRV_DTV; - else if (srv_info->srv_type == 0x2) - srv_info->srv_type = AM_SCAN_SRV_DRADIO; - } else { - if (srv_info->srv_type == 0x2) - srv_info->srv_type = AM_SCAN_SRV_DTV; - else if (srv_info->srv_type == 0x3) - srv_info->srv_type = AM_SCAN_SRV_DRADIO; - } + /* Transform service types for different dtv standards */ + if (standard != AM_SCAN_DTV_STD_ATSC) { + if (srv_info->srv_type == 0x1) + srv_info->srv_type = AM_SCAN_SRV_DTV; + else if (srv_info->srv_type == 0x2) + srv_info->srv_type = AM_SCAN_SRV_DRADIO; + } else { + if (srv_info->srv_type == 0x2) + srv_info->srv_type = AM_SCAN_SRV_DTV; + else if (srv_info->srv_type == 0x3) + srv_info->srv_type = AM_SCAN_SRV_DRADIO; + } - /* if video valid, set this program to tv type, - * if audio valid, but video not found, set it to radio type, - * if both invalid, but service_type found in SDT/VCT, set to unknown service, - * this mechanism is OPTIONAL - */ - if (srv_info->vid < 0x1fff) { - srv_info->srv_type = AM_SCAN_SRV_DTV; - } else if (srv_info->aud_info.audio_count > 0) { - srv_info->srv_type = AM_SCAN_SRV_DRADIO; - } else if (srv_info->srv_type == AM_SCAN_SRV_DTV || - srv_info->srv_type == AM_SCAN_SRV_DRADIO) { - srv_info->srv_type = AM_SCAN_SRV_UNKNOWN; - } - /* Skip program for FTA mode */ - if (srv_info->scrambled_flag && (mode & AM_SCAN_DTVMODE_FTA)) { - LOGD( "Skip program '%s' for FTA mode", srv_info->name); - return; - } + /* if video valid, set this program to tv type, + * if audio valid, but video not found, set it to radio type, + * if both invalid, but service_type found in SDT/VCT, set to unknown service, + * this mechanism is OPTIONAL + */ + if (srv_info->vid < 0x1fff) { + srv_info->srv_type = AM_SCAN_SRV_DTV; + } else if (srv_info->aud_info.audio_count > 0) { + srv_info->srv_type = AM_SCAN_SRV_DRADIO; + } else if (srv_info->srv_type == AM_SCAN_SRV_DTV || + srv_info->srv_type == AM_SCAN_SRV_DRADIO) { + srv_info->srv_type = AM_SCAN_SRV_UNKNOWN; + } + /* Skip program for FTA mode */ + if (srv_info->scrambled_flag && (mode & AM_SCAN_DTVMODE_FTA)) { + LOGD( "Skip program '%s' for FTA mode", srv_info->name); + return; + } - /* Skip program for service_type mode */ - if (srv_info->srv_type == AM_SCAN_SRV_DTV && (mode & AM_SCAN_DTVMODE_NOTV)) { - LOGD( "Skip program '%s' for NO-TV mode", srv_info->name); - return; - } - if (srv_info->srv_type == AM_SCAN_SRV_DRADIO && (mode & AM_SCAN_DTVMODE_NORADIO)) { - LOGD( "Skip program '%s' for NO-RADIO mode", srv_info->name); - return; - } + /* Skip program for service_type mode */ + if (srv_info->srv_type == AM_SCAN_SRV_DTV && (mode & AM_SCAN_DTVMODE_NOTV)) { + LOGD( "Skip program '%s' for NO-TV mode", srv_info->name); + return; + } + if (srv_info->srv_type == AM_SCAN_SRV_DRADIO && (mode & AM_SCAN_DTVMODE_NORADIO)) { + LOGD( "Skip program '%s' for NO-RADIO mode", srv_info->name); + return; + } - /* Set default name to tv/radio program if no name specified */ - if (!strcmp(srv_info->name, "") && - (srv_info->srv_type == AM_SCAN_SRV_DTV || - srv_info->srv_type == AM_SCAN_SRV_DRADIO)) { - strcpy(srv_info->name, "xxxNo Name"); - } - } + /* Set default name to tv/radio program if no name specified */ + if (!strcmp(srv_info->name, "") && + (srv_info->srv_type == AM_SCAN_SRV_DTV || + srv_info->srv_type == AM_SCAN_SRV_DRADIO)) { + strcpy(srv_info->name, "xxxNo Name"); + } + } } void CTvScanner::scan_store_dvb_ts_evt_service(SCAN_ServiceInfo_t *srv) { - LOGD("scan_store_dvb_ts_evt_service freq:%d, sid:%d", m_s_Scanner->mCurEv.mFrequency, srv->srv_id); - m_s_Scanner->mCurEv.clear(); - m_s_Scanner->mCurEv.mServiceId = srv->srv_id; - strncpy(m_s_Scanner->mCurEv.mProgramName, srv->name, 1024); - m_s_Scanner->mCurEv.mprogramType = srv->srv_type; - m_s_Scanner->mCurEv.mVid = srv->vid; - m_s_Scanner->mCurEv.mVfmt = srv->vfmt; - m_s_Scanner->mCurEv.mAcnt = srv->aud_info.audio_count; - for (int i = 0; i < srv->aud_info.audio_count; i++) { - m_s_Scanner->mCurEv.mAid[i] = srv->aud_info.audios[i].pid; - m_s_Scanner->mCurEv.mAfmt[i] = srv->aud_info.audios[i].fmt; - strncpy(m_s_Scanner->mCurEv.mAlang[i], srv->aud_info.audios[i].lang, 10); - m_s_Scanner->mCurEv.mAtype[i] = srv->aud_info.audios[i].audio_type; - } - m_s_Scanner->mCurEv.mPcr = srv->pcr_pid; - m_s_Scanner->mCurEv.mScnt = srv->sub_info.subtitle_count; - for (int i = 0; i < srv->sub_info.subtitle_count; i++) { - m_s_Scanner->mCurEv.mStype[i] = TYPE_DVB_SUBTITLE; - m_s_Scanner->mCurEv.mSid[i] = srv->sub_info.subtitles[i].pid; - m_s_Scanner->mCurEv.mSstype[i] = srv->sub_info.subtitles[i].type; - m_s_Scanner->mCurEv.mSid1[i] = srv->sub_info.subtitles[i].comp_page_id; - m_s_Scanner->mCurEv.mSid2[i] = srv->sub_info.subtitles[i].anci_page_id; - strncpy(m_s_Scanner->mCurEv.mSlang[i], srv->sub_info.subtitles[i].lang, 10); - } - int scnt = m_s_Scanner->mCurEv.mScnt; - for (int i = 0; i < srv->ttx_info.teletext_count; i++) { - if (srv->ttx_info.teletexts[i].type == 0x2 || - srv->ttx_info.teletexts[i].type == 0x5){ - if (scnt >= (sizeof(m_s_Scanner->mCurEv.mStype)/sizeof(int))) - break; - m_s_Scanner->mCurEv.mStype[scnt] = TYPE_DTV_TELETEXT; - m_s_Scanner->mCurEv.mSid[scnt] = srv->ttx_info.teletexts[i].pid; - m_s_Scanner->mCurEv.mSstype[scnt] = srv->ttx_info.teletexts[i].type; - m_s_Scanner->mCurEv.mSid1[scnt] = srv->ttx_info.teletexts[i].magazine_no; - m_s_Scanner->mCurEv.mSid2[scnt] = srv->ttx_info.teletexts[i].page_no; - strncpy(m_s_Scanner->mCurEv.mSlang[scnt], srv->ttx_info.teletexts[i].lang, 10); - scnt++; - } - } - m_s_Scanner->mCurEv.mScnt = scnt; + LOGD("scan_store_dvb_ts_evt_service freq:%d, sid:%d", m_s_Scanner->mCurEv.mFrequency, srv->srv_id); + m_s_Scanner->mCurEv.clear(); + m_s_Scanner->mCurEv.mServiceId = srv->srv_id; + strncpy(m_s_Scanner->mCurEv.mProgramName, srv->name, 1024); + m_s_Scanner->mCurEv.mprogramType = srv->srv_type; + m_s_Scanner->mCurEv.mVid = srv->vid; + m_s_Scanner->mCurEv.mVfmt = srv->vfmt; + m_s_Scanner->mCurEv.mAcnt = srv->aud_info.audio_count; + for (int i = 0; i < srv->aud_info.audio_count; i++) { + m_s_Scanner->mCurEv.mAid[i] = srv->aud_info.audios[i].pid; + m_s_Scanner->mCurEv.mAfmt[i] = srv->aud_info.audios[i].fmt; + strncpy(m_s_Scanner->mCurEv.mAlang[i], srv->aud_info.audios[i].lang, 10); + m_s_Scanner->mCurEv.mAtype[i] = srv->aud_info.audios[i].audio_type; + } + m_s_Scanner->mCurEv.mPcr = srv->pcr_pid; + m_s_Scanner->mCurEv.mScnt = srv->sub_info.subtitle_count; + for (int i = 0; i < srv->sub_info.subtitle_count; i++) { + m_s_Scanner->mCurEv.mStype[i] = TYPE_DVB_SUBTITLE; + m_s_Scanner->mCurEv.mSid[i] = srv->sub_info.subtitles[i].pid; + m_s_Scanner->mCurEv.mSstype[i] = srv->sub_info.subtitles[i].type; + m_s_Scanner->mCurEv.mSid1[i] = srv->sub_info.subtitles[i].comp_page_id; + m_s_Scanner->mCurEv.mSid2[i] = srv->sub_info.subtitles[i].anci_page_id; + strncpy(m_s_Scanner->mCurEv.mSlang[i], srv->sub_info.subtitles[i].lang, 10); + } + int scnt = m_s_Scanner->mCurEv.mScnt; + for (int i = 0; i < srv->ttx_info.teletext_count; i++) { + if (srv->ttx_info.teletexts[i].type == 0x2 || + srv->ttx_info.teletexts[i].type == 0x5) { + if (scnt >= (sizeof(m_s_Scanner->mCurEv.mStype) / sizeof(int))) + break; + m_s_Scanner->mCurEv.mStype[scnt] = TYPE_DTV_TELETEXT; + m_s_Scanner->mCurEv.mSid[scnt] = srv->ttx_info.teletexts[i].pid; + m_s_Scanner->mCurEv.mSstype[scnt] = srv->ttx_info.teletexts[i].type; + m_s_Scanner->mCurEv.mSid1[scnt] = srv->ttx_info.teletexts[i].magazine_no; + m_s_Scanner->mCurEv.mSid2[scnt] = srv->ttx_info.teletexts[i].page_no; + strncpy(m_s_Scanner->mCurEv.mSlang[scnt], srv->ttx_info.teletexts[i].lang, 10); + scnt++; + } + } + m_s_Scanner->mCurEv.mScnt = scnt; - m_s_Scanner->mCurEv.mMSG[0] = '\0'; + m_s_Scanner->mCurEv.mMSG[0] = '\0'; - m_s_Scanner->mCurEv.mType = ScannerEvent::EVENT_DTV_PROG_DATA; - m_s_Scanner->sendEvent(m_s_Scanner->mCurEv); + m_s_Scanner->mCurEv.mType = ScannerEvent::EVENT_DTV_PROG_DATA; + m_s_Scanner->sendEvent(m_s_Scanner->mCurEv); } void CTvScanner::scan_store_dvb_ts(AM_SCAN_Result_t *result, AM_SCAN_TS_t *ts) { - dvbpsi_pmt_t *pmt; - dvbpsi_pmt_es_t *es; - dvbpsi_descriptor_t *descr; - int src = result->start_para->dtv_para.source; - int mode = result->start_para->dtv_para.mode; - int net_dbid = -1, dbid = -1, orig_net_id = -1, satpara_dbid = -1; - char selbuf[256]; - char insbuf[400]; - AM_Bool_t store = AM_TRUE; - dvbpsi_pat_t *valid_pat = NULL; - uint8_t plp_id; - SCAN_ServiceInfo_t srv_info; - - valid_pat = get_valid_pats(ts); - if (valid_pat == NULL) { - LOGD("No PAT found in ts, will not store to dbase"); - return; - } - - LOGD("@@ TS: src %d @@", src); - - scan_process_ts_info(result, ts, &m_s_Scanner->mCurEv); - - if (ts->digital.pmts || (IS_DVBT2_TS(ts->digital.fend_para) && ts->digital.dvbt2_data_plp_num > 0)) { - int loop_count, lc; - dvbpsi_sdt_t *sdt_list; - dvbpsi_pmt_t *pmt_list; - dvbpsi_pat_t *pat_list; - - /* For DVB-T2, search for each PLP, else search in current TS*/ - loop_count = IS_DVBT2_TS(ts->digital.fend_para) ? ts->digital.dvbt2_data_plp_num : 1; - LOGD("plp num %d", loop_count); - - for (lc = 0; lc < loop_count; lc++) { - pat_list = IS_DVBT2_TS(ts->digital.fend_para) ? ts->digital.dvbt2_data_plps[lc].pats : ts->digital.pats; - pmt_list = IS_DVBT2_TS(ts->digital.fend_para) ? ts->digital.dvbt2_data_plps[lc].pmts : ts->digital.pmts; - sdt_list = IS_DVBT2_TS(ts->digital.fend_para) ? ts->digital.dvbt2_data_plps[lc].sdts : ts->digital.sdts; - plp_id = IS_DVBT2_TS(ts->digital.fend_para) ? ts->digital.dvbt2_data_plps[lc].id : -1; - LOGD("plp_id %d", plp_id); - - AM_SI_LIST_BEGIN(pmt_list, pmt) { - scan_init_service_info(&srv_info); - srv_info.satpara_dbid = satpara_dbid; - srv_info.srv_id = pmt->i_program_number; - srv_info.src = src; - srv_info.pmt_pid = get_pmt_pid(pat_list, pmt->i_program_number); - srv_info.pcr_pid = pmt->i_pcr_pid; - srv_info.plp_id = plp_id; + dvbpsi_pmt_t *pmt; + dvbpsi_pmt_es_t *es; + dvbpsi_descriptor_t *descr; + int src = result->start_para->dtv_para.source; + int mode = result->start_para->dtv_para.mode; + int net_dbid = -1, dbid = -1, orig_net_id = -1, satpara_dbid = -1; + char selbuf[256]; + char insbuf[400]; + AM_Bool_t store = AM_TRUE; + dvbpsi_pat_t *valid_pat = NULL; + uint8_t plp_id; + SCAN_ServiceInfo_t srv_info; + + valid_pat = get_valid_pats(ts); + if (valid_pat == NULL) { + LOGD("No PAT found in ts, will not store to dbase"); + return; + } - /* looking for CA descr */ - if (! srv_info.scrambled_flag) { - scan_extract_ca_scrambled_flag(pmt->p_first_descriptor, &srv_info.scrambled_flag); - } + LOGD("@@ TS: src %d @@", src); + + scan_process_ts_info(result, ts, &m_s_Scanner->mCurEv); + + if (ts->digital.pmts || (IS_DVBT2_TS(ts->digital.fend_para) && ts->digital.dvbt2_data_plp_num > 0)) { + int loop_count, lc; + dvbpsi_sdt_t *sdt_list; + dvbpsi_pmt_t *pmt_list; + dvbpsi_pat_t *pat_list; + + /* For DVB-T2, search for each PLP, else search in current TS*/ + loop_count = IS_DVBT2_TS(ts->digital.fend_para) ? ts->digital.dvbt2_data_plp_num : 1; + LOGD("plp num %d", loop_count); + + for (lc = 0; lc < loop_count; lc++) { + pat_list = IS_DVBT2_TS(ts->digital.fend_para) ? ts->digital.dvbt2_data_plps[lc].pats : ts->digital.pats; + pmt_list = IS_DVBT2_TS(ts->digital.fend_para) ? ts->digital.dvbt2_data_plps[lc].pmts : ts->digital.pmts; + sdt_list = IS_DVBT2_TS(ts->digital.fend_para) ? ts->digital.dvbt2_data_plps[lc].sdts : ts->digital.sdts; + plp_id = IS_DVBT2_TS(ts->digital.fend_para) ? ts->digital.dvbt2_data_plps[lc].id : -1; + LOGD("plp_id %d", plp_id); + + AM_SI_LIST_BEGIN(pmt_list, pmt) { + scan_init_service_info(&srv_info); + srv_info.satpara_dbid = satpara_dbid; + srv_info.srv_id = pmt->i_program_number; + srv_info.src = src; + srv_info.pmt_pid = get_pmt_pid(pat_list, pmt->i_program_number); + srv_info.pcr_pid = pmt->i_pcr_pid; + srv_info.plp_id = plp_id; + + /* looking for CA descr */ + if (! srv_info.scrambled_flag) { + scan_extract_ca_scrambled_flag(pmt->p_first_descriptor, &srv_info.scrambled_flag); + } - AM_SI_LIST_BEGIN(pmt->p_first_es, es) { - AM_SI_ExtractAVFromES(es, &srv_info.vid, &srv_info.vfmt, &srv_info.aud_info); + AM_SI_LIST_BEGIN(pmt->p_first_es, es) { + AM_SI_ExtractAVFromES(es, &srv_info.vid, &srv_info.vfmt, &srv_info.aud_info); - if (store) { - AM_SI_ExtractDVBSubtitleFromES(es, &srv_info.sub_info); - AM_SI_ExtractDVBTeletextFromES(es, &srv_info.ttx_info); - } + if (store) { + AM_SI_ExtractDVBSubtitleFromES(es, &srv_info.sub_info); + AM_SI_ExtractDVBTeletextFromES(es, &srv_info.ttx_info); + } - if (! srv_info.scrambled_flag) - scan_extract_ca_scrambled_flag(es->p_first_descriptor, &srv_info.scrambled_flag); - } - AM_SI_LIST_END() + if (! srv_info.scrambled_flag) + scan_extract_ca_scrambled_flag(es->p_first_descriptor, &srv_info.scrambled_flag); + } + AM_SI_LIST_END() - scan_extract_srv_info_from_sdt(result, sdt_list, &srv_info); + scan_extract_srv_info_from_sdt(result, sdt_list, &srv_info); - /*Store this service*/ - scan_update_service_info(result, &srv_info); + /*Store this service*/ + scan_update_service_info(result, &srv_info); - scan_store_dvb_ts_evt_service(&srv_info); + scan_store_dvb_ts_evt_service(&srv_info); - } - AM_SI_LIST_END() + } + AM_SI_LIST_END() - /* All programs in PMTs added, now trying the programs in SDT but NOT in PMT */ - dvbpsi_sdt_service_t *srv; - dvbpsi_sdt_t *sdt; + /* All programs in PMTs added, now trying the programs in SDT but NOT in PMT */ + dvbpsi_sdt_service_t *srv; + dvbpsi_sdt_t *sdt; - AM_SI_LIST_BEGIN(ts->digital.sdts, sdt) { - AM_SI_LIST_BEGIN(sdt->p_first_service, srv) { - AM_Bool_t found_in_pmt = AM_FALSE; + AM_SI_LIST_BEGIN(ts->digital.sdts, sdt) { + AM_SI_LIST_BEGIN(sdt->p_first_service, srv) { + AM_Bool_t found_in_pmt = AM_FALSE; - /* Is already added in PMT? */ - AM_SI_LIST_BEGIN(ts->digital.pmts, pmt) - if (srv->i_service_id == pmt->i_program_number) { - found_in_pmt = AM_TRUE; - break; - } - AM_SI_LIST_END() + /* Is already added in PMT? */ + AM_SI_LIST_BEGIN(ts->digital.pmts, pmt) + if (srv->i_service_id == pmt->i_program_number) { + found_in_pmt = AM_TRUE; + break; + } + AM_SI_LIST_END() - if (found_in_pmt) - continue; + if (found_in_pmt) + continue; - scan_init_service_info(&srv_info); - srv_info.satpara_dbid = satpara_dbid; - srv_info.srv_id = srv->i_service_id; - srv_info.src = src; + scan_init_service_info(&srv_info); + srv_info.satpara_dbid = satpara_dbid; + srv_info.srv_id = srv->i_service_id; + srv_info.src = src; - scan_extract_srv_info_from_sdt(result, sdt_list, &srv_info); + scan_extract_srv_info_from_sdt(result, sdt_list, &srv_info); - scan_update_service_info(result, &srv_info); + scan_update_service_info(result, &srv_info); - /*as no pmt for this srv, set type to data for invisible*/ - srv_info.srv_type = 0; + /*as no pmt for this srv, set type to data for invisible*/ + srv_info.srv_type = 0; - scan_store_dvb_ts_evt_service(&srv_info); + scan_store_dvb_ts_evt_service(&srv_info); - } - AM_SI_LIST_END() - } - AM_SI_LIST_END() + } + AM_SI_LIST_END() + } + AM_SI_LIST_END() - } - } + } + } } void CTvScanner::dtv_scan_store(AM_SCAN_Result_t *result) { - AM_SCAN_TS_t *ts; + AM_SCAN_TS_t *ts; - LOGD("Storing tses ..."); + LOGD("Storing tses ..."); - AM_SI_LIST_BEGIN(result->tses, ts) { - scan_store_dvb_ts(result, ts); - } - AM_SI_LIST_END() + AM_SI_LIST_BEGIN(result->tses, ts) { + scan_store_dvb_ts(result, ts); + } + AM_SI_LIST_END() } int CTvScanner::manualDtmbScan(int beginFreq, int endFreq, int modulation) { - stopScan(); + stopScan(); - if (!mbScanStart) { //not start or stop - AM_SCAN_CreatePara_t para; - AM_DMX_OpenPara_t dmx_para; - AM_SCAN_Handle_t handle = 0; - int i; - // Create the scan - memset(¶, 0, sizeof(para)); + if (!mbScanStart) { //not start or stop + AM_SCAN_CreatePara_t para; + AM_DMX_OpenPara_t dmx_para; + AM_SCAN_Handle_t handle = 0; + int i; + // Create the scan + memset(¶, 0, sizeof(para)); - para.fend_dev_id = 0;//default - para.mode = AM_SCAN_MODE_DTV_ATV;//DTV - para.atv_para.mode = AM_SCAN_ATVMODE_NONE; - para.dtv_para.mode = AM_SCAN_DTVMODE_MANUAL; - para.dtv_para.source = FE_DTMB;//fe_type - para.dtv_para.dmx_dev_id = 0;//default 0 + para.fend_dev_id = 0;//default + para.mode = AM_SCAN_MODE_DTV_ATV;//DTV + para.atv_para.mode = AM_SCAN_ATVMODE_NONE; + para.dtv_para.mode = AM_SCAN_DTVMODE_MANUAL; + para.dtv_para.source = FE_DTMB;//fe_type + para.dtv_para.dmx_dev_id = 0;//default 0 - Vector<sp<CTvChannel> > vcp; - CTvRegion::getChannelListByNameAndFreqRange("CHINA,Default DTMB ALL", beginFreq, endFreq, vcp); - int size = vcp.size(); + Vector<sp<CTvChannel> > vcp; + CTvRegion::getChannelListByNameAndFreqRange("CHINA,Default DTMB ALL", beginFreq, endFreq, vcp); + int size = vcp.size(); - //@author:hao.fu - if (size == 0) { - return -1; - } + //@author:hao.fu + if (size == 0) { + return -1; + } - if (!(para.dtv_para.fe_paras = static_cast<AM_FENDCTRL_DVBFrontendParameters_t *>(calloc(size, sizeof(AM_FENDCTRL_DVBFrontendParameters_t))))) - return -1; + if (!(para.dtv_para.fe_paras = static_cast<AM_FENDCTRL_DVBFrontendParameters_t *>(calloc(size, sizeof(AM_FENDCTRL_DVBFrontendParameters_t))))) + return -1; - for (i = 0; i < size; i++) { - para.dtv_para.fe_paras[i].m_type = 5;//MODE_DTMB - para.dtv_para.fe_paras[i].dtmb.para.frequency = vcp[i]->getFrequency(); - para.dtv_para.fe_paras[i].dtmb.para.inversion = INVERSION_OFF; - para.dtv_para.fe_paras[i].dtmb.para.u.ofdm.bandwidth = (fe_bandwidth_t)(vcp[i]->getBandwidth()); - if (modulation == -1) - para.dtv_para.fe_paras[i].cable.para.u.qam.modulation = (fe_modulation_t)(vcp[i]->getModulation()); - else - para.dtv_para.fe_paras[i].cable.para.u.qam.modulation = (fe_modulation_t)modulation; - } + for (i = 0; i < size; i++) { + para.dtv_para.fe_paras[i].m_type = 5;//MODE_DTMB + para.dtv_para.fe_paras[i].dtmb.para.frequency = vcp[i]->getFrequency(); + para.dtv_para.fe_paras[i].dtmb.para.inversion = INVERSION_OFF; + para.dtv_para.fe_paras[i].dtmb.para.u.ofdm.bandwidth = (fe_bandwidth_t)(vcp[i]->getBandwidth()); + if (modulation == -1) + para.dtv_para.fe_paras[i].cable.para.u.qam.modulation = (fe_modulation_t)(vcp[i]->getModulation()); + else + para.dtv_para.fe_paras[i].cable.para.u.qam.modulation = (fe_modulation_t)modulation; + } - para.dtv_para.fe_cnt = size; - para.dtv_para.resort_all = AM_FALSE; - para.dtv_para.sort_method = AM_SCAN_SORT_BY_FREQ_SRV_ID; - para.store_cb = dtv_scan_store; + para.dtv_para.fe_cnt = size; + para.dtv_para.resort_all = AM_FALSE; + para.dtv_para.sort_method = AM_SCAN_SORT_BY_FREQ_SRV_ID; + para.store_cb = dtv_scan_store; - memset(&dmx_para, 0, sizeof(dmx_para)); - AM_DMX_Open(para.dtv_para.dmx_dev_id, &dmx_para); + memset(&dmx_para, 0, sizeof(dmx_para)); + AM_DMX_Open(para.dtv_para.dmx_dev_id, &dmx_para); - if ((para.dtv_para.mode & 0x07) != AM_SCAN_DTVMODE_NONE) { - AM_FEND_SetMode(para.fend_dev_id, para.dtv_para.source); - tv_scan_reconnect_dmx_to_fend(para.dtv_para.dmx_dev_id, para.fend_dev_id); - } + if ((para.dtv_para.mode & 0x07) != AM_SCAN_DTVMODE_NONE) { + AM_FEND_SetMode(para.fend_dev_id, para.dtv_para.source); + tv_scan_reconnect_dmx_to_fend(para.dtv_para.dmx_dev_id, para.fend_dev_id); + } - // Start Scan - if (AM_SCAN_Create(¶, &handle) != AM_SUCCESS) { - LOGD("SCAN CREATE fail"); - handle = NULL; - } else { - mScanHandle = handle; - AM_SCAN_SetUserData(handle, (void *)this); - AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); - AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); - if (AM_SCAN_Start(handle) != AM_SUCCESS) { - AM_SCAN_Destroy(handle, AM_FALSE); - AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); - AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); - handle = NULL; - } - } - if (para.atv_para.fe_paras != NULL) - free(para.atv_para.fe_paras); - if (para.dtv_para.fe_paras != NULL) - free(para.dtv_para.fe_paras); + // Start Scan + if (AM_SCAN_Create(¶, &handle) != AM_SUCCESS) { + LOGD("SCAN CREATE fail"); + handle = NULL; + } else { + mScanHandle = handle; + AM_SCAN_SetUserData(handle, (void *)this); + AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); + AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); + if (AM_SCAN_Start(handle) != AM_SUCCESS) { + AM_SCAN_Destroy(handle, AM_FALSE); + AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); + AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); + handle = NULL; + } + } + if (para.atv_para.fe_paras != NULL) + free(para.atv_para.fe_paras); + if (para.dtv_para.fe_paras != NULL) + free(para.dtv_para.fe_paras); - if (handle == NULL) { - return -1; - } - mbScanStart = true;//start call ok - } else { - LOGD("scanning and not stop"); - } - return 0; + if (handle == NULL) { + return -1; + } + mbScanStart = true;//start call ok + } else { + LOGD("scanning and not stop"); + } + return 0; } @@ -1117,97 +1117,97 @@ int CTvScanner::manualDtmbScan(int beginFreq, int endFreq, int modulation) //only test for dtv allbland auto int CTvScanner::autoDtmbScan() { - stopScan(); + stopScan(); - if (!mbScanStart) { //not start or stop - AM_SCAN_CreatePara_t para; - AM_DMX_OpenPara_t dmx_para; - AM_SCAN_Handle_t handle = 0; - // Create the scan - memset(¶, 0, sizeof(para)); + if (!mbScanStart) { //not start or stop + AM_SCAN_CreatePara_t para; + AM_DMX_OpenPara_t dmx_para; + AM_SCAN_Handle_t handle = 0; + // Create the scan + memset(¶, 0, sizeof(para)); - //strcpy(para.default_text_lang,"eng");//config - //strcpy(para.text_langs, "local eng zho chi chs first");//config - para.fend_dev_id = 0;//default - para.mode = AM_SCAN_MODE_DTV_ATV;//DTV - para.atv_para.mode = AM_SCAN_ATVMODE_NONE; - para.dtv_para.mode = AM_SCAN_DTVMODE_ALLBAND;//DTV_MODE_ALLBAND - //para.dtv_para.mode |= (*env)->GetIntField(env, para, doptions);//忽略 - para.dtv_para.source = FE_DTMB;//fe_type - para.dtv_para.dmx_dev_id = 0;//default 0 - Vector<sp<CTvChannel> > vcp; - //CTvDatabase::getChannelParaList("/data/tv_default.xml", vcp);//channel list from xml or db - CTvRegion::getChannelListByName("CHINA,Default DTMB ALL", vcp); + //strcpy(para.default_text_lang,"eng");//config + //strcpy(para.text_langs, "local eng zho chi chs first");//config + para.fend_dev_id = 0;//default + para.mode = AM_SCAN_MODE_DTV_ATV;//DTV + para.atv_para.mode = AM_SCAN_ATVMODE_NONE; + para.dtv_para.mode = AM_SCAN_DTVMODE_ALLBAND;//DTV_MODE_ALLBAND + //para.dtv_para.mode |= (*env)->GetIntField(env, para, doptions);//忽略 + para.dtv_para.source = FE_DTMB;//fe_type + para.dtv_para.dmx_dev_id = 0;//default 0 + Vector<sp<CTvChannel> > vcp; + //CTvDatabase::getChannelParaList("/data/tv_default.xml", vcp);//channel list from xml or db + CTvRegion::getChannelListByName("CHINA,Default DTMB ALL", vcp); - int size = vcp.size(); - LOGD("channel list size = %d", size); - //showboz - if (size == 0) { - CTvDatabase::GetTvDb()->importXmlToDB("/etc/tv_default.xml"); - CTvRegion::getChannelListByName("CHINA,Default DTMB ALL", vcp); - size = vcp.size(); - } + int size = vcp.size(); + LOGD("channel list size = %d", size); + //showboz + if (size == 0) { + CTvDatabase::GetTvDb()->importXmlToDB("/etc/tv_default.xml"); + CTvRegion::getChannelListByName("CHINA,Default DTMB ALL", vcp); + size = vcp.size(); + } - if (!(para.dtv_para.fe_paras = static_cast<AM_FENDCTRL_DVBFrontendParameters_t *>(calloc(size, sizeof(AM_FENDCTRL_DVBFrontendParameters_t))))) - return -1; + if (!(para.dtv_para.fe_paras = static_cast<AM_FENDCTRL_DVBFrontendParameters_t *>(calloc(size, sizeof(AM_FENDCTRL_DVBFrontendParameters_t))))) + return -1; - //memset(pfp, 0, size * sizeof(AM_FENDCTRL_DVBFrontendParameters_t)); + //memset(pfp, 0, size * sizeof(AM_FENDCTRL_DVBFrontendParameters_t)); - for (int i = 0; i < size; i++) { - para.dtv_para.fe_paras[i].m_type = 5;//MODE_DTMB - para.dtv_para.fe_paras[i].dtmb.para.frequency = vcp[i]->getFrequency(); - para.dtv_para.fe_paras[i].dtmb.para.inversion = INVERSION_OFF; - para.dtv_para.fe_paras[i].dtmb.para.u.ofdm.bandwidth = (fe_bandwidth_t)(vcp[i]->getBandwidth()); - } - //allband - para.dtv_para.fe_cnt = size; + for (int i = 0; i < size; i++) { + para.dtv_para.fe_paras[i].m_type = 5;//MODE_DTMB + para.dtv_para.fe_paras[i].dtmb.para.frequency = vcp[i]->getFrequency(); + para.dtv_para.fe_paras[i].dtmb.para.inversion = INVERSION_OFF; + para.dtv_para.fe_paras[i].dtmb.para.u.ofdm.bandwidth = (fe_bandwidth_t)(vcp[i]->getBandwidth()); + } + //allband + para.dtv_para.fe_cnt = size; - para.dtv_para.resort_all = AM_FALSE; - para.dtv_para.sort_method = AM_SCAN_SORT_BY_FREQ_SRV_ID; - para.store_cb = dtv_scan_store; + para.dtv_para.resort_all = AM_FALSE; + para.dtv_para.sort_method = AM_SCAN_SORT_BY_FREQ_SRV_ID; + para.store_cb = dtv_scan_store; - memset(&dmx_para, 0, sizeof(dmx_para)); - AM_DMX_Open(para.dtv_para.dmx_dev_id, &dmx_para); + memset(&dmx_para, 0, sizeof(dmx_para)); + AM_DMX_Open(para.dtv_para.dmx_dev_id, &dmx_para); - if ((para.dtv_para.mode & 0x07) != AM_SCAN_DTVMODE_NONE) { - AM_FEND_SetMode(para.fend_dev_id, para.dtv_para.source); - tv_scan_reconnect_dmx_to_fend(para.dtv_para.dmx_dev_id, para.fend_dev_id); - } + if ((para.dtv_para.mode & 0x07) != AM_SCAN_DTVMODE_NONE) { + AM_FEND_SetMode(para.fend_dev_id, para.dtv_para.source); + tv_scan_reconnect_dmx_to_fend(para.dtv_para.dmx_dev_id, para.fend_dev_id); + } - // prog->dmx_id = para.dtv_para.dmx_dev_id; - // prog->fend_id = para.fend_dev_id; - // prog->mode = para.dtv_para.mode; - // Start Scan - if (AM_SCAN_Create(¶, &handle) != AM_SUCCESS) { - LOGD("SCAN CREATE fail"); - handle = NULL; - } else { - mScanHandle = handle; - AM_SCAN_SetUserData(handle, (void *)this); - //注册æœç´¢äº‹ä»¶ - AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); - //注册信å·è´¨é‡é€šçŸ¥äº‹ä»¶ - AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); - if (AM_SCAN_Start(handle) != AM_SUCCESS) { - AM_SCAN_Destroy(handle, AM_FALSE); - AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); - AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); - handle = NULL; - } - } - if (para.atv_para.fe_paras != NULL) - free(para.atv_para.fe_paras); - if (para.dtv_para.fe_paras != NULL) - free(para.dtv_para.fe_paras); + // prog->dmx_id = para.dtv_para.dmx_dev_id; + // prog->fend_id = para.fend_dev_id; + // prog->mode = para.dtv_para.mode; + // Start Scan + if (AM_SCAN_Create(¶, &handle) != AM_SUCCESS) { + LOGD("SCAN CREATE fail"); + handle = NULL; + } else { + mScanHandle = handle; + AM_SCAN_SetUserData(handle, (void *)this); + //注册æœç´¢äº‹ä»¶ + AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); + //注册信å·è´¨é‡é€šçŸ¥äº‹ä»¶ + AM_EVT_Subscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); + if (AM_SCAN_Start(handle) != AM_SUCCESS) { + AM_SCAN_Destroy(handle, AM_FALSE); + AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); + AM_EVT_Unsubscribe((long)handle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); + handle = NULL; + } + } + if (para.atv_para.fe_paras != NULL) + free(para.atv_para.fe_paras); + if (para.dtv_para.fe_paras != NULL) + free(para.dtv_para.fe_paras); - if (handle == NULL) { - return -1; - } - mbScanStart = true;//start call ok - } else { - LOGD("scanning and not stop"); - } - return 0; + if (handle == NULL) { + return -1; + } + mbScanStart = true;//start call ok + } else { + LOGD("scanning and not stop"); + } + return 0; } /*int CTvScanner::autoAtscScan(int attennaType,int std) @@ -1322,100 +1322,100 @@ int CTvScanner::autoDtmbScan() int CTvScanner::stopScan() { - LOGD("StopScan mScanHandle=%d", mScanHandle); - //requestExit(); - if (mbScanStart) { //if start ok and not stop - int ret = AM_SCAN_Destroy(mScanHandle, AM_TRUE); - AM_EVT_Unsubscribe((long)mScanHandle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); - AM_EVT_Unsubscribe((long)mScanHandle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); - AM_SEC_Cache_Reset(0); - //stop loop - LOGD("StopScan , ret=%d", ret); - mbScanStart = false;//stop ok - } else { - LOGD("not start scan or scan stoped"); - } - return 0; + LOGD("StopScan mScanHandle=%d", mScanHandle); + //requestExit(); + if (mbScanStart) { //if start ok and not stop + int ret = AM_SCAN_Destroy(mScanHandle, AM_TRUE); + AM_EVT_Unsubscribe((long)mScanHandle, AM_SCAN_EVT_PROGRESS, tv_scan_evt_callback, NULL); + AM_EVT_Unsubscribe((long)mScanHandle, AM_SCAN_EVT_SIGNAL, tv_scan_evt_callback, NULL); + AM_SEC_Cache_Reset(0); + //stop loop + LOGD("StopScan , ret=%d", ret); + mbScanStart = false;//stop ok + } else { + LOGD("not start scan or scan stoped"); + } + return 0; } void CTvScanner::tv_scan_evt_callback(long dev_no, int event_type, void *param, void *data) { - CTvScanner *pT = NULL; - long long tmpFreq = 0; + CTvScanner *pT = NULL; + long long tmpFreq = 0; - LOGD("evt evt:%d", event_type); - AM_SCAN_GetUserData((AM_SCAN_Handle_t)dev_no, (void **)&pT); - if (pT == NULL) { - return; - } - pT->mCurEv.clear(); - memset(pT->mCurEv.mProgramName, '\0', sizeof(pT->mCurEv.mProgramName)); - memset(pT->mCurEv.mMSG, '\0', sizeof(pT->mCurEv.mMSG)); - if (event_type == AM_SCAN_EVT_PROGRESS) { - AM_SCAN_Progress_t *evt = (AM_SCAN_Progress_t *)param; - LOGD("progress evt:%d", evt->evt); - switch (evt->evt) { - case AM_SCAN_PROGRESS_SCAN_BEGIN: - pT->mCurEv.mPercent = 0; - break; - case AM_SCAN_PROGRESS_NIT_BEGIN: - - break; - case AM_SCAN_PROGRESS_NIT_END: - - break; - case AM_SCAN_PROGRESS_TS_BEGIN: { - AM_SCAN_TSProgress_t *tp = (AM_SCAN_TSProgress_t *)evt->data; - if (tp == NULL) - break; - pT->mCurEv.mChannelNumber = tp->index; - pT->mCurEv.mMode = tp->fend_para.m_type; - pT->mCurEv.mFrequency = ((struct dvb_frontend_parameters *)(&tp->fend_para))->frequency; - pT->mCurEv.mSymbolRate = tp->fend_para.cable.para.u.qam.symbol_rate; - pT->mCurEv.mModulation = tp->fend_para.cable.para.u.qam.modulation; - pT->mCurEv.mBandwidth = tp->fend_para.terrestrial.para.u.ofdm.bandwidth; - pT->mCurEv.mOfdm_mode = tp->fend_para.terrestrial.para.u.ofdm.ofdm_mode; - pT->mCurEv.mAudio = tp->fend_para.analog.para.u.analog.audmode; - pT->mCurEv.mStandard = tp->fend_para.analog.para.u.analog.std; - pT->mCurEv.mSat_polarisation = tp->fend_para.sat.polarisation; - if (pT->mCurEv.mMode == FE_ANALOG) { - if (pT->mSource == FE_ATSC) { - pT->mCurEv.mPercent = (tp->index * 100) / tp->total; - } else { - pT->mCurEv.mPercent = 0; - } - } else { - pT->mCurEv.mPercent = (tp->index * 100) / tp->total; - } + LOGD("evt evt:%d", event_type); + AM_SCAN_GetUserData((AM_SCAN_Handle_t)dev_no, (void **)&pT); + if (pT == NULL) { + return; + } + pT->mCurEv.clear(); + memset(pT->mCurEv.mProgramName, '\0', sizeof(pT->mCurEv.mProgramName)); + memset(pT->mCurEv.mMSG, '\0', sizeof(pT->mCurEv.mMSG)); + if (event_type == AM_SCAN_EVT_PROGRESS) { + AM_SCAN_Progress_t *evt = (AM_SCAN_Progress_t *)param; + LOGD("progress evt:%d", evt->evt); + switch (evt->evt) { + case AM_SCAN_PROGRESS_SCAN_BEGIN: + pT->mCurEv.mPercent = 0; + break; + case AM_SCAN_PROGRESS_NIT_BEGIN: + + break; + case AM_SCAN_PROGRESS_NIT_END: + + break; + case AM_SCAN_PROGRESS_TS_BEGIN: { + AM_SCAN_TSProgress_t *tp = (AM_SCAN_TSProgress_t *)evt->data; + if (tp == NULL) + break; + pT->mCurEv.mChannelNumber = tp->index; + pT->mCurEv.mMode = tp->fend_para.m_type; + pT->mCurEv.mFrequency = ((struct dvb_frontend_parameters *)(&tp->fend_para))->frequency; + pT->mCurEv.mSymbolRate = tp->fend_para.cable.para.u.qam.symbol_rate; + pT->mCurEv.mModulation = tp->fend_para.cable.para.u.qam.modulation; + pT->mCurEv.mBandwidth = tp->fend_para.terrestrial.para.u.ofdm.bandwidth; + pT->mCurEv.mOfdm_mode = tp->fend_para.terrestrial.para.u.ofdm.ofdm_mode; + pT->mCurEv.mAudio = tp->fend_para.analog.para.u.analog.audmode; + pT->mCurEv.mStandard = tp->fend_para.analog.para.u.analog.std; + pT->mCurEv.mSat_polarisation = tp->fend_para.sat.polarisation; + if (pT->mCurEv.mMode == FE_ANALOG) { + if (pT->mSource == FE_ATSC) { + pT->mCurEv.mPercent = (tp->index * 100) / tp->total; + } else { + pT->mCurEv.mPercent = 0; + } + } else { + pT->mCurEv.mPercent = (tp->index * 100) / tp->total; + } - if (pT->mCurEv.mTotalChannelCount == 0) - pT->mCurEv.mTotalChannelCount = tp->total; - if (pT->mCurEv.mPercent >= 100) - pT->mCurEv.mPercent = 99; + if (pT->mCurEv.mTotalChannelCount == 0) + pT->mCurEv.mTotalChannelCount = tp->total; + if (pT->mCurEv.mPercent >= 100) + pT->mCurEv.mPercent = 99; - pT->mCurEv.mLockedStatus = 0; - pT->mCurEv.mStrength = 0; - pT->mCurEv.mSnr = 0; - pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; + pT->mCurEv.mLockedStatus = 0; + pT->mCurEv.mStrength = 0; + pT->mCurEv.mSnr = 0; + pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; - pT->sendEvent(pT->mCurEv); - } - break; - case AM_SCAN_PROGRESS_TS_END: { - /*pT->mCurEv.mLockedStatus = 0; - pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; - pT->sendEvent(pT->mCurEv);*/ - } - break; + pT->sendEvent(pT->mCurEv); + } + break; + case AM_SCAN_PROGRESS_TS_END: { + /*pT->mCurEv.mLockedStatus = 0; + pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; + pT->sendEvent(pT->mCurEv);*/ + } + break; - case AM_SCAN_PROGRESS_PAT_DONE: /*{ + case AM_SCAN_PROGRESS_PAT_DONE: /*{ if(pT->mCurEv.mTotalChannelCount == 1) { pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; pT->sendEvent(pT->mCurEv); } }*/ - break; - case AM_SCAN_PROGRESS_SDT_DONE: /*{ + break; + case AM_SCAN_PROGRESS_SDT_DONE: /*{ dvbpsi_sdt_t *sdts = (dvbpsi_sdt_t *)evt->data; dvbpsi_sdt_t *sdt; @@ -1428,8 +1428,8 @@ void CTvScanner::tv_scan_evt_callback(long dev_no, int event_type, void *param, pT->sendEvent(pT->mCurEv); } }*/ - break; - case AM_SCAN_PROGRESS_CAT_DONE: /*{ + break; + case AM_SCAN_PROGRESS_CAT_DONE: /*{ dvbpsi_cat_t *cat = (dvbpsi_cat_t *)evt->data; if (pT->mCurEv.mTotalChannelCount == 1) { pT->mCurEv.mPercent += 25; @@ -1441,8 +1441,8 @@ void CTvScanner::tv_scan_evt_callback(long dev_no, int event_type, void *param, pT->sendEvent(pT->mCurEv); } }*/ - break; - case AM_SCAN_PROGRESS_PMT_DONE: /*{ + break; + case AM_SCAN_PROGRESS_PMT_DONE: /*{ dvbpsi_pmt_t *pmt = (dvbpsi_pmt_t *)evt->data; if (pT->mCurEv.mTotalChannelCount == 1) { pT->mCurEv.mPercent += 25; @@ -1453,192 +1453,192 @@ void CTvScanner::tv_scan_evt_callback(long dev_no, int event_type, void *param, pT->sendEvent(pT->mCurEv); } }*/ - break; - case AM_SCAN_PROGRESS_MGT_DONE: { - mgt_section_info_t *mgt = (mgt_section_info_t *)evt->data; + break; + case AM_SCAN_PROGRESS_MGT_DONE: { + mgt_section_info_t *mgt = (mgt_section_info_t *)evt->data; - if (pT->mCurEv.mTotalChannelCount == 1) { - pT->mCurEv.mPercent += 10; - if (pT->mCurEv.mPercent >= 100) - pT->mCurEv.mPercent = 99; + if (pT->mCurEv.mTotalChannelCount == 1) { + pT->mCurEv.mPercent += 10; + if (pT->mCurEv.mPercent >= 100) + pT->mCurEv.mPercent = 99; - pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; + pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; - pT->sendEvent(pT->mCurEv); - } - } - break; - case AM_SCAN_PROGRESS_VCT_DONE: { - /*ATSC TVCT*/ - if (pT->mCurEv.mTotalChannelCount == 1) { - pT->mCurEv.mPercent += 30; - if (pT->mCurEv.mPercent >= 100) - pT->mCurEv.mPercent = 99; - pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; - - pT->sendEvent(pT->mCurEv); - } - } - break; - case AM_SCAN_PROGRESS_NEW_PROGRAM: { - /* Notify the new searched programs */ - AM_SCAN_ProgramProgress_t *pp = (AM_SCAN_ProgramProgress_t *)evt->data; - if (pp != NULL) { - pT->mCurEv.mprogramType = pp->service_type; - snprintf(pT->mCurEv.mProgramName, sizeof(pT->mCurEv.mProgramName), "%s", pp->name); + pT->sendEvent(pT->mCurEv); + } + } + break; + case AM_SCAN_PROGRESS_VCT_DONE: { + /*ATSC TVCT*/ + if (pT->mCurEv.mTotalChannelCount == 1) { + pT->mCurEv.mPercent += 30; + if (pT->mCurEv.mPercent >= 100) + pT->mCurEv.mPercent = 99; + pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; + + pT->sendEvent(pT->mCurEv); + } + } + break; + case AM_SCAN_PROGRESS_NEW_PROGRAM: { + /* Notify the new searched programs */ + AM_SCAN_ProgramProgress_t *pp = (AM_SCAN_ProgramProgress_t *)evt->data; + if (pp != NULL) { + pT->mCurEv.mprogramType = pp->service_type; + snprintf(pT->mCurEv.mProgramName, sizeof(pT->mCurEv.mProgramName), "%s", pp->name); - pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; + pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; - pT->sendEvent(pT->mCurEv); - } - } - break; - case AM_SCAN_PROGRESS_BLIND_SCAN: { - AM_SCAN_DTVBlindScanProgress_t *bs_prog = (AM_SCAN_DTVBlindScanProgress_t *)evt->data; + pT->sendEvent(pT->mCurEv); + } + } + break; + case AM_SCAN_PROGRESS_BLIND_SCAN: { + AM_SCAN_DTVBlindScanProgress_t *bs_prog = (AM_SCAN_DTVBlindScanProgress_t *)evt->data; - if (bs_prog) { - pT->mCurEv.mPercent = bs_prog->progress; + if (bs_prog) { + pT->mCurEv.mPercent = bs_prog->progress; - snprintf(pT->mCurEv.mMSG, sizeof(pT->mCurEv.mMSG), "%s/%s %dMHz", - bs_prog->polar == AM_FEND_POLARISATION_H ? "H" : "V", - bs_prog->lo == AM_FEND_LOCALOSCILLATORFREQ_L ? "L-LOF" : "H-LOF", - bs_prog->freq / 1000); + snprintf(pT->mCurEv.mMSG, sizeof(pT->mCurEv.mMSG), "%s/%s %dMHz", + bs_prog->polar == AM_FEND_POLARISATION_H ? "H" : "V", + bs_prog->lo == AM_FEND_LOCALOSCILLATORFREQ_L ? "L-LOF" : "H-LOF", + bs_prog->freq / 1000); - pT->mCurEv.mType = ScannerEvent::EVENT_BLINDSCAN_PROGRESS; + pT->mCurEv.mType = ScannerEvent::EVENT_BLINDSCAN_PROGRESS; - pT->sendEvent(pT->mCurEv); + pT->sendEvent(pT->mCurEv); - if (bs_prog->new_tp_cnt > 0) { - int i = 0; - for (i = 0; i < bs_prog->new_tp_cnt; i++) { - LOGD("====New tp: %dkS/s %d====", bs_prog->new_tps[i].frequency, - bs_prog->new_tps[i].u.qpsk.symbol_rate); + if (bs_prog->new_tp_cnt > 0) { + int i = 0; + for (i = 0; i < bs_prog->new_tp_cnt; i++) { + LOGD("====New tp: %dkS/s %d====", bs_prog->new_tps[i].frequency, + bs_prog->new_tps[i].u.qpsk.symbol_rate); - pT->mCurEv.mFrequency = bs_prog->new_tps[i].frequency; - pT->mCurEv.mSymbolRate = bs_prog->new_tps[i].u.qpsk.symbol_rate; - pT->mCurEv.mSat_polarisation = bs_prog->polar; + pT->mCurEv.mFrequency = bs_prog->new_tps[i].frequency; + pT->mCurEv.mSymbolRate = bs_prog->new_tps[i].u.qpsk.symbol_rate; + pT->mCurEv.mSat_polarisation = bs_prog->polar; - pT->mCurEv.mType = ScannerEvent::EVENT_BLINDSCAN_NEWCHANNEL; + pT->mCurEv.mType = ScannerEvent::EVENT_BLINDSCAN_NEWCHANNEL; - pT->sendEvent(pT->mCurEv); - } - } - if (bs_prog->progress >= 100) { + pT->sendEvent(pT->mCurEv); + } + } + if (bs_prog->progress >= 100) { - pT->mCurEv.mType = ScannerEvent::EVENT_BLINDSCAN_END; + pT->mCurEv.mType = ScannerEvent::EVENT_BLINDSCAN_END; - pT->sendEvent(pT->mCurEv); + pT->sendEvent(pT->mCurEv); - pT->mCurEv.mPercent = 0; - } - } - } - break; - case AM_SCAN_PROGRESS_STORE_BEGIN: { - pT->mCurEv.mType = ScannerEvent::EVENT_STORE_BEGIN; - pT->mCurEv.mLockedStatus = 0; - pT->sendEvent(pT->mCurEv); - } - break; - case AM_SCAN_PROGRESS_STORE_END: { - pT->mCurEv.mLockedStatus = 0; - pT->mCurEv.mType = ScannerEvent::EVENT_STORE_END; - pT->sendEvent(pT->mCurEv); - } - break; - case AM_SCAN_PROGRESS_SCAN_END: { - pT->mCurEv.mPercent = 100; - pT->mCurEv.mLockedStatus = 0; - pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_END; - pT->sendEvent(pT->mCurEv); - } - break; - case AM_SCAN_PROGRESS_SCAN_EXIT: { - pT->mCurEv.mLockedStatus = 0; - pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_EXIT; - pT->sendEvent(pT->mCurEv); - } - break; - case AM_SCAN_PROGRESS_ATV_TUNING: { - pT->mCurEv.mFrequency = (int)evt->data; - pT->mCurEv.mLockedStatus = 0; - tmpFreq = (pT->mCurEv.mFrequency - pT->mCurScanStartFreq) / 1000000; - pT->mCurEv.mPercent = tmpFreq * 100UL / ((pT->mCurScanEndFreq - pT->mCurScanStartFreq) / 1000000); - pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; - pT->sendEvent(pT->mCurEv); - } - break; + pT->mCurEv.mPercent = 0; + } + } + } + break; + case AM_SCAN_PROGRESS_STORE_BEGIN: { + pT->mCurEv.mType = ScannerEvent::EVENT_STORE_BEGIN; + pT->mCurEv.mLockedStatus = 0; + pT->sendEvent(pT->mCurEv); + } + break; + case AM_SCAN_PROGRESS_STORE_END: { + pT->mCurEv.mLockedStatus = 0; + pT->mCurEv.mType = ScannerEvent::EVENT_STORE_END; + pT->sendEvent(pT->mCurEv); + } + break; + case AM_SCAN_PROGRESS_SCAN_END: { + pT->mCurEv.mPercent = 100; + pT->mCurEv.mLockedStatus = 0; + pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_END; + pT->sendEvent(pT->mCurEv); + } + break; + case AM_SCAN_PROGRESS_SCAN_EXIT: { + pT->mCurEv.mLockedStatus = 0; + pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_EXIT; + pT->sendEvent(pT->mCurEv); + } + break; + case AM_SCAN_PROGRESS_ATV_TUNING: { + pT->mCurEv.mFrequency = (int)evt->data; + pT->mCurEv.mLockedStatus = 0; + tmpFreq = (pT->mCurEv.mFrequency - pT->mCurScanStartFreq) / 1000000; + pT->mCurEv.mPercent = tmpFreq * 100UL / ((pT->mCurScanEndFreq - pT->mCurScanStartFreq) / 1000000); + pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; + pT->sendEvent(pT->mCurEv); + } + break; - default: - break; - } - } else if (event_type == AM_SCAN_EVT_SIGNAL) { - AM_SCAN_DTVSignalInfo_t *evt = (AM_SCAN_DTVSignalInfo_t *)param; - //pT->mCurEv.mprogramType = 0xff; - pT->mCurEv.mFrequency = (int)evt->frequency; - pT->mCurEv.mLockedStatus = (evt->locked ? 1 : 0); - - if (pT->mCurEv.mMode == FE_ANALOG && evt->locked)//trick here for atv new prog - pT->mCurEv.mLockedStatus |= 0x10; - - pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; - if (pT->mCurEv.mMode != FE_ANALOG && evt->locked) { - pT->mCurEv.mStrength = evt->strength; - pT->mCurEv.mSnr = evt->snr; - } else { - pT->mCurEv.mStrength = 0; - pT->mCurEv.mSnr = 0; - } + default: + break; + } + } else if (event_type == AM_SCAN_EVT_SIGNAL) { + AM_SCAN_DTVSignalInfo_t *evt = (AM_SCAN_DTVSignalInfo_t *)param; + //pT->mCurEv.mprogramType = 0xff; + pT->mCurEv.mFrequency = (int)evt->frequency; + pT->mCurEv.mLockedStatus = (evt->locked ? 1 : 0); + + if (pT->mCurEv.mMode == FE_ANALOG && evt->locked)//trick here for atv new prog + pT->mCurEv.mLockedStatus |= 0x10; + + pT->mCurEv.mType = ScannerEvent::EVENT_SCAN_PROGRESS; + if (pT->mCurEv.mMode != FE_ANALOG && evt->locked) { + pT->mCurEv.mStrength = evt->strength; + pT->mCurEv.mSnr = evt->snr; + } else { + pT->mCurEv.mStrength = 0; + pT->mCurEv.mSnr = 0; + } - //if (pT->mCurEv.mMode == FE_ANALOG) - pT->sendEvent(pT->mCurEv); + //if (pT->mCurEv.mMode == FE_ANALOG) + pT->sendEvent(pT->mCurEv); - pT->mCurEv.mLockedStatus &= ~0x10; - } + pT->mCurEv.mLockedStatus &= ~0x10; + } } void CTvScanner::tv_scan_reconnect_dmx_to_fend(int dmx_no, int fend_no) { - AM_DMX_Source_t src; + AM_DMX_Source_t src; - if (AM_FEND_GetTSSource(fend_no, &src) == AM_SUCCESS) { - LOGD("Set demux%d source to %d", dmx_no, src); - AM_DMX_SetSource(dmx_no, src); - } else { - LOGD("Cannot get frontend ts source!!"); - } + if (AM_FEND_GetTSSource(fend_no, &src) == AM_SUCCESS) { + LOGD("Set demux%d source to %d", dmx_no, src); + AM_DMX_SetSource(dmx_no, src); + } else { + LOGD("Cannot get frontend ts source!!"); + } } int CTvScanner::getAtscChannelPara(int attennaType, Vector<sp<CTvChannel> > &vcp) { - switch (attennaType) { //region name should be remove to config file and read here - case 1: - CTvRegion::getChannelListByName("U.S.,ATSC Air", vcp); - break; - case 2: - CTvRegion::getChannelListByName("U.S.,ATSC Cable Standard", vcp); - break; - case 3: - CTvRegion::getChannelListByName("U.S.,ATSC Cable IRC", vcp); - break; - case 4: - CTvRegion::getChannelListByName("U.S.,ATSC Cable HRC", vcp); - break; - default: - return -1; - } + switch (attennaType) { //region name should be remove to config file and read here + case 1: + CTvRegion::getChannelListByName("U.S.,ATSC Air", vcp); + break; + case 2: + CTvRegion::getChannelListByName("U.S.,ATSC Cable Standard", vcp); + break; + case 3: + CTvRegion::getChannelListByName("U.S.,ATSC Cable IRC", vcp); + break; + case 4: + CTvRegion::getChannelListByName("U.S.,ATSC Cable HRC", vcp); + break; + default: + return -1; + } - return 0; + return 0; } void CTvScanner::sendEvent(ScannerEvent &evt) { - if (mpObserver) { - if (evt.mType != ScannerEvent::EVENT_DTV_PROG_DATA) { - evt.mAcnt = 0;//avoid invalid count confused the array. - evt.mScnt = 0; - } - mpObserver->onEvent(evt); - } + if (mpObserver) { + if (evt.mType != ScannerEvent::EVENT_DTV_PROG_DATA) { + evt.mAcnt = 0;//avoid invalid count confused the array. + evt.mScnt = 0; + } + mpObserver->onEvent(evt); + } } diff --git a/tvapi/libtv/tv/CTvScanner.h b/tvapi/libtv/tv/CTvScanner.h index 8176ad1..d93a60e 100644 --- a/tvapi/libtv/tv/CTvScanner.h +++ b/tvapi/libtv/tv/CTvScanner.h @@ -21,244 +21,244 @@ #define _CTVSCANNER_H class CTvScanner { public: - /** ATSC Attenna type */ - static const int AM_ATSC_ATTENNA_TYPE_AIR = 1; - static const int AM_ATSC_ATTENNA_TYPE_CABLE_STD = 2; - static const int AM_ATSC_ATTENNA_TYPE_CABLE_IRC = 3; - static const int AM_ATSC_ATTENNA_TYPE_CABLE_HRC = 4; - CTvScanner(CTvin *pTvin); - ~CTvScanner(); - void setGlobalScanerObject(CTvScanner *); - int startScan(); - int stopScan(); - int ATVManualScan(int min_freq, int max_freq, int std, int store_Type = 0, int channel_num = 0); - int autoAtvScan(int min_freq, int max_freq, int std, int search_type); - int autoDtmbScan(); - int manualDtmbScan(int beginFreq, int endFreq, int modulation = -1); - int autoAtscScan(int attennaType, int std); - int manualDtmbScan(int freq); - int manualAtscScan(int freq, int attennaType, int std); - int autoTvScan(); - int unsubscribeEvent(); + /** ATSC Attenna type */ + static const int AM_ATSC_ATTENNA_TYPE_AIR = 1; + static const int AM_ATSC_ATTENNA_TYPE_CABLE_STD = 2; + static const int AM_ATSC_ATTENNA_TYPE_CABLE_IRC = 3; + static const int AM_ATSC_ATTENNA_TYPE_CABLE_HRC = 4; + CTvScanner(CTvin *pTvin); + ~CTvScanner(); + void setGlobalScanerObject(CTvScanner *); + int startScan(); + int stopScan(); + int ATVManualScan(int min_freq, int max_freq, int std, int store_Type = 0, int channel_num = 0); + int autoAtvScan(int min_freq, int max_freq, int std, int search_type); + int autoDtmbScan(); + int manualDtmbScan(int beginFreq, int endFreq, int modulation = -1); + int autoAtscScan(int attennaType, int std); + int manualDtmbScan(int freq); + int manualAtscScan(int freq, int attennaType, int std); + int autoTvScan(); + int unsubscribeEvent(); - class ScannerEvent: public CTvEv { - public: - static const int EVENT_SCAN_PROGRESS = 0; - static const int EVENT_STORE_BEGIN = 1; - static const int EVENT_STORE_END = 2; - static const int EVENT_SCAN_END = 3; - static const int EVENT_BLINDSCAN_PROGRESS = 4; - static const int EVENT_BLINDSCAN_NEWCHANNEL = 5; - static const int EVENT_BLINDSCAN_END = 6; - static const int EVENT_ATV_PROG_DATA = 7; - static const int EVENT_DTV_PROG_DATA = 8; - static const int EVENT_SCAN_EXIT = 9; + class ScannerEvent: public CTvEv { + public: + static const int EVENT_SCAN_PROGRESS = 0; + static const int EVENT_STORE_BEGIN = 1; + static const int EVENT_STORE_END = 2; + static const int EVENT_SCAN_END = 3; + static const int EVENT_BLINDSCAN_PROGRESS = 4; + static const int EVENT_BLINDSCAN_NEWCHANNEL = 5; + static const int EVENT_BLINDSCAN_END = 6; + static const int EVENT_ATV_PROG_DATA = 7; + static const int EVENT_DTV_PROG_DATA = 8; + static const int EVENT_SCAN_EXIT = 9; - ScannerEvent(): CTvEv(CTvEv::TV_EVENT_SCANNER) - { - clear(); - } - void clear() - { - mType = -1; - mProgramName[0] = '\0'; - mMSG[0] = '\0'; - mAcnt = 0; - mScnt = 0; - } - ~ScannerEvent() - { - } + ScannerEvent(): CTvEv(CTvEv::TV_EVENT_SCANNER) + { + clear(); + } + void clear() + { + mType = -1; + mProgramName[0] = '\0'; + mMSG[0] = '\0'; + mAcnt = 0; + mScnt = 0; + } + ~ScannerEvent() + { + } - //common - int mType; - int mPercent; - int mTotalChannelCount; - int mLockedStatus; - int mChannelNumber; - //CTvChannel mChannel; - int mMode; - int mFrequency; - int mSymbolRate; - int mModulation; - int mBandwidth; - int mOfdm_mode; + //common + int mType; + int mPercent; + int mTotalChannelCount; + int mLockedStatus; + int mChannelNumber; + //CTvChannel mChannel; + int mMode; + int mFrequency; + int mSymbolRate; + int mModulation; + int mBandwidth; + int mOfdm_mode; - int mAudio; - int mStandard; - int mSat_polarisation; - // - int mStrength; - int mSnr; - char mProgramName[1024]; - int mprogramType; - char mMSG[128]; - //for atv - int mVideoStd; - int mAudioStd; - int mIsAutoStd;//1 is true - int mAfcData; + int mAudio; + int mStandard; + int mSat_polarisation; + // + int mStrength; + int mSnr; + char mProgramName[1024]; + int mprogramType; + char mMSG[128]; + //for atv + int mVideoStd; + int mAudioStd; + int mIsAutoStd;//1 is true + int mAfcData; - //for DTV - int mTsId; - int mONetId; - int mServiceId; - int mVid; - int mVfmt; - int mAcnt; - int mAid[32]; - int mAfmt[32]; - char mAlang[32][10]; - int mAtype[32]; - int mPcr; + //for DTV + int mTsId; + int mONetId; + int mServiceId; + int mVid; + int mVfmt; + int mAcnt; + int mAid[32]; + int mAfmt[32]; + char mAlang[32][10]; + int mAtype[32]; + int mPcr; - int mScnt; - int mStype[32]; - int mSid[32]; - int mSstype[32]; - int mSid1[32]; - int mSid2[32]; - char mSlang[32][10]; + int mScnt; + int mStype[32]; + int mSid[32]; + int mSstype[32]; + int mSid1[32]; + int mSid2[32]; + char mSlang[32][10]; - // ScannerEvent(int type){ - // this->mType = type; - // } - }; + // ScannerEvent(int type){ + // this->mType = type; + // } + }; - class IObserver { - public: - IObserver() {}; - virtual ~IObserver() {}; - virtual void onEvent(const ScannerEvent &ev) = 0; - }; - //1 VS n - //int addObserver(IObserver* ob); - //int removeObserver(IObserver* ob); + class IObserver { + public: + IObserver() {}; + virtual ~IObserver() {}; + virtual void onEvent(const ScannerEvent &ev) = 0; + }; + //1 VS n + //int addObserver(IObserver* ob); + //int removeObserver(IObserver* ob); - //1 VS 1 - int setObserver(IObserver *ob) - { - mpObserver = ob; - return 0; - } + //1 VS 1 + int setObserver(IObserver *ob) + { + mpObserver = ob; + return 0; + } private: - static AM_Bool_t s_atv_cvbs_lock_check(void *); - AM_Bool_t atv_cvbs_lock_check(v4l2_std_id *colorStd); - static void tv_scan_evt_callback(long dev_no, int event_type, void *param, void *data); - static void am_scan_atv_store(AM_SCAN_Result_t *result); - void tv_scan_reconnect_dmx_to_fend(int dmx_no, int fend_no); - int getAtscChannelPara(int attennaType, Vector<sp<CTvChannel> > &vcp); - void sendEvent(ScannerEvent &evt); - // - AM_SCAN_Handle_t mScanHandle; - volatile bool mbScanStart; + static AM_Bool_t s_atv_cvbs_lock_check(void *); + AM_Bool_t atv_cvbs_lock_check(v4l2_std_id *colorStd); + static void tv_scan_evt_callback(long dev_no, int event_type, void *param, void *data); + static void am_scan_atv_store(AM_SCAN_Result_t *result); + void tv_scan_reconnect_dmx_to_fend(int dmx_no, int fend_no); + int getAtscChannelPara(int attennaType, Vector<sp<CTvChannel> > &vcp); + void sendEvent(ScannerEvent &evt); + // + AM_SCAN_Handle_t mScanHandle; + volatile bool mbScanStart; - //scan para info - /** General TV Scan Mode */ - static const int TV_MODE_ATV = 0; // Only search ATV - static const int TV_MODE_DTV = 1; // Only search DTV - static const int TV_MODE_ADTV = 2; // A/DTV will share a same frequency list, like ATSC - /** DTV scan mode */ - static const int DTV_MODE_AUTO = 1; - static const int DTV_MODE_MANUAL = 2; - static const int DTV_MODE_ALLBAND = 3; - static const int DTV_MODE_BLIND = 4; + //scan para info + /** General TV Scan Mode */ + static const int TV_MODE_ATV = 0; // Only search ATV + static const int TV_MODE_DTV = 1; // Only search DTV + static const int TV_MODE_ADTV = 2; // A/DTV will share a same frequency list, like ATSC + /** DTV scan mode */ + static const int DTV_MODE_AUTO = 1; + static const int DTV_MODE_MANUAL = 2; + static const int DTV_MODE_ALLBAND = 3; + static const int DTV_MODE_BLIND = 4; - /** DTV scan options, DONOT channge */ - static const int DTV_OPTION_UNICABLE = 0x10; //Satellite unicable mode - static const int DTV_OPTION_FTA = 0x20; //Only store free programs - static const int DTV_OPTION_NO_TV = 0x40; //Only store tv programs - static const int DTV_OPTION_NO_RADIO = 0x80; //Only store radio programs + /** DTV scan options, DONOT channge */ + static const int DTV_OPTION_UNICABLE = 0x10; //Satellite unicable mode + static const int DTV_OPTION_FTA = 0x20; //Only store free programs + static const int DTV_OPTION_NO_TV = 0x40; //Only store tv programs + static const int DTV_OPTION_NO_RADIO = 0x80; //Only store radio programs - /** ATV scan mode */ - static const int ATV_MODE_AUTO = 1; - static const int ATV_MODE_MANUAL = 2; + /** ATV scan mode */ + static const int ATV_MODE_AUTO = 1; + static const int ATV_MODE_MANUAL = 2; - // - /*subtitle*/ - static const int TYPE_DVB_SUBTITLE = 1; - static const int TYPE_DTV_TELETEXT = 2; - static const int TYPE_ATV_TELETEXT = 3; - static const int TYPE_DTV_CC = 4; - static const int TYPE_ATV_CC = 5; + // + /*subtitle*/ + static const int TYPE_DVB_SUBTITLE = 1; + static const int TYPE_DTV_TELETEXT = 2; + static const int TYPE_ATV_TELETEXT = 3; + static const int TYPE_DTV_CC = 4; + static const int TYPE_ATV_CC = 5; #define AM_SCAN_MAX_SRV_NAME_LANG 4 - typedef struct { - uint8_t srv_type, eit_sche, eit_pf, rs, free_ca, access_controlled, hidden, hide_guide, plp_id; - int vid, aid1, aid2, srv_id, pmt_pid, pcr_pid; - int vfmt, chan_num, afmt_tmp, vfmt_tmp, scrambled_flag, major_chan_num, minor_chan_num, source_id; - int src, srv_dbid, satpara_dbid; - char name[(AM_DB_MAX_SRV_NAME_LEN + 4)*AM_SCAN_MAX_SRV_NAME_LANG + 1]; - char *default_text_lang; - char *text_langs; - AM_SI_AudioInfo_t aud_info; - AM_SI_SubtitleInfo_t sub_info; - AM_SI_TeletextInfo_t ttx_info; - int sdt_version; - } SCAN_ServiceInfo_t; + typedef struct { + uint8_t srv_type, eit_sche, eit_pf, rs, free_ca, access_controlled, hidden, hide_guide, plp_id; + int vid, aid1, aid2, srv_id, pmt_pid, pcr_pid; + int vfmt, chan_num, afmt_tmp, vfmt_tmp, scrambled_flag, major_chan_num, minor_chan_num, source_id; + int src, srv_dbid, satpara_dbid; + char name[(AM_DB_MAX_SRV_NAME_LEN + 4)*AM_SCAN_MAX_SRV_NAME_LANG + 1]; + char *default_text_lang; + char *text_langs; + AM_SI_AudioInfo_t aud_info; + AM_SI_SubtitleInfo_t sub_info; + AM_SI_TeletextInfo_t ttx_info; + int sdt_version; + } SCAN_ServiceInfo_t; - static dvbpsi_pat_t *get_valid_pats(AM_SCAN_TS_t *ts); - static void scan_process_ts_info(AM_SCAN_Result_t *result, AM_SCAN_TS_t *ts, ScannerEvent *evt); - static void scan_init_service_info(SCAN_ServiceInfo_t *srv_info); - static int get_pmt_pid(dvbpsi_pat_t *pats, int program_number); - static void scan_extract_ca_scrambled_flag(dvbpsi_descriptor_t *p_first_descriptor, int *flag); - static void scan_extract_srv_info_from_sdt(AM_SCAN_Result_t *result, dvbpsi_sdt_t *sdts, SCAN_ServiceInfo_t *srv_info); - static void scan_update_service_info(AM_SCAN_Result_t *result, SCAN_ServiceInfo_t *srv_info); - static void scan_store_dvb_ts_evt_service(SCAN_ServiceInfo_t *srv); - static void scan_store_dvb_ts(AM_SCAN_Result_t *result, AM_SCAN_TS_t *ts); - static void dtv_scan_store(AM_SCAN_Result_t *result); + static dvbpsi_pat_t *get_valid_pats(AM_SCAN_TS_t *ts); + static void scan_process_ts_info(AM_SCAN_Result_t *result, AM_SCAN_TS_t *ts, ScannerEvent *evt); + static void scan_init_service_info(SCAN_ServiceInfo_t *srv_info); + static int get_pmt_pid(dvbpsi_pat_t *pats, int program_number); + static void scan_extract_ca_scrambled_flag(dvbpsi_descriptor_t *p_first_descriptor, int *flag); + static void scan_extract_srv_info_from_sdt(AM_SCAN_Result_t *result, dvbpsi_sdt_t *sdts, SCAN_ServiceInfo_t *srv_info); + static void scan_update_service_info(AM_SCAN_Result_t *result, SCAN_ServiceInfo_t *srv_info); + static void scan_store_dvb_ts_evt_service(SCAN_ServiceInfo_t *srv); + static void scan_store_dvb_ts(AM_SCAN_Result_t *result, AM_SCAN_TS_t *ts); + static void dtv_scan_store(AM_SCAN_Result_t *result); private: - // - IObserver *mpObserver; - // - CTvin *mpTvin; - int mMode; - int mFendID; - /** DTV parameters */ - int mTvMode; - int mTvOptions; - int mSat_id; - int mSource; + // + IObserver *mpObserver; + // + CTvin *mpTvin; + int mMode; + int mFendID; + /** DTV parameters */ + int mTvMode; + int mTvOptions; + int mSat_id; + int mSource; - //showboz - //TVSatelliteParams tv_satparams; - int mTsSourceID; - CTvChannel mStartChannel; - Vector<CTvChannel> mvChooseListChannels; - /** ATV parameters */ - int mAtvMode; - int mStartFreq; - int mDirection; - int mChannelID; + //showboz + //TVSatelliteParams tv_satparams; + int mTsSourceID; + CTvChannel mStartChannel; + Vector<CTvChannel> mvChooseListChannels; + /** ATV parameters */ + int mAtvMode; + int mStartFreq; + int mDirection; + int mChannelID; - //extern for scanner - //int channelID; //can be used for manual scan - /** Atv set */ - int mMinFreq; - int mMaxFreq; - long long mCurScanStartFreq; - long long mCurScanEndFreq; - int tunerStd; - /** Tv set */ - int demuxID;//default 0 - String8 defaultTextLang; - String8 orderedTextLangs; - //showboz - //Vector<CTvChannel> ChannelList;//VS mvChooseListChannels + //extern for scanner + //int channelID; //can be used for manual scan + /** Atv set */ + int mMinFreq; + int mMaxFreq; + long long mCurScanStartFreq; + long long mCurScanEndFreq; + int tunerStd; + /** Tv set */ + int demuxID;//default 0 + String8 defaultTextLang; + String8 orderedTextLangs; + //showboz + //Vector<CTvChannel> ChannelList;//VS mvChooseListChannels - /** Dtv-Sx set Unicable settings*/ - int user_band; - int ub_freq;//!< kHz + /** Dtv-Sx set Unicable settings*/ + int user_band; + int ub_freq;//!< kHz - ScannerEvent mCurEv; - static CTvScanner *m_s_Scanner; + ScannerEvent mCurEv; + static CTvScanner *m_s_Scanner; }; #endif //CTVSCANNER_H diff --git a/tvapi/libtv/tv/CTvScreenCapture.cpp b/tvapi/libtv/tv/CTvScreenCapture.cpp index cec4e70..396c1d5 100644 --- a/tvapi/libtv/tv/CTvScreenCapture.cpp +++ b/tvapi/libtv/tv/CTvScreenCapture.cpp @@ -36,714 +36,714 @@ using namespace android; int CTvScreenCapture::xioctl(int fd, int request, void *arg) { - /* int r = 0; + /* int r = 0; - do { - r = ioctl(fd, request, arg); - } while (-1 == r && EINTR == errno); + do { + r = ioctl(fd, request, arg); + } while (-1 == r && EINTR == errno); - return r;*/ - return 0; + return r;*/ + return 0; } int CTvScreenCapture::OpenCamera(struct camera *pCameraDev) { - /* - int iOutRet = 0, iRet; - struct stat st; - - do { - if (-1 == stat(pCameraDev->device_name, &st)) { - LOGD( "Cannot identify '%s'\n", pCameraDev->device_name); - iOutRet = FAILED; - break; - } - - if (!S_ISCHR(st.st_mode)) { - LOGD("%s is no device\n", pCameraDev->device_name); - iOutRet = FAILED; - break; - } - - pCameraDev->fd = open(pCameraDev->device_name, O_RDWR | O_NONBLOCK, 0); // O_NONBLOCK - if (SUCCEED > pCameraDev->fd) { - LOGD("Cannot open '%s'\n", pCameraDev->device_name); - iOutRet = FAILED; - break; - } - } while (FALSE); - - return iOutRet;*/ - return 0; + /* + int iOutRet = 0, iRet; + struct stat st; + + do { + if (-1 == stat(pCameraDev->device_name, &st)) { + LOGD( "Cannot identify '%s'\n", pCameraDev->device_name); + iOutRet = FAILED; + break; + } + + if (!S_ISCHR(st.st_mode)) { + LOGD("%s is no device\n", pCameraDev->device_name); + iOutRet = FAILED; + break; + } + + pCameraDev->fd = open(pCameraDev->device_name, O_RDWR | O_NONBLOCK, 0); // O_NONBLOCK + if (SUCCEED > pCameraDev->fd) { + LOGD("Cannot open '%s'\n", pCameraDev->device_name); + iOutRet = FAILED; + break; + } + } while (FALSE); + + return iOutRet;*/ + return 0; } int CTvScreenCapture::InitVCap(sp<IMemory> Mem) { - /* int iOutRet = FAILED; + /* int iOutRet = FAILED; - do { - m_pMem = Mem; - m_pData = (char *)m_pMem->pointer(); - LOGD("VVVVVVVVVVVVVVVVVVVVVVVVVVVVV %p\n", m_pData); - //default - } while (FALSE); + do { + m_pMem = Mem; + m_pData = (char *)m_pMem->pointer(); + LOGD("VVVVVVVVVVVVVVVVVVVVVVVVVVVVV %p\n", m_pData); + //default + } while (FALSE); - return iOutRet;*/ - return 0; + return iOutRet;*/ + return 0; } int CTvScreenCapture::InitMmap(struct camera *cam) { - /* int iOutRet = SUCCEED, iRet; - struct v4l2_requestbuffers req; - - do { - CLEAR(req); - - req.count = 4; - req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - req.memory = V4L2_MEMORY_MMAP; - - iRet = xioctl(cam->fd, VIDIOC_REQBUFS, &req); - if (FAILED == iRet) { - if (EINVAL == errno) { - LOGD("VIDIOC_REQBUFS %s does not support memory mapping\n", cam->device_name); - } - iOutRet = iRet; - break; - } - - if (req.count < 2) { - LOGD("Insufficient buffer memory on %s\n", cam->device_name); - iOutRet = FAILED; - break; - } - - cam->buffers = (struct buffer *)calloc(req.count, sizeof(*(cam->buffers))); - if (!cam->buffers) { - LOGD("Out of memory\n"); - iOutRet = FAILED; - break; - } - - for (m_capNumBuffers = 0; m_capNumBuffers < req.count; ++m_capNumBuffers) { - struct v4l2_buffer buf; - - CLEAR(buf); - - buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - buf.memory = V4L2_MEMORY_MMAP; - buf.index = m_capNumBuffers; - - if (FAILED == xioctl(cam->fd, VIDIOC_QUERYBUF, &buf)) { - LOGD("VIDIOC_QUERYBUF ERROR\n"); - iOutRet = FAILED; - goto IS_ERROR; - } - - cam->buffers[m_capNumBuffers].length = buf.length; - cam->buffers[m_capNumBuffers].start = mmap(NULL \, - buf.length, PROT_READ | PROT_WRITE, - MAP_SHARED, cam->fd, buf.m.offset); - - if (MAP_FAILED == cam->buffers[m_capNumBuffers].start) { - iOutRet = FAILED; - break; - } - - - } - - LOGD("END m_capNumBuffers : %d\n", m_capNumBuffers); - } while (FALSE); - IS_ERROR: - return iOutRet;*/ - return 0; + /* int iOutRet = SUCCEED, iRet; + struct v4l2_requestbuffers req; + + do { + CLEAR(req); + + req.count = 4; + req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + req.memory = V4L2_MEMORY_MMAP; + + iRet = xioctl(cam->fd, VIDIOC_REQBUFS, &req); + if (FAILED == iRet) { + if (EINVAL == errno) { + LOGD("VIDIOC_REQBUFS %s does not support memory mapping\n", cam->device_name); + } + iOutRet = iRet; + break; + } + + if (req.count < 2) { + LOGD("Insufficient buffer memory on %s\n", cam->device_name); + iOutRet = FAILED; + break; + } + + cam->buffers = (struct buffer *)calloc(req.count, sizeof(*(cam->buffers))); + if (!cam->buffers) { + LOGD("Out of memory\n"); + iOutRet = FAILED; + break; + } + + for (m_capNumBuffers = 0; m_capNumBuffers < req.count; ++m_capNumBuffers) { + struct v4l2_buffer buf; + + CLEAR(buf); + + buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + buf.memory = V4L2_MEMORY_MMAP; + buf.index = m_capNumBuffers; + + if (FAILED == xioctl(cam->fd, VIDIOC_QUERYBUF, &buf)) { + LOGD("VIDIOC_QUERYBUF ERROR\n"); + iOutRet = FAILED; + goto IS_ERROR; + } + + cam->buffers[m_capNumBuffers].length = buf.length; + cam->buffers[m_capNumBuffers].start = mmap(NULL \, + buf.length, PROT_READ | PROT_WRITE, + MAP_SHARED, cam->fd, buf.m.offset); + + if (MAP_FAILED == cam->buffers[m_capNumBuffers].start) { + iOutRet = FAILED; + break; + } + + + } + + LOGD("END m_capNumBuffers : %d\n", m_capNumBuffers); + } while (FALSE); + IS_ERROR: + return iOutRet;*/ + return 0; } int CTvScreenCapture::InitCamera(struct camera *cam) { - /* - int iOutRet = SUCCEED, iRet; - struct v4l2_capability *cap = &(cam->v4l2_cap); - struct v4l2_cropcap *cropcap = &(cam->v4l2_cropcap); - struct v4l2_crop *crop = &(cam->crop); - struct v4l2_format *fmt = &(cam->v4l2_fmt); - unsigned int min; - - do { - iRet = xioctl(cam->fd, VIDIOC_QUERYCAP, cap); - if (FAILED == iRet) { - if (EINVAL == errno) { - LOGD("%s is no V4L2 device\n", cam->device_name); - } - iOutRet = iRet; - break; - } - - if (!(cap->capabilities & V4L2_CAP_VIDEO_CAPTURE)) { - LOGD("%s is no video capture device\n", cam->device_name); - iOutRet = FAILED; - break; - } - - if (!(cap->capabilities & V4L2_CAP_STREAMING)) { - LOGD("%s does not support streaming i/o\n", cam->device_name); - iOutRet = FAILED; - break; - } - - LOGD("VIDOOC_QUERYCAP camera driver is [%s] card is [%s] businfo is [%s] version is [%d]\n", cap->driver, - cap->card, cap->bus_info, cap->version); - - //* Select video input, video standard and tune here. - - CLEAR(*cropcap); - cropcap->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - - crop->c.width = cam->width; - crop->c.height = cam->height; - crop->c.left = 0; - crop->c.top = 0; - crop->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - - CLEAR(*fmt); - fmt->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - fmt->fmt.pix.width = cam->width; - fmt->fmt.pix.height = cam->height; - fmt->fmt.pix.pixelformat = V4L2_PIX_FMT_NV21; - fmt->fmt.pix.field = V4L2_FIELD_INTERLACED; - iRet = xioctl(cam->fd, VIDIOC_S_FMT, fmt); - if (FAILED == iRet) { - iOutRet = iRet; - LOGD("VIDIOC_S_FMT is ERROR\n"); - break; - } - - //* Note VIDIOC_S_FMT may change width and height. - //* Buggy driver paranoia. - min = fmt->fmt.pix.width * 2; - LOGD("bytesperline : %d w:h [%d %d]\n", fmt->fmt.pix.bytesperline, fmt->fmt.pix.width, fmt->fmt.pix.height); - if (fmt->fmt.pix.bytesperline < min) { - fmt->fmt.pix.bytesperline = min; - } - - min = fmt->fmt.pix.bytesperline * fmt->fmt.pix.height; - if (fmt->fmt.pix.sizeimage < min) { - fmt->fmt.pix.sizeimage = min; - } - - iRet = InitMmap(cam); - if (FAILED == iRet) { - LOGD("INIT MMAP FAILED\n"); - iOutRet = iRet; - break; - } - - } while (FALSE); - - return iOutRet; - */ - return 0; + /* + int iOutRet = SUCCEED, iRet; + struct v4l2_capability *cap = &(cam->v4l2_cap); + struct v4l2_cropcap *cropcap = &(cam->v4l2_cropcap); + struct v4l2_crop *crop = &(cam->crop); + struct v4l2_format *fmt = &(cam->v4l2_fmt); + unsigned int min; + + do { + iRet = xioctl(cam->fd, VIDIOC_QUERYCAP, cap); + if (FAILED == iRet) { + if (EINVAL == errno) { + LOGD("%s is no V4L2 device\n", cam->device_name); + } + iOutRet = iRet; + break; + } + + if (!(cap->capabilities & V4L2_CAP_VIDEO_CAPTURE)) { + LOGD("%s is no video capture device\n", cam->device_name); + iOutRet = FAILED; + break; + } + + if (!(cap->capabilities & V4L2_CAP_STREAMING)) { + LOGD("%s does not support streaming i/o\n", cam->device_name); + iOutRet = FAILED; + break; + } + + LOGD("VIDOOC_QUERYCAP camera driver is [%s] card is [%s] businfo is [%s] version is [%d]\n", cap->driver, + cap->card, cap->bus_info, cap->version); + + //* Select video input, video standard and tune here. + + CLEAR(*cropcap); + cropcap->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + + crop->c.width = cam->width; + crop->c.height = cam->height; + crop->c.left = 0; + crop->c.top = 0; + crop->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + + CLEAR(*fmt); + fmt->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + fmt->fmt.pix.width = cam->width; + fmt->fmt.pix.height = cam->height; + fmt->fmt.pix.pixelformat = V4L2_PIX_FMT_NV21; + fmt->fmt.pix.field = V4L2_FIELD_INTERLACED; + iRet = xioctl(cam->fd, VIDIOC_S_FMT, fmt); + if (FAILED == iRet) { + iOutRet = iRet; + LOGD("VIDIOC_S_FMT is ERROR\n"); + break; + } + + //* Note VIDIOC_S_FMT may change width and height. + //* Buggy driver paranoia. + min = fmt->fmt.pix.width * 2; + LOGD("bytesperline : %d w:h [%d %d]\n", fmt->fmt.pix.bytesperline, fmt->fmt.pix.width, fmt->fmt.pix.height); + if (fmt->fmt.pix.bytesperline < min) { + fmt->fmt.pix.bytesperline = min; + } + + min = fmt->fmt.pix.bytesperline * fmt->fmt.pix.height; + if (fmt->fmt.pix.sizeimage < min) { + fmt->fmt.pix.sizeimage = min; + } + + iRet = InitMmap(cam); + if (FAILED == iRet) { + LOGD("INIT MMAP FAILED\n"); + iOutRet = iRet; + break; + } + + } while (FALSE); + + return iOutRet; + */ + return 0; } int CTvScreenCapture::SetVideoParameter(int width, int height, int frame) { - /* - int iOutRet = SUCCEED, iRet; - - do { - m_capV4l2Cam.device_name = "/dev/video11"; - m_capV4l2Cam.buffers = NULL; - m_capV4l2Cam.width = 1280; - m_capV4l2Cam.height = 720; - m_capV4l2Cam.display_depth = 24; //5; //* RGB24 - m_capV4l2Cam.frame_number = 1; //fps - iOutRet = OpenCamera(&m_capV4l2Cam) ; - if (SUCCEED != iOutRet) { - LOGD("ERROR:::Open Camera device failed\n"); - break; - } - m_capV4l2Cam.width = width; - m_capV4l2Cam.height = height; - m_capV4l2Cam.frame_number = frame; - - iRet = InitCamera(&m_capV4l2Cam); - if (SUCCEED != iRet) { - iOutRet = iRet; - break; - } - - } while (FALSE); - - return iOutRet ;*/ - return 0; + /* + int iOutRet = SUCCEED, iRet; + + do { + m_capV4l2Cam.device_name = "/dev/video11"; + m_capV4l2Cam.buffers = NULL; + m_capV4l2Cam.width = 1280; + m_capV4l2Cam.height = 720; + m_capV4l2Cam.display_depth = 24; //5; //* RGB24 + m_capV4l2Cam.frame_number = 1; //fps + iOutRet = OpenCamera(&m_capV4l2Cam) ; + if (SUCCEED != iOutRet) { + LOGD("ERROR:::Open Camera device failed\n"); + break; + } + m_capV4l2Cam.width = width; + m_capV4l2Cam.height = height; + m_capV4l2Cam.frame_number = frame; + + iRet = InitCamera(&m_capV4l2Cam); + if (SUCCEED != iRet) { + iOutRet = iRet; + break; + } + + } while (FALSE); + + return iOutRet ;*/ + return 0; } int CTvScreenCapture::StartCapturing(struct camera *cam) { - /* - unsigned int i; - int iOutRet = SUCCEED, iRet; - enum v4l2_buf_type type; - - do { - for (i = 0; i < m_capNumBuffers; ++i) { - struct v4l2_buffer buf; - - //CLEAR(buf); - - buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - buf.memory = V4L2_MEMORY_MMAP; - buf.index = i; - - iRet = xioctl(cam->fd, VIDIOC_QBUF, &buf); - if (FAILED == iRet) { - iOutRet = iRet; - goto IS_ERROR; - } - } - - - type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - iRet = xioctl(cam->fd, VIDIOC_STREAMON, &type); - if (FAILED == iRet) { - iOutRet = iRet; - break; - } - } while (FALSE); - IS_ERROR: - - return iOutRet;*/ - return 0; + /* + unsigned int i; + int iOutRet = SUCCEED, iRet; + enum v4l2_buf_type type; + + do { + for (i = 0; i < m_capNumBuffers; ++i) { + struct v4l2_buffer buf; + + //CLEAR(buf); + + buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + buf.memory = V4L2_MEMORY_MMAP; + buf.index = i; + + iRet = xioctl(cam->fd, VIDIOC_QBUF, &buf); + if (FAILED == iRet) { + iOutRet = iRet; + goto IS_ERROR; + } + } + + + type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + iRet = xioctl(cam->fd, VIDIOC_STREAMON, &type); + if (FAILED == iRet) { + iOutRet = iRet; + break; + } + } while (FALSE); + IS_ERROR: + + return iOutRet;*/ + return 0; } int CTvScreenCapture::VideoStart() { - /* - int iOutRet = SUCCEED, iRet; + /* + int iOutRet = SUCCEED, iRet; - do { - iRet = StartCapturing(&m_capV4l2Cam); - if (FAILED == iRet) { - iOutRet = iRet; - break; - } + do { + iRet = StartCapturing(&m_capV4l2Cam); + if (FAILED == iRet) { + iOutRet = iRet; + break; + } - } while (FALSE); + } while (FALSE); - return iOutRet;*/ - return 0; + return iOutRet;*/ + return 0; } void CTvScreenCapture::yuv_to_rgb32(unsigned char y, unsigned char u, unsigned char v, unsigned char *rgb) { - /* - register int r, g, b; - int rgb24; - - r = (1192 * (y - 16) + 1634 * (v - 128) ) >> 10; - g = (1192 * (y - 16) - 833 * (v - 128) - 400 * (u - 128) ) >> 10; - b = (1192 * (y - 16) + 2066 * (u - 128) ) >> 10; - - r = r > 255 ? 255 : r < 0 ? 0 : r; - g = g > 255 ? 255 : g < 0 ? 0 : g; - b = b > 255 ? 255 : b < 0 ? 0 : b; - - rgb24 = (int)((r << 16) | (g << 8) | b); - - //*ARGB - *rgb = (unsigned char)r; - rgb ++; - *rgb = (unsigned char)g; - rgb++; - *rgb = (unsigned char)b; - rgb++; - *rgb = 0xff;*/ - return; + /* + register int r, g, b; + int rgb24; + + r = (1192 * (y - 16) + 1634 * (v - 128) ) >> 10; + g = (1192 * (y - 16) - 833 * (v - 128) - 400 * (u - 128) ) >> 10; + b = (1192 * (y - 16) + 2066 * (u - 128) ) >> 10; + + r = r > 255 ? 255 : r < 0 ? 0 : r; + g = g > 255 ? 255 : g < 0 ? 0 : g; + b = b > 255 ? 255 : b < 0 ? 0 : b; + + rgb24 = (int)((r << 16) | (g << 8) | b); + + //*ARGB + *rgb = (unsigned char)r; + rgb ++; + *rgb = (unsigned char)g; + rgb++; + *rgb = (unsigned char)b; + rgb++; + *rgb = 0xff;*/ + return; } void CTvScreenCapture::nv21_to_rgb32(unsigned char *buf, unsigned char *rgb, int width, int height, int *len) { - /* - int x, y, z = 0; - int h, w; - int blocks; - unsigned char Y1, Y2, U, V; - - *len = 0; - - blocks = (width * height) * 2; - - for (h = 0, z = 0; h < height; h += 2) { - for (y = 0; y < width * 2; y += 2) { - - Y1 = buf[ h * width + y + 0]; - V = buf[ blocks / 2 + h * width / 2 + y % width + 0 ]; - Y2 = buf[ h * width + y + 1]; - U = buf[ blocks / 2 + h * width / 2 + y % width + 1 ]; - - yuv_to_rgb32(Y1, U, V, &rgb[z]); - yuv_to_rgb32(Y2, U, V, &rgb[z + 4]); - z += 8; - } - } - *len = z; - LOGD("z +++++++++++++++++++++++++++++++++ z %d\n", z);*/ - return; + /* + int x, y, z = 0; + int h, w; + int blocks; + unsigned char Y1, Y2, U, V; + + *len = 0; + + blocks = (width * height) * 2; + + for (h = 0, z = 0; h < height; h += 2) { + for (y = 0; y < width * 2; y += 2) { + + Y1 = buf[ h * width + y + 0]; + V = buf[ blocks / 2 + h * width / 2 + y % width + 0 ]; + Y2 = buf[ h * width + y + 1]; + U = buf[ blocks / 2 + h * width / 2 + y % width + 1 ]; + + yuv_to_rgb32(Y1, U, V, &rgb[z]); + yuv_to_rgb32(Y2, U, V, &rgb[z + 4]); + z += 8; + } + } + *len = z; + LOGD("z +++++++++++++++++++++++++++++++++ z %d\n", z);*/ + return; } int CTvScreenCapture::GetVideoData(int *length) { - /* - int iOutRet = SUCCEED, iRet; - - *length = 0; - while (true) { - fd_set fds; - struct timeval tv; - FD_ZERO(&fds); - FD_SET(m_capV4l2Cam.fd, &fds); - //* Timeout. - tv.tv_sec = 0; - tv.tv_usec = 30000; - iRet = select(m_capV4l2Cam.fd + 1, &fds, NULL, NULL, &tv); - if (FAILED == iRet) { - LOGD("select FAILED\n"); - if (EINTR == errno) { - LOGD("select FAILED Continue\n"); - continue; - } - - } - - if (0 == iRet) { - LOGD("select timeout\n"); - continue ; - } - - struct v4l2_buffer buf; - CLEAR(buf); - - buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - buf.memory = V4L2_MEMORY_MMAP; - iRet = xioctl(m_capV4l2Cam.fd, VIDIOC_DQBUF, &buf); - if (FAILED == iRet) { - if (errno == EAGAIN) { - LOGD("GetVideoData EAGAIN \n"); - } - - continue; - } - - LOGD("DDDDDDDDDDAAAAAAAAAAAAAAAAAAAATTTTTTTTTTTTTTAAAAAAAAAAAAAAAAAAAAAAAAAAAAA %d %d [width:%d] [height:%d]\n", buf.length, iRet, - m_capV4l2Cam.width, m_capV4l2Cam.height); - int tmpLen = 0; - nv21_to_rgb32((unsigned char *)m_capV4l2Cam.buffers[buf.index].start, (unsigned char *)m_pData, m_capV4l2Cam.width, m_capV4l2Cam.height, &tmpLen); - //memcpy(m_pData,m_capV4l2Cam.buffers[buf.index].start, buf.length +1); - *length = buf.length; - break; - - } - - if (*length > 0) { - mCapEvt.mFrameWide = m_capV4l2Cam.width; - mCapEvt.mFrameHeight = m_capV4l2Cam.height; - mCapEvt.mFrameNum = 1; - mCapEvt.mFrameSize = *length; - } else { - mCapEvt.mFrameWide = 0; - mCapEvt.mFrameHeight = 0; - mCapEvt.mFrameNum = 0; - mCapEvt.mFrameSize = 0; - } - - if (NULL != mpObserver) { - mpObserver->onTvEvent(mCapEvt); - } - - return iOutRet;*/ - return 0; + /* + int iOutRet = SUCCEED, iRet; + + *length = 0; + while (true) { + fd_set fds; + struct timeval tv; + FD_ZERO(&fds); + FD_SET(m_capV4l2Cam.fd, &fds); + //* Timeout. + tv.tv_sec = 0; + tv.tv_usec = 30000; + iRet = select(m_capV4l2Cam.fd + 1, &fds, NULL, NULL, &tv); + if (FAILED == iRet) { + LOGD("select FAILED\n"); + if (EINTR == errno) { + LOGD("select FAILED Continue\n"); + continue; + } + + } + + if (0 == iRet) { + LOGD("select timeout\n"); + continue ; + } + + struct v4l2_buffer buf; + CLEAR(buf); + + buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + buf.memory = V4L2_MEMORY_MMAP; + iRet = xioctl(m_capV4l2Cam.fd, VIDIOC_DQBUF, &buf); + if (FAILED == iRet) { + if (errno == EAGAIN) { + LOGD("GetVideoData EAGAIN \n"); + } + + continue; + } + + LOGD("DDDDDDDDDDAAAAAAAAAAAAAAAAAAAATTTTTTTTTTTTTTAAAAAAAAAAAAAAAAAAAAAAAAAAAAA %d %d [width:%d] [height:%d]\n", buf.length, iRet, + m_capV4l2Cam.width, m_capV4l2Cam.height); + int tmpLen = 0; + nv21_to_rgb32((unsigned char *)m_capV4l2Cam.buffers[buf.index].start, (unsigned char *)m_pData, m_capV4l2Cam.width, m_capV4l2Cam.height, &tmpLen); + //memcpy(m_pData,m_capV4l2Cam.buffers[buf.index].start, buf.length +1); + *length = buf.length; + break; + + } + + if (*length > 0) { + mCapEvt.mFrameWide = m_capV4l2Cam.width; + mCapEvt.mFrameHeight = m_capV4l2Cam.height; + mCapEvt.mFrameNum = 1; + mCapEvt.mFrameSize = *length; + } else { + mCapEvt.mFrameWide = 0; + mCapEvt.mFrameHeight = 0; + mCapEvt.mFrameNum = 0; + mCapEvt.mFrameSize = 0; + } + + if (NULL != mpObserver) { + mpObserver->onTvEvent(mCapEvt); + } + + return iOutRet;*/ + return 0; } int CTvScreenCapture::StopCapturing(struct camera *cam) { - /* - int iOutRet = SUCCEED, iRet; - enum v4l2_buf_type type; - - do { - type = V4L2_BUF_TYPE_VIDEO_CAPTURE; - - iRet = xioctl(cam->fd, VIDIOC_STREAMOFF, &type); - if (FAILED == iRet) { - iOutRet = iRet; - break; - } - } while (FALSE); - - return iOutRet;*/ - return 0; + /* + int iOutRet = SUCCEED, iRet; + enum v4l2_buf_type type; + + do { + type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + + iRet = xioctl(cam->fd, VIDIOC_STREAMOFF, &type); + if (FAILED == iRet) { + iOutRet = iRet; + break; + } + } while (FALSE); + + return iOutRet;*/ + return 0; } int CTvScreenCapture::VideoStop() { - /* - StopCapturing(&m_capV4l2Cam); - UninitCamera(&m_capV4l2Cam); - return SUCCEED;*/ - return 0; + /* + StopCapturing(&m_capV4l2Cam); + UninitCamera(&m_capV4l2Cam); + return SUCCEED;*/ + return 0; } int CTvScreenCapture::UninitCamera(struct camera *cam) { - /* - unsigned int i; + /* + unsigned int i; - for (i = 0; i < m_capNumBuffers; ++i) { - if (cam->buffers[i].start == NULL) { - break; - } + for (i = 0; i < m_capNumBuffers; ++i) { + if (cam->buffers[i].start == NULL) { + break; + } - if (FAILED == munmap(cam->buffers[i].start, cam->buffers[i].length)) { - LOGD("ERROR::munmap cam buffer failed\n"); - break; - } - } + if (FAILED == munmap(cam->buffers[i].start, cam->buffers[i].length)) { + LOGD("ERROR::munmap cam buffer failed\n"); + break; + } + } - if (NULL != cam->buffers) - free(cam->buffers); + if (NULL != cam->buffers) + free(cam->buffers); - cam->buffers = NULL; + cam->buffers = NULL; - return SUCCEED;*/ - return 0; + return SUCCEED;*/ + return 0; } int CTvScreenCapture::CloseCamera(struct camera *cam) { - /* - int iOutRet = SUCCEED, iRet; - - do { - if (cam->fd > 0) { - iRet = close(cam->fd); - if (FAILED == iRet) { - iOutRet = iRet; - break; - } - - cam->fd = -1; - } - } while (FALSE); - - return iOutRet;*/ - return 0; + /* + int iOutRet = SUCCEED, iRet; + + do { + if (cam->fd > 0) { + iRet = close(cam->fd); + if (FAILED == iRet) { + iOutRet = iRet; + break; + } + + cam->fd = -1; + } + } while (FALSE); + + return iOutRet;*/ + return 0; } int CTvScreenCapture::DeinitVideoCap() { - /* - CloseCamera(&m_capV4l2Cam); - return SUCCEED ; - */ - return 0; + /* + CloseCamera(&m_capV4l2Cam); + return SUCCEED ; + */ + return 0; } int CTvScreenCapture::AmvideocapCapFrame(char *buf, int size, int *w, int *h, int *ret_size) { - /* - int iOutRet = SUCCEED, iRet; - int iDevFd = -1; - int format = FORMAT_S32_ABGR; - - do { - iDevFd = open(VIDEOCAPDEV, O_RDWR); - if (iDevFd < 0) { - LOGD("ERROR,open amvideocap0 failed\n"); - iOutRet = FAILED; - break; - } - - if ((w != NULL) && (*w > 0)) { - iRet = ioctl(iDevFd, AMVIDEOCAP_IOW_SET_WANTFRAME_WIDTH, *w); - if (iRet < 0) { - iOutRet = iRet; - break; - } - } - - if ((h != NULL) && (*h > 0)) { - - iRet = ioctl(iDevFd, AMVIDEOCAP_IOW_SET_WANTFRAME_HEIGHT, *h); - if (iRet < 0) { - iOutRet = iRet; - break; - } - } - - iRet = ioctl(iDevFd, AMVIDEOCAP_IOW_SET_WANTFRAME_FORMAT, format); - if (iRet < 0) { - iOutRet = iRet; - break; - } - - *ret_size = read(iDevFd, buf, size); - if (0 == *ret_size) { - LOGD("ERROR:: Cann't Read video data\n"); - iOutRet = FAILED; - *ret_size = 0; - break; - } - - LOGD("========== Got Data Size : %d ==============\n", *ret_size); - #if 0 - if (w != NULL) { - iRet = ioctl(iDevFd, AMVIDEOCAP_IOR_GET_FRAME_WIDTH, w); - } - - if (h != NULL) { - iRet = ioctl(iDevFd, AMVIDEOCAP_IOR_GET_FRAME_HEIGHT, h); - } - #endif - } while (FALSE); - - close(iDevFd); - - return iOutRet;*/ - return 0; + /* + int iOutRet = SUCCEED, iRet; + int iDevFd = -1; + int format = FORMAT_S32_ABGR; + + do { + iDevFd = open(VIDEOCAPDEV, O_RDWR); + if (iDevFd < 0) { + LOGD("ERROR,open amvideocap0 failed\n"); + iOutRet = FAILED; + break; + } + + if ((w != NULL) && (*w > 0)) { + iRet = ioctl(iDevFd, AMVIDEOCAP_IOW_SET_WANTFRAME_WIDTH, *w); + if (iRet < 0) { + iOutRet = iRet; + break; + } + } + + if ((h != NULL) && (*h > 0)) { + + iRet = ioctl(iDevFd, AMVIDEOCAP_IOW_SET_WANTFRAME_HEIGHT, *h); + if (iRet < 0) { + iOutRet = iRet; + break; + } + } + + iRet = ioctl(iDevFd, AMVIDEOCAP_IOW_SET_WANTFRAME_FORMAT, format); + if (iRet < 0) { + iOutRet = iRet; + break; + } + + *ret_size = read(iDevFd, buf, size); + if (0 == *ret_size) { + LOGD("ERROR:: Cann't Read video data\n"); + iOutRet = FAILED; + *ret_size = 0; + break; + } + + LOGD("========== Got Data Size : %d ==============\n", *ret_size); + #if 0 + if (w != NULL) { + iRet = ioctl(iDevFd, AMVIDEOCAP_IOR_GET_FRAME_WIDTH, w); + } + + if (h != NULL) { + iRet = ioctl(iDevFd, AMVIDEOCAP_IOR_GET_FRAME_HEIGHT, h); + } + #endif + } while (FALSE); + + close(iDevFd); + + return iOutRet;*/ + return 0; } int CTvScreenCapture::CapOsdAndVideoLayer(int width, int height) { - /* - int iOutRet = SUCCEED, iRet; - status_t iStatus; - ScreenCatch *mScreenCatch = NULL; - MetaData *pMeta = NULL; - MediaBuffer *buffer = NULL; - int dataLen = 0; - - do { - mScreenCatch = new ScreenCatch(width, height, 32); - if (NULL == mScreenCatch) { - LOGD("ERROR!!! mScreenCatch is NULL\n"); - iOutRet = FAILED; - break; - } - - pMeta = new MetaData(); - if (NULL == pMeta) { - LOGD("ERROR!!! pMeta is NULL\n"); - iOutRet = FAILED; - break; - } - pMeta->setInt32(kKeyColorFormat, OMX_COLOR_Format32bitARGB8888); - - mScreenCatch->start(pMeta); - - while (true) { - iStatus = mScreenCatch->read(&buffer); - if (iStatus != OK ) { - usleep(1000); - continue; - } - - if (NULL == buffer) { - iOutRet = FAILED; - break; - } - - LOGD("DDDDDDDDDDAAAAAAAAAAAAAAAAAAAATTTTTTTTTTTTTTAAAAAAAAAAAAAAAAAAAAAAAAAAAAA %d %d\n", buffer->size(), iStatus); - //nv21_to_rgb32((unsigned char*)buffer->data(),(unsigned char *)m_pData,width,height,&dataLen); - memcpy((unsigned char *)m_pData, (unsigned char *)buffer->data(), buffer->size()); - break; - } - - } while (FALSE); - - if (dataLen > 0) { - mCapEvt.mFrameWide = width; - mCapEvt.mFrameHeight = height; - mCapEvt.mFrameNum = 1; - mCapEvt.mFrameSize = dataLen; - } else { - mCapEvt.mFrameWide = 0; - mCapEvt.mFrameHeight = 0; - mCapEvt.mFrameNum = 0; - mCapEvt.mFrameSize = 0; - } - - if (NULL != mpObserver) { - mpObserver->onTvEvent(mCapEvt); - } - - mScreenCatch->stop(); - - mScreenCatch->free(buffer); - buffer = NULL; - return iOutRet;*/ - return 0; + /* + int iOutRet = SUCCEED, iRet; + status_t iStatus; + ScreenCatch *mScreenCatch = NULL; + MetaData *pMeta = NULL; + MediaBuffer *buffer = NULL; + int dataLen = 0; + + do { + mScreenCatch = new ScreenCatch(width, height, 32); + if (NULL == mScreenCatch) { + LOGD("ERROR!!! mScreenCatch is NULL\n"); + iOutRet = FAILED; + break; + } + + pMeta = new MetaData(); + if (NULL == pMeta) { + LOGD("ERROR!!! pMeta is NULL\n"); + iOutRet = FAILED; + break; + } + pMeta->setInt32(kKeyColorFormat, OMX_COLOR_Format32bitARGB8888); + + mScreenCatch->start(pMeta); + + while (true) { + iStatus = mScreenCatch->read(&buffer); + if (iStatus != OK ) { + usleep(1000); + continue; + } + + if (NULL == buffer) { + iOutRet = FAILED; + break; + } + + LOGD("DDDDDDDDDDAAAAAAAAAAAAAAAAAAAATTTTTTTTTTTTTTAAAAAAAAAAAAAAAAAAAAAAAAAAAAA %d %d\n", buffer->size(), iStatus); + //nv21_to_rgb32((unsigned char*)buffer->data(),(unsigned char *)m_pData,width,height,&dataLen); + memcpy((unsigned char *)m_pData, (unsigned char *)buffer->data(), buffer->size()); + break; + } + + } while (FALSE); + + if (dataLen > 0) { + mCapEvt.mFrameWide = width; + mCapEvt.mFrameHeight = height; + mCapEvt.mFrameNum = 1; + mCapEvt.mFrameSize = dataLen; + } else { + mCapEvt.mFrameWide = 0; + mCapEvt.mFrameHeight = 0; + mCapEvt.mFrameNum = 0; + mCapEvt.mFrameSize = 0; + } + + if (NULL != mpObserver) { + mpObserver->onTvEvent(mCapEvt); + } + + mScreenCatch->stop(); + + mScreenCatch->free(buffer); + buffer = NULL; + return iOutRet;*/ + return 0; } int CTvScreenCapture::CapMediaPlayerVideoLayerOnly(int width, int height) { - /* - int iOutRet = SUCCEED, iRet; - int ibufSize, iDataSize = 0; - int w, h; - - do { - ibufSize = width * height * 4; - w = width; - h = height; - - iRet = AmvideocapCapFrame(m_pData, ibufSize, &w, &h, &iDataSize); - if (SUCCEED != iRet) { - LOGD("AmvideocapCapFrame Cannt CapFram\n"); - iOutRet = iRet; - break; - } - - LOGD("GOT DDDDDDDDDAAAAAAAATTTTTTTTTTTAAAAAA Size : %d w:%d h: %d\n", iDataSize, w, h); - - if (iDataSize > 0) { - mCapEvt.mFrameWide = w; - mCapEvt.mFrameHeight = h; - mCapEvt.mFrameNum = 1; - mCapEvt.mFrameSize = iDataSize; - } else { - mCapEvt.mFrameWide = 0; - mCapEvt.mFrameHeight = 0; - mCapEvt.mFrameNum = 0; - mCapEvt.mFrameSize = 0; - } - - if (NULL != mpObserver) { - mpObserver->onTvEvent(mCapEvt); - } - } while (FALSE); - - return iOutRet;*/ - return 0; + /* + int iOutRet = SUCCEED, iRet; + int ibufSize, iDataSize = 0; + int w, h; + + do { + ibufSize = width * height * 4; + w = width; + h = height; + + iRet = AmvideocapCapFrame(m_pData, ibufSize, &w, &h, &iDataSize); + if (SUCCEED != iRet) { + LOGD("AmvideocapCapFrame Cannt CapFram\n"); + iOutRet = iRet; + break; + } + + LOGD("GOT DDDDDDDDDAAAAAAAATTTTTTTTTTTAAAAAA Size : %d w:%d h: %d\n", iDataSize, w, h); + + if (iDataSize > 0) { + mCapEvt.mFrameWide = w; + mCapEvt.mFrameHeight = h; + mCapEvt.mFrameNum = 1; + mCapEvt.mFrameSize = iDataSize; + } else { + mCapEvt.mFrameWide = 0; + mCapEvt.mFrameHeight = 0; + mCapEvt.mFrameNum = 0; + mCapEvt.mFrameSize = 0; + } + + if (NULL != mpObserver) { + mpObserver->onTvEvent(mCapEvt); + } + } while (FALSE); + + return iOutRet;*/ + return 0; } CTvScreenCapture::CTvScreenCapture() { - /* - m_capNumBuffers = 0; - memset(&m_capV4l2Cam, 0x00, sizeof(camera)); - mpObserver = NULL;*/ - return ; + /* + m_capNumBuffers = 0; + memset(&m_capV4l2Cam, 0x00, sizeof(camera)); + mpObserver = NULL;*/ + return ; } CTvScreenCapture::~CTvScreenCapture() { - /* - memset(&m_capV4l2Cam, 0x00, sizeof(camera)); - m_pData = NULL;*/ + /* + memset(&m_capV4l2Cam, 0x00, sizeof(camera)); + m_pData = NULL;*/ } diff --git a/tvapi/libtv/tv/CTvScreenCapture.h b/tvapi/libtv/tv/CTvScreenCapture.h index 194fa44..7bbf57e 100644 --- a/tvapi/libtv/tv/CTvScreenCapture.h +++ b/tvapi/libtv/tv/CTvScreenCapture.h @@ -22,25 +22,25 @@ using namespace android; struct buffer { - void *start; - size_t length; + void *start; + size_t length; }; struct camera { - char *device_name; - int fd; - int width; - int height; - int display_depth; - int image_size; - int frame_number; //fps - int bitrate ; // bitrate - struct v4l2_capability v4l2_cap; - struct v4l2_cropcap v4l2_cropcap; - struct v4l2_format v4l2_fmt; - struct v4l2_crop crop; - struct buffer *buffers; + char *device_name; + int fd; + int width; + int height; + int display_depth; + int image_size; + int frame_number; //fps + int bitrate ; // bitrate + struct v4l2_capability v4l2_cap; + struct v4l2_cropcap v4l2_cropcap; + struct v4l2_format v4l2_fmt; + struct v4l2_crop crop; + struct buffer *buffers; }; /* @@ -107,71 +107,71 @@ GE2D_FORMAT_S24_RGB #define AMVIDEOCAP_IOR_SET_SRC_HEIGHT _IOR(AMVIDEOCAP_IOC_MAGIC, 0x43, int) enum amvideocap_state { - AMVIDEOCAP_STATE_INIT = 0, - AMVIDEOCAP_STATE_ON_CAPTURE = 200, - AMVIDEOCAP_STATE_FINISHED_CAPTURE = 300, - AMVIDEOCAP_STATE_ERROR = 0xffff, + AMVIDEOCAP_STATE_INIT = 0, + AMVIDEOCAP_STATE_ON_CAPTURE = 200, + AMVIDEOCAP_STATE_FINISHED_CAPTURE = 300, + AMVIDEOCAP_STATE_ERROR = 0xffff, }; class CTvScreenCapture { public: - CTvScreenCapture(); - ~CTvScreenCapture(); - - int InitVCap(sp<IMemory> Mem); - int SetVideoParameter(int width, int height, int frame); - int VideoStart(); - int GetVideoData( int *length); - int VideoStop(); - int DeinitVideoCap(); - int CapMediaPlayerVideoLayerOnly(int width, int height); - int CapOsdAndVideoLayer(int width, int height); - class CapEvent : public CTvEv { - public: - CapEvent(): CTvEv(CTvEv::TV_EVENT_HDMI_IN_CAP) {}; - ~CapEvent() {}; - - int mFrameNum; - int mFrameWide; - int mFrameHeight; - int mFrameSize; - }; - - class TvIObserver { - public: - TvIObserver() {}; - virtual ~TvIObserver() {}; - virtual void onTvEvent ( const CTvEv &ev ) = 0; - }; - - int setObserver(TvIObserver *ob) - { - mpObserver = ob; - return 0; - } + CTvScreenCapture(); + ~CTvScreenCapture(); + + int InitVCap(sp<IMemory> Mem); + int SetVideoParameter(int width, int height, int frame); + int VideoStart(); + int GetVideoData( int *length); + int VideoStop(); + int DeinitVideoCap(); + int CapMediaPlayerVideoLayerOnly(int width, int height); + int CapOsdAndVideoLayer(int width, int height); + class CapEvent : public CTvEv { + public: + CapEvent(): CTvEv(CTvEv::TV_EVENT_HDMI_IN_CAP) {}; + ~CapEvent() {}; + + int mFrameNum; + int mFrameWide; + int mFrameHeight; + int mFrameSize; + }; + + class TvIObserver { + public: + TvIObserver() {}; + virtual ~TvIObserver() {}; + virtual void onTvEvent ( const CTvEv &ev ) = 0; + }; + + int setObserver(TvIObserver *ob) + { + mpObserver = ob; + return 0; + } private: - int xioctl(int fd, int request, void *arg); - int OpenCamera(struct camera *pCameraDev); - int InitMmap(struct camera *cam) ; - //int SetFrameRate( struct camera *cam); - int InitCamera(struct camera *cam) ; - int StartCapturing(struct camera *cam); - int StopCapturing(struct camera *cam); - int UninitCamera(struct camera *cam); - int CloseCamera(struct camera *cam); - void yuv_to_rgb32(unsigned char y, unsigned char u, unsigned char v, unsigned char *rgb); - void nv21_to_rgb32(unsigned char *buf, unsigned char *rgb, int width, int height, int *len); - int AmvideocapCapFrame(char *buf, int size, int *w, int *h, int *ret_size); + int xioctl(int fd, int request, void *arg); + int OpenCamera(struct camera *pCameraDev); + int InitMmap(struct camera *cam) ; + //int SetFrameRate( struct camera *cam); + int InitCamera(struct camera *cam) ; + int StartCapturing(struct camera *cam); + int StopCapturing(struct camera *cam); + int UninitCamera(struct camera *cam); + int CloseCamera(struct camera *cam); + void yuv_to_rgb32(unsigned char y, unsigned char u, unsigned char v, unsigned char *rgb); + void nv21_to_rgb32(unsigned char *buf, unsigned char *rgb, int width, int height, int *len); + int AmvideocapCapFrame(char *buf, int size, int *w, int *h, int *ret_size); private: - sp<IMemory> m_pMem; - camera m_capV4l2Cam; - unsigned int m_capNumBuffers; + sp<IMemory> m_pMem; + camera m_capV4l2Cam; + unsigned int m_capNumBuffers; - char *m_pData; - TvIObserver *mpObserver; - CapEvent mCapEvt; + char *m_pData; + TvIObserver *mpObserver; + CapEvent mCapEvt; }; #endif diff --git a/tvapi/libtv/tv/CTvSubtitle.cpp b/tvapi/libtv/tv/CTvSubtitle.cpp index 4ee991c..bd84703 100644 --- a/tvapi/libtv/tv/CTvSubtitle.cpp +++ b/tvapi/libtv/tv/CTvSubtitle.cpp @@ -12,21 +12,21 @@ #include "am_dmx.h" CTvSubtitle::CTvSubtitle() { - mpObser = NULL; + mpObser = NULL; } CTvSubtitle::~CTvSubtitle() { } void CTvSubtitle::setObserver(IObserver *pObser) { - isSubOpen = false; - mpObser = pObser; + isSubOpen = false; + mpObser = pObser; } void CTvSubtitle::setBuffer(char *share_mem) { - pthread_mutex_lock(&lock); - buffer = (unsigned char *)share_mem; - pthread_mutex_unlock(&lock); + pthread_mutex_lock(&lock); + buffer = (unsigned char *)share_mem; + pthread_mutex_unlock(&lock); } void CTvSubtitle::stopDecoder() { @@ -121,360 +121,360 @@ void CTvSubtitle::searchPrevious() int CTvSubtitle::sub_init(int bmp_width, int bmp_height) { - pthread_mutex_init(&lock, NULL); - bmp_w = bmp_width; - bmp_h = bmp_height; - sub_w = 720; - sub_h = 576; - bmp_pitch = bmp_w * 4; - return 0; + pthread_mutex_init(&lock, NULL); + bmp_w = bmp_width; + bmp_h = bmp_height; + sub_w = 720; + sub_h = 576; + bmp_pitch = bmp_w * 4; + return 0; } int CTvSubtitle::sub_destroy() { - return 0; + return 0; } int CTvSubtitle::sub_lock() { - pthread_mutex_lock(&lock); - return 0; + pthread_mutex_lock(&lock); + return 0; } int CTvSubtitle::sub_unlock() { - pthread_mutex_unlock(&lock); - return 0; + pthread_mutex_unlock(&lock); + return 0; } int CTvSubtitle::sub_clear() { - return 0; + return 0; } static void clear_bitmap(CTvSubtitle *pSub) { - unsigned char *ptr = pSub->buffer; - int y = pSub->bmp_h; + unsigned char *ptr = pSub->buffer; + int y = pSub->bmp_h; - while (y--) { - memset(ptr, 0, pSub->bmp_pitch); - ptr += pSub->bmp_pitch; - } + while (y--) { + memset(ptr, 0, pSub->bmp_pitch); + ptr += pSub->bmp_pitch; + } } static void show_sub_cb(AM_SUB2_Handle_t handle, AM_SUB2_Picture_t *pic) { - LOGD("dvb callback-----------"); - - CTvSubtitle *pSub = ((CTvSubtitle *) AM_SUB2_GetUserData(handle)); - pthread_mutex_lock(&pSub->lock); - clear_bitmap(pSub); - - if (pic) { - AM_SUB2_Region_t *rgn = pic->p_region; - pSub->sub_w = pic->original_width; - pSub->sub_h = pic->original_height; - while (rgn) { - int sx, sy, dx, dy, rw, rh; - - // ensure we have a valid buffer - if (! rgn->p_buf) { - rgn = rgn->p_next; - continue; - } - - sx = 0; - sy = 0; - dx = pic->original_x + rgn->left; - dy = pic->original_y + rgn->top; - rw = rgn->width; - rh = rgn->height; - - if (dx < 0) { - sx = -dx; - dx = 0; - rw += dx; - } - - if (dx + rw > pSub->bmp_w) { - rw = pSub->bmp_w - dx; - } - - if (dy < 0) { - sy = -dy; - dy = 0; - rh += dy; - } - - if (dy + rh > pSub->bmp_h) { - rh = pSub->bmp_h - dy; - } - - if ((rw > 0) && (rh > 0)) { - unsigned char *sbegin = (unsigned char *)rgn->p_buf + sy * rgn->width + sx; - unsigned char *dbegin = pSub->buffer + dy * pSub->bmp_pitch + dx * 4; - unsigned char *src, *dst; - int size; - - while (rh) { - src = sbegin; - dst = dbegin; - size = rw; - while (size--) { - int c = src[0]; - - if (c < (int)rgn->entry) { - if (rgn->clut[c].a) { - *dst++ = rgn->clut[c].r; - *dst++ = rgn->clut[c].g; - *dst++ = rgn->clut[c].b; - } else { - dst += 3; - } - *dst++ = rgn->clut[c].a; - } else { - dst += 4; - } - src ++; - } - sbegin += rgn->width; - dbegin += pSub->bmp_pitch; - rh--; - } - } - - rgn = rgn->p_next; - } - pSub->mpObser->updateSubtitle(pic->original_width, pic->original_height); - } - pthread_mutex_unlock(&pSub->lock); + LOGD("dvb callback-----------"); + + CTvSubtitle *pSub = ((CTvSubtitle *) AM_SUB2_GetUserData(handle)); + pthread_mutex_lock(&pSub->lock); + clear_bitmap(pSub); + + if (pic) { + AM_SUB2_Region_t *rgn = pic->p_region; + pSub->sub_w = pic->original_width; + pSub->sub_h = pic->original_height; + while (rgn) { + int sx, sy, dx, dy, rw, rh; + + // ensure we have a valid buffer + if (! rgn->p_buf) { + rgn = rgn->p_next; + continue; + } + + sx = 0; + sy = 0; + dx = pic->original_x + rgn->left; + dy = pic->original_y + rgn->top; + rw = rgn->width; + rh = rgn->height; + + if (dx < 0) { + sx = -dx; + dx = 0; + rw += dx; + } + + if (dx + rw > pSub->bmp_w) { + rw = pSub->bmp_w - dx; + } + + if (dy < 0) { + sy = -dy; + dy = 0; + rh += dy; + } + + if (dy + rh > pSub->bmp_h) { + rh = pSub->bmp_h - dy; + } + + if ((rw > 0) && (rh > 0)) { + unsigned char *sbegin = (unsigned char *)rgn->p_buf + sy * rgn->width + sx; + unsigned char *dbegin = pSub->buffer + dy * pSub->bmp_pitch + dx * 4; + unsigned char *src, *dst; + int size; + + while (rh) { + src = sbegin; + dst = dbegin; + size = rw; + while (size--) { + int c = src[0]; + + if (c < (int)rgn->entry) { + if (rgn->clut[c].a) { + *dst++ = rgn->clut[c].r; + *dst++ = rgn->clut[c].g; + *dst++ = rgn->clut[c].b; + } else { + dst += 3; + } + *dst++ = rgn->clut[c].a; + } else { + dst += 4; + } + src ++; + } + sbegin += rgn->width; + dbegin += pSub->bmp_pitch; + rh--; + } + } + + rgn = rgn->p_next; + } + pSub->mpObser->updateSubtitle(pic->original_width, pic->original_height); + } + pthread_mutex_unlock(&pSub->lock); } static uint64_t get_pts_cb(void *handle, uint64_t pts) { - char buf[32]; - AM_ErrorCode_t ret; - uint32_t v; - uint64_t r; + char buf[32]; + AM_ErrorCode_t ret; + uint32_t v; + uint64_t r; - ret = AM_FileRead("/sys/class/tsync/pts_pcrscr", buf, sizeof(buf)); - if (!ret) { - v = strtoul(buf, 0, 16); - if (pts & (1LL << 32)) { - r = ((uint64_t)v) | (1LL << 32); - } else { - r = (uint64_t)v; - } - } else { - r = 0LL; - } + ret = AM_FileRead("/sys/class/tsync/pts_pcrscr", buf, sizeof(buf)); + if (!ret) { + v = strtoul(buf, 0, 16); + if (pts & (1LL << 32)) { + r = ((uint64_t)v) | (1LL << 32); + } else { + r = (uint64_t)v; + } + } else { + r = 0LL; + } - return r; + return r; } static void pes_data_cb(int dev_no, int fhandle, const uint8_t *data, int len, void *user_data) { - CTvSubtitle *pSub = ((CTvSubtitle *) user_data); - AM_PES_Decode(pSub->pes_handle, (uint8_t *)data, len); + CTvSubtitle *pSub = ((CTvSubtitle *) user_data); + AM_PES_Decode(pSub->pes_handle, (uint8_t *)data, len); } static int close_dmx(CTvSubtitle *pSub) { - AM_DMX_FreeFilter(pSub->dmx_id, pSub->filter_handle); - AM_DMX_Close(pSub->dmx_id); - pSub->dmx_id = -1; - pSub->filter_handle = -1; + AM_DMX_FreeFilter(pSub->dmx_id, pSub->filter_handle); + AM_DMX_Close(pSub->dmx_id); + pSub->dmx_id = -1; + pSub->filter_handle = -1; - return 0; + return 0; } static int open_dmx(CTvSubtitle *pSub, int dmx_id, int pid) { - close_dmx(pSub); - AM_DMX_OpenPara_t op; - struct dmx_pes_filter_params pesp; - AM_ErrorCode_t ret; - - pSub->dmx_id = -1; - pSub->filter_handle = -1; - memset(&op, 0, sizeof(op)); - - ret = AM_DMX_Open(dmx_id, &op); - if (ret != AM_SUCCESS) { - LOGD("error AM_DMX_Open != AM_SUCCESS"); - goto error; - } - pSub->dmx_id = dmx_id; - - ret = AM_DMX_AllocateFilter(dmx_id, &pSub->filter_handle); - if (ret != AM_SUCCESS) { - LOGD("error AM_DMX_AllocateFilter != AM_SUCCESS"); - goto error; - } - - ret = AM_DMX_SetBufferSize(dmx_id, pSub->filter_handle, 0x80000); - if (ret != AM_SUCCESS) { - LOGD("error AM_DMX_SetBufferSize != AM_SUCCESS"); - goto error; - } - - memset(&pesp, 0, sizeof(pesp)); - pesp.pid = pid; - pesp.output = DMX_OUT_TAP; - pesp.pes_type = DMX_PES_TELETEXT0; - - ret = AM_DMX_SetPesFilter(dmx_id, pSub->filter_handle, &pesp); - if (ret != AM_SUCCESS) { - LOGD("error AM_DMX_SetPesFilter != AM_SUCCESS, err = %d", strerror(errno)); - goto error; - } - - ret = AM_DMX_SetCallback(dmx_id, pSub->filter_handle, pes_data_cb, pSub); - if (ret != AM_SUCCESS) { - LOGD("error AM_DMX_SetCallback != AM_SUCCESS"); - goto error; - } - - ret = AM_DMX_StartFilter(dmx_id, pSub->filter_handle); - if (ret != AM_SUCCESS) { - LOGD("error AM_DMX_StartFilter != AM_SUCCESS,dmx_id=%d,filter_handle=%d, ret = %d", dmx_id, pSub->filter_handle, ret); - goto error; - } - - return 0; + close_dmx(pSub); + AM_DMX_OpenPara_t op; + struct dmx_pes_filter_params pesp; + AM_ErrorCode_t ret; + + pSub->dmx_id = -1; + pSub->filter_handle = -1; + memset(&op, 0, sizeof(op)); + + ret = AM_DMX_Open(dmx_id, &op); + if (ret != AM_SUCCESS) { + LOGD("error AM_DMX_Open != AM_SUCCESS"); + goto error; + } + pSub->dmx_id = dmx_id; + + ret = AM_DMX_AllocateFilter(dmx_id, &pSub->filter_handle); + if (ret != AM_SUCCESS) { + LOGD("error AM_DMX_AllocateFilter != AM_SUCCESS"); + goto error; + } + + ret = AM_DMX_SetBufferSize(dmx_id, pSub->filter_handle, 0x80000); + if (ret != AM_SUCCESS) { + LOGD("error AM_DMX_SetBufferSize != AM_SUCCESS"); + goto error; + } + + memset(&pesp, 0, sizeof(pesp)); + pesp.pid = pid; + pesp.output = DMX_OUT_TAP; + pesp.pes_type = DMX_PES_TELETEXT0; + + ret = AM_DMX_SetPesFilter(dmx_id, pSub->filter_handle, &pesp); + if (ret != AM_SUCCESS) { + LOGD("error AM_DMX_SetPesFilter != AM_SUCCESS, err = %d", strerror(errno)); + goto error; + } + + ret = AM_DMX_SetCallback(dmx_id, pSub->filter_handle, pes_data_cb, pSub); + if (ret != AM_SUCCESS) { + LOGD("error AM_DMX_SetCallback != AM_SUCCESS"); + goto error; + } + + ret = AM_DMX_StartFilter(dmx_id, pSub->filter_handle); + if (ret != AM_SUCCESS) { + LOGD("error AM_DMX_StartFilter != AM_SUCCESS,dmx_id=%d,filter_handle=%d, ret = %d", dmx_id, pSub->filter_handle, ret); + goto error; + } + + return 0; error: - if (pSub->filter_handle != -1) { - AM_DMX_FreeFilter(dmx_id, pSub->filter_handle); - } - if (pSub->dmx_id != -1) { - AM_DMX_Close(dmx_id); - } + if (pSub->filter_handle != -1) { + AM_DMX_FreeFilter(dmx_id, pSub->filter_handle); + } + if (pSub->dmx_id != -1) { + AM_DMX_Close(dmx_id); + } - return -1; + return -1; } static void pes_sub_cb(AM_PES_Handle_t handle, uint8_t *buf, int size) { - CTvSubtitle *pSub = ((CTvSubtitle *) AM_SUB2_GetUserData(handle)); - AM_SUB2_Decode(pSub->sub_handle, buf, size); + CTvSubtitle *pSub = ((CTvSubtitle *) AM_SUB2_GetUserData(handle)); + AM_SUB2_Decode(pSub->sub_handle, buf, size); } int CTvSubtitle::sub_switch_status() { - return isSubOpen ? 1 : 0; + return isSubOpen ? 1 : 0; } int CTvSubtitle::sub_start_dvb_sub(int dmx_id, int pid, int page_id, int anc_page_id) { - LOGD("start dvb subtitle=----------------"); - - AM_PES_Para_t pesp; - AM_SUB2_Para_t subp; - int ret; - - memset(&pesp, 0, sizeof(pesp)); - pesp.packet = pes_sub_cb; - pesp.user_data = this; - ret = AM_PES_Create(&pes_handle, &pesp); - if (ret != AM_SUCCESS) { - LOGD("error AM_PES_Create != AM_SUCCESS"); - goto error; - } - - memset(&subp, 0, sizeof(subp)); - subp.show = show_sub_cb; - subp.get_pts = get_pts_cb; - subp.composition_id = page_id; - subp.ancillary_id = anc_page_id; - subp.user_data = this; - ret = AM_SUB2_Create(&sub_handle, &subp); - if (ret != AM_SUCCESS) { - LOGD("error AM_SUB2_Create != AM_SUCCESS"); - goto error; - } - - ret = AM_SUB2_Start(sub_handle); - if (ret != AM_SUCCESS) { - LOGD("error AM_SUB2_Start != AM_SUCCESS"); - goto error; - } - - ret = open_dmx(this, dmx_id, pid); - if (ret < 0) { - LOGD("error open_dmx != AM_SUCCESS"); - goto error; - } - isSubOpen = true; - return 0; + LOGD("start dvb subtitle=----------------"); + + AM_PES_Para_t pesp; + AM_SUB2_Para_t subp; + int ret; + + memset(&pesp, 0, sizeof(pesp)); + pesp.packet = pes_sub_cb; + pesp.user_data = this; + ret = AM_PES_Create(&pes_handle, &pesp); + if (ret != AM_SUCCESS) { + LOGD("error AM_PES_Create != AM_SUCCESS"); + goto error; + } + + memset(&subp, 0, sizeof(subp)); + subp.show = show_sub_cb; + subp.get_pts = get_pts_cb; + subp.composition_id = page_id; + subp.ancillary_id = anc_page_id; + subp.user_data = this; + ret = AM_SUB2_Create(&sub_handle, &subp); + if (ret != AM_SUCCESS) { + LOGD("error AM_SUB2_Create != AM_SUCCESS"); + goto error; + } + + ret = AM_SUB2_Start(sub_handle); + if (ret != AM_SUCCESS) { + LOGD("error AM_SUB2_Start != AM_SUCCESS"); + goto error; + } + + ret = open_dmx(this, dmx_id, pid); + if (ret < 0) { + LOGD("error open_dmx != AM_SUCCESS"); + goto error; + } + isSubOpen = true; + return 0; error: - if (sub_handle) { - AM_SUB2_Destroy(sub_handle); - sub_handle = NULL; - } - if (pes_handle) { - AM_PES_Destroy(pes_handle); - pes_handle = NULL; - } - return -1; + if (sub_handle) { + AM_SUB2_Destroy(sub_handle); + sub_handle = NULL; + } + if (pes_handle) { + AM_PES_Destroy(pes_handle); + pes_handle = NULL; + } + return -1; } int CTvSubtitle::sub_start_dtv_tt(int dmx_id, int region_id, int pid, int page, int sub_page, bool is_sub) { - return 0; + return 0; } int CTvSubtitle::sub_stop_dvb_sub() { - pthread_mutex_lock(&lock); - close_dmx(this); - AM_SUB2_Destroy(sub_handle); - AM_PES_Destroy(pes_handle); + pthread_mutex_lock(&lock); + close_dmx(this); + AM_SUB2_Destroy(sub_handle); + AM_PES_Destroy(pes_handle); - clear_bitmap(this); - mpObser->updateSubtitle(0, 0); + clear_bitmap(this); + mpObser->updateSubtitle(0, 0); - sub_handle = NULL; - pes_handle = NULL; - isSubOpen = false; - pthread_mutex_unlock(&lock); - return 0; + sub_handle = NULL; + pes_handle = NULL; + isSubOpen = false; + pthread_mutex_unlock(&lock); + return 0; } int CTvSubtitle::sub_stop_dtv_tt() { - return 0; + return 0; } int CTvSubtitle::sub_tt_goto(int page) { - return 0; + return 0; } int CTvSubtitle::sub_tt_color_link(int color) { - return 0; + return 0; } int CTvSubtitle::sub_tt_home_link() { - return 0; + return 0; } int CTvSubtitle::sub_tt_next(int dir) { - return 0; + return 0; } int CTvSubtitle::sub_tt_set_search_pattern(char *pattern, bool casefold) { - return 0; + return 0; } int CTvSubtitle::sub_tt_search(int dir) { - return 0; + return 0; } /* @@ -524,92 +524,92 @@ program, no signal, blocked...*/ //else != 0 int CTvSubtitle::sub_start_atsc_cc(enum cc_param_country country, enum cc_param_source_type src_type, int channel_num, enum cc_param_caption_type caption_type) { - LOGD("----sub_start_atsc_cc-1--- country=%d,src=%d,ctype=%d", country, src_type, caption_type); - switch (country) { - case CC_PARAM_COUNTRY_USA: - AM_CC_Cmd(CMD_SET_COUNTRY_USA); - break; - case CC_PARAM_COUNTRY_KOREA: - AM_CC_Cmd(CMD_SET_COUNTRY_KOREA); - break; - default: - AM_CC_Cmd(CMD_SET_COUNTRY_USA); - break; - } - - switch (src_type) { - case CC_PARAM_SOURCE_VBIDATA: - AM_CC_Cmd(CMD_CC_SET_VBIDATA); - break; - case CC_PARAM_SOURCE_USERDATA: - AM_CC_Cmd(CMD_CC_SET_USERDATA); - break; - default: - AM_CC_Cmd(CMD_CC_SET_USERDATA); - break; - } - - //just for test - if (channel_num == 0) { - } else { - //AM_CC_Cmd(CMD_CC_SET_CHAN_NUM); - } - - AM_CLOSECAPTION_cmd_t cc_t_cmd; - switch (caption_type) { - case CC_PARAM_ANALOG_CAPTION_TYPE_CC1: - cc_t_cmd = CMD_CC_1; - break; - case CC_PARAM_ANALOG_CAPTION_TYPE_CC2: - cc_t_cmd = CMD_CC_2; - break; - case CC_PARAM_ANALOG_CAPTION_TYPE_CC3: - cc_t_cmd = CMD_CC_3; - break; - case CC_PARAM_ANALOG_CAPTION_TYPE_CC4: - cc_t_cmd = CMD_CC_4; - break; - case CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE1: - cc_t_cmd = CMD_SERVICE_1; - break; - case CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE2: - cc_t_cmd = CMD_SERVICE_2; - break; - case CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE3: - cc_t_cmd = CMD_SERVICE_3; - break; - case CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE4: - cc_t_cmd = CMD_SERVICE_4; - break; - default: - cc_t_cmd = CMD_SERVICE_1; - break; - } - AM_CC_Cmd(cc_t_cmd); - - AM_CC_Set_CallBack(close_caption_callback, this); - AM_VCHIP_Set_CallBack(atv_vchip_callback, this); - //start - AM_CC_Cmd(CMD_CC_START); - LOGD("----sub_start_atsc_cc-2--- country=%d,src=%d,ctype=%d", country, src_type, caption_type); - return 0; + LOGD("----sub_start_atsc_cc-1--- country=%d,src=%d,ctype=%d", country, src_type, caption_type); + switch (country) { + case CC_PARAM_COUNTRY_USA: + AM_CC_Cmd(CMD_SET_COUNTRY_USA); + break; + case CC_PARAM_COUNTRY_KOREA: + AM_CC_Cmd(CMD_SET_COUNTRY_KOREA); + break; + default: + AM_CC_Cmd(CMD_SET_COUNTRY_USA); + break; + } + + switch (src_type) { + case CC_PARAM_SOURCE_VBIDATA: + AM_CC_Cmd(CMD_CC_SET_VBIDATA); + break; + case CC_PARAM_SOURCE_USERDATA: + AM_CC_Cmd(CMD_CC_SET_USERDATA); + break; + default: + AM_CC_Cmd(CMD_CC_SET_USERDATA); + break; + } + + //just for test + if (channel_num == 0) { + } else { + //AM_CC_Cmd(CMD_CC_SET_CHAN_NUM); + } + + AM_CLOSECAPTION_cmd_t cc_t_cmd; + switch (caption_type) { + case CC_PARAM_ANALOG_CAPTION_TYPE_CC1: + cc_t_cmd = CMD_CC_1; + break; + case CC_PARAM_ANALOG_CAPTION_TYPE_CC2: + cc_t_cmd = CMD_CC_2; + break; + case CC_PARAM_ANALOG_CAPTION_TYPE_CC3: + cc_t_cmd = CMD_CC_3; + break; + case CC_PARAM_ANALOG_CAPTION_TYPE_CC4: + cc_t_cmd = CMD_CC_4; + break; + case CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE1: + cc_t_cmd = CMD_SERVICE_1; + break; + case CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE2: + cc_t_cmd = CMD_SERVICE_2; + break; + case CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE3: + cc_t_cmd = CMD_SERVICE_3; + break; + case CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE4: + cc_t_cmd = CMD_SERVICE_4; + break; + default: + cc_t_cmd = CMD_SERVICE_1; + break; + } + AM_CC_Cmd(cc_t_cmd); + + AM_CC_Set_CallBack(close_caption_callback, this); + AM_VCHIP_Set_CallBack(atv_vchip_callback, this); + //start + AM_CC_Cmd(CMD_CC_START); + LOGD("----sub_start_atsc_cc-2--- country=%d,src=%d,ctype=%d", country, src_type, caption_type); + return 0; } int CTvSubtitle::sub_stop_atsc_cc() { - LOGD("----sub_stop_atsc_cc----"); - AM_CC_Cmd(CMD_CC_STOP); - return 0; + LOGD("----sub_stop_atsc_cc----"); + AM_CC_Cmd(CMD_CC_STOP); + return 0; } int CTvSubtitle::ResetVchipChgStat() { - avchip_chg = 0; - AM_CC_Cmd(CMD_VCHIP_RST_CHGSTAT); - return 0; + avchip_chg = 0; + AM_CC_Cmd(CMD_VCHIP_RST_CHGSTAT); + return 0; } int CTvSubtitle::IsVchipChange() { - return avchip_chg; + return avchip_chg; } //cnt :data buf len //databuf len is max 512 @@ -617,27 +617,27 @@ int CTvSubtitle::IsVchipChange() void CTvSubtitle::close_caption_callback(char *str, int cnt, int data_buf[], int cmd_buf[], void *user_data) { - /* - CTvSubtitle *pSub = (CTvSubtitle *)user_data; + /* + CTvSubtitle *pSub = (CTvSubtitle *)user_data; - if (pSub == NULL) - { - LOGD("sub cc callback is null user data for this"); - return; - } + if (pSub == NULL) + { + LOGD("sub cc callback is null user data for this"); + return; + } - if (pSub->mpObser == NULL) return; + if (pSub->mpObser == NULL) return; - pSub->mCurCCEv.mDataBufSize = cnt; - pSub->mCurCCEv.mpDataBuffer = data_buf; - pSub->mCurCCEv.mCmdBufSize = 128;//max - pSub->mCurCCEv.mpCmdBuffer = cmd_buf; + pSub->mCurCCEv.mDataBufSize = cnt; + pSub->mCurCCEv.mpDataBuffer = data_buf; + pSub->mCurCCEv.mCmdBufSize = 128;//max + pSub->mCurCCEv.mpCmdBuffer = cmd_buf; - pSub->mpObser->onEvent(pSub->mCurCCEv); - */ + pSub->mpObser->onEvent(pSub->mCurCCEv); + */ } void CTvSubtitle::atv_vchip_callback(int Is_chg, void *user_data) { - CTvSubtitle *pSub = (CTvSubtitle *)user_data; - pSub->avchip_chg = Is_chg; + CTvSubtitle *pSub = (CTvSubtitle *)user_data; + pSub->avchip_chg = Is_chg; } diff --git a/tvapi/libtv/tv/CTvSubtitle.h b/tvapi/libtv/tv/CTvSubtitle.h index 8acd48a..ee8e9e6 100644 --- a/tvapi/libtv/tv/CTvSubtitle.h +++ b/tvapi/libtv/tv/CTvSubtitle.h @@ -21,231 +21,231 @@ using namespace android; typedef enum cc_param_country { - CC_PARAM_COUNTRY_USA = 0, - CC_PARAM_COUNTRY_KOREA, + CC_PARAM_COUNTRY_USA = 0, + CC_PARAM_COUNTRY_KOREA, }; typedef enum cc_param_source_type { - CC_PARAM_SOURCE_VBIDATA = 0, - CC_PARAM_SOURCE_USERDATA, + CC_PARAM_SOURCE_VBIDATA = 0, + CC_PARAM_SOURCE_USERDATA, }; typedef enum cc_param_caption_type { - CC_PARAM_ANALOG_CAPTION_TYPE_CC1 = 0, - CC_PARAM_ANALOG_CAPTION_TYPE_CC2, - CC_PARAM_ANALOG_CAPTION_TYPE_CC3, - CC_PARAM_ANALOG_CAPTION_TYPE_CC4, - CC_PARAM_ANALOG_CAPTION_TYPE_TEXT1, - CC_PARAM_ANALOG_CAPTION_TYPE_TEXT2, - CC_PARAM_ANALOG_CAPTION_TYPE_TEXT3, - CC_PARAM_ANALOG_CAPTION_TYPE_TEXT4, - // - CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE1, - CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE2, - CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE3, - CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE4, - CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE5, - CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE6, + CC_PARAM_ANALOG_CAPTION_TYPE_CC1 = 0, + CC_PARAM_ANALOG_CAPTION_TYPE_CC2, + CC_PARAM_ANALOG_CAPTION_TYPE_CC3, + CC_PARAM_ANALOG_CAPTION_TYPE_CC4, + CC_PARAM_ANALOG_CAPTION_TYPE_TEXT1, + CC_PARAM_ANALOG_CAPTION_TYPE_TEXT2, + CC_PARAM_ANALOG_CAPTION_TYPE_TEXT3, + CC_PARAM_ANALOG_CAPTION_TYPE_TEXT4, + // + CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE1, + CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE2, + CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE3, + CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE4, + CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE5, + CC_PARAM_DIGITAL_CAPTION_TYPE_SERVICE6, }; class CTvSubtitle { public: - class IObserver { - public: - IObserver() {}; - virtual ~IObserver() {}; - //virtual void onEvent(const CloseCaptionEvent &ev); - virtual void updateSubtitle(int, int) {}; - }; - - AM_SUB2_Handle_t sub_handle; - AM_PES_Handle_t pes_handle; - int dmx_id; - int filter_handle; - int bmp_w; - int bmp_h; - int bmp_pitch; - unsigned char *buffer; - int sub_w; - int sub_h; - pthread_mutex_t lock; - - IObserver *mpObser; - CTvSubtitle(); - ~CTvSubtitle(); - - class CloseCaptionEvent: public CTvEv { - public: - //static const int CC_CMD_LEN = 128; - //static const int CC_DATA_LEN = 512; - CloseCaptionEvent(): CTvEv(CTvEv::TV_EVENT_CC) - { - } - ~CloseCaptionEvent() - { - } - public: - int mCmdBufSize; - int *mpCmdBuffer; - int mDataBufSize; - int *mpDataBuffer; - }; - - void setObserver(IObserver *pObser); - void setBuffer(char *share_mem); - void stopDecoder(); - /** - * 开始å—幕信æ¯è§£æžshowboz sync - */ - void startSub(); - /** - * åœæ¢å›¾æ–‡/å—幕信æ¯è§£æž - */ - void stop(); - - /** - * åœæ¢å›¾æ–‡/å—幕信æ¯è§£æžå¹¶æ¸…除缓å˜æ•°æ® - */ - void clear(); - /** - * 在图文模å¼ä¸‹è¿›å…¥ä¸‹ä¸€é¡µ - */ - void nextPage(); - /** - * 在图文模å¼ä¸‹è¿›å…¥ä¸Šä¸€é¡µ - */ - void previousPage(); - /** - * 在图文模å¼ä¸‹è·³è½¬åˆ°æŒ‡å®šé¡µ - * @param page è¦è·³è½¬åˆ°çš„é¡µå· - */ - void gotoPage(int page); - - /** - * 在图文模å¼ä¸‹è·³è½¬åˆ°home页 - */ - void goHome(); - /** - * 在图文模å¼ä¸‹æ ¹æ®é¢œè‰²è·³è½¬åˆ°æŒ‡å®šé“¾æŽ¥ - * @param color 颜色,COLOR_RED/COLOR_GREEN/COLOR_YELLOW/COLOR_BLUE - */ - void colorLink(int color); - - /** - * 在图文模å¼ä¸‹è®¾å®šæœç´¢å—符串 - * @param pattern æœç´¢åŒ¹é…å—符串 - * @param casefold 是å¦åŒºåˆ†å¤§å°å†™ - */ - void setSearchPattern(char *pattern, bool casefold); - /** - * æœç´¢ä¸‹ä¸€é¡µ - */ - void searchNext(); - /** - * æœç´¢ä¸Šä¸€é¡µ - */ - void searchPrevious(); - - int sub_init(int, int); - // - int sub_destroy(); - // - int sub_lock(); - // - int sub_unlock(); - // - int sub_clear(); - // - int sub_switch_status(); - int sub_start_dvb_sub(int dmx_id, int pid, int page_id, int anc_page_id); - // - int sub_start_dtv_tt(int dmx_id, int region_id, int pid, int page, int sub_page, bool is_sub); - // - int sub_stop_dvb_sub(); - // - int sub_stop_dtv_tt(); - // - int sub_tt_goto(int page); - // - int sub_tt_color_link(int color); - // - int sub_tt_home_link(); - // - int sub_tt_next(int dir); - // - int sub_tt_set_search_pattern(char *pattern, bool casefold); - // - int sub_tt_search(int dir); - // - int sub_start_atsc_cc(enum cc_param_country country, enum cc_param_source_type src_type, int channel_num, enum cc_param_caption_type caption_type); - // - int sub_stop_atsc_cc(); - static void close_caption_callback(char *str, int cnt, int data_buf[], int cmd_buf[], void *user_data); - static void atv_vchip_callback(int Is_chg, void *user_data); - int IsVchipChange(); - int ResetVchipChgStat(); + class IObserver { + public: + IObserver() {}; + virtual ~IObserver() {}; + //virtual void onEvent(const CloseCaptionEvent &ev); + virtual void updateSubtitle(int, int) {}; + }; + + AM_SUB2_Handle_t sub_handle; + AM_PES_Handle_t pes_handle; + int dmx_id; + int filter_handle; + int bmp_w; + int bmp_h; + int bmp_pitch; + unsigned char *buffer; + int sub_w; + int sub_h; + pthread_mutex_t lock; + + IObserver *mpObser; + CTvSubtitle(); + ~CTvSubtitle(); + + class CloseCaptionEvent: public CTvEv { + public: + //static const int CC_CMD_LEN = 128; + //static const int CC_DATA_LEN = 512; + CloseCaptionEvent(): CTvEv(CTvEv::TV_EVENT_CC) + { + } + ~CloseCaptionEvent() + { + } + public: + int mCmdBufSize; + int *mpCmdBuffer; + int mDataBufSize; + int *mpDataBuffer; + }; + + void setObserver(IObserver *pObser); + void setBuffer(char *share_mem); + void stopDecoder(); + /** + * 开始å—幕信æ¯è§£æžshowboz sync + */ + void startSub(); + /** + * åœæ¢å›¾æ–‡/å—幕信æ¯è§£æž + */ + void stop(); + + /** + * åœæ¢å›¾æ–‡/å—幕信æ¯è§£æžå¹¶æ¸…除缓å˜æ•°æ® + */ + void clear(); + /** + * 在图文模å¼ä¸‹è¿›å…¥ä¸‹ä¸€é¡µ + */ + void nextPage(); + /** + * 在图文模å¼ä¸‹è¿›å…¥ä¸Šä¸€é¡µ + */ + void previousPage(); + /** + * 在图文模å¼ä¸‹è·³è½¬åˆ°æŒ‡å®šé¡µ + * @param page è¦è·³è½¬åˆ°çš„é¡µå· + */ + void gotoPage(int page); + + /** + * 在图文模å¼ä¸‹è·³è½¬åˆ°home页 + */ + void goHome(); + /** + * 在图文模å¼ä¸‹æ ¹æ®é¢œè‰²è·³è½¬åˆ°æŒ‡å®šé“¾æŽ¥ + * @param color 颜色,COLOR_RED/COLOR_GREEN/COLOR_YELLOW/COLOR_BLUE + */ + void colorLink(int color); + + /** + * 在图文模å¼ä¸‹è®¾å®šæœç´¢å—符串 + * @param pattern æœç´¢åŒ¹é…å—符串 + * @param casefold 是å¦åŒºåˆ†å¤§å°å†™ + */ + void setSearchPattern(char *pattern, bool casefold); + /** + * æœç´¢ä¸‹ä¸€é¡µ + */ + void searchNext(); + /** + * æœç´¢ä¸Šä¸€é¡µ + */ + void searchPrevious(); + + int sub_init(int, int); + // + int sub_destroy(); + // + int sub_lock(); + // + int sub_unlock(); + // + int sub_clear(); + // + int sub_switch_status(); + int sub_start_dvb_sub(int dmx_id, int pid, int page_id, int anc_page_id); + // + int sub_start_dtv_tt(int dmx_id, int region_id, int pid, int page, int sub_page, bool is_sub); + // + int sub_stop_dvb_sub(); + // + int sub_stop_dtv_tt(); + // + int sub_tt_goto(int page); + // + int sub_tt_color_link(int color); + // + int sub_tt_home_link(); + // + int sub_tt_next(int dir); + // + int sub_tt_set_search_pattern(char *pattern, bool casefold); + // + int sub_tt_search(int dir); + // + int sub_start_atsc_cc(enum cc_param_country country, enum cc_param_source_type src_type, int channel_num, enum cc_param_caption_type caption_type); + // + int sub_stop_atsc_cc(); + static void close_caption_callback(char *str, int cnt, int data_buf[], int cmd_buf[], void *user_data); + static void atv_vchip_callback(int Is_chg, void *user_data); + int IsVchipChange(); + int ResetVchipChgStat(); private: - /** - * DVB subtitle å‚æ•° - */ - struct DVBSubParams { - int mDmx_id; - int mPid; - int mComposition_page_id; - int mAncillary_page_id; - - /** - * 创建DVB subtitleå‚æ•° - * @param dmx_id 接收使用demux设备的ID - * @param pid subtitleæµçš„PID - * @param page_id å—幕的page_id - * @param anc_page_id å—幕的ancillary_page_id - */ - DVBSubParams() - { - } - DVBSubParams(int dmx_id, int pid, int page_id, int anc_page_id) - { - mDmx_id = dmx_id; - mPid = pid; - mComposition_page_id = page_id; - mAncillary_page_id = anc_page_id; - } - }; - - /** - * æ•°å—电视teletext图文å‚æ•° - */ - struct DTVTTParams { - int mDmx_id; - int mPid; - int mPage_no; - int mSub_page_no; - int mRegion_id; - - DTVTTParams() - { - } - /** - * 创建数å—电视teletext图文å‚æ•° - * @param dmx_id 接收使用demux设备的ID - * @param pid 图文信æ¯æµçš„PID - * @param page_no è¦æ˜¾ç¤ºé¡µå· - * @param sub_page_no è¦æ˜¾ç¤ºçš„åé¡µå· - */ - DTVTTParams(int dmx_id, int pid, int page_no, int sub_page_no, int region_id) - { - mDmx_id = dmx_id; - mPid = pid; - mPage_no = page_no; - mSub_page_no = sub_page_no; - mRegion_id = region_id; - } - }; - - int mSubType; - CloseCaptionEvent mCurCCEv; - int avchip_chg; - bool isSubOpen; + /** + * DVB subtitle å‚æ•° + */ + struct DVBSubParams { + int mDmx_id; + int mPid; + int mComposition_page_id; + int mAncillary_page_id; + + /** + * 创建DVB subtitleå‚æ•° + * @param dmx_id 接收使用demux设备的ID + * @param pid subtitleæµçš„PID + * @param page_id å—幕的page_id + * @param anc_page_id å—幕的ancillary_page_id + */ + DVBSubParams() + { + } + DVBSubParams(int dmx_id, int pid, int page_id, int anc_page_id) + { + mDmx_id = dmx_id; + mPid = pid; + mComposition_page_id = page_id; + mAncillary_page_id = anc_page_id; + } + }; + + /** + * æ•°å—电视teletext图文å‚æ•° + */ + struct DTVTTParams { + int mDmx_id; + int mPid; + int mPage_no; + int mSub_page_no; + int mRegion_id; + + DTVTTParams() + { + } + /** + * 创建数å—电视teletext图文å‚æ•° + * @param dmx_id 接收使用demux设备的ID + * @param pid 图文信æ¯æµçš„PID + * @param page_no è¦æ˜¾ç¤ºé¡µå· + * @param sub_page_no è¦æ˜¾ç¤ºçš„åé¡µå· + */ + DTVTTParams(int dmx_id, int pid, int page_no, int sub_page_no, int region_id) + { + mDmx_id = dmx_id; + mPid = pid; + mPage_no = page_no; + mSub_page_no = sub_page_no; + mRegion_id = region_id; + } + }; + + int mSubType; + CloseCaptionEvent mCurCCEv; + int avchip_chg; + bool isSubOpen; }; #endif //_CTVSUBTITLE_H diff --git a/tvapi/libtv/tv/CTvTime.h b/tvapi/libtv/tv/CTvTime.h index 12a5334..7588704 100644 --- a/tvapi/libtv/tv/CTvTime.h +++ b/tvapi/libtv/tv/CTvTime.h @@ -21,81 +21,81 @@ */ class CTvTime { public: - CTvTime() - { - mDiff = 0; - mHZ = sysconf( _SC_CLK_TCK ); - } + CTvTime() + { + mDiff = 0; + mHZ = sysconf( _SC_CLK_TCK ); + } - /** - *设定当å‰æ—¶é—´ - *@param time 当å‰æ—¶é—´ï¼ˆæ¯«ç§’å•ä½ï¼‰ - */ - long getSysUTCTime() - { - //struct tm tm; - //time_t t; - //int64_t r = mktime_tz(&(tm), NULL); - //time_t t = time(NULL); - //LOGD("---------utc t = %ld time t=%ld", r, t); - return 0; - } - void setTime(long t) - { - //long utcMS; - //time(&utcMS); - //nsecs_t ns = systemTime(CLOCK_REALTIME); - //nsecs_t tm = ns2s(ns); - //unsigned long ticks = times(NULL); - //long tm = ticks/mHZ; - struct sysinfo s_info; - int error; - error = sysinfo(&s_info); + /** + *设定当å‰æ—¶é—´ + *@param time 当å‰æ—¶é—´ï¼ˆæ¯«ç§’å•ä½ï¼‰ + */ + long getSysUTCTime() + { + //struct tm tm; + //time_t t; + //int64_t r = mktime_tz(&(tm), NULL); + //time_t t = time(NULL); + //LOGD("---------utc t = %ld time t=%ld", r, t); + return 0; + } + void setTime(long t) + { + //long utcMS; + //time(&utcMS); + //nsecs_t ns = systemTime(CLOCK_REALTIME); + //nsecs_t tm = ns2s(ns); + //unsigned long ticks = times(NULL); + //long tm = ticks/mHZ; + struct sysinfo s_info; + int error; + error = sysinfo(&s_info); - mDiff = t - s_info.uptime; - LOGD("--- mDiff=%ld", mDiff); - } + mDiff = t - s_info.uptime; + LOGD("--- mDiff=%ld", mDiff); + } - /** - *å–得当å‰æ—¶é—´ - *@return 返回当å‰æ—¶é—´ - */ - long getTime() - { - //long utcMS; - //time(&utcMS); - //nsecs_t ns = systemTime(CLOCK_REALTIME); - //nsecs_t sec = ns2s(ns); + /** + *å–得当å‰æ—¶é—´ + *@return 返回当å‰æ—¶é—´ + */ + long getTime() + { + //long utcMS; + //time(&utcMS); + //nsecs_t ns = systemTime(CLOCK_REALTIME); + //nsecs_t sec = ns2s(ns); - //unsigned long ticks = times(NULL); - //long sec = ticks/mHZ; - struct sysinfo s_info; - int error; - error = sysinfo(&s_info); + //unsigned long ticks = times(NULL); + //long sec = ticks/mHZ; + struct sysinfo s_info; + int error; + error = sysinfo(&s_info); - LOGD("--- mDiff=%ld, sec=%ld", mDiff, s_info.uptime); - return s_info.uptime + mDiff; - } + LOGD("--- mDiff=%ld, sec=%ld", mDiff, s_info.uptime); + return s_info.uptime + mDiff; + } - /** - *å–å¾—TDT/STT与系统时间的差值 - *@return 返回差值时间 - */ - long getDiffTime() - { - return mDiff; - } + /** + *å–å¾—TDT/STT与系统时间的差值 + *@return 返回差值时间 + */ + long getDiffTime() + { + return mDiff; + } - /** - *设置TDT/STT与系统时间的差值 - */ - void setDiffTime(long diff) - { - this->mDiff = diff; - } + /** + *设置TDT/STT与系统时间的差值 + */ + void setDiffTime(long diff) + { + this->mDiff = diff; + } private: - long mDiff; - unsigned long mHZ; + long mDiff; + unsigned long mHZ; }; diff --git a/tvapi/libtv/tv/CTvVchipCheck.cpp b/tvapi/libtv/tv/CTvVchipCheck.cpp index 9573e76..2eb81dd 100644 --- a/tvapi/libtv/tv/CTvVchipCheck.cpp +++ b/tvapi/libtv/tv/CTvVchipCheck.cpp @@ -7,155 +7,155 @@ CTvVchipCheck:: ~CTvVchipCheck() } bool CTvVchipCheck::CheckProgramBlock(int id) { - bool lock = false; - CTvProgram prog; - CTvEvent ev; - int ret = 0; - - ret = CTvProgram::selectByID(id, prog); - if (ret != 0) return false; - - int type = prog.getProgType(); - - if (type == CTvProgram::TYPE_ATV) { - ret = ev.getATVProgEvent(prog.getSrc(), prog.getID(), ev); - } else { - //long epgtime = mDmTime.getTime(); - //ret = ev.getProgPresentEvent(prog.getSrc(),prog.getSourceId(), epgtime, ev); - } - if (ret == 0) { - if (prog.isATSCMode()) { - // ATSC V-Chip - Vector<CTvDimension::VChipRating *> definedRatings = ev.getVChipRatings(); - for (int i = 0; i < definedRatings.size(); i++) { - CTvDimension dm; - if (dm.isBlocked(dm, definedRatings[i])) { - lock = true; - { - /*CurvchipDimension = dm.getName(); - CurvchipAbbrev = dm.getAbbrev(definedRatings[i]->getValue()); - CurvchipText= dm.getText(definedRatings[i]->getValue()); - LOGD("%s, %d Dimension:%s, Abbrev: %s, idx:%d","TV",__LINE__,CurvchipDimension.string(), - CurvchipAbbrev.string(),definedRatings[i]->getValue());*/ - } - break; - } - } - } - } else { - LOGD("Present event of playing program not received yet, will unblock this program."); - } - - return lock; + bool lock = false; + CTvProgram prog; + CTvEvent ev; + int ret = 0; + + ret = CTvProgram::selectByID(id, prog); + if (ret != 0) return false; + + int type = prog.getProgType(); + + if (type == CTvProgram::TYPE_ATV) { + ret = ev.getATVProgEvent(prog.getSrc(), prog.getID(), ev); + } else { + //long epgtime = mDmTime.getTime(); + //ret = ev.getProgPresentEvent(prog.getSrc(),prog.getSourceId(), epgtime, ev); + } + if (ret == 0) { + if (prog.isATSCMode()) { + // ATSC V-Chip + Vector<CTvDimension::VChipRating *> definedRatings = ev.getVChipRatings(); + for (int i = 0; i < definedRatings.size(); i++) { + CTvDimension dm; + if (dm.isBlocked(dm, definedRatings[i])) { + lock = true; + { + /*CurvchipDimension = dm.getName(); + CurvchipAbbrev = dm.getAbbrev(definedRatings[i]->getValue()); + CurvchipText= dm.getText(definedRatings[i]->getValue()); + LOGD("%s, %d Dimension:%s, Abbrev: %s, idx:%d","TV",__LINE__,CurvchipDimension.string(), + CurvchipAbbrev.string(),definedRatings[i]->getValue());*/ + } + break; + } + } + } + } else { + LOGD("Present event of playing program not received yet, will unblock this program."); + } + + return lock; } void *CTvVchipCheck::VchipCheckingThread ( void *arg ) { - /*CTv *pt = static_cast<CTv *> ( arg ); - - if ( !pt->IsVchipEnable() ) { - return NULL; - } - - while ( pt->mvchip_running ) { - bool lock = 0; - String8 curdm; - String8 curabbrev; - tvin_info_t siginfo = pt->Tv_GetCurrentSignalInfo(); - - //if ( TVIN_SIG_STATUS_STABLE == siginfo.status ) { - lock = pt->mTvVchip.CheckProgramBlock ( pt->getDTVProgramID() ); - curdm = pt->mTvVchip.getCurdimension(); - curabbrev = pt->mTvVchip.getCurAbbr(); - - if ( ( lock != pt->mlastlockstatus ) || ( pt->mlastdm != curdm ) || ( pt->mlastabbrev != curabbrev ) ) { - pt->mlastlockstatus = lock; - pt->mlastdm = curdm; - pt->mlastabbrev = curabbrev; - BlockEvent evt; - - if ( lock ) { - evt.programBlockType = 0; - evt.block_status = 1; - evt.vchipDimension = curdm; - evt.vchipAbbrev = curdm; - LOGD ( "%s, %d block the program by type %s, %s", "TV", __LINE__, curdm.string(), curabbrev.string() ); - } else { - LOGD ( "unblock the program" ); - evt.programBlockType = 0; - evt.block_status = 0; - } - - pt->sendTvEvent ( evt ); - pt->Programblock ( lock ); - } - - usleep ( 1000 * 1000 ); - //} else { - //usleep ( 500 * 1000 ); - //} - }*/ - - return NULL; + /*CTv *pt = static_cast<CTv *> ( arg ); + + if ( !pt->IsVchipEnable() ) { + return NULL; + } + + while ( pt->mvchip_running ) { + bool lock = 0; + String8 curdm; + String8 curabbrev; + tvin_info_t siginfo = pt->Tv_GetCurrentSignalInfo(); + + //if ( TVIN_SIG_STATUS_STABLE == siginfo.status ) { + lock = pt->mTvVchip.CheckProgramBlock ( pt->getDTVProgramID() ); + curdm = pt->mTvVchip.getCurdimension(); + curabbrev = pt->mTvVchip.getCurAbbr(); + + if ( ( lock != pt->mlastlockstatus ) || ( pt->mlastdm != curdm ) || ( pt->mlastabbrev != curabbrev ) ) { + pt->mlastlockstatus = lock; + pt->mlastdm = curdm; + pt->mlastabbrev = curabbrev; + BlockEvent evt; + + if ( lock ) { + evt.programBlockType = 0; + evt.block_status = 1; + evt.vchipDimension = curdm; + evt.vchipAbbrev = curdm; + LOGD ( "%s, %d block the program by type %s, %s", "TV", __LINE__, curdm.string(), curabbrev.string() ); + } else { + LOGD ( "unblock the program" ); + evt.programBlockType = 0; + evt.block_status = 0; + } + + pt->sendTvEvent ( evt ); + pt->Programblock ( lock ); + } + + usleep ( 1000 * 1000 ); + //} else { + //usleep ( 500 * 1000 ); + //} + }*/ + + return NULL; } int CTvVchipCheck::stopVChipCheck() { - CMutex::Autolock _l ( mLock ); - LOGD ( "stopVChipCheck() and exit thread" ); - requestExit(); - return 0; + CMutex::Autolock _l ( mLock ); + LOGD ( "stopVChipCheck() and exit thread" ); + requestExit(); + return 0; } int CTvVchipCheck::pauseVChipCheck() { - CMutex::Autolock _l ( mLock ); - LOGD ( "pauseVChipCheck() set request pause flag, when flag true, thread loop go pause on condition" ); - m_request_pause_detect = true; - return 0; + CMutex::Autolock _l ( mLock ); + LOGD ( "pauseVChipCheck() set request pause flag, when flag true, thread loop go pause on condition" ); + m_request_pause_detect = true; + return 0; } int CTvVchipCheck::requestAndWaitPauseVChipCheck() { - CMutex::Autolock _l ( mLock ); - LOGD ( "requestAndWaitPauseVChipCheck(),first set pause flag to true, and wait when loop run to pause code segment" ); - m_request_pause_detect = true; + CMutex::Autolock _l ( mLock ); + LOGD ( "requestAndWaitPauseVChipCheck(),first set pause flag to true, and wait when loop run to pause code segment" ); + m_request_pause_detect = true; - if ( mDetectState == STATE_RUNNING ) { - mRequestPauseCondition.wait ( mLock ); - } + if ( mDetectState == STATE_RUNNING ) { + mRequestPauseCondition.wait ( mLock ); + } - return 0; + return 0; } int CTvVchipCheck::resumeVChipCheck() { - CMutex::Autolock _l ( mLock ); - LOGD ( "resumeVChipCheck() first set flag false, and signal to paused condition, let run loop" ); - m_request_pause_detect = false; - mDetectPauseCondition.signal(); - return 0; + CMutex::Autolock _l ( mLock ); + LOGD ( "resumeVChipCheck() first set flag false, and signal to paused condition, let run loop" ); + m_request_pause_detect = false; + mDetectPauseCondition.signal(); + return 0; } bool CTvVchipCheck::threadLoop() { - while ( !exitPending() ) { //requietexit() or requietexitWait() not call - while ( m_request_pause_detect ) { - mRequestPauseCondition.broadcast(); - mLock.lock(); - mDetectState = STATE_PAUSE; - mDetectPauseCondition.wait ( mLock ); //first unlock,when return,lock again,so need,call unlock - mDetectState = STATE_RUNNING; - mLock.unlock(); - } - //loop codes - - if ( !m_request_pause_detect ) { //not request pause, sleep 1s which loop - usleep ( 1000 * 1000 ); - } - } - //exit - mDetectState = STATE_STOPED; - //return true, run again, return false,not run. - return false; + while ( !exitPending() ) { //requietexit() or requietexitWait() not call + while ( m_request_pause_detect ) { + mRequestPauseCondition.broadcast(); + mLock.lock(); + mDetectState = STATE_PAUSE; + mDetectPauseCondition.wait ( mLock ); //first unlock,when return,lock again,so need,call unlock + mDetectState = STATE_RUNNING; + mLock.unlock(); + } + //loop codes + + if ( !m_request_pause_detect ) { //not request pause, sleep 1s which loop + usleep ( 1000 * 1000 ); + } + } + //exit + mDetectState = STATE_STOPED; + //return true, run again, return false,not run. + return false; } diff --git a/tvapi/libtv/tv/CTvVchipCheck.h b/tvapi/libtv/tv/CTvVchipCheck.h index 1a33d23..d254c6c 100644 --- a/tvapi/libtv/tv/CTvVchipCheck.h +++ b/tvapi/libtv/tv/CTvVchipCheck.h @@ -24,26 +24,26 @@ // TV ATSC rating dimension class CTvVchipCheck: public CThread { public: - CTvVchipCheck(); - ~CTvVchipCheck(); - bool CheckProgramBlock(int id); - static void *VchipCheckingThread ( void *arg ); - int startVChipCheck(); - int stopVChipCheck(); - int pauseVChipCheck(); - int resumeVChipCheck(); - int requestAndWaitPauseVChipCheck(); + CTvVchipCheck(); + ~CTvVchipCheck(); + bool CheckProgramBlock(int id); + static void *VchipCheckingThread ( void *arg ); + int startVChipCheck(); + int stopVChipCheck(); + int pauseVChipCheck(); + int resumeVChipCheck(); + int requestAndWaitPauseVChipCheck(); private: - bool threadLoop(); - mutable CMutex mLock; - CCondition mDetectPauseCondition; - CCondition mRequestPauseCondition; - volatile bool m_request_pause_detect; - enum DetectState { - STATE_STOPED = 0, - STATE_RUNNING, - STATE_PAUSE - }; - int mDetectState; + bool threadLoop(); + mutable CMutex mLock; + CCondition mDetectPauseCondition; + CCondition mRequestPauseCondition; + volatile bool m_request_pause_detect; + enum DetectState { + STATE_STOPED = 0, + STATE_RUNNING, + STATE_PAUSE + }; + int mDetectState; }; #endif //_CTVDIMENSION_H diff --git a/tvapi/libtv/tv/CUpgradeFBC.cpp b/tvapi/libtv/tv/CUpgradeFBC.cpp index 6710217..0adad5a 100644 --- a/tvapi/libtv/tv/CUpgradeFBC.cpp +++ b/tvapi/libtv/tv/CUpgradeFBC.cpp @@ -17,540 +17,540 @@ CUpgradeFBC::CUpgradeFBC() { - mUpgradeMode = CC_UPGRADE_MODE_MAIN; - mFileName[0] = 0; - - mOPTotalSize = 0; - mBinFileSize = 0; - mBinFileBuf = NULL; - mUpgradeBlockSize = 0x10000; - - mpObserver = NULL; - mState = STATE_STOPED; - mCfbcIns = GetSingletonFBC(); - mCfbcIns->SetUpgradeFlag(0); + mUpgradeMode = CC_UPGRADE_MODE_MAIN; + mFileName[0] = 0; + + mOPTotalSize = 0; + mBinFileSize = 0; + mBinFileBuf = NULL; + mUpgradeBlockSize = 0x10000; + + mpObserver = NULL; + mState = STATE_STOPED; + mCfbcIns = GetSingletonFBC(); + mCfbcIns->SetUpgradeFlag(0); } CUpgradeFBC::~CUpgradeFBC() { - if (mBinFileBuf != NULL) { - delete mBinFileBuf; - mBinFileBuf = NULL; - } + if (mBinFileBuf != NULL) { + delete mBinFileBuf; + mBinFileBuf = NULL; + } } int CUpgradeFBC::start() { - if (mState == STATE_STOPED || mState == STATE_ABORT || mState == STATE_FINISHED) { - mCfbcIns->SetUpgradeFlag(1); + if (mState == STATE_STOPED || mState == STATE_ABORT || mState == STATE_FINISHED) { + mCfbcIns->SetUpgradeFlag(1); - this->run(); - } + this->run(); + } - return 0; + return 0; } int CUpgradeFBC::stop() { - requestExit(); - mState = STATE_STOPED; + requestExit(); + mState = STATE_STOPED; - return 0; + return 0; } int CUpgradeFBC::GetUpgradeFBCProgress() { - return 0; + return 0; } int CUpgradeFBC::SetUpgradeFileName(char *file_name) { - if (file_name == NULL) { - return -1; - } + if (file_name == NULL) { + return -1; + } - strcpy(mFileName, file_name); + strcpy(mFileName, file_name); - return 0; + return 0; } int CUpgradeFBC::SetUpgradeFileSize(int file_size) { - mBinFileSize = file_size; - return 0; + mBinFileSize = file_size; + return 0; } int CUpgradeFBC::SetUpgradeBlockSize(int block_size) { - mUpgradeBlockSize = block_size; - return 0; + mUpgradeBlockSize = block_size; + return 0; } int CUpgradeFBC::SetUpgradeMode(int mode) { - int tmp_val = 0; + int tmp_val = 0; - tmp_val = mUpgradeMode; - mUpgradeMode = mode; + tmp_val = mUpgradeMode; + mUpgradeMode = mode; - return tmp_val; + return tmp_val; } int CUpgradeFBC::AddCRCToDataBuf(unsigned char data_buf[], int data_len) { - unsigned int tmp_crc = 0; + unsigned int tmp_crc = 0; - tmp_crc = mCfbcIns->Calcrc32(0, data_buf, data_len); - data_buf[data_len + 0] = (tmp_crc >> 0) & 0xFF; - data_buf[data_len + 1] = (tmp_crc >> 8) & 0xFF; - data_buf[data_len + 2] = (tmp_crc >> 16) & 0xFF; - data_buf[data_len + 3] = (tmp_crc >> 24) & 0xFF; + tmp_crc = mCfbcIns->Calcrc32(0, data_buf, data_len); + data_buf[data_len + 0] = (tmp_crc >> 0) & 0xFF; + data_buf[data_len + 1] = (tmp_crc >> 8) & 0xFF; + data_buf[data_len + 2] = (tmp_crc >> 16) & 0xFF; + data_buf[data_len + 3] = (tmp_crc >> 24) & 0xFF; - return 0; + return 0; } bool CUpgradeFBC::threadLoop() { - int file_handle = -1; - int i = 0, tmp_flag = 0, cmd_len = 0, tmp_prog = 0, total_item = 0; - int start_off = 0, end_off = 0, cur_off = 0, old_off = 0, rw_size = 0; - int upgrade_version = 0, upgrade_flag = 0, upgrade_err_code = 0, upgrade_try_cnt = 0; - int upgrade_pq_wb_flag = 0; - unsigned char tmp_buf[128] = {0}; - - if (mpObserver == NULL) { - return false; - } - - LOGD("%s, entering...\n", "TV"); - - prctl(PR_SET_NAME, (unsigned long)"CUpgradeFBC thread loop"); - - mState = STATE_RUNNING; - - LOGD("%s, upgrade mode = %d\n", __FUNCTION__, mUpgradeMode); - if (mUpgradeMode != CC_UPGRADE_MODE_BOOT_MAIN && mUpgradeMode != CC_UPGRADE_MODE_BOOT && - mUpgradeMode != CC_UPGRADE_MODE_MAIN && mUpgradeMode != CC_UPGRADE_MODE_COMPACT_BOOT && - mUpgradeMode != CC_UPGRADE_MODE_ALL && mUpgradeMode != CC_UPGRADE_MODE_MAIN_PQ_WB && - mUpgradeMode != CC_UPGRADE_MODE_ALL_PQ_WB && mUpgradeMode != CC_UPGRADE_MODE_MAIN_WB && - mUpgradeMode != CC_UPGRADE_MODE_ALL_WB && mUpgradeMode != CC_UPGRADE_MODE_MAIN_PQ && - mUpgradeMode != CC_UPGRADE_MODE_ALL_PQ && mUpgradeMode != CC_UPGRADE_MODE_PQ_WB_ONLY && - mUpgradeMode != CC_UPGRADE_MODE_WB_ONLY && mUpgradeMode != CC_UPGRADE_MODE_PQ_ONLY && - mUpgradeMode != CC_UPGRADE_MODE_CUR_PQ_BIN && mUpgradeMode != CC_UPGRADE_MODE_BURN && - mUpgradeMode != CC_UPGRADE_MODE_DUMMY) { - mState = STATE_ABORT; - upgrade_err_code = ERR_NOT_SUPPORT_UPGRADE_MDOE; - mpObserver->onUpgradeStatus(mState, upgrade_err_code); - mCfbcIns->SetUpgradeFlag(0); - - return false; - } - - if (mUpgradeBlockSize % 0x1000 != 0) { - mState = STATE_ABORT; - upgrade_err_code = ERR_NOT_CORRECT_UPGRADE_BLKSIZE; - mpObserver->onUpgradeStatus(mState, upgrade_err_code); - mCfbcIns->SetUpgradeFlag(0); - - return false; - } - - struct stat tmp_st; - stat(mFileName, &tmp_st); - if (tmp_st.st_size == CC_FBC_V01_FILE_SIZE) { - upgrade_version = CC_FBC_V01_00_VAL; - mOPTotalSize = CC_UPGRADE_V01_ALL_LENGTH; - mBinFileSize = CC_FBC_V01_FILE_SIZE; - } else if (tmp_st.st_size == CC_FBC_V02_FILE_SIZE) { - upgrade_version = CC_FBC_V02_00_VAL; - mOPTotalSize = CC_UPGRADE_V02_ALL_LENGTH; - mBinFileSize = CC_FBC_V02_FILE_SIZE; - } else if (tmp_st.st_size == CC_FBC_V02_CUR_PQ_BIN_FILE_SIZE) { - upgrade_version = CC_FBC_V02_01_VAL; - mOPTotalSize = CC_UPGRADE_V02_ALL_LENGTH; - mBinFileSize = CC_FBC_V02_CUR_PQ_BIN_FILE_SIZE; - } else if (tmp_st.st_size == CC_FBC_V03_FILE_SIZE) { - upgrade_version = CC_FBC_V03_00_VAL; - mOPTotalSize = CC_UPGRADE_V03_ALL_LENGTH; - mBinFileSize = CC_FBC_V03_FILE_SIZE; - } else if (tmp_st.st_size == CC_FBC_V03_CUR_PQ_BIN_FILE_SIZE) { - upgrade_version = CC_FBC_V03_01_VAL; - mOPTotalSize = CC_UPGRADE_V03_ALL_LENGTH; - mBinFileSize = CC_FBC_V03_CUR_PQ_BIN_FILE_SIZE; - } else { - upgrade_version = 0; - mOPTotalSize = 0; - mBinFileSize = 0; - mState = STATE_ABORT; - upgrade_err_code = ERR_BIN_FILE_SIZE; - mpObserver->onUpgradeStatus(mState, upgrade_err_code); - mCfbcIns->SetUpgradeFlag(0); - return false; - } - - //open upgrade source file and read it to temp buffer. - file_handle = open(mFileName, O_RDONLY); - if (file_handle < 0) { - LOGE("%s, Can't Open file %s\n", __FUNCTION__, mFileName); - mState = STATE_ABORT; - upgrade_err_code = ERR_OPEN_BIN_FILE; - mpObserver->onUpgradeStatus(mState, upgrade_err_code); - mCfbcIns->SetUpgradeFlag(0); - return false; - } - - lseek(file_handle, 0, SEEK_SET); - - mBinFileBuf = new unsigned char[mOPTotalSize]; - - memset(mBinFileBuf, 0, mOPTotalSize); - rw_size = read(file_handle, mBinFileBuf, mBinFileSize); - if (rw_size != mBinFileSize || rw_size <= 0) { - LOGE("%s, read file %s error(%d, %d)\n", __FUNCTION__, mFileName, mBinFileSize, rw_size); - mState = STATE_ABORT; - upgrade_err_code = ERR_READ_BIN_FILE; - mpObserver->onUpgradeStatus(mState, upgrade_err_code); - mCfbcIns->SetUpgradeFlag(0); - - if (mBinFileBuf != NULL) { - delete mBinFileBuf; - mBinFileBuf = NULL; - } - return false; - } - - close(file_handle); - file_handle = -1; - - if (upgrade_version == CC_FBC_V02_00_VAL) { - memcpy((void *)(mBinFileBuf + CC_UPGRADE_V02_BOOT_BAK_OFFSET), (void *)(mBinFileBuf + CC_UPGRADE_V02_BOOT_OFFSET), CC_UPGRADE_V02_BOOT_LEN); - memcpy((void *)(mBinFileBuf + CC_UPGRADE_V02_MAIN_BAK_OFFSET), (void *)(mBinFileBuf + CC_UPGRADE_V02_MAIN_OFFSET), CC_UPGRADE_V02_MAIN_LEN); - } else if (upgrade_version == CC_FBC_V02_01_VAL) { - memcpy((void *)(mBinFileBuf + CC_UPGRADE_V02_CUR_PQ_OFFSET), (void *)(mBinFileBuf + 0), CC_FBC_V02_CUR_PQ_BIN_FILE_SIZE); - } else if (upgrade_version == CC_FBC_V03_01_VAL) { - memcpy((void *)(mBinFileBuf + CC_UPGRADE_V03_CUR_PQ_OFFSET), (void *)(mBinFileBuf + 0), CC_FBC_V03_CUR_PQ_BIN_FILE_SIZE); - } - - //calculate start addr - if (upgrade_version == CC_FBC_V01_00_VAL) { - start_off = CC_UPGRADE_V01_MAIN_OFFSET; - end_off = 0; - if (mUpgradeMode == CC_UPGRADE_MODE_ALL || mUpgradeMode == CC_UPGRADE_MODE_BOOT_MAIN) { - start_off = CC_UPGRADE_V01_BOOT_OFFSET; - end_off = CC_UPGRADE_V01_BOOT_OFFSET + CC_UPGRADE_V01_ALL_LENGTH; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } else if (mUpgradeMode == CC_UPGRADE_MODE_BOOT) { - start_off = CC_UPGRADE_V01_BOOT_OFFSET; - end_off = CC_UPGRADE_V01_BOOT_OFFSET + CC_UPGRADE_V01_BOOT_LEN; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } else if (mUpgradeMode == CC_UPGRADE_MODE_MAIN) { - start_off = CC_UPGRADE_V01_MAIN_OFFSET; - end_off = CC_UPGRADE_V01_MAIN_OFFSET + CC_UPGRADE_V01_MAIN_LEN; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } - } else if (upgrade_version == CC_FBC_V02_00_VAL) { - start_off = CC_UPGRADE_V02_MAIN_OFFSET; - end_off = 0; - if (mUpgradeMode == CC_UPGRADE_MODE_ALL || mUpgradeMode == CC_UPGRADE_MODE_ALL_PQ_WB || - mUpgradeMode == CC_UPGRADE_MODE_ALL_WB || mUpgradeMode == CC_UPGRADE_MODE_ALL_PQ) { - start_off = CC_UPGRADE_V02_COMPACT_BOOT_OFFSET; - end_off = CC_UPGRADE_V02_COMPACT_BOOT_OFFSET + CC_UPGRADE_V02_ALL_LENGTH; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } else if (mUpgradeMode == CC_UPGRADE_MODE_BOOT) { - start_off = CC_UPGRADE_V02_BOOT_OFFSET; - end_off = CC_UPGRADE_V02_BOOT_OFFSET + CC_UPGRADE_V02_BOOT_LEN; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } else if (mUpgradeMode == CC_UPGRADE_MODE_MAIN || mUpgradeMode == CC_UPGRADE_MODE_MAIN_PQ_WB || - mUpgradeMode == CC_UPGRADE_MODE_MAIN_WB || mUpgradeMode == CC_UPGRADE_MODE_MAIN_PQ ) { - start_off = CC_UPGRADE_V02_MAIN_OFFSET; - end_off = CC_UPGRADE_V02_MAIN_OFFSET + CC_UPGRADE_V02_MAIN_LEN; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } else if (mUpgradeMode == CC_UPGRADE_MODE_COMPACT_BOOT) { - start_off = CC_UPGRADE_V02_COMPACT_BOOT_OFFSET; - end_off = CC_UPGRADE_V02_COMPACT_BOOT_OFFSET + CC_UPGRADE_V02_COMPACT_BOOT_LEN; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } else if (mUpgradeMode == CC_UPGRADE_MODE_BOOT_MAIN) { - start_off = CC_UPGRADE_V02_BOOT_OFFSET; - end_off = CC_UPGRADE_V02_BOOT_OFFSET + CC_UPGRADE_V02_BOOT_LEN + CC_UPGRADE_V02_MAIN_LEN; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } - } else if (upgrade_version == CC_FBC_V02_01_VAL) { - start_off = CC_UPGRADE_V02_CUR_PQ_OFFSET; - end_off = 0; - if (mUpgradeMode == CC_UPGRADE_MODE_CUR_PQ_BIN) { - start_off = CC_UPGRADE_V02_CUR_PQ_OFFSET; - end_off = CC_UPGRADE_V02_CUR_PQ_OFFSET + CC_FBC_V02_CUR_PQ_BIN_FILE_SIZE; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } - } else if (upgrade_version == CC_FBC_V03_00_VAL) { - start_off = CC_UPGRADE_V03_MAIN_OFFSET; - end_off = 0; - if (mUpgradeMode == CC_UPGRADE_MODE_ALL || mUpgradeMode == CC_UPGRADE_MODE_ALL_PQ_WB || - mUpgradeMode == CC_UPGRADE_MODE_ALL_WB || mUpgradeMode == CC_UPGRADE_MODE_ALL_PQ) { - start_off = CC_UPGRADE_V03_COMPACT_BOOT_OFFSET; - end_off = CC_UPGRADE_V03_COMPACT_BOOT_OFFSET + CC_UPGRADE_V03_ALL_LENGTH; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } else if (mUpgradeMode == CC_UPGRADE_MODE_BOOT) { - start_off = CC_UPGRADE_V03_BOOT_OFFSET; - end_off = CC_UPGRADE_V03_BOOT_OFFSET + CC_UPGRADE_V03_BOOT_LEN; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } else if (mUpgradeMode == CC_UPGRADE_MODE_MAIN || mUpgradeMode == CC_UPGRADE_MODE_MAIN_PQ_WB || - mUpgradeMode == CC_UPGRADE_MODE_MAIN_WB || mUpgradeMode == CC_UPGRADE_MODE_MAIN_PQ ) { - start_off = CC_UPGRADE_V03_MAIN_OFFSET; - end_off = CC_UPGRADE_V03_MAIN_OFFSET + CC_UPGRADE_V03_MAIN_LEN; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } else if (mUpgradeMode == CC_UPGRADE_MODE_COMPACT_BOOT) { - start_off = CC_UPGRADE_V03_COMPACT_BOOT_OFFSET; - end_off = CC_UPGRADE_V03_COMPACT_BOOT_OFFSET + CC_UPGRADE_V03_COMPACT_BOOT_LEN; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } else if (mUpgradeMode == CC_UPGRADE_MODE_BOOT_MAIN) { - start_off = CC_UPGRADE_V03_BOOT_OFFSET; - end_off = CC_UPGRADE_V03_BOOT_OFFSET + CC_UPGRADE_V03_BOOT_LEN + CC_UPGRADE_V03_MAIN_LEN; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } else if (mUpgradeMode == CC_UPGRADE_MODE_BURN) { - start_off = CC_UPGRADE_V03_COMPACT_BOOT_OFFSET; - end_off = CC_UPGRADE_V03_COMPACT_BOOT_OFFSET + CC_FBC_V03_FILE_SIZE; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } - } else if (upgrade_version == CC_FBC_V03_01_VAL) { - start_off = CC_UPGRADE_V03_CUR_PQ_OFFSET; - end_off = 0; - if (mUpgradeMode == CC_UPGRADE_MODE_CUR_PQ_BIN) { - start_off = CC_UPGRADE_V03_CUR_PQ_OFFSET; - end_off = CC_UPGRADE_V03_CUR_PQ_OFFSET + CC_FBC_V03_CUR_PQ_BIN_FILE_SIZE; - total_item = (end_off - start_off) / mUpgradeBlockSize + 2; - } - } - - //let's try set default pq & wb - if (upgrade_version == CC_FBC_V02_00_VAL || upgrade_version == CC_FBC_V03_00_VAL) { - if (mUpgradeMode == CC_UPGRADE_MODE_ALL_PQ_WB || mUpgradeMode == CC_UPGRADE_MODE_MAIN_PQ_WB || - mUpgradeMode == CC_UPGRADE_MODE_PQ_WB_ONLY) { - mDataBuf[6] = 3; - upgrade_pq_wb_flag = 1; - } else if (mUpgradeMode == CC_UPGRADE_MODE_MAIN_WB || mUpgradeMode == CC_UPGRADE_MODE_ALL_WB || - mUpgradeMode == CC_UPGRADE_MODE_WB_ONLY) { - mDataBuf[6] = 2; - upgrade_pq_wb_flag = 1; - } else if (mUpgradeMode == CC_UPGRADE_MODE_MAIN_PQ || mUpgradeMode == CC_UPGRADE_MODE_ALL_PQ || - mUpgradeMode == CC_UPGRADE_MODE_PQ_ONLY) { - mDataBuf[6] = 1; - upgrade_pq_wb_flag = 1; - } else { - upgrade_pq_wb_flag = 0; - } - - if (upgrade_pq_wb_flag == 1) { - cmd_len = 7; - mDataBuf[0] = 0x5A; - mDataBuf[1] = 0x5A; - mDataBuf[2] = cmd_len + 4; - mDataBuf[3] = 0x00; - mDataBuf[4] = 0x00; - mDataBuf[5] = CMD_CLR_SETTINGS_DEFAULT; - - AddCRCToDataBuf(mDataBuf, cmd_len); - if (mCfbcIns->sendDataOneway(COMM_DEV_SERIAL, mDataBuf, cmd_len + 4, 0) <= 0) { - mState = STATE_ABORT; - upgrade_err_code = ERR_SERIAL_CONNECT; - mpObserver->onUpgradeStatus(mState, upgrade_err_code); - mCfbcIns->SetUpgradeFlag(0); - - if (mBinFileBuf != NULL) { - delete mBinFileBuf; - mBinFileBuf = NULL; - } - return false; - } - - usleep(3000 * 1000); - - if (mUpgradeMode == CC_UPGRADE_MODE_PQ_WB_ONLY || mUpgradeMode == CC_UPGRADE_MODE_WB_ONLY || - mUpgradeMode == CC_UPGRADE_MODE_PQ_ONLY) { - system("reboot"); - return false; - } - } - } - - //send upgrade command - cmd_len = 10; - mDataBuf[0] = 0x5A; - mDataBuf[1] = 0x5A; - mDataBuf[2] = cmd_len + 4; - mDataBuf[3] = 0x00; - mDataBuf[4] = 0x00; - mDataBuf[5] = 0x01; - mDataBuf[6] = 0x88; - mDataBuf[7] = 0x88; - mDataBuf[8] = 0x88; - mDataBuf[9] = 0x88; - AddCRCToDataBuf(mDataBuf, cmd_len); - if (mCfbcIns->sendDataOneway(COMM_DEV_SERIAL, mDataBuf, cmd_len + 4, 0) <= 0) { - mState = STATE_ABORT; - upgrade_err_code = ERR_SERIAL_CONNECT; - mpObserver->onUpgradeStatus(mState, upgrade_err_code); - mCfbcIns->SetUpgradeFlag(0); - - if (mBinFileBuf != NULL) { - delete mBinFileBuf; - mBinFileBuf = NULL; - } - return false; - } - - //waiting fbc restart - usleep(5000 * 1000); - - if (mUpgradeMode == CC_UPGRADE_MODE_DUMMY) { - //dummy test mode - - //wait 10 second - usleep(10000 * 1000); - - //send reboot command to reboot fbc - sprintf((char *)tmp_buf, "reboot\n"); - cmd_len = strlen((char *)tmp_buf); - mCfbcIns->sendDataOneway(COMM_DEV_SERIAL, tmp_buf, cmd_len, 0); - usleep(400 * 1000); - - mpObserver->onUpgradeStatus(mState, 100); - - usleep(100 * 1000); - mState = STATE_FINISHED; - mpObserver->onUpgradeStatus(mState, 0); - - if (mBinFileBuf != NULL) { - delete mBinFileBuf; - mBinFileBuf = NULL; - } - return false; - } - - tmp_prog += 1; - mpObserver->onUpgradeStatus(mState, tmp_prog * 100 / total_item); - - cur_off = start_off; - old_off = cur_off; - - upgrade_flag = 0; - while (!exitPending()) { //requietexit() or requietexitWait() not call - if (cur_off >= end_off) { - upgrade_flag = 1; - break; - } - - //copy data from file temp buffer - if (end_off - cur_off < mUpgradeBlockSize) { - rw_size = end_off - cur_off; - } else { - rw_size = mUpgradeBlockSize; - } - - memcpy(mDataBuf, mBinFileBuf + cur_off, rw_size); - - //send upgrade start addr and write size - sprintf((char *)tmp_buf, "upgrade 0x%x 0x%x\n", cur_off, rw_size); - LOGD("\n\n%s, %s\n", __FUNCTION__, tmp_buf); - cmd_len = strlen((char *)tmp_buf); - if (mCfbcIns->sendDataOneway(COMM_DEV_SERIAL, tmp_buf, cmd_len, 0) <= 0) { - mState = STATE_ABORT; - upgrade_err_code = ERR_SERIAL_CONNECT; - upgrade_flag = 0; - break; - } - usleep(500 * 1000); - - //send upgrade data - if (mCfbcIns->sendDataOneway(COMM_DEV_SERIAL, mDataBuf, rw_size, 0) <= 0) { - mState = STATE_ABORT; - upgrade_err_code = ERR_SERIAL_CONNECT; - upgrade_flag = 0; - break; - } - - //send upgrade data crc - AddCRCToDataBuf(mDataBuf, rw_size); - if (mCfbcIns->sendDataOneway(COMM_DEV_SERIAL, mDataBuf + rw_size, 4, 0) <= 0) { - mState = STATE_ABORT; - upgrade_err_code = ERR_SERIAL_CONNECT; - upgrade_flag = 0; - break; - } - - old_off = cur_off; - cur_off += rw_size; - - //deal with fbc response - tmp_flag = 0; - memset(mDataBuf, 0, CC_UPGRADE_DATA_BUF_SIZE); - rw_size = mCfbcIns->uartReadStream(mDataBuf, CC_UPGRADE_DATA_BUF_SIZE, 2000); - for (i = 0; i < rw_size - 3; i++) { - if ((0x5A == mDataBuf[i]) && (0x5A == mDataBuf[i + 1]) && (0x5A == mDataBuf[i + 2])) { - LOGD("%s, fbc write data at 0x%x ok!\n", __FUNCTION__, old_off); - tmp_flag = 1; - break; - } - } - - if (tmp_flag == 0) { - LOGE("%s, fbc write data at 0x%x error! rewrite!\n", __FUNCTION__, old_off); - if (upgrade_try_cnt < 6) { - cur_off = old_off; - upgrade_try_cnt += 1; - - mpObserver->onUpgradeStatus(mState, ERR_DATA_CRC_ERROR); - } else { - LOGE("%s, we have rewrite more than %d times, abort.\n", __FUNCTION__, upgrade_try_cnt); - mState = STATE_ABORT; - upgrade_err_code = ERR_SERIAL_CONNECT; - upgrade_flag = 0; - break; - } - } else { - tmp_prog += 1; - upgrade_try_cnt = 0; - } - - usleep(3000 * 1000); - - mpObserver->onUpgradeStatus(mState, tmp_prog * 100 / total_item); - } - - if (mState == STATE_ABORT) { - mpObserver->onUpgradeStatus(mState, upgrade_err_code); - } else if (mState == STATE_RUNNING) { - if (upgrade_flag == 1) { - sprintf((char *)tmp_buf, "reboot\n"); - cmd_len = strlen((char *)tmp_buf); - mCfbcIns->sendDataOneway(COMM_DEV_SERIAL, tmp_buf, cmd_len, 0); - usleep(400 * 1000); - - tmp_prog += 1; - mpObserver->onUpgradeStatus(mState, tmp_prog * 100 / total_item); - - usleep(100 * 1000); - mState = STATE_FINISHED; - mpObserver->onUpgradeStatus(mState, 0); - } - } else { - if (upgrade_flag == 1) { - tmp_prog += 1; - mpObserver->onUpgradeStatus(mState, tmp_prog * 100 / total_item); - } - } - - mState = STATE_STOPED; - - mCfbcIns->SetUpgradeFlag(0); - - if (mBinFileBuf != NULL) { - delete mBinFileBuf; - mBinFileBuf = NULL; - } - - LOGD("%s, exiting...\n", "TV"); - system("reboot"); - //return true, run again, return false,not run. - return false; + int file_handle = -1; + int i = 0, tmp_flag = 0, cmd_len = 0, tmp_prog = 0, total_item = 0; + int start_off = 0, end_off = 0, cur_off = 0, old_off = 0, rw_size = 0; + int upgrade_version = 0, upgrade_flag = 0, upgrade_err_code = 0, upgrade_try_cnt = 0; + int upgrade_pq_wb_flag = 0; + unsigned char tmp_buf[128] = {0}; + + if (mpObserver == NULL) { + return false; + } + + LOGD("%s, entering...\n", "TV"); + + prctl(PR_SET_NAME, (unsigned long)"CUpgradeFBC thread loop"); + + mState = STATE_RUNNING; + + LOGD("%s, upgrade mode = %d\n", __FUNCTION__, mUpgradeMode); + if (mUpgradeMode != CC_UPGRADE_MODE_BOOT_MAIN && mUpgradeMode != CC_UPGRADE_MODE_BOOT && + mUpgradeMode != CC_UPGRADE_MODE_MAIN && mUpgradeMode != CC_UPGRADE_MODE_COMPACT_BOOT && + mUpgradeMode != CC_UPGRADE_MODE_ALL && mUpgradeMode != CC_UPGRADE_MODE_MAIN_PQ_WB && + mUpgradeMode != CC_UPGRADE_MODE_ALL_PQ_WB && mUpgradeMode != CC_UPGRADE_MODE_MAIN_WB && + mUpgradeMode != CC_UPGRADE_MODE_ALL_WB && mUpgradeMode != CC_UPGRADE_MODE_MAIN_PQ && + mUpgradeMode != CC_UPGRADE_MODE_ALL_PQ && mUpgradeMode != CC_UPGRADE_MODE_PQ_WB_ONLY && + mUpgradeMode != CC_UPGRADE_MODE_WB_ONLY && mUpgradeMode != CC_UPGRADE_MODE_PQ_ONLY && + mUpgradeMode != CC_UPGRADE_MODE_CUR_PQ_BIN && mUpgradeMode != CC_UPGRADE_MODE_BURN && + mUpgradeMode != CC_UPGRADE_MODE_DUMMY) { + mState = STATE_ABORT; + upgrade_err_code = ERR_NOT_SUPPORT_UPGRADE_MDOE; + mpObserver->onUpgradeStatus(mState, upgrade_err_code); + mCfbcIns->SetUpgradeFlag(0); + + return false; + } + + if (mUpgradeBlockSize % 0x1000 != 0) { + mState = STATE_ABORT; + upgrade_err_code = ERR_NOT_CORRECT_UPGRADE_BLKSIZE; + mpObserver->onUpgradeStatus(mState, upgrade_err_code); + mCfbcIns->SetUpgradeFlag(0); + + return false; + } + + struct stat tmp_st; + stat(mFileName, &tmp_st); + if (tmp_st.st_size == CC_FBC_V01_FILE_SIZE) { + upgrade_version = CC_FBC_V01_00_VAL; + mOPTotalSize = CC_UPGRADE_V01_ALL_LENGTH; + mBinFileSize = CC_FBC_V01_FILE_SIZE; + } else if (tmp_st.st_size == CC_FBC_V02_FILE_SIZE) { + upgrade_version = CC_FBC_V02_00_VAL; + mOPTotalSize = CC_UPGRADE_V02_ALL_LENGTH; + mBinFileSize = CC_FBC_V02_FILE_SIZE; + } else if (tmp_st.st_size == CC_FBC_V02_CUR_PQ_BIN_FILE_SIZE) { + upgrade_version = CC_FBC_V02_01_VAL; + mOPTotalSize = CC_UPGRADE_V02_ALL_LENGTH; + mBinFileSize = CC_FBC_V02_CUR_PQ_BIN_FILE_SIZE; + } else if (tmp_st.st_size == CC_FBC_V03_FILE_SIZE) { + upgrade_version = CC_FBC_V03_00_VAL; + mOPTotalSize = CC_UPGRADE_V03_ALL_LENGTH; + mBinFileSize = CC_FBC_V03_FILE_SIZE; + } else if (tmp_st.st_size == CC_FBC_V03_CUR_PQ_BIN_FILE_SIZE) { + upgrade_version = CC_FBC_V03_01_VAL; + mOPTotalSize = CC_UPGRADE_V03_ALL_LENGTH; + mBinFileSize = CC_FBC_V03_CUR_PQ_BIN_FILE_SIZE; + } else { + upgrade_version = 0; + mOPTotalSize = 0; + mBinFileSize = 0; + mState = STATE_ABORT; + upgrade_err_code = ERR_BIN_FILE_SIZE; + mpObserver->onUpgradeStatus(mState, upgrade_err_code); + mCfbcIns->SetUpgradeFlag(0); + return false; + } + + //open upgrade source file and read it to temp buffer. + file_handle = open(mFileName, O_RDONLY); + if (file_handle < 0) { + LOGE("%s, Can't Open file %s\n", __FUNCTION__, mFileName); + mState = STATE_ABORT; + upgrade_err_code = ERR_OPEN_BIN_FILE; + mpObserver->onUpgradeStatus(mState, upgrade_err_code); + mCfbcIns->SetUpgradeFlag(0); + return false; + } + + lseek(file_handle, 0, SEEK_SET); + + mBinFileBuf = new unsigned char[mOPTotalSize]; + + memset(mBinFileBuf, 0, mOPTotalSize); + rw_size = read(file_handle, mBinFileBuf, mBinFileSize); + if (rw_size != mBinFileSize || rw_size <= 0) { + LOGE("%s, read file %s error(%d, %d)\n", __FUNCTION__, mFileName, mBinFileSize, rw_size); + mState = STATE_ABORT; + upgrade_err_code = ERR_READ_BIN_FILE; + mpObserver->onUpgradeStatus(mState, upgrade_err_code); + mCfbcIns->SetUpgradeFlag(0); + + if (mBinFileBuf != NULL) { + delete mBinFileBuf; + mBinFileBuf = NULL; + } + return false; + } + + close(file_handle); + file_handle = -1; + + if (upgrade_version == CC_FBC_V02_00_VAL) { + memcpy((void *)(mBinFileBuf + CC_UPGRADE_V02_BOOT_BAK_OFFSET), (void *)(mBinFileBuf + CC_UPGRADE_V02_BOOT_OFFSET), CC_UPGRADE_V02_BOOT_LEN); + memcpy((void *)(mBinFileBuf + CC_UPGRADE_V02_MAIN_BAK_OFFSET), (void *)(mBinFileBuf + CC_UPGRADE_V02_MAIN_OFFSET), CC_UPGRADE_V02_MAIN_LEN); + } else if (upgrade_version == CC_FBC_V02_01_VAL) { + memcpy((void *)(mBinFileBuf + CC_UPGRADE_V02_CUR_PQ_OFFSET), (void *)(mBinFileBuf + 0), CC_FBC_V02_CUR_PQ_BIN_FILE_SIZE); + } else if (upgrade_version == CC_FBC_V03_01_VAL) { + memcpy((void *)(mBinFileBuf + CC_UPGRADE_V03_CUR_PQ_OFFSET), (void *)(mBinFileBuf + 0), CC_FBC_V03_CUR_PQ_BIN_FILE_SIZE); + } + + //calculate start addr + if (upgrade_version == CC_FBC_V01_00_VAL) { + start_off = CC_UPGRADE_V01_MAIN_OFFSET; + end_off = 0; + if (mUpgradeMode == CC_UPGRADE_MODE_ALL || mUpgradeMode == CC_UPGRADE_MODE_BOOT_MAIN) { + start_off = CC_UPGRADE_V01_BOOT_OFFSET; + end_off = CC_UPGRADE_V01_BOOT_OFFSET + CC_UPGRADE_V01_ALL_LENGTH; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } else if (mUpgradeMode == CC_UPGRADE_MODE_BOOT) { + start_off = CC_UPGRADE_V01_BOOT_OFFSET; + end_off = CC_UPGRADE_V01_BOOT_OFFSET + CC_UPGRADE_V01_BOOT_LEN; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } else if (mUpgradeMode == CC_UPGRADE_MODE_MAIN) { + start_off = CC_UPGRADE_V01_MAIN_OFFSET; + end_off = CC_UPGRADE_V01_MAIN_OFFSET + CC_UPGRADE_V01_MAIN_LEN; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } + } else if (upgrade_version == CC_FBC_V02_00_VAL) { + start_off = CC_UPGRADE_V02_MAIN_OFFSET; + end_off = 0; + if (mUpgradeMode == CC_UPGRADE_MODE_ALL || mUpgradeMode == CC_UPGRADE_MODE_ALL_PQ_WB || + mUpgradeMode == CC_UPGRADE_MODE_ALL_WB || mUpgradeMode == CC_UPGRADE_MODE_ALL_PQ) { + start_off = CC_UPGRADE_V02_COMPACT_BOOT_OFFSET; + end_off = CC_UPGRADE_V02_COMPACT_BOOT_OFFSET + CC_UPGRADE_V02_ALL_LENGTH; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } else if (mUpgradeMode == CC_UPGRADE_MODE_BOOT) { + start_off = CC_UPGRADE_V02_BOOT_OFFSET; + end_off = CC_UPGRADE_V02_BOOT_OFFSET + CC_UPGRADE_V02_BOOT_LEN; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } else if (mUpgradeMode == CC_UPGRADE_MODE_MAIN || mUpgradeMode == CC_UPGRADE_MODE_MAIN_PQ_WB || + mUpgradeMode == CC_UPGRADE_MODE_MAIN_WB || mUpgradeMode == CC_UPGRADE_MODE_MAIN_PQ ) { + start_off = CC_UPGRADE_V02_MAIN_OFFSET; + end_off = CC_UPGRADE_V02_MAIN_OFFSET + CC_UPGRADE_V02_MAIN_LEN; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } else if (mUpgradeMode == CC_UPGRADE_MODE_COMPACT_BOOT) { + start_off = CC_UPGRADE_V02_COMPACT_BOOT_OFFSET; + end_off = CC_UPGRADE_V02_COMPACT_BOOT_OFFSET + CC_UPGRADE_V02_COMPACT_BOOT_LEN; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } else if (mUpgradeMode == CC_UPGRADE_MODE_BOOT_MAIN) { + start_off = CC_UPGRADE_V02_BOOT_OFFSET; + end_off = CC_UPGRADE_V02_BOOT_OFFSET + CC_UPGRADE_V02_BOOT_LEN + CC_UPGRADE_V02_MAIN_LEN; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } + } else if (upgrade_version == CC_FBC_V02_01_VAL) { + start_off = CC_UPGRADE_V02_CUR_PQ_OFFSET; + end_off = 0; + if (mUpgradeMode == CC_UPGRADE_MODE_CUR_PQ_BIN) { + start_off = CC_UPGRADE_V02_CUR_PQ_OFFSET; + end_off = CC_UPGRADE_V02_CUR_PQ_OFFSET + CC_FBC_V02_CUR_PQ_BIN_FILE_SIZE; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } + } else if (upgrade_version == CC_FBC_V03_00_VAL) { + start_off = CC_UPGRADE_V03_MAIN_OFFSET; + end_off = 0; + if (mUpgradeMode == CC_UPGRADE_MODE_ALL || mUpgradeMode == CC_UPGRADE_MODE_ALL_PQ_WB || + mUpgradeMode == CC_UPGRADE_MODE_ALL_WB || mUpgradeMode == CC_UPGRADE_MODE_ALL_PQ) { + start_off = CC_UPGRADE_V03_COMPACT_BOOT_OFFSET; + end_off = CC_UPGRADE_V03_COMPACT_BOOT_OFFSET + CC_UPGRADE_V03_ALL_LENGTH; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } else if (mUpgradeMode == CC_UPGRADE_MODE_BOOT) { + start_off = CC_UPGRADE_V03_BOOT_OFFSET; + end_off = CC_UPGRADE_V03_BOOT_OFFSET + CC_UPGRADE_V03_BOOT_LEN; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } else if (mUpgradeMode == CC_UPGRADE_MODE_MAIN || mUpgradeMode == CC_UPGRADE_MODE_MAIN_PQ_WB || + mUpgradeMode == CC_UPGRADE_MODE_MAIN_WB || mUpgradeMode == CC_UPGRADE_MODE_MAIN_PQ ) { + start_off = CC_UPGRADE_V03_MAIN_OFFSET; + end_off = CC_UPGRADE_V03_MAIN_OFFSET + CC_UPGRADE_V03_MAIN_LEN; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } else if (mUpgradeMode == CC_UPGRADE_MODE_COMPACT_BOOT) { + start_off = CC_UPGRADE_V03_COMPACT_BOOT_OFFSET; + end_off = CC_UPGRADE_V03_COMPACT_BOOT_OFFSET + CC_UPGRADE_V03_COMPACT_BOOT_LEN; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } else if (mUpgradeMode == CC_UPGRADE_MODE_BOOT_MAIN) { + start_off = CC_UPGRADE_V03_BOOT_OFFSET; + end_off = CC_UPGRADE_V03_BOOT_OFFSET + CC_UPGRADE_V03_BOOT_LEN + CC_UPGRADE_V03_MAIN_LEN; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } else if (mUpgradeMode == CC_UPGRADE_MODE_BURN) { + start_off = CC_UPGRADE_V03_COMPACT_BOOT_OFFSET; + end_off = CC_UPGRADE_V03_COMPACT_BOOT_OFFSET + CC_FBC_V03_FILE_SIZE; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } + } else if (upgrade_version == CC_FBC_V03_01_VAL) { + start_off = CC_UPGRADE_V03_CUR_PQ_OFFSET; + end_off = 0; + if (mUpgradeMode == CC_UPGRADE_MODE_CUR_PQ_BIN) { + start_off = CC_UPGRADE_V03_CUR_PQ_OFFSET; + end_off = CC_UPGRADE_V03_CUR_PQ_OFFSET + CC_FBC_V03_CUR_PQ_BIN_FILE_SIZE; + total_item = (end_off - start_off) / mUpgradeBlockSize + 2; + } + } + + //let's try set default pq & wb + if (upgrade_version == CC_FBC_V02_00_VAL || upgrade_version == CC_FBC_V03_00_VAL) { + if (mUpgradeMode == CC_UPGRADE_MODE_ALL_PQ_WB || mUpgradeMode == CC_UPGRADE_MODE_MAIN_PQ_WB || + mUpgradeMode == CC_UPGRADE_MODE_PQ_WB_ONLY) { + mDataBuf[6] = 3; + upgrade_pq_wb_flag = 1; + } else if (mUpgradeMode == CC_UPGRADE_MODE_MAIN_WB || mUpgradeMode == CC_UPGRADE_MODE_ALL_WB || + mUpgradeMode == CC_UPGRADE_MODE_WB_ONLY) { + mDataBuf[6] = 2; + upgrade_pq_wb_flag = 1; + } else if (mUpgradeMode == CC_UPGRADE_MODE_MAIN_PQ || mUpgradeMode == CC_UPGRADE_MODE_ALL_PQ || + mUpgradeMode == CC_UPGRADE_MODE_PQ_ONLY) { + mDataBuf[6] = 1; + upgrade_pq_wb_flag = 1; + } else { + upgrade_pq_wb_flag = 0; + } + + if (upgrade_pq_wb_flag == 1) { + cmd_len = 7; + mDataBuf[0] = 0x5A; + mDataBuf[1] = 0x5A; + mDataBuf[2] = cmd_len + 4; + mDataBuf[3] = 0x00; + mDataBuf[4] = 0x00; + mDataBuf[5] = CMD_CLR_SETTINGS_DEFAULT; + + AddCRCToDataBuf(mDataBuf, cmd_len); + if (mCfbcIns->sendDataOneway(COMM_DEV_SERIAL, mDataBuf, cmd_len + 4, 0) <= 0) { + mState = STATE_ABORT; + upgrade_err_code = ERR_SERIAL_CONNECT; + mpObserver->onUpgradeStatus(mState, upgrade_err_code); + mCfbcIns->SetUpgradeFlag(0); + + if (mBinFileBuf != NULL) { + delete mBinFileBuf; + mBinFileBuf = NULL; + } + return false; + } + + usleep(3000 * 1000); + + if (mUpgradeMode == CC_UPGRADE_MODE_PQ_WB_ONLY || mUpgradeMode == CC_UPGRADE_MODE_WB_ONLY || + mUpgradeMode == CC_UPGRADE_MODE_PQ_ONLY) { + system("reboot"); + return false; + } + } + } + + //send upgrade command + cmd_len = 10; + mDataBuf[0] = 0x5A; + mDataBuf[1] = 0x5A; + mDataBuf[2] = cmd_len + 4; + mDataBuf[3] = 0x00; + mDataBuf[4] = 0x00; + mDataBuf[5] = 0x01; + mDataBuf[6] = 0x88; + mDataBuf[7] = 0x88; + mDataBuf[8] = 0x88; + mDataBuf[9] = 0x88; + AddCRCToDataBuf(mDataBuf, cmd_len); + if (mCfbcIns->sendDataOneway(COMM_DEV_SERIAL, mDataBuf, cmd_len + 4, 0) <= 0) { + mState = STATE_ABORT; + upgrade_err_code = ERR_SERIAL_CONNECT; + mpObserver->onUpgradeStatus(mState, upgrade_err_code); + mCfbcIns->SetUpgradeFlag(0); + + if (mBinFileBuf != NULL) { + delete mBinFileBuf; + mBinFileBuf = NULL; + } + return false; + } + + //waiting fbc restart + usleep(5000 * 1000); + + if (mUpgradeMode == CC_UPGRADE_MODE_DUMMY) { + //dummy test mode + + //wait 10 second + usleep(10000 * 1000); + + //send reboot command to reboot fbc + sprintf((char *)tmp_buf, "reboot\n"); + cmd_len = strlen((char *)tmp_buf); + mCfbcIns->sendDataOneway(COMM_DEV_SERIAL, tmp_buf, cmd_len, 0); + usleep(400 * 1000); + + mpObserver->onUpgradeStatus(mState, 100); + + usleep(100 * 1000); + mState = STATE_FINISHED; + mpObserver->onUpgradeStatus(mState, 0); + + if (mBinFileBuf != NULL) { + delete mBinFileBuf; + mBinFileBuf = NULL; + } + return false; + } + + tmp_prog += 1; + mpObserver->onUpgradeStatus(mState, tmp_prog * 100 / total_item); + + cur_off = start_off; + old_off = cur_off; + + upgrade_flag = 0; + while (!exitPending()) { //requietexit() or requietexitWait() not call + if (cur_off >= end_off) { + upgrade_flag = 1; + break; + } + + //copy data from file temp buffer + if (end_off - cur_off < mUpgradeBlockSize) { + rw_size = end_off - cur_off; + } else { + rw_size = mUpgradeBlockSize; + } + + memcpy(mDataBuf, mBinFileBuf + cur_off, rw_size); + + //send upgrade start addr and write size + sprintf((char *)tmp_buf, "upgrade 0x%x 0x%x\n", cur_off, rw_size); + LOGD("\n\n%s, %s\n", __FUNCTION__, tmp_buf); + cmd_len = strlen((char *)tmp_buf); + if (mCfbcIns->sendDataOneway(COMM_DEV_SERIAL, tmp_buf, cmd_len, 0) <= 0) { + mState = STATE_ABORT; + upgrade_err_code = ERR_SERIAL_CONNECT; + upgrade_flag = 0; + break; + } + usleep(500 * 1000); + + //send upgrade data + if (mCfbcIns->sendDataOneway(COMM_DEV_SERIAL, mDataBuf, rw_size, 0) <= 0) { + mState = STATE_ABORT; + upgrade_err_code = ERR_SERIAL_CONNECT; + upgrade_flag = 0; + break; + } + + //send upgrade data crc + AddCRCToDataBuf(mDataBuf, rw_size); + if (mCfbcIns->sendDataOneway(COMM_DEV_SERIAL, mDataBuf + rw_size, 4, 0) <= 0) { + mState = STATE_ABORT; + upgrade_err_code = ERR_SERIAL_CONNECT; + upgrade_flag = 0; + break; + } + + old_off = cur_off; + cur_off += rw_size; + + //deal with fbc response + tmp_flag = 0; + memset(mDataBuf, 0, CC_UPGRADE_DATA_BUF_SIZE); + rw_size = mCfbcIns->uartReadStream(mDataBuf, CC_UPGRADE_DATA_BUF_SIZE, 2000); + for (i = 0; i < rw_size - 3; i++) { + if ((0x5A == mDataBuf[i]) && (0x5A == mDataBuf[i + 1]) && (0x5A == mDataBuf[i + 2])) { + LOGD("%s, fbc write data at 0x%x ok!\n", __FUNCTION__, old_off); + tmp_flag = 1; + break; + } + } + + if (tmp_flag == 0) { + LOGE("%s, fbc write data at 0x%x error! rewrite!\n", __FUNCTION__, old_off); + if (upgrade_try_cnt < 6) { + cur_off = old_off; + upgrade_try_cnt += 1; + + mpObserver->onUpgradeStatus(mState, ERR_DATA_CRC_ERROR); + } else { + LOGE("%s, we have rewrite more than %d times, abort.\n", __FUNCTION__, upgrade_try_cnt); + mState = STATE_ABORT; + upgrade_err_code = ERR_SERIAL_CONNECT; + upgrade_flag = 0; + break; + } + } else { + tmp_prog += 1; + upgrade_try_cnt = 0; + } + + usleep(3000 * 1000); + + mpObserver->onUpgradeStatus(mState, tmp_prog * 100 / total_item); + } + + if (mState == STATE_ABORT) { + mpObserver->onUpgradeStatus(mState, upgrade_err_code); + } else if (mState == STATE_RUNNING) { + if (upgrade_flag == 1) { + sprintf((char *)tmp_buf, "reboot\n"); + cmd_len = strlen((char *)tmp_buf); + mCfbcIns->sendDataOneway(COMM_DEV_SERIAL, tmp_buf, cmd_len, 0); + usleep(400 * 1000); + + tmp_prog += 1; + mpObserver->onUpgradeStatus(mState, tmp_prog * 100 / total_item); + + usleep(100 * 1000); + mState = STATE_FINISHED; + mpObserver->onUpgradeStatus(mState, 0); + } + } else { + if (upgrade_flag == 1) { + tmp_prog += 1; + mpObserver->onUpgradeStatus(mState, tmp_prog * 100 / total_item); + } + } + + mState = STATE_STOPED; + + mCfbcIns->SetUpgradeFlag(0); + + if (mBinFileBuf != NULL) { + delete mBinFileBuf; + mBinFileBuf = NULL; + } + + LOGD("%s, exiting...\n", "TV"); + system("reboot"); + //return true, run again, return false,not run. + return false; } diff --git a/tvapi/libtv/tv/CUpgradeFBC.h b/tvapi/libtv/tv/CUpgradeFBC.h index 67eb115..70b8057 100644 --- a/tvapi/libtv/tv/CUpgradeFBC.h +++ b/tvapi/libtv/tv/CUpgradeFBC.h @@ -82,60 +82,60 @@ class CUpgradeFBC: public CThread { public: - CUpgradeFBC(); - ~CUpgradeFBC(); - - int start(); - int stop(); - int GetUpgradeFBCProgress(); - int SetUpgradeFileName(char *file_name); - int SetUpgradeFileSize(int file_size); - int SetUpgradeBlockSize(int block_size); - int SetUpgradeMode(int mode); - - class IUpgradeFBCObserver { - public: - IUpgradeFBCObserver() {}; - virtual ~IUpgradeFBCObserver() {}; - virtual void onUpgradeStatus(int state, int param) {}; - }; - void setObserver(IUpgradeFBCObserver *pOb) - { - mpObserver = pOb; - }; + CUpgradeFBC(); + ~CUpgradeFBC(); + + int start(); + int stop(); + int GetUpgradeFBCProgress(); + int SetUpgradeFileName(char *file_name); + int SetUpgradeFileSize(int file_size); + int SetUpgradeBlockSize(int block_size); + int SetUpgradeMode(int mode); + + class IUpgradeFBCObserver { + public: + IUpgradeFBCObserver() {}; + virtual ~IUpgradeFBCObserver() {}; + virtual void onUpgradeStatus(int state, int param) {}; + }; + void setObserver(IUpgradeFBCObserver *pOb) + { + mpObserver = pOb; + }; private: - bool threadLoop(); - - int AddCRCToDataBuf(unsigned char data_buf[], int data_len); - - int mState; - int mUpgradeMode; - int mOPTotalSize; - int mBinFileSize; - int mUpgradeBlockSize; - unsigned char *mBinFileBuf; - char mFileName[256]; - unsigned char mDataBuf[CC_UPGRADE_DATA_BUF_SIZE]; - IUpgradeFBCObserver *mpObserver; - CFbcCommunication *mCfbcIns; - - enum UpgradeState { - STATE_STOPED = 0, - STATE_RUNNING, - STATE_FINISHED, - STATE_ABORT, - }; - - enum FBCUpgradeErrorCode { - ERR_SERIAL_CONNECT = -1, - ERR_OPEN_BIN_FILE = -2, - ERR_BIN_FILE_SIZE = -3, - ERR_READ_BIN_FILE = -4, - ERR_NOT_SUPPORT_UPGRADE_MDOE = -5, - ERR_NOT_CORRECT_UPGRADE_BLKSIZE = -6, - ERR_DATA_CRC_ERROR = -7, - }; + bool threadLoop(); + + int AddCRCToDataBuf(unsigned char data_buf[], int data_len); + + int mState; + int mUpgradeMode; + int mOPTotalSize; + int mBinFileSize; + int mUpgradeBlockSize; + unsigned char *mBinFileBuf; + char mFileName[256]; + unsigned char mDataBuf[CC_UPGRADE_DATA_BUF_SIZE]; + IUpgradeFBCObserver *mpObserver; + CFbcCommunication *mCfbcIns; + + enum UpgradeState { + STATE_STOPED = 0, + STATE_RUNNING, + STATE_FINISHED, + STATE_ABORT, + }; + + enum FBCUpgradeErrorCode { + ERR_SERIAL_CONNECT = -1, + ERR_OPEN_BIN_FILE = -2, + ERR_BIN_FILE_SIZE = -3, + ERR_READ_BIN_FILE = -4, + ERR_NOT_SUPPORT_UPGRADE_MDOE = -5, + ERR_NOT_CORRECT_UPGRADE_BLKSIZE = -6, + ERR_DATA_CRC_ERROR = -7, + }; }; #endif //__TV_UPGRADE_FBC_H__ diff --git a/tvapi/libtv/tv/ScreenCatch.cpp b/tvapi/libtv/tv/ScreenCatch.cpp index 0ed084e..971ac91 100644 --- a/tvapi/libtv/tv/ScreenCatch.cpp +++ b/tvapi/libtv/tv/ScreenCatch.cpp @@ -56,324 +56,324 @@ namespace android { - struct ScreenCatch::ScreenCatchClient : public BnScreenMediaSourceClient { - ScreenCatchClient(void *user) - { - mUser = user; - ALOGE("[%s %d] user:%x", __FUNCTION__, __LINE__, user); - } - - virtual void notify(int msg, int ext1, int ext2, const Parcel *obj) - { - ALOGI("notify %d, %d, %d", msg, ext1, ext2); - } - - virtual int dataCallback(const sp<IMemory> &data) - { - return 0; - } - - protected: - void *mUser; - virtual ~ScreenCatchClient() {} - - private: - DISALLOW_EVIL_CONSTRUCTORS(ScreenCatchClient); - }; - - ScreenCatch::ScreenCatch(uint32_t bufferWidth, uint32_t bufferHeight, uint32_t bitSize) : - mWidth(ALIGN(bufferWidth)), - mHeight(bufferHeight), - mScreenMediaSourceService(NULL), - mColorFormat(OMX_COLOR_Format32bitARGB8888), - mBitSize(bitSize) - { - ALOGE("ScreenCatch: %dx%d", bufferWidth, bufferHeight); - - if (bufferWidth <= 0 || bufferHeight <= 0 || bufferWidth > 1920 || bufferHeight > 1080) { - ALOGE("Invalid dimensions %dx%d", bufferWidth, bufferHeight); - } - - if (bitSize != 24 || bitSize != 32) - bitSize = 32; - - mCorpX = -1; - mCorpY = -1; - mCorpWidth = -1; - mCorpHeight = -1; - - } - - ScreenCatch::~ScreenCatch() - { - ALOGE("~ScreenCatch"); - } - - void ScreenCatch::setVideoRotation(int degree) - { - int angle; - - ALOGI("[%s %d] setVideoRotation degree:%x", __FUNCTION__, __LINE__, degree); - - } - - void ScreenCatch::setVideoCrop(int x, int y, int width, int height) - { - mCorpX = x; - mCorpY = y; - mCorpWidth = width; - mCorpHeight = height; - } - - static inline void yuv_to_rgb32(unsigned char y, unsigned char u, unsigned char v, unsigned char *rgb) - { - register int r, g, b; - - r = (1192 * (y - 16) + 1634 * (v - 128) ) >> 10; - g = (1192 * (y - 16) - 833 * (v - 128) - 400 * (u - 128) ) >> 10; - b = (1192 * (y - 16) + 2066 * (u - 128) ) >> 10; - - r = r > 255 ? 255 : r < 0 ? 0 : r; - g = g > 255 ? 255 : g < 0 ? 0 : g; - b = b > 255 ? 255 : b < 0 ? 0 : b; - - /*ARGB*/ - *rgb = (unsigned char)r; - rgb++; - *rgb = (unsigned char)g; - rgb++; - *rgb = (unsigned char)b; - rgb++; - *rgb = 0xff; - - } - - void nv21_to_rgb32(unsigned char *buf, unsigned char *rgb, int width, int height) - { - int x, y, z = 0; - int h, w; - int blocks; - unsigned char Y1, Y2, U, V; - - blocks = (width * height) * 2; - - for (h = 0, z = 0; h < height; h += 2) { - for (y = 0; y < width * 2; y += 2) { - - Y1 = buf[ h * width + y + 0]; - V = buf[ blocks / 2 + h * width / 2 + y % width + 0 ]; - Y2 = buf[ h * width + y + 1]; - U = buf[ blocks / 2 + h * width / 2 + y % width + 1 ]; - - yuv_to_rgb32(Y1, U, V, &rgb[z]); - yuv_to_rgb32(Y2, U, V, &rgb[z + 4]); - z += 8; - } - } - } - - static inline void yuv_to_rgb24(unsigned char y, unsigned char u, unsigned char v, unsigned char *rgb) - { - register int r, g, b; - - r = (1192 * (y - 16) + 1634 * (v - 128) ) >> 10; - g = (1192 * (y - 16) - 833 * (v - 128) - 400 * (u - 128) ) >> 10; - b = (1192 * (y - 16) + 2066 * (u - 128) ) >> 10; - - r = r > 255 ? 255 : r < 0 ? 0 : r; - g = g > 255 ? 255 : g < 0 ? 0 : g; - b = b > 255 ? 255 : b < 0 ? 0 : b; - - /*ARGB*/ - *rgb = (unsigned char)r; - rgb++; - *rgb = (unsigned char)g; - rgb++; - *rgb = (unsigned char)b; - } - - void nv21_to_rgb24(unsigned char *buf, unsigned char *rgb, int width, int height) - { - int x, y, z = 0; - int h, w; - int blocks; - unsigned char Y1, Y2, U, V; - - blocks = (width * height) * 2; - - for (h = 0, z = 0; h < height; h += 2) { - for (y = 0; y < width * 2; y += 2) { - - Y1 = buf[ h * width + y + 0]; - V = buf[ blocks / 2 + h * width / 2 + y % width + 0 ]; - Y2 = buf[ h * width + y + 1]; - U = buf[ blocks / 2 + h * width / 2 + y % width + 1 ]; - - yuv_to_rgb24(Y1, U, V, &rgb[z]); - yuv_to_rgb24(Y2, U, V, &rgb[z + 3]); - z += 6; - } - } - } - - int ScreenCatch::threadFunc() - { - int64_t pts; - int status; - - sp<MemoryHeapBase> newMemoryHeap = new MemoryHeapBase(mWidth * mHeight * 3 / 2); - sp<MemoryBase> buffer = new MemoryBase(newMemoryHeap, 0, mWidth * mHeight * 3 / 2); - - ALOGV("[%s %d] empty:%d", __FUNCTION__, __LINE__, mRawBufferQueue.empty()); - - while (mStart == true) { - - status = mScreenMediaSourceService->readBuffer(mClientId, buffer, &pts); - - if (status != OK && mStart == true) { - usleep(10000); - continue; - } - - if (mStart != true) - break; - - MediaBuffer *accessUnit; - - if (OMX_COLOR_Format24bitRGB888 == mColorFormat) { //rgb 24bit - accessUnit = new MediaBuffer(mWidth * mHeight * 3); - nv21_to_rgb24((unsigned char *)buffer->pointer(), (unsigned char *)accessUnit->data(), mWidth, mHeight); - accessUnit->set_range(0, mWidth * mHeight * 3); - } else if (OMX_COLOR_Format32bitARGB8888 == mColorFormat) { //rgba 32bit - accessUnit = new MediaBuffer(mWidth * mHeight * 4); - nv21_to_rgb32((unsigned char *)buffer->pointer(), (unsigned char *)accessUnit->data(), mWidth, mHeight); - accessUnit->set_range(0, mWidth * mHeight * 4); - } else if (OMX_COLOR_FormatYUV420SemiPlanar == mColorFormat) { //nv21 - accessUnit = new MediaBuffer(mWidth * mHeight * 3 / 2); - memcpy((unsigned char *)accessUnit->data(), (unsigned char *)buffer->pointer(), mWidth * mHeight * 3 / 2); - accessUnit->set_range(0, mWidth * mHeight * 3 / 2); - } - mRawBufferQueue.push_back(accessUnit); - } - - ALOGE("[%s %d] thread out", __FUNCTION__, __LINE__); - - mThreadOutCondition.signal(); - - return 0; - } - - void *ScreenCatch::ThreadWrapper(void *me) - { - - ScreenCatch *Convertor = static_cast<ScreenCatch *>(me); - Convertor->threadFunc(); - return NULL; - } - - status_t ScreenCatch::start(MetaData *params) - { - ALOGE("[%s %d] mWidth:%d mHeight:%d", __FUNCTION__, __LINE__, mWidth, mHeight); - Mutex::Autolock autoLock(mLock); - - status_t status; - int64_t pts; - int client_id; - - sp<IServiceManager> sm = defaultServiceManager(); - sp<IBinder> binder = sm->getService(String16("media.screenmediasource")); - mScreenMediaSourceService = interface_cast<IScreenMediaSource>(binder); - - sp<ScreenCatchClient> mIScreenSourceClient = new ScreenCatchClient(this); - - ALOGE("[%s %d] mWidth:%d mHeight:%d", __FUNCTION__, __LINE__, mWidth, mHeight); - - mScreenMediaSourceService->registerClient(mIScreenSourceClient, mWidth, mHeight, 1, SCREENMEDIASOURC_RAWDATA_TYPE, &client_id, NULL); - - ALOGE("[%s %d] client_id:%d", __FUNCTION__, __LINE__, client_id); - - mClientId = client_id; - - if (status != OK) { - ALOGE("setResolutionRatio fail"); - return !OK; - } - - ALOGV("[%s %d] mCorpX:%d mCorpY:%d mCorpWidth:%d mCorpHeight:%d", __FUNCTION__, __LINE__, mCorpX, mCorpY, mCorpWidth, mCorpHeight); - - if (mCorpX != -1) - mScreenMediaSourceService->setVideoCrop(client_id, mCorpX, mCorpY, mCorpWidth, mCorpHeight); - - - status = mScreenMediaSourceService->start(client_id); - - if (status != OK) { - mScreenMediaSourceService->unregisterClient(mClientId); - ALOGE("ScreenMediaSourceService start fail"); - return !OK; - } - - if (!(params->findInt32(kKeyColorFormat, &mColorFormat) - && (mColorFormat != OMX_COLOR_FormatYUV420SemiPlanar - || mColorFormat != OMX_COLOR_Format24bitRGB888 - || mColorFormat != OMX_COLOR_Format32bitARGB8888))) - mColorFormat = OMX_COLOR_Format32bitARGB8888; - - pthread_attr_t attr; - pthread_attr_init(&attr); - pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); - pthread_create(&mThread, &attr, ThreadWrapper, this); - pthread_attr_destroy(&attr); - - mStart = true; - - ALOGV("[%s %d]", __FUNCTION__, __LINE__); - return OK; - } - - status_t ScreenCatch::stop() - { - ALOGV("[%s %d]", __FUNCTION__, __LINE__); - Mutex::Autolock autoLock(mLock); - mStart = false; - - mThreadOutCondition.waitRelative(mLock, 1000000000000); - ALOGV("[%s %d]", __FUNCTION__, __LINE__); - - while (!mRawBufferQueue.empty()) { - - ALOGV("[%s %d] free buffer", __FUNCTION__, __LINE__); - - MediaBuffer *rawBuffer = *mRawBufferQueue.begin(); - mRawBufferQueue.erase(mRawBufferQueue.begin()); - rawBuffer->release(); - } - - mScreenMediaSourceService->stop(mClientId); - mScreenMediaSourceService->unregisterClient(mClientId); - - return OK; - } - - status_t ScreenCatch::read(MediaBuffer **buffer) - { - Mutex::Autolock autoLock(mLock); - - if (!mRawBufferQueue.empty()) { - MediaBuffer *rawBuffer = *mRawBufferQueue.begin(); - mRawBufferQueue.erase(mRawBufferQueue.begin()); - *buffer = rawBuffer; - return OK; - } - - return !OK; - } - - status_t ScreenCatch::free(MediaBuffer *buffer) - { - Mutex::Autolock autoLock(mLock); - buffer->release(); - return OK; - } + struct ScreenCatch::ScreenCatchClient : public BnScreenMediaSourceClient { + ScreenCatchClient(void *user) + { + mUser = user; + ALOGE("[%s %d] user:%x", __FUNCTION__, __LINE__, user); + } + + virtual void notify(int msg, int ext1, int ext2, const Parcel *obj) + { + ALOGI("notify %d, %d, %d", msg, ext1, ext2); + } + + virtual int dataCallback(const sp<IMemory> &data) + { + return 0; + } + + protected: + void *mUser; + virtual ~ScreenCatchClient() {} + + private: + DISALLOW_EVIL_CONSTRUCTORS(ScreenCatchClient); + }; + + ScreenCatch::ScreenCatch(uint32_t bufferWidth, uint32_t bufferHeight, uint32_t bitSize) : + mWidth(ALIGN(bufferWidth)), + mHeight(bufferHeight), + mScreenMediaSourceService(NULL), + mColorFormat(OMX_COLOR_Format32bitARGB8888), + mBitSize(bitSize) + { + ALOGE("ScreenCatch: %dx%d", bufferWidth, bufferHeight); + + if (bufferWidth <= 0 || bufferHeight <= 0 || bufferWidth > 1920 || bufferHeight > 1080) { + ALOGE("Invalid dimensions %dx%d", bufferWidth, bufferHeight); + } + + if (bitSize != 24 || bitSize != 32) + bitSize = 32; + + mCorpX = -1; + mCorpY = -1; + mCorpWidth = -1; + mCorpHeight = -1; + + } + + ScreenCatch::~ScreenCatch() + { + ALOGE("~ScreenCatch"); + } + + void ScreenCatch::setVideoRotation(int degree) + { + int angle; + + ALOGI("[%s %d] setVideoRotation degree:%x", __FUNCTION__, __LINE__, degree); + + } + + void ScreenCatch::setVideoCrop(int x, int y, int width, int height) + { + mCorpX = x; + mCorpY = y; + mCorpWidth = width; + mCorpHeight = height; + } + + static inline void yuv_to_rgb32(unsigned char y, unsigned char u, unsigned char v, unsigned char *rgb) + { + register int r, g, b; + + r = (1192 * (y - 16) + 1634 * (v - 128) ) >> 10; + g = (1192 * (y - 16) - 833 * (v - 128) - 400 * (u - 128) ) >> 10; + b = (1192 * (y - 16) + 2066 * (u - 128) ) >> 10; + + r = r > 255 ? 255 : r < 0 ? 0 : r; + g = g > 255 ? 255 : g < 0 ? 0 : g; + b = b > 255 ? 255 : b < 0 ? 0 : b; + + /*ARGB*/ + *rgb = (unsigned char)r; + rgb++; + *rgb = (unsigned char)g; + rgb++; + *rgb = (unsigned char)b; + rgb++; + *rgb = 0xff; + + } + + void nv21_to_rgb32(unsigned char *buf, unsigned char *rgb, int width, int height) + { + int x, y, z = 0; + int h, w; + int blocks; + unsigned char Y1, Y2, U, V; + + blocks = (width * height) * 2; + + for (h = 0, z = 0; h < height; h += 2) { + for (y = 0; y < width * 2; y += 2) { + + Y1 = buf[ h * width + y + 0]; + V = buf[ blocks / 2 + h * width / 2 + y % width + 0 ]; + Y2 = buf[ h * width + y + 1]; + U = buf[ blocks / 2 + h * width / 2 + y % width + 1 ]; + + yuv_to_rgb32(Y1, U, V, &rgb[z]); + yuv_to_rgb32(Y2, U, V, &rgb[z + 4]); + z += 8; + } + } + } + + static inline void yuv_to_rgb24(unsigned char y, unsigned char u, unsigned char v, unsigned char *rgb) + { + register int r, g, b; + + r = (1192 * (y - 16) + 1634 * (v - 128) ) >> 10; + g = (1192 * (y - 16) - 833 * (v - 128) - 400 * (u - 128) ) >> 10; + b = (1192 * (y - 16) + 2066 * (u - 128) ) >> 10; + + r = r > 255 ? 255 : r < 0 ? 0 : r; + g = g > 255 ? 255 : g < 0 ? 0 : g; + b = b > 255 ? 255 : b < 0 ? 0 : b; + + /*ARGB*/ + *rgb = (unsigned char)r; + rgb++; + *rgb = (unsigned char)g; + rgb++; + *rgb = (unsigned char)b; + } + + void nv21_to_rgb24(unsigned char *buf, unsigned char *rgb, int width, int height) + { + int x, y, z = 0; + int h, w; + int blocks; + unsigned char Y1, Y2, U, V; + + blocks = (width * height) * 2; + + for (h = 0, z = 0; h < height; h += 2) { + for (y = 0; y < width * 2; y += 2) { + + Y1 = buf[ h * width + y + 0]; + V = buf[ blocks / 2 + h * width / 2 + y % width + 0 ]; + Y2 = buf[ h * width + y + 1]; + U = buf[ blocks / 2 + h * width / 2 + y % width + 1 ]; + + yuv_to_rgb24(Y1, U, V, &rgb[z]); + yuv_to_rgb24(Y2, U, V, &rgb[z + 3]); + z += 6; + } + } + } + + int ScreenCatch::threadFunc() + { + int64_t pts; + int status; + + sp<MemoryHeapBase> newMemoryHeap = new MemoryHeapBase(mWidth * mHeight * 3 / 2); + sp<MemoryBase> buffer = new MemoryBase(newMemoryHeap, 0, mWidth * mHeight * 3 / 2); + + ALOGV("[%s %d] empty:%d", __FUNCTION__, __LINE__, mRawBufferQueue.empty()); + + while (mStart == true) { + + status = mScreenMediaSourceService->readBuffer(mClientId, buffer, &pts); + + if (status != OK && mStart == true) { + usleep(10000); + continue; + } + + if (mStart != true) + break; + + MediaBuffer *accessUnit; + + if (OMX_COLOR_Format24bitRGB888 == mColorFormat) { //rgb 24bit + accessUnit = new MediaBuffer(mWidth * mHeight * 3); + nv21_to_rgb24((unsigned char *)buffer->pointer(), (unsigned char *)accessUnit->data(), mWidth, mHeight); + accessUnit->set_range(0, mWidth * mHeight * 3); + } else if (OMX_COLOR_Format32bitARGB8888 == mColorFormat) { //rgba 32bit + accessUnit = new MediaBuffer(mWidth * mHeight * 4); + nv21_to_rgb32((unsigned char *)buffer->pointer(), (unsigned char *)accessUnit->data(), mWidth, mHeight); + accessUnit->set_range(0, mWidth * mHeight * 4); + } else if (OMX_COLOR_FormatYUV420SemiPlanar == mColorFormat) { //nv21 + accessUnit = new MediaBuffer(mWidth * mHeight * 3 / 2); + memcpy((unsigned char *)accessUnit->data(), (unsigned char *)buffer->pointer(), mWidth * mHeight * 3 / 2); + accessUnit->set_range(0, mWidth * mHeight * 3 / 2); + } + mRawBufferQueue.push_back(accessUnit); + } + + ALOGE("[%s %d] thread out", __FUNCTION__, __LINE__); + + mThreadOutCondition.signal(); + + return 0; + } + + void *ScreenCatch::ThreadWrapper(void *me) + { + + ScreenCatch *Convertor = static_cast<ScreenCatch *>(me); + Convertor->threadFunc(); + return NULL; + } + + status_t ScreenCatch::start(MetaData *params) + { + ALOGE("[%s %d] mWidth:%d mHeight:%d", __FUNCTION__, __LINE__, mWidth, mHeight); + Mutex::Autolock autoLock(mLock); + + status_t status; + int64_t pts; + int client_id; + + sp<IServiceManager> sm = defaultServiceManager(); + sp<IBinder> binder = sm->getService(String16("media.screenmediasource")); + mScreenMediaSourceService = interface_cast<IScreenMediaSource>(binder); + + sp<ScreenCatchClient> mIScreenSourceClient = new ScreenCatchClient(this); + + ALOGE("[%s %d] mWidth:%d mHeight:%d", __FUNCTION__, __LINE__, mWidth, mHeight); + + mScreenMediaSourceService->registerClient(mIScreenSourceClient, mWidth, mHeight, 1, SCREENMEDIASOURC_RAWDATA_TYPE, &client_id, NULL); + + ALOGE("[%s %d] client_id:%d", __FUNCTION__, __LINE__, client_id); + + mClientId = client_id; + + if (status != OK) { + ALOGE("setResolutionRatio fail"); + return !OK; + } + + ALOGV("[%s %d] mCorpX:%d mCorpY:%d mCorpWidth:%d mCorpHeight:%d", __FUNCTION__, __LINE__, mCorpX, mCorpY, mCorpWidth, mCorpHeight); + + if (mCorpX != -1) + mScreenMediaSourceService->setVideoCrop(client_id, mCorpX, mCorpY, mCorpWidth, mCorpHeight); + + + status = mScreenMediaSourceService->start(client_id); + + if (status != OK) { + mScreenMediaSourceService->unregisterClient(mClientId); + ALOGE("ScreenMediaSourceService start fail"); + return !OK; + } + + if (!(params->findInt32(kKeyColorFormat, &mColorFormat) + && (mColorFormat != OMX_COLOR_FormatYUV420SemiPlanar + || mColorFormat != OMX_COLOR_Format24bitRGB888 + || mColorFormat != OMX_COLOR_Format32bitARGB8888))) + mColorFormat = OMX_COLOR_Format32bitARGB8888; + + pthread_attr_t attr; + pthread_attr_init(&attr); + pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE); + pthread_create(&mThread, &attr, ThreadWrapper, this); + pthread_attr_destroy(&attr); + + mStart = true; + + ALOGV("[%s %d]", __FUNCTION__, __LINE__); + return OK; + } + + status_t ScreenCatch::stop() + { + ALOGV("[%s %d]", __FUNCTION__, __LINE__); + Mutex::Autolock autoLock(mLock); + mStart = false; + + mThreadOutCondition.waitRelative(mLock, 1000000000000); + ALOGV("[%s %d]", __FUNCTION__, __LINE__); + + while (!mRawBufferQueue.empty()) { + + ALOGV("[%s %d] free buffer", __FUNCTION__, __LINE__); + + MediaBuffer *rawBuffer = *mRawBufferQueue.begin(); + mRawBufferQueue.erase(mRawBufferQueue.begin()); + rawBuffer->release(); + } + + mScreenMediaSourceService->stop(mClientId); + mScreenMediaSourceService->unregisterClient(mClientId); + + return OK; + } + + status_t ScreenCatch::read(MediaBuffer **buffer) + { + Mutex::Autolock autoLock(mLock); + + if (!mRawBufferQueue.empty()) { + MediaBuffer *rawBuffer = *mRawBufferQueue.begin(); + mRawBufferQueue.erase(mRawBufferQueue.begin()); + *buffer = rawBuffer; + return OK; + } + + return !OK; + } + + status_t ScreenCatch::free(MediaBuffer *buffer) + { + Mutex::Autolock autoLock(mLock); + buffer->release(); + return OK; + } } // end of namespace android diff --git a/tvapi/libtv/tvconfig/CIniFile.cpp b/tvapi/libtv/tvconfig/CIniFile.cpp index 2461a68..da448a5 100644 --- a/tvapi/libtv/tvconfig/CIniFile.cpp +++ b/tvapi/libtv/tvconfig/CIniFile.cpp @@ -8,346 +8,346 @@ CIniFile::CIniFile() { - mpFirstSection = NULL; - mpFileName[0] = '\0'; - m_pIniFile = NULL; - mpFirstLine = NULL; + mpFirstSection = NULL; + mpFileName[0] = '\0'; + m_pIniFile = NULL; + mpFirstLine = NULL; } CIniFile::~CIniFile() { - LOGD("CIniFile::~CIniFile()"); - FreeAllMem(); + LOGD("CIniFile::~CIniFile()"); + FreeAllMem(); } int CIniFile::LoadFromFile(const char *filename) { - char lineStr[MAX_INI_FILE_LINE_LEN]; - char *pStr; - LINE *pCurLINE = NULL; - SECTION *pCurSection = NULL; - - FreeAllMem(); - - int Len; - if (filename == NULL) { - return -1; - } - - strcpy(mpFileName, filename); - LOGD("LoadFromFile 2name = %s", mpFileName); - if ((m_pIniFile = fopen (mpFileName, "r")) == NULL) { - return -1; - } - - while (fgets (lineStr, MAX_INI_FILE_LINE_LEN, m_pIniFile) != NULL) { - //去掉多余å—符 - allTrim(lineStr); - - LINE *pLINE = new LINE(); - pLINE->pKeyStart = pLINE->Text; - pLINE->pKeyEnd = pLINE->Text; - pLINE->pValueStart = pLINE->Text; - pLINE->pValueEnd = pLINE->Text; - pLINE->pNext = NULL; - pLINE->type = getLineType(lineStr); - //LOGD("getline=%s len=%d type=%d", lineStr, strlen(lineStr), pLINE->type); - strcpy(pLINE->Text, lineStr); - pLINE->LineLen = strlen(pLINE->Text); - - //head - if (mpFirstLine == NULL) { - mpFirstLine = pLINE; - } else { - pCurLINE->pNext = pLINE; - } - - pCurLINE = pLINE; - - switch (pCurLINE->type) { - case LINE_TYPE_SECTION: { - SECTION *pSec = new SECTION(); - pSec->pLine = pLINE; - pSec->pNext = NULL; - if (mpFirstSection == NULL) { //first section - mpFirstSection = pSec; - } else { - pCurSection->pNext = pSec; - } - pCurSection = pSec; - break; - } - case LINE_TYPE_KEY: { - char *pM = strchr(pCurLINE->Text, '='); - pCurLINE->pKeyStart = pCurLINE->Text; - pCurLINE->pKeyEnd = pM - 1; - pCurLINE->pValueStart = pM + 1; - pCurLINE->pValueEnd = pCurLINE->Text + pCurLINE->LineLen - 1; - break; - } - case LINE_TYPE_COMMENT: { - break; - } - default: { - break; - } - } - } - - fclose (m_pIniFile); - m_pIniFile = NULL; - - return 0; + char lineStr[MAX_INI_FILE_LINE_LEN]; + char *pStr; + LINE *pCurLINE = NULL; + SECTION *pCurSection = NULL; + + FreeAllMem(); + + int Len; + if (filename == NULL) { + return -1; + } + + strcpy(mpFileName, filename); + LOGD("LoadFromFile 2name = %s", mpFileName); + if ((m_pIniFile = fopen (mpFileName, "r")) == NULL) { + return -1; + } + + while (fgets (lineStr, MAX_INI_FILE_LINE_LEN, m_pIniFile) != NULL) { + //去掉多余å—符 + allTrim(lineStr); + + LINE *pLINE = new LINE(); + pLINE->pKeyStart = pLINE->Text; + pLINE->pKeyEnd = pLINE->Text; + pLINE->pValueStart = pLINE->Text; + pLINE->pValueEnd = pLINE->Text; + pLINE->pNext = NULL; + pLINE->type = getLineType(lineStr); + //LOGD("getline=%s len=%d type=%d", lineStr, strlen(lineStr), pLINE->type); + strcpy(pLINE->Text, lineStr); + pLINE->LineLen = strlen(pLINE->Text); + + //head + if (mpFirstLine == NULL) { + mpFirstLine = pLINE; + } else { + pCurLINE->pNext = pLINE; + } + + pCurLINE = pLINE; + + switch (pCurLINE->type) { + case LINE_TYPE_SECTION: { + SECTION *pSec = new SECTION(); + pSec->pLine = pLINE; + pSec->pNext = NULL; + if (mpFirstSection == NULL) { //first section + mpFirstSection = pSec; + } else { + pCurSection->pNext = pSec; + } + pCurSection = pSec; + break; + } + case LINE_TYPE_KEY: { + char *pM = strchr(pCurLINE->Text, '='); + pCurLINE->pKeyStart = pCurLINE->Text; + pCurLINE->pKeyEnd = pM - 1; + pCurLINE->pValueStart = pM + 1; + pCurLINE->pValueEnd = pCurLINE->Text + pCurLINE->LineLen - 1; + break; + } + case LINE_TYPE_COMMENT: { + break; + } + default: { + break; + } + } + } + + fclose (m_pIniFile); + m_pIniFile = NULL; + + return 0; } void CIniFile::printAll() { - //line - for (LINE *pline = mpFirstLine; pline != NULL; pline = pline->pNext) { - LOGD("line = %s type = %d", pline->Text, pline->type); - } - - //section - for (SECTION *psec = mpFirstSection; psec != NULL; psec = psec->pNext) { - LOGD("sec = %s", psec->pLine->Text); - } - return; + //line + for (LINE *pline = mpFirstLine; pline != NULL; pline = pline->pNext) { + LOGD("line = %s type = %d", pline->Text, pline->type); + } + + //section + for (SECTION *psec = mpFirstSection; psec != NULL; psec = psec->pNext) { + LOGD("sec = %s", psec->pLine->Text); + } + return; } int CIniFile::LoadFromString(const char *str) { - return 0; + return 0; } int CIniFile::SaveToFile(const char *filename) { - const char *file = NULL; - if (m_pIniFile != NULL) { - fclose (m_pIniFile); - } - - if (filename == NULL) { - if (strlen(mpFileName) == 0) { - LOGD("error save file is null"); - return -1; - } else { - file = mpFileName; - } - } else { - file = filename; - } - //LOGD("Save to file name = %s", file); - - if ((m_pIniFile = fopen (file, "wb")) == NULL) { - LOGD("Save to file open error = %s", file); - return -1; - } - - LINE *pCurLine = NULL; - for (pCurLine = mpFirstLine; pCurLine != NULL; pCurLine = pCurLine->pNext) { - fprintf (m_pIniFile, "%s\r\n", pCurLine->Text); - } - - fflush(m_pIniFile); - fsync(fileno(m_pIniFile)); - - fclose(m_pIniFile); - m_pIniFile = NULL; - return 0; + const char *file = NULL; + if (m_pIniFile != NULL) { + fclose (m_pIniFile); + } + + if (filename == NULL) { + if (strlen(mpFileName) == 0) { + LOGD("error save file is null"); + return -1; + } else { + file = mpFileName; + } + } else { + file = filename; + } + //LOGD("Save to file name = %s", file); + + if ((m_pIniFile = fopen (file, "wb")) == NULL) { + LOGD("Save to file open error = %s", file); + return -1; + } + + LINE *pCurLine = NULL; + for (pCurLine = mpFirstLine; pCurLine != NULL; pCurLine = pCurLine->pNext) { + fprintf (m_pIniFile, "%s\r\n", pCurLine->Text); + } + + fflush(m_pIniFile); + fsync(fileno(m_pIniFile)); + + fclose(m_pIniFile); + m_pIniFile = NULL; + return 0; } //æš‚ä¸æ’å…¥æ“作 int CIniFile::SetString(const char *section, const char *key, const char *value) { - SECTION *pNewSec = NULL; - LINE *pNewSecLine = NULL; - LINE *pNewKeyLine = NULL; - - SECTION *pSec = getSection(section); - if (pSec == NULL) { - pNewSec = new SECTION(); - pNewSecLine = new LINE(); - pNewKeyLine = new LINE(); - - pNewKeyLine->type = LINE_TYPE_KEY; - pNewSecLine->type = LINE_TYPE_SECTION; - - - sprintf(pNewSecLine->Text, "[%s]", section); - pNewSec->pLine = pNewSecLine; - - InsertSection(pNewSec); - - int keylen = strlen(key); - sprintf(pNewKeyLine->Text, "%s=%s", key, value); - pNewKeyLine->LineLen = strlen(pNewKeyLine->Text); - pNewKeyLine->pKeyStart = pNewKeyLine->Text; - pNewKeyLine->pKeyEnd = pNewKeyLine->pKeyStart + keylen - 1; - pNewKeyLine->pValueStart = pNewKeyLine->pKeyStart + keylen + 1; - pNewKeyLine->pValueEnd = pNewKeyLine->Text + pNewKeyLine->LineLen - 1; - - InsertKeyLine(pNewSec, pNewKeyLine); - - } else { //find section - LINE *pLine = getKeyLineAtSec(pSec, key); - if (pLine == NULL) { //, not find key - pNewKeyLine = new LINE(); - pNewKeyLine->type = LINE_TYPE_KEY; - - int keylen = strlen(key); - sprintf(pNewKeyLine->Text, "%s=%s", key, value); - pNewKeyLine->LineLen = strlen(pNewKeyLine->Text); - pNewKeyLine->pKeyStart = pNewKeyLine->Text; - pNewKeyLine->pKeyEnd = pNewKeyLine->pKeyStart + keylen - 1; - pNewKeyLine->pValueStart = pNewKeyLine->pKeyStart + keylen + 1; - pNewKeyLine->pValueEnd = pNewKeyLine->Text + pNewKeyLine->LineLen - 1; - - InsertKeyLine(pSec, pNewKeyLine); - } else { //all find, change it - sprintf(pLine->Text, "%s=%s", key, value); - pLine->LineLen = strlen(pLine->Text); - pLine->pValueEnd = pLine->Text + pLine->LineLen - 1; - } - } - - //save - SaveToFile(NULL); - return 0; + SECTION *pNewSec = NULL; + LINE *pNewSecLine = NULL; + LINE *pNewKeyLine = NULL; + + SECTION *pSec = getSection(section); + if (pSec == NULL) { + pNewSec = new SECTION(); + pNewSecLine = new LINE(); + pNewKeyLine = new LINE(); + + pNewKeyLine->type = LINE_TYPE_KEY; + pNewSecLine->type = LINE_TYPE_SECTION; + + + sprintf(pNewSecLine->Text, "[%s]", section); + pNewSec->pLine = pNewSecLine; + + InsertSection(pNewSec); + + int keylen = strlen(key); + sprintf(pNewKeyLine->Text, "%s=%s", key, value); + pNewKeyLine->LineLen = strlen(pNewKeyLine->Text); + pNewKeyLine->pKeyStart = pNewKeyLine->Text; + pNewKeyLine->pKeyEnd = pNewKeyLine->pKeyStart + keylen - 1; + pNewKeyLine->pValueStart = pNewKeyLine->pKeyStart + keylen + 1; + pNewKeyLine->pValueEnd = pNewKeyLine->Text + pNewKeyLine->LineLen - 1; + + InsertKeyLine(pNewSec, pNewKeyLine); + + } else { //find section + LINE *pLine = getKeyLineAtSec(pSec, key); + if (pLine == NULL) { //, not find key + pNewKeyLine = new LINE(); + pNewKeyLine->type = LINE_TYPE_KEY; + + int keylen = strlen(key); + sprintf(pNewKeyLine->Text, "%s=%s", key, value); + pNewKeyLine->LineLen = strlen(pNewKeyLine->Text); + pNewKeyLine->pKeyStart = pNewKeyLine->Text; + pNewKeyLine->pKeyEnd = pNewKeyLine->pKeyStart + keylen - 1; + pNewKeyLine->pValueStart = pNewKeyLine->pKeyStart + keylen + 1; + pNewKeyLine->pValueEnd = pNewKeyLine->Text + pNewKeyLine->LineLen - 1; + + InsertKeyLine(pSec, pNewKeyLine); + } else { //all find, change it + sprintf(pLine->Text, "%s=%s", key, value); + pLine->LineLen = strlen(pLine->Text); + pLine->pValueEnd = pLine->Text + pLine->LineLen - 1; + } + } + + //save + SaveToFile(NULL); + return 0; } int CIniFile::SetInt(const char *section, const char *key, int value) { - char tmp[64]; - sprintf(tmp, "%d", value); - SetString(section, key, tmp); - return 0; + char tmp[64]; + sprintf(tmp, "%d", value); + SetString(section, key, tmp); + return 0; } const char *CIniFile::GetString(const char *section, const char *key, const char *def_value) { - SECTION *pSec = getSection(section); - if (pSec == NULL) return def_value; - LINE *pLine = getKeyLineAtSec(pSec, key); - if (pLine == NULL) return def_value; + SECTION *pSec = getSection(section); + if (pSec == NULL) return def_value; + LINE *pLine = getKeyLineAtSec(pSec, key); + if (pLine == NULL) return def_value; - return pLine->pValueStart; + return pLine->pValueStart; } int CIniFile::GetInt(const char *section, const char *key, int def_value) { - const char *num = GetString(section, key, NULL); - if (num != NULL) { - return atoi(num); - } - return def_value; + const char *num = GetString(section, key, NULL); + if (num != NULL) { + return atoi(num); + } + return def_value; } LINE_TYPE CIniFile::getLineType(char *Str) { - LINE_TYPE type = LINE_TYPE_COMMENT; - //åªè¦æœ‰#,就是注释 - if (strchr(Str, '#') != NULL) { - type = LINE_TYPE_COMMENT; - } else if ( (strstr (Str, "[") != NULL) && (strstr (Str, "]") != NULL) ) { /* Is Section */ - type = LINE_TYPE_SECTION; - } else { - if (strstr (Str, "=") != NULL) { - type = LINE_TYPE_KEY; - } else { - type = LINE_TYPE_COMMENT; - } - } - return type; + LINE_TYPE type = LINE_TYPE_COMMENT; + //åªè¦æœ‰#,就是注释 + if (strchr(Str, '#') != NULL) { + type = LINE_TYPE_COMMENT; + } else if ( (strstr (Str, "[") != NULL) && (strstr (Str, "]") != NULL) ) { /* Is Section */ + type = LINE_TYPE_SECTION; + } else { + if (strstr (Str, "=") != NULL) { + type = LINE_TYPE_KEY; + } else { + type = LINE_TYPE_COMMENT; + } + } + return type; } void CIniFile::FreeAllMem() { - //line - LINE *pCurLine = NULL; - LINE *pNextLine = NULL; - for (pCurLine = mpFirstLine; pCurLine != NULL;) { - pNextLine = pCurLine->pNext; - delete pCurLine; - pCurLine = pNextLine; - } - mpFirstLine = NULL; - //section - SECTION *pCurSec = NULL; - SECTION *pNextSec = NULL; - for (pCurSec = mpFirstSection; pCurSec != NULL;) { - pNextSec = pCurSec->pNext; - delete pCurSec; - pCurSec = pNextSec; - } - mpFirstSection = NULL; + //line + LINE *pCurLine = NULL; + LINE *pNextLine = NULL; + for (pCurLine = mpFirstLine; pCurLine != NULL;) { + pNextLine = pCurLine->pNext; + delete pCurLine; + pCurLine = pNextLine; + } + mpFirstLine = NULL; + //section + SECTION *pCurSec = NULL; + SECTION *pNextSec = NULL; + for (pCurSec = mpFirstSection; pCurSec != NULL;) { + pNextSec = pCurSec->pNext; + delete pCurSec; + pCurSec = pNextSec; + } + mpFirstSection = NULL; } int CIniFile::InsertSection(SECTION *pSec) { - //insert it to sections list ,as first section - pSec->pNext = mpFirstSection; - mpFirstSection = pSec; - //insert it to lines list, at first - pSec->pLine->pNext = mpFirstLine; - mpFirstLine = pSec->pLine; - return 0; + //insert it to sections list ,as first section + pSec->pNext = mpFirstSection; + mpFirstSection = pSec; + //insert it to lines list, at first + pSec->pLine->pNext = mpFirstLine; + mpFirstLine = pSec->pLine; + return 0; } int CIniFile::InsertKeyLine(SECTION *pSec, LINE *line) { - LINE *line1 = pSec->pLine; - LINE *line2 = line1->pNext; - line1->pNext = line; - line->pNext = line2; - return 0; + LINE *line1 = pSec->pLine; + LINE *line2 = line1->pNext; + line1->pNext = line; + line->pNext = line2; + return 0; } SECTION *CIniFile::getSection(const char *section) { - //section - for (SECTION *psec = mpFirstSection; psec != NULL; psec = psec->pNext) { - if (strncmp((psec->pLine->Text) + 1, section, strlen(section)) == 0) - return psec; - } - return NULL; + //section + for (SECTION *psec = mpFirstSection; psec != NULL; psec = psec->pNext) { + if (strncmp((psec->pLine->Text) + 1, section, strlen(section)) == 0) + return psec; + } + return NULL; } LINE *CIniFile::getKeyLineAtSec(SECTION *pSec, const char *key) { - //line - for (LINE *pline = pSec->pLine->pNext; (pline != NULL && pline->type != LINE_TYPE_SECTION); pline = pline->pNext) { - if (pline->type == LINE_TYPE_KEY) { - if (strncmp(pline->Text, key, strlen(key)) == 0) - return pline; - } - } - return NULL; + //line + for (LINE *pline = pSec->pLine->pNext; (pline != NULL && pline->type != LINE_TYPE_SECTION); pline = pline->pNext) { + if (pline->type == LINE_TYPE_KEY) { + if (strncmp(pline->Text, key, strlen(key)) == 0) + return pline; + } + } + return NULL; } //去掉串里é¢çš„,ç©ºæ ¼,回车,æ¢è¡Œ,s指å‘转æ¢å¤„ç†åŽçš„串的开头 void CIniFile::allTrim(char *Str) { - //去掉æ¢è¡Œ - char *pStr; - pStr = strchr (Str, '\n'); - if (pStr != NULL) { - *pStr = 0; - } - //去掉尾部回车 - int Len = strlen(Str); - if ( Len > 0 ) { - if ( Str[Len - 1] == '\r' ) { - Str[Len - 1] = '\0'; - } - } - //åŽ»æŽ‰ç©ºæ ¼ - pStr = Str; - while (*pStr != '\0') { //没到尾部 - if (*pStr == ' ') { //é‡åˆ°ç©ºæ ¼ - char *pTmp = pStr;//ä»Žç©ºæ ¼å¤„å¼€å§‹ - while (*pTmp != '\0') { - *pTmp = *(pTmp + 1);//å‰ç§»,包括移最åŽç»“æŸç¬¦ - pTmp++; - } - } else { - pStr++; - } - } - return; + //去掉æ¢è¡Œ + char *pStr; + pStr = strchr (Str, '\n'); + if (pStr != NULL) { + *pStr = 0; + } + //去掉尾部回车 + int Len = strlen(Str); + if ( Len > 0 ) { + if ( Str[Len - 1] == '\r' ) { + Str[Len - 1] = '\0'; + } + } + //åŽ»æŽ‰ç©ºæ ¼ + pStr = Str; + while (*pStr != '\0') { //没到尾部 + if (*pStr == ' ') { //é‡åˆ°ç©ºæ ¼ + char *pTmp = pStr;//ä»Žç©ºæ ¼å¤„å¼€å§‹ + while (*pTmp != '\0') { + *pTmp = *(pTmp + 1);//å‰ç§»,包括移最åŽç»“æŸç¬¦ + pTmp++; + } + } else { + pStr++; + } + } + return; } diff --git a/tvapi/libtv/tvconfig/CIniFile.h b/tvapi/libtv/tvconfig/CIniFile.h index 00b45a2..9490123 100644 --- a/tvapi/libtv/tvconfig/CIniFile.h +++ b/tvapi/libtv/tvconfig/CIniFile.h @@ -8,65 +8,65 @@ static const int MAX_INI_FILE_LINE_LEN = 512; typedef enum _LINE_TYPE { - LINE_TYPE_SECTION = 0, - LINE_TYPE_KEY, - LINE_TYPE_COMMENT, + LINE_TYPE_SECTION = 0, + LINE_TYPE_KEY, + LINE_TYPE_COMMENT, } LINE_TYPE; //基于链表结构 //行链表,åŽ»æŽ‰å¤šä½™çš„ç©ºæ ¼å’Œå›žè½¦,æ¢è¡ŒåŽ. typedef struct _LINE { - LINE_TYPE type;//类型 - char Text[MAX_INI_FILE_LINE_LEN];//内容 - int LineLen; - char *pKeyStart; - char *pKeyEnd; - char *pValueStart; - char *pValueEnd; - struct _LINE *pNext; + LINE_TYPE type;//类型 + char Text[MAX_INI_FILE_LINE_LEN];//内容 + int LineLen; + char *pKeyStart; + char *pKeyEnd; + char *pValueStart; + char *pValueEnd; + struct _LINE *pNext; } LINE; //段链表 typedef struct _SECTION { - LINE *pLine; - struct _SECTION *pNext; + LINE *pLine; + struct _SECTION *pNext; } SECTION; class CIniFile { public: - //const int MAX_SECTION_NAME_LEN = 16; - //const int MAX_KEY_NAME_LEN = 64; - //const int MAX_VALUE_LEN = 512; + //const int MAX_SECTION_NAME_LEN = 16; + //const int MAX_KEY_NAME_LEN = 64; + //const int MAX_VALUE_LEN = 512; - CIniFile(); - ~CIniFile(); - int LoadFromFile(const char *filename); - int LoadFromString(const char *str); + CIniFile(); + ~CIniFile(); + int LoadFromFile(const char *filename); + int LoadFromString(const char *str); - int SaveToFile(const char *filename = NULL); + int SaveToFile(const char *filename = NULL); - int SetString(const char *section, const char *key, const char *value); - int SetInt(const char *section, const char *key, int value); + int SetString(const char *section, const char *key, const char *value); + int SetInt(const char *section, const char *key, int value); - const char *GetString(const char *section, const char *key, const char *def_value); - int GetInt(const char *section, const char *key, int def_value); + const char *GetString(const char *section, const char *key, const char *def_value); + int GetInt(const char *section, const char *key, int def_value); - void printAll(); + void printAll(); private: - LINE_TYPE getLineType(char *Str); - //去掉串里é¢çš„,ç©ºæ ¼,回车,æ¢è¡Œ,s指å‘转æ¢å¤„ç†åŽçš„串的开头 - void allTrim(char *Str); + LINE_TYPE getLineType(char *Str); + //去掉串里é¢çš„,ç©ºæ ¼,回车,æ¢è¡Œ,s指å‘转æ¢å¤„ç†åŽçš„串的开头 + void allTrim(char *Str); - SECTION *getSection(const char *section); - LINE *getKeyLineAtSec(SECTION *pSec, const char *key); + SECTION *getSection(const char *section); + LINE *getKeyLineAtSec(SECTION *pSec, const char *key); - void FreeAllMem(); - int InsertSection(SECTION *pSec); - int InsertKeyLine(SECTION *pSec, LINE *line); - char mpFileName[256]; - FILE *m_pIniFile; - LINE *mpFirstLine; - SECTION *mpFirstSection; + void FreeAllMem(); + int InsertSection(SECTION *pSec); + int InsertKeyLine(SECTION *pSec, LINE *line); + char mpFileName[256]; + FILE *m_pIniFile; + LINE *mpFirstLine; + SECTION *mpFirstSection; }; #endif //end of INI_FILE_H_ diff --git a/tvapi/libtv/tvconfig/tvconfig.cpp b/tvapi/libtv/tvconfig/tvconfig.cpp index 02b0afa..4d45735 100644 --- a/tvapi/libtv/tvconfig/tvconfig.cpp +++ b/tvapi/libtv/tvconfig/tvconfig.cpp @@ -14,40 +14,40 @@ static char mpFilePath[256] = {0}; static CIniFile *pIniFile = NULL; int tv_config_load(const char *file_name) { - if (pIniFile != NULL) - delete pIniFile; + if (pIniFile != NULL) + delete pIniFile; - pIniFile = new CIniFile(); - pIniFile->LoadFromFile(file_name); - strcpy(mpFilePath, file_name); - return 0; + pIniFile = new CIniFile(); + pIniFile->LoadFromFile(file_name); + strcpy(mpFilePath, file_name); + return 0; } int tv_config_unload() { - if (pIniFile != NULL) - delete pIniFile; - return 0; + if (pIniFile != NULL) + delete pIniFile; + return 0; } int config_set_str(const char *section, const char *key, const char *value) { - return pIniFile->SetString(section, key, value); + return pIniFile->SetString(section, key, value); } const char *config_get_str(const char *section, const char *key, const char *def_value) { - return pIniFile->GetString(section, key, def_value); + return pIniFile->GetString(section, key, def_value); } int config_get_int(const char *section, const char *key, const int def_value) { - return pIniFile->GetInt(section, key, def_value); + return pIniFile->GetInt(section, key, def_value); } int config_set_int(const char *section, const char *key, const int value) { - pIniFile->SetInt(section, key, value); - return 0; + pIniFile->SetInt(section, key, value); + return 0; } diff --git a/tvapi/libtv/tvdb/CTvChannel.cpp b/tvapi/libtv/tvdb/CTvChannel.cpp index c8d8428..d39d025 100644 --- a/tvapi/libtv/tvdb/CTvChannel.cpp +++ b/tvapi/libtv/tvdb/CTvChannel.cpp @@ -19,91 +19,91 @@ void CTvChannel::createFromCursor(CTvDatabase::Cursor &c) { - int col; - int src, freq, mod, symb, bw, satid, satpolar; - - col = c.getColumnIndex("db_id"); - this->id = c.getInt(col); - - col = c.getColumnIndex("ts_id"); - this->dvbTSID = c.getInt(col); - - col = c.getColumnIndex("src"); - src = c.getInt(col); - - col = c.getColumnIndex("freq"); - freq = c.getInt(col); - - if (src == MODE_QAM) { - col = c.getColumnIndex("mod"); - mod = c.getInt(col); - - col = c.getColumnIndex("symb"); - symb = c.getInt(col); - - frequency = freq; - modulation = mod; - symbolRate = symb; - mode = MODE_QAM; - - } else if (src == MODE_OFDM) { - col = c.getColumnIndex("bw"); - bw = c.getInt(col); - - frequency = freq; - bandwidth = bw; - mode = MODE_OFDM; - - } else if (src == MODE_ATSC) { - col = c.getColumnIndex("mod"); - mod = c.getInt(col); - - frequency = freq; - modulation = mod; - mode = MODE_ATSC; - } else if (src == MODE_ANALOG) { - col = c.getColumnIndex("std"); - int std = c.getInt(col); - col = c.getColumnIndex("aud_mode"); - int aud_mode = c.getInt(col); - col = c.getColumnIndex("flags"); - int afc_flag = c.getInt(col); - - frequency = freq; - audio = aud_mode; - standard = std; - afc_data = afc_flag; - mode = MODE_ANALOG; - } else if (src == MODE_QPSK) { - col = c.getColumnIndex("symb"); - symb = c.getInt(col); - - col = c.getColumnIndex("db_sat_para_id"); - satid = c.getInt(col); - - col = c.getColumnIndex("polar"); - satpolar = c.getInt(col); - - frequency = freq; - symbolRate = symb; - sat_id = satid; - sat_polarisation = satpolar; - mode = MODE_QPSK; - - /*new tv_satparams*/ - //showboz - //TVSatellite sat = TVSatellite.tvSatelliteSelect(sat_id); - //tv_satparams = sat.getParams(); - } else if (src == MODE_DTMB) { - col = c.getColumnIndex("bw"); - bw = c.getInt(col); - - frequency = freq; - bandwidth = bw; - mode = MODE_DTMB; - } - - this->fendID = 0; + int col; + int src, freq, mod, symb, bw, satid, satpolar; + + col = c.getColumnIndex("db_id"); + this->id = c.getInt(col); + + col = c.getColumnIndex("ts_id"); + this->dvbTSID = c.getInt(col); + + col = c.getColumnIndex("src"); + src = c.getInt(col); + + col = c.getColumnIndex("freq"); + freq = c.getInt(col); + + if (src == MODE_QAM) { + col = c.getColumnIndex("mod"); + mod = c.getInt(col); + + col = c.getColumnIndex("symb"); + symb = c.getInt(col); + + frequency = freq; + modulation = mod; + symbolRate = symb; + mode = MODE_QAM; + + } else if (src == MODE_OFDM) { + col = c.getColumnIndex("bw"); + bw = c.getInt(col); + + frequency = freq; + bandwidth = bw; + mode = MODE_OFDM; + + } else if (src == MODE_ATSC) { + col = c.getColumnIndex("mod"); + mod = c.getInt(col); + + frequency = freq; + modulation = mod; + mode = MODE_ATSC; + } else if (src == MODE_ANALOG) { + col = c.getColumnIndex("std"); + int std = c.getInt(col); + col = c.getColumnIndex("aud_mode"); + int aud_mode = c.getInt(col); + col = c.getColumnIndex("flags"); + int afc_flag = c.getInt(col); + + frequency = freq; + audio = aud_mode; + standard = std; + afc_data = afc_flag; + mode = MODE_ANALOG; + } else if (src == MODE_QPSK) { + col = c.getColumnIndex("symb"); + symb = c.getInt(col); + + col = c.getColumnIndex("db_sat_para_id"); + satid = c.getInt(col); + + col = c.getColumnIndex("polar"); + satpolar = c.getInt(col); + + frequency = freq; + symbolRate = symb; + sat_id = satid; + sat_polarisation = satpolar; + mode = MODE_QPSK; + + /*new tv_satparams*/ + //showboz + //TVSatellite sat = TVSatellite.tvSatelliteSelect(sat_id); + //tv_satparams = sat.getParams(); + } else if (src == MODE_DTMB) { + col = c.getColumnIndex("bw"); + bw = c.getInt(col); + + frequency = freq; + bandwidth = bw; + mode = MODE_DTMB; + } + + this->fendID = 0; } @@ -114,37 +114,37 @@ CTvChannel::CTvChannel() CTvChannel::CTvChannel(int dbID, int mode, int freq, int bw, int mod, int symb, int ofdm, int channelNum) { - //other member not init,just a paras - if (mode == MODE_QAM) { - id = dbID; - frequency = freq; - modulation = mod; - symbolRate = symb; - mode = MODE_QAM; - } else if (mode == MODE_OFDM) { - id = dbID; - frequency = freq; - bandwidth = bw; - mode = MODE_OFDM; - } else if (mode == MODE_ATSC) { - id = dbID; - frequency = freq; - modulation = mod; - logicalChannelNum = channelNum; - mod = MODE_ATSC; - } else if (mode == MODE_ANALOG) { - id = dbID; - frequency = freq; - audio = 0; - standard = 0; - afc_data = 0; - mode = MODE_ANALOG; - } else if (mode == MODE_DTMB) { - id = dbID; - frequency = freq; - bandwidth = bw; - mode = MODE_DTMB; - } + //other member not init,just a paras + if (mode == MODE_QAM) { + id = dbID; + frequency = freq; + modulation = mod; + symbolRate = symb; + mode = MODE_QAM; + } else if (mode == MODE_OFDM) { + id = dbID; + frequency = freq; + bandwidth = bw; + mode = MODE_OFDM; + } else if (mode == MODE_ATSC) { + id = dbID; + frequency = freq; + modulation = mod; + logicalChannelNum = channelNum; + mod = MODE_ATSC; + } else if (mode == MODE_ANALOG) { + id = dbID; + frequency = freq; + audio = 0; + standard = 0; + afc_data = 0; + mode = MODE_ANALOG; + } else if (mode == MODE_DTMB) { + id = dbID; + frequency = freq; + bandwidth = bw; + mode = MODE_DTMB; + } } CTvChannel::~CTvChannel() @@ -154,118 +154,118 @@ CTvChannel::~CTvChannel() Vector<CTvChannel> CTvChannel::tvChannelList(int sat_id) { - Vector<CTvChannel> v_channel; - return v_channel; + Vector<CTvChannel> v_channel; + return v_channel; } int CTvChannel::selectByID(int cid, CTvChannel &channel) { - String8 cmd = String8("select * from ts_table where ts_table.db_id = ") + String8::format("%d", cid); - CTvDatabase::Cursor c; - CTvDatabase::GetTvDb()->select(cmd, c); - - if (c.moveToFirst()) { - channel.createFromCursor(c); - } else { - c.close(); - return -1; - } - c.close(); - - return 0; + String8 cmd = String8("select * from ts_table where ts_table.db_id = ") + String8::format("%d", cid); + CTvDatabase::Cursor c; + CTvDatabase::GetTvDb()->select(cmd, c); + + if (c.moveToFirst()) { + channel.createFromCursor(c); + } else { + c.close(); + return -1; + } + c.close(); + + return 0; } int CTvChannel::SelectByFreq(int freq, CTvChannel &channel) { - String8 cmd ; - CTvDatabase::Cursor c; - int iOutRet = 0; - - do { - cmd = String8("select * from ts_table where ts_table.freq = ") + String8::format("%d", freq); - CTvDatabase::GetTvDb()->select(cmd, c); - - if (c.moveToFirst()) { - channel.createFromCursor(c); - } else { - iOutRet = -1; - break; - } - - cmd = String8("delete from ts_table where ts_table.freq = ") + String8::format("%d", freq); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); - } while (false); - - c.close(); - return iOutRet; + String8 cmd ; + CTvDatabase::Cursor c; + int iOutRet = 0; + + do { + cmd = String8("select * from ts_table where ts_table.freq = ") + String8::format("%d", freq); + CTvDatabase::GetTvDb()->select(cmd, c); + + if (c.moveToFirst()) { + channel.createFromCursor(c); + } else { + iOutRet = -1; + break; + } + + cmd = String8("delete from ts_table where ts_table.freq = ") + String8::format("%d", freq); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); + } while (false); + + c.close(); + return iOutRet; } int CTvChannel::DeleteBetweenFreq(int beginFreq, int endFreq) { - String8 cmd ; - CTvDatabase::Cursor c; - int iOutRet = 0; - CTvChannel channel; - - do { - cmd = String8("select * from ts_table where ts_table.freq >= ") + String8::format("%d", beginFreq) - + String8("and ts_table.freq <= ") + String8::format("%d", endFreq); - CTvDatabase::GetTvDb()->select(cmd, c); - if (c.moveToFirst()) { - do { - channel.createFromCursor(c); - cmd = String8("delete from ts_table where ts_table.freq = ") + String8::format("%d", channel.frequency); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); - } while (c.moveToNext()); - } else { - iOutRet = -1; - break; - } - - } while (false); - - c.close(); - return iOutRet; + String8 cmd ; + CTvDatabase::Cursor c; + int iOutRet = 0; + CTvChannel channel; + + do { + cmd = String8("select * from ts_table where ts_table.freq >= ") + String8::format("%d", beginFreq) + + String8("and ts_table.freq <= ") + String8::format("%d", endFreq); + CTvDatabase::GetTvDb()->select(cmd, c); + if (c.moveToFirst()) { + do { + channel.createFromCursor(c); + cmd = String8("delete from ts_table where ts_table.freq = ") + String8::format("%d", channel.frequency); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); + } while (c.moveToNext()); + } else { + iOutRet = -1; + break; + } + + } while (false); + + c.close(); + return iOutRet; } int CTvChannel::CleanAllChannelBySrc(int src) { - String8 cmd = String8("delete from ts_table where src = ") + String8::format("%d", src); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); - return 0; + String8 cmd = String8("delete from ts_table where src = ") + String8::format("%d", src); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); + return 0; } int CTvChannel::getChannelListBySrc(int src, Vector< sp<CTvChannel> > &v_channel) { - CTvDatabase::Cursor c; - CTvChannel *channel; - do { - String8 cmd = String8("select * from ts_table where src = ") + String8::format("%d", src); - CTvDatabase::GetTvDb()->select(cmd, c); - if (c.moveToFirst()) { - do { - channel = new CTvChannel(); - channel->createFromCursor(c); - v_channel.add(channel); - } while (c.moveToNext()); - } else { - break; - } - } while (false); - - return 0; + CTvDatabase::Cursor c; + CTvChannel *channel; + do { + String8 cmd = String8("select * from ts_table where src = ") + String8::format("%d", src); + CTvDatabase::GetTvDb()->select(cmd, c); + if (c.moveToFirst()) { + do { + channel = new CTvChannel(); + channel->createFromCursor(c); + v_channel.add(channel); + } while (c.moveToNext()); + } else { + break; + } + } while (false); + + return 0; } int CTvChannel::updateByID(int progID, int std, int freq, int fineFreq) { - String8 cmd = String8("update ts_table set std = ") + String8::format("%d", std) + - String8(", freq = ") + String8::format("%d", freq) + - String8(", flags = ") + String8::format("%d", fineFreq) + - String8(" where ts_table.db_id = ") + String8::format("%d", progID); - LOGD("%s, cmd = %s\n", "TV", cmd.string()); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); + String8 cmd = String8("update ts_table set std = ") + String8::format("%d", std) + + String8(", freq = ") + String8::format("%d", freq) + + String8(", flags = ") + String8::format("%d", fineFreq) + + String8(" where ts_table.db_id = ") + String8::format("%d", progID); + LOGD("%s, cmd = %s\n", "TV", cmd.string()); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); - return 0; + return 0; } @@ -281,7 +281,7 @@ void CTvChannel::tvChannelDelBySatID(int id) int CTvChannel::getDVBTSID() { - return dvbTSID; + return dvbTSID; } void CTvChannel::getDVBOrigNetID() diff --git a/tvapi/libtv/tvdb/CTvChannel.h b/tvapi/libtv/tvdb/CTvChannel.h index b1a4686..6b01f58 100644 --- a/tvapi/libtv/tvdb/CTvChannel.h +++ b/tvapi/libtv/tvdb/CTvChannel.h @@ -24,262 +24,262 @@ using namespace android; class CTvChannel: public LightRefBase<CTvChannel> { public : - static const int FE_HAS_SIGNAL = 0x01; - static const int FE_HAS_CARRIER = 0x02; - static const int FE_HAS_VITERBI = 0x04; - static const int FE_HAS_SYNC = 0x08; - /**Ëø¶¨*/ - static const int FE_HAS_LOCK = 0x10; - /**³¬Ê±*/ - static const int FE_TIMEDOUT = 0x20; - static const int FE_REINIT = 0x40; + static const int FE_HAS_SIGNAL = 0x01; + static const int FE_HAS_CARRIER = 0x02; + static const int FE_HAS_VITERBI = 0x04; + static const int FE_HAS_SYNC = 0x08; + /**Ëø¶¨*/ + static const int FE_HAS_LOCK = 0x10; + /**³¬Ê±*/ + static const int FE_TIMEDOUT = 0x20; + static const int FE_REINIT = 0x40; - /**QPSKģʽ*/ - static const int MODE_QPSK = 0; - /**QAMģʽ*/ - static const int MODE_QAM = 1; - /**OFDMģʽ*/ - static const int MODE_OFDM = 2; - /**ATSCģʽ*/ - static const int MODE_ATSC = 3; - /**Ä£Äâģʽ*/ - static const int MODE_ANALOG = 4; - /**DTMBģʽ*/ - static const int MODE_DTMB = 5; + /**QPSKģʽ*/ + static const int MODE_QPSK = 0; + /**QAMģʽ*/ + static const int MODE_QAM = 1; + /**OFDMģʽ*/ + static const int MODE_OFDM = 2; + /**ATSCģʽ*/ + static const int MODE_ATSC = 3; + /**Ä£Äâģʽ*/ + static const int MODE_ANALOG = 4; + /**DTMBģʽ*/ + static const int MODE_DTMB = 5; - /**8MHz´ø¿í*/ - static const int BANDWIDTH_8_MHZ = 0; - /**7MHz´ø¿í*/ - static const int BANDWIDTH_7_MHZ = 1; - /**6MHz´ø¿í*/ - static const int BANDWIDTH_6_MHZ = 2; - /**×Ô¶¯´ø¿í¼ì²â*/ - static const int BANDWIDTH_AUTO = 3; - /**5MHZ´ø¿í*/ - static const int BANDWIDTH_5_MHZ = 4; - /**10MHZ´ø¿í*/ - static const int BANDWIDTH_10_MHZ = 5; + /**8MHz´ø¿í*/ + static const int BANDWIDTH_8_MHZ = 0; + /**7MHz´ø¿í*/ + static const int BANDWIDTH_7_MHZ = 1; + /**6MHz´ø¿í*/ + static const int BANDWIDTH_6_MHZ = 2; + /**×Ô¶¯´ø¿í¼ì²â*/ + static const int BANDWIDTH_AUTO = 3; + /**5MHZ´ø¿í*/ + static const int BANDWIDTH_5_MHZ = 4; + /**10MHZ´ø¿í*/ + static const int BANDWIDTH_10_MHZ = 5; - /**QPSKµ÷ÖÆ*/ - static const int MODULATION_QPSK = 0; - /**QAM16µ÷ÖÆ*/ - static const int MODULATION_QAM_16 = 1; - /**QAM32µ÷ÖÆ*/ - static const int MODULATION_QAM_32 = 2; - /**QAM64µ÷ÖÆ*/ - static const int MODULATION_QAM_64 = 3; - /**QAM128µ÷ÖÆ*/ - static const int MODULATION_QAM_128 = 4; - /**QAM256µ÷ÖÆ*/ - static const int MODULATION_QAM_256 = 5; - /**QAMµ÷ÖÆ(×Ô¶¯¼ì²â)*/ - static const int MODULATION_QAM_AUTO = 6; - /**VSB8µ÷ÖÆ*/ - static const int MODULATION_VSB_8 = 7; - /**VSB16µ÷ÖÆ*/ - static const int MODULATION_VSB_16 = 8; - /**PSK8µ÷ÖÆ*/ - static const int MODULATION_PSK_8 = 9; - /**APSK16µ÷ÖÆ*/ - static const int MODULATION_APSK_16 = 10; - /**APSK32µ÷ÖÆ*/ - static const int MODULATION_APSK_32 = 11; - /**DQPSKµ÷ÖÆ*/ - static const int MODULATION_DQPSK = 12; + /**QPSKµ÷ÖÆ*/ + static const int MODULATION_QPSK = 0; + /**QAM16µ÷ÖÆ*/ + static const int MODULATION_QAM_16 = 1; + /**QAM32µ÷ÖÆ*/ + static const int MODULATION_QAM_32 = 2; + /**QAM64µ÷ÖÆ*/ + static const int MODULATION_QAM_64 = 3; + /**QAM128µ÷ÖÆ*/ + static const int MODULATION_QAM_128 = 4; + /**QAM256µ÷ÖÆ*/ + static const int MODULATION_QAM_256 = 5; + /**QAMµ÷ÖÆ(×Ô¶¯¼ì²â)*/ + static const int MODULATION_QAM_AUTO = 6; + /**VSB8µ÷ÖÆ*/ + static const int MODULATION_VSB_8 = 7; + /**VSB16µ÷ÖÆ*/ + static const int MODULATION_VSB_16 = 8; + /**PSK8µ÷ÖÆ*/ + static const int MODULATION_PSK_8 = 9; + /**APSK16µ÷ÖÆ*/ + static const int MODULATION_APSK_16 = 10; + /**APSK32µ÷ÖÆ*/ + static const int MODULATION_APSK_32 = 11; + /**DQPSKµ÷ÖÆ*/ + static const int MODULATION_DQPSK = 12; - /**µ¥ÉùµÀ*/ - static const int AUDIO_MONO = 0x0000; - /**Á¢ÌåÉù*/ - static const int AUDIO_STEREO = 0x0001; - /**ÓïÑÔ2*/ - static const int AUDIO_LANG2 = 0x0002; - /**SAP*/ - static const int AUDIO_SAP = 0x0002; - /**ÓïÑÔ1*/ - static const int AUDIO_LANG1 = 0x0003; - /**ÓïÑÔ1/2*/ - static const int AUDIO_LANG1_LANG2 = 0x0004; + /**µ¥ÉùµÀ*/ + static const int AUDIO_MONO = 0x0000; + /**Á¢ÌåÉù*/ + static const int AUDIO_STEREO = 0x0001; + /**ÓïÑÔ2*/ + static const int AUDIO_LANG2 = 0x0002; + /**SAP*/ + static const int AUDIO_SAP = 0x0002; + /**ÓïÑÔ1*/ + static const int AUDIO_LANG1 = 0x0003; + /**ÓïÑÔ1/2*/ + static const int AUDIO_LANG1_LANG2 = 0x0004; - /**PAL B*/ - static const int STD_PAL_B = 0x00000001; - /**PAL B1*/ - static const int STD_PAL_B1 = 0x00000002; - /**PAL G*/ - static const int STD_PAL_G = 0x00000004; - /**PAL H*/ - static const int STD_PAL_H = 0x00000008; - /**PAL I*/ - static const int STD_PAL_I = 0x00000010; - /**PAL D*/ - static const int STD_PAL_D = 0x00000020; - /**PAL D1*/ - static const int STD_PAL_D1 = 0x00000040; - /**PAL K*/ - static const int STD_PAL_K = 0x00000080; - /**PAL M*/ - static const int STD_PAL_M = 0x00000100; - /**PAL N*/ - static const int STD_PAL_N = 0x00000200; - /**PAL Nc*/ - static const int STD_PAL_Nc = 0x00000400; - /**PAL 60*/ - static const int STD_PAL_60 = 0x00000800; - /**NTSC M*/ - static const int STD_NTSC_M = 0x00001000; - /**NTSC M JP*/ - static const int STD_NTSC_M_JP = 0x00002000; - /**NTSC 443*/ - static const int STD_NTSC_443 = 0x00004000; - /**NTSC M KR*/ - static const int STD_NTSC_M_KR = 0x00008000; - /**SECAM B*/ - static const int STD_SECAM_B = 0x00010000; - /**SECAM D*/ - static const int STD_SECAM_D = 0x00020000; - /**SECAM G*/ - static const int STD_SECAM_G = 0x00040000; - /**SECAM H*/ - static const int STD_SECAM_H = 0x00080000; - /**SECAM K*/ - static const int STD_SECAM_K = 0x00100000; - /**SECAM K1*/ - static const int STD_SECAM_K1 = 0x00200000; - /**SECAM L*/ - static const int STD_SECAM_L = 0x00400000; - /**SECAM LC*/ - static const int STD_SECAM_LC = 0x00800000; - /**ATSC VSB8*/ - static const int STD_ATSC_8_VSB = 0x01000000; - /**ATSC VSB16*/ - static const int STD_ATSC_16_VSB = 0x02000000; - /**NTSC*/ - static const int STD_NTSC = STD_NTSC_M | STD_NTSC_M_JP | STD_NTSC_M_KR; - /**SECAM DK*/ - static const int STD_SECAM_DK = STD_SECAM_D | STD_SECAM_K | STD_SECAM_K1; - /**SECAM*/ - static const int STD_SECAM = STD_SECAM_B | STD_SECAM_G | STD_SECAM_H | STD_SECAM_DK | STD_SECAM_L | STD_SECAM_LC; - /**PAL BG*/ - static const int STD_PAL_BG = STD_PAL_B | STD_PAL_B1 | STD_PAL_G; - /**PAL DK*/ - static const int STD_PAL_DK = STD_PAL_D | STD_PAL_D1 | STD_PAL_K; - /**PAL*/ - static const int STD_PAL = STD_PAL_BG | STD_PAL_DK | STD_PAL_H | STD_PAL_I; + /**PAL B*/ + static const int STD_PAL_B = 0x00000001; + /**PAL B1*/ + static const int STD_PAL_B1 = 0x00000002; + /**PAL G*/ + static const int STD_PAL_G = 0x00000004; + /**PAL H*/ + static const int STD_PAL_H = 0x00000008; + /**PAL I*/ + static const int STD_PAL_I = 0x00000010; + /**PAL D*/ + static const int STD_PAL_D = 0x00000020; + /**PAL D1*/ + static const int STD_PAL_D1 = 0x00000040; + /**PAL K*/ + static const int STD_PAL_K = 0x00000080; + /**PAL M*/ + static const int STD_PAL_M = 0x00000100; + /**PAL N*/ + static const int STD_PAL_N = 0x00000200; + /**PAL Nc*/ + static const int STD_PAL_Nc = 0x00000400; + /**PAL 60*/ + static const int STD_PAL_60 = 0x00000800; + /**NTSC M*/ + static const int STD_NTSC_M = 0x00001000; + /**NTSC M JP*/ + static const int STD_NTSC_M_JP = 0x00002000; + /**NTSC 443*/ + static const int STD_NTSC_443 = 0x00004000; + /**NTSC M KR*/ + static const int STD_NTSC_M_KR = 0x00008000; + /**SECAM B*/ + static const int STD_SECAM_B = 0x00010000; + /**SECAM D*/ + static const int STD_SECAM_D = 0x00020000; + /**SECAM G*/ + static const int STD_SECAM_G = 0x00040000; + /**SECAM H*/ + static const int STD_SECAM_H = 0x00080000; + /**SECAM K*/ + static const int STD_SECAM_K = 0x00100000; + /**SECAM K1*/ + static const int STD_SECAM_K1 = 0x00200000; + /**SECAM L*/ + static const int STD_SECAM_L = 0x00400000; + /**SECAM LC*/ + static const int STD_SECAM_LC = 0x00800000; + /**ATSC VSB8*/ + static const int STD_ATSC_8_VSB = 0x01000000; + /**ATSC VSB16*/ + static const int STD_ATSC_16_VSB = 0x02000000; + /**NTSC*/ + static const int STD_NTSC = STD_NTSC_M | STD_NTSC_M_JP | STD_NTSC_M_KR; + /**SECAM DK*/ + static const int STD_SECAM_DK = STD_SECAM_D | STD_SECAM_K | STD_SECAM_K1; + /**SECAM*/ + static const int STD_SECAM = STD_SECAM_B | STD_SECAM_G | STD_SECAM_H | STD_SECAM_DK | STD_SECAM_L | STD_SECAM_LC; + /**PAL BG*/ + static const int STD_PAL_BG = STD_PAL_B | STD_PAL_B1 | STD_PAL_G; + /**PAL DK*/ + static const int STD_PAL_DK = STD_PAL_D | STD_PAL_D1 | STD_PAL_K; + /**PAL*/ + static const int STD_PAL = STD_PAL_BG | STD_PAL_DK | STD_PAL_H | STD_PAL_I; - //static const int TUNER_STD_MN = STD_PAL_M|STD_PAL_N|STD_PAL_Nc| STD_NTSC - static const int STD_B = STD_PAL_B | STD_PAL_B1 | STD_SECAM_B; - static const int STD_GH = STD_PAL_G | STD_PAL_H | STD_SECAM_G | STD_SECAM_H; - static const int STD_DK = STD_PAL_DK | STD_SECAM_DK; - static const int STD_M = STD_PAL_M | STD_NTSC_M; - static const int STD_BG = STD_PAL_BG | STD_SECAM_B | STD_SECAM_G ; + //static const int TUNER_STD_MN = STD_PAL_M|STD_PAL_N|STD_PAL_Nc| STD_NTSC + static const int STD_B = STD_PAL_B | STD_PAL_B1 | STD_SECAM_B; + static const int STD_GH = STD_PAL_G | STD_PAL_H | STD_SECAM_G | STD_SECAM_H; + static const int STD_DK = STD_PAL_DK | STD_SECAM_DK; + static const int STD_M = STD_PAL_M | STD_NTSC_M; + static const int STD_BG = STD_PAL_BG | STD_SECAM_B | STD_SECAM_G ; - static const int COLOR_AUTO = 0x02000000; - static const int COLOR_PAL = 0x04000000; - static const int COLOR_NTSC = 0x08000000; - static const int COLOR_SECAM = 0x10000000; + static const int COLOR_AUTO = 0x02000000; + static const int COLOR_PAL = 0x04000000; + static const int COLOR_NTSC = 0x08000000; + static const int COLOR_SECAM = 0x10000000; - /**ˮƽ¼«ÐÔ*/ - static const int SAT_POLARISATION_H = 0; - /**´¹Ö±¼«ÏÞ*/ - static const int SAT_POLARISATION_V = 1; + /**ˮƽ¼«ÐÔ*/ + static const int SAT_POLARISATION_H = 0; + /**´¹Ö±¼«ÏÞ*/ + static const int SAT_POLARISATION_V = 1; public: - CTvChannel(); - CTvChannel(int dbID, int mode, int freq, int bw, int mod, int sym, int ofdm, int channelNum); - ~CTvChannel(); - // ¸ù¾ÝTVChannelParams,ÏòÊý¾Ý¿âÌí¼ÓÒ»¸öChannel + CTvChannel(); + CTvChannel(int dbID, int mode, int freq, int bw, int mod, int sym, int ofdm, int channelNum); + ~CTvChannel(); + // ¸ù¾ÝTVChannelParams,ÏòÊý¾Ý¿âÌí¼ÓÒ»¸öChannel - // *´´½¨µ±Ç°ÎÀÐÇËùÓÐͨµÀ - // *@param sat_id ÎÀÐÇid - // *@return ·µ»Ø´´½¨µÄͨµÀ - static Vector<CTvChannel> tvChannelList(int sat_id); - static int selectByID(int id, CTvChannel &c); - static int updateByID(int progID, int std, int freq, int fineFreq); - static int SelectByFreq(int freq, CTvChannel &channel); - static int DeleteBetweenFreq(int beginFreq, int endFreq); - static int CleanAllChannelBySrc(int src); - static int getChannelListBySrc(int src, Vector< sp<CTvChannel> > &v_channel); - void tvChannelDel(); - static void tvChannelDelBySatID(int id); - int getID() - { - return id; - }; - int getDVBTSID(); - void getDVBOrigNetID(); - void getFrontendID(); - void getTSSourceID(); - void isDVBCMode(); - void setFrequency(); - int getFrequency() - { - return frequency; - } - int getSymbolRate() - { - return symbolRate; - } - int getModulation() - { - return modulation; - } - int getBandwidth() - { - return bandwidth; - } - int getMode() - { - return mode; - } + // *´´½¨µ±Ç°ÎÀÐÇËùÓÐͨµÀ + // *@param sat_id ÎÀÐÇid + // *@return ·µ»Ø´´½¨µÄͨµÀ + static Vector<CTvChannel> tvChannelList(int sat_id); + static int selectByID(int id, CTvChannel &c); + static int updateByID(int progID, int std, int freq, int fineFreq); + static int SelectByFreq(int freq, CTvChannel &channel); + static int DeleteBetweenFreq(int beginFreq, int endFreq); + static int CleanAllChannelBySrc(int src); + static int getChannelListBySrc(int src, Vector< sp<CTvChannel> > &v_channel); + void tvChannelDel(); + static void tvChannelDelBySatID(int id); + int getID() + { + return id; + }; + int getDVBTSID(); + void getDVBOrigNetID(); + void getFrontendID(); + void getTSSourceID(); + void isDVBCMode(); + void setFrequency(); + int getFrequency() + { + return frequency; + } + int getSymbolRate() + { + return symbolRate; + } + int getModulation() + { + return modulation; + } + int getBandwidth() + { + return bandwidth; + } + int getMode() + { + return mode; + } - int getStd() - { - return standard; - }; - int getAfcData() - { - return afc_data; - }; - int getLogicalChannelNum() - { - return logicalChannelNum; - }; - // ÉèÖ÷ûºÅÂÊ(QPSK/QAMģʽ) - // @param symbolRate ·ûºÅÂÊ - void setSymbolRate(); - // ÉèÖü«ÐÔ(QPSKģʽ) - void setPolarisation(); - void setATVAudio(); - // ÐÞ¸ÄÄ£ÄâÊÓƵÖÆʽ - void setATVVideoFormat(); - void setATVAudioFormat(); - void setATVFreq(); - void setATVAfcData(); - // + int getStd() + { + return standard; + }; + int getAfcData() + { + return afc_data; + }; + int getLogicalChannelNum() + { + return logicalChannelNum; + }; + // ÉèÖ÷ûºÅÂÊ(QPSK/QAMģʽ) + // @param symbolRate ·ûºÅÂÊ + void setSymbolRate(); + // ÉèÖü«ÐÔ(QPSKģʽ) + void setPolarisation(); + void setATVAudio(); + // ÐÞ¸ÄÄ£ÄâÊÓƵÖÆʽ + void setATVVideoFormat(); + void setATVAudioFormat(); + void setATVFreq(); + void setATVAfcData(); + // private: - void createFromCursor(CTvDatabase::Cursor &c); + void createFromCursor(CTvDatabase::Cursor &c); - // - int id; - int dvbTSID; - int dvbOrigNetID; - int fendID; - int tsSourceID; + // + int id; + int dvbTSID; + int dvbOrigNetID; + int fendID; + int tsSourceID; - int mode; - int frequency; - int symbolRate; - int modulation; - int bandwidth; - int audio; - int standard; - int afc_data; - int sat_id; - int logicalChannelNum; - //showboz - //public TVSatelliteParams tv_satparams; - int sat_polarisation; + int mode; + int frequency; + int symbolRate; + int modulation; + int bandwidth; + int audio; + int standard; + int afc_data; + int sat_id; + int logicalChannelNum; + //showboz + //public TVSatelliteParams tv_satparams; + int sat_polarisation; }; diff --git a/tvapi/libtv/tvdb/CTvDatabase.cpp b/tvapi/libtv/tvdb/CTvDatabase.cpp index 5f9fd40..6113ad9 100644 --- a/tvapi/libtv/tvdb/CTvDatabase.cpp +++ b/tvapi/libtv/tvdb/CTvDatabase.cpp @@ -30,9 +30,9 @@ const char CTvDatabase::feTypes[][32] = {"dvbs", "dvbc", "dvbt", "atsc", "analog const char CTvDatabase::srvTypes[][32] = {"other", "dtv", "radio", "atv", "other"}; const char CTvDatabase::vidFmts[][32] = {"mpeg12", "mpeg4", "h264", "mjpeg", "real", "jpeg", "vc1", "avs"}; const char CTvDatabase::audFmts[][32] = {"mpeg", "pcm_s16le", "aac", "ac3", "alaw", "mulaw", "dts", "pcm_s16be", - "flac", "cook", "pcm_u8", "adpcm", "amr", "raac", "wma", "wma_pro", - "pcm_bluray", "alac", "vorbis", "aac_latm", "ape", "eac3", "pcm_wifidisplay" - }; + "flac", "cook", "pcm_u8", "adpcm", "amr", "raac", "wma", "wma_pro", + "pcm_bluray", "alac", "vorbis", "aac_latm", "ape", "eac3", "pcm_wifidisplay" + }; const char CTvDatabase::mods[][32] = {"qpsk", "qam16", "qam32", "qam64", "qam128", "qam256", "qamauto", "vsb8", "vsb16", "psk8", "apsk16", "apsk32", "dqpsk"}; const char CTvDatabase::bandwidths[][32] = {"8", "7", "6", "auto", "5", "10", "1_712"}; const char CTvDatabase::lnbPowers[][32] = {"13v", "18V", "off", "13/18v"}; @@ -40,8 +40,8 @@ const char CTvDatabase::sig22K[][32] = {"on", "off", "auto"}; const char CTvDatabase::tonebursts[][32] = {"none", "bursta", "burstb"}; const char CTvDatabase::diseqc10s[][32] = {"lnb1", "lnb2", "lnb3", "lnb4", "none"}; const char CTvDatabase::diseqc11s[][32] = {"lnb1", "lnb2", "lnb3", "lnb4", "lnb5", "lnb6", "lnb7", "lnb8", - "lnb9", "lnb10", "lnb11", "lnb12", "lnb13", "lnb14", "lnb15", "lnb16", "none" - }; + "lnb9", "lnb10", "lnb11", "lnb12", "lnb13", "lnb14", "lnb15", "lnb16", "none" + }; const char CTvDatabase::motors[][32] = {"none", "none", "none", "diseqc1.2", "diseqc1.3"}; const char CTvDatabase::ofdmModes[][32] = {"dvbt", "dvbt2"}; const char CTvDatabase::atvVideoStds[][32] = {"auto", "pal", "ntsc", "secam"}; @@ -53,58 +53,58 @@ CTvDatabase::CTvDatabase() int CTvDatabase::isFreqListExist() { - String8 cmd = String8("select * from region_table"); - CTvDatabase::Cursor c; - select(cmd, c); - return c.moveToFirst(); + String8 cmd = String8("select * from region_table"); + CTvDatabase::Cursor c; + select(cmd, c); + return c.moveToFirst(); } int CTvDatabase::UnInitTvDb() { - AM_DB_UnSetup(); - closeDb(); - return 0; + AM_DB_UnSetup(); + closeDb(); + return 0; } int CTvDatabase::InitTvDb(const char *path) { - if (path != NULL) { - if (Tv_Utils_IsFileExist(path) && config_get_int("TV", "tv_db_created", 0) == 1) { //exist or created - LOGD("tv db file(%s) exist and created, open it", path); - if (openDb(path) < 0 ) { - LOGD("db(%s) open fail", path); - return -1; - } - //setup and path set - AM_DB_Setup((char *)path, getHandle()); - if (isFreqListExist() == false) { - importXmlToDB("/etc/tv_default.xml"); - LOGD("scan region table is NULL, so import freq XML again\n"); - } - } else { - if (Tv_Utils_IsFileExist(path)) { // if just exist, create flag not set, delete it - LOGD("tv db file (%s) exist, but delete it", path); - if (unlink(path) != 0) { - LOGD("delete tv db file(%s) err=%s", path, strerror(errno)); - } - } - LOGD("tv db file(%s) not exist, create it", path); - //setup and path set - sqlite3 *h = NULL; - AM_DB_Setup((char *)path, h); - //create db - AM_DB_GetHandle(&h); - //create table - AM_DB_CreateTables(h); - setHandle(h); - //clear db - ClearDbTable(); - //insert 256 ATV Program - //load init date - importXmlToDB("/etc/tv_default.xml"); - config_set_int("TV", "tv_db_created", 1); - } + if (path != NULL) { + if (Tv_Utils_IsFileExist(path) && config_get_int("TV", "tv_db_created", 0) == 1) { //exist or created + LOGD("tv db file(%s) exist and created, open it", path); + if (openDb(path) < 0 ) { + LOGD("db(%s) open fail", path); + return -1; + } + //setup and path set + AM_DB_Setup((char *)path, getHandle()); + if (isFreqListExist() == false) { + importXmlToDB("/etc/tv_default.xml"); + LOGD("scan region table is NULL, so import freq XML again\n"); + } + } else { + if (Tv_Utils_IsFileExist(path)) { // if just exist, create flag not set, delete it + LOGD("tv db file (%s) exist, but delete it", path); + if (unlink(path) != 0) { + LOGD("delete tv db file(%s) err=%s", path, strerror(errno)); + } + } + LOGD("tv db file(%s) not exist, create it", path); + //setup and path set + sqlite3 *h = NULL; + AM_DB_Setup((char *)path, h); + //create db + AM_DB_GetHandle(&h); + //create table + AM_DB_CreateTables(h); + setHandle(h); + //clear db + ClearDbTable(); + //insert 256 ATV Program + //load init date + importXmlToDB("/etc/tv_default.xml"); + config_set_int("TV", "tv_db_created", 1); + } - } - return 0; + } + return 0; } //CTvDatabase::CTvDatabase(char* path, sqlite3 * h) //{ @@ -120,141 +120,141 @@ int CTvDatabase::InitTvDb(const char *path) CTvDatabase::~CTvDatabase() { - AM_DB_UnSetup(); + AM_DB_UnSetup(); } int CTvDatabase::getChannelParaList(char *path, Vector<sp<ChannelPara> > &vcp) { - //?????o?????aXML????????ï¿¡?ˉ1è±???? - TiXmlDocument myDocument(path); - bool ret = myDocument.LoadFile(); - //è?·?????1????′? - TiXmlElement *RootElement = myDocument.RootElement(); - //dvbc - TiXmlElement *channel_list_element = RootElement->FirstChildElement("channel_list"); - for (TiXmlElement *channel_entry = channel_list_element->FirstChildElement("channel_entry") ; channel_entry != NULL; channel_entry = channel_entry->NextSiblingElement("channel_entry")) { - sp<ChannelPara> pCp = new ChannelPara(); - channel_entry->Attribute("frequency", &(pCp->freq)); - channel_entry->Attribute("modulation", &(pCp->modulation)); - channel_entry->Attribute("symbol_rate", &(pCp->symbol_rate)); - vcp.push_back(pCp); - } - return vcp.size(); + //?????o?????aXML????????ï¿¡?ˉ1è±???? + TiXmlDocument myDocument(path); + bool ret = myDocument.LoadFile(); + //è?·?????1????′? + TiXmlElement *RootElement = myDocument.RootElement(); + //dvbc + TiXmlElement *channel_list_element = RootElement->FirstChildElement("channel_list"); + for (TiXmlElement *channel_entry = channel_list_element->FirstChildElement("channel_entry") ; channel_entry != NULL; channel_entry = channel_entry->NextSiblingElement("channel_entry")) { + sp<ChannelPara> pCp = new ChannelPara(); + channel_entry->Attribute("frequency", &(pCp->freq)); + channel_entry->Attribute("modulation", &(pCp->modulation)); + channel_entry->Attribute("symbol_rate", &(pCp->symbol_rate)); + vcp.push_back(pCp); + } + return vcp.size(); } int CTvDatabase::ClearDbTable() { - LOGD(LOG_TAG, "Clearing database ..."); - exeSql("delete from net_table"); - exeSql("delete from ts_table"); - exeSql("delete from srv_table"); - exeSql("delete from evt_table"); - exeSql("delete from booking_table"); - exeSql("delete from grp_table"); - exeSql("delete from grp_map_table"); - exeSql("delete from dimension_table"); - exeSql("delete from sat_para_table"); - exeSql("delete from region_table"); - return 0; + LOGD(LOG_TAG, "Clearing database ..."); + exeSql("delete from net_table"); + exeSql("delete from ts_table"); + exeSql("delete from srv_table"); + exeSql("delete from evt_table"); + exeSql("delete from booking_table"); + exeSql("delete from grp_table"); + exeSql("delete from grp_map_table"); + exeSql("delete from dimension_table"); + exeSql("delete from sat_para_table"); + exeSql("delete from region_table"); + return 0; } int CTvDatabase::clearDbAllProgramInfoTable() { - LOGD(LOG_TAG, "Clearing clearDbAllProgramInfoTable ..."); - exeSql("delete from net_table"); - exeSql("delete from ts_table"); - exeSql("delete from srv_table"); - exeSql("delete from evt_table"); - exeSql("delete from booking_table"); - exeSql("delete from grp_table"); - exeSql("delete from grp_map_table"); - exeSql("delete from dimension_table"); - exeSql("delete from sat_para_table"); - return 0; + LOGD(LOG_TAG, "Clearing clearDbAllProgramInfoTable ..."); + exeSql("delete from net_table"); + exeSql("delete from ts_table"); + exeSql("delete from srv_table"); + exeSql("delete from evt_table"); + exeSql("delete from booking_table"); + exeSql("delete from grp_table"); + exeSql("delete from grp_map_table"); + exeSql("delete from dimension_table"); + exeSql("delete from sat_para_table"); + return 0; } //showboz now just channellist int CTvDatabase::importXmlToDB(const char *xmlPath) { - //delete region table before importing xml - exeSql("delete from region_table"); + //delete region table before importing xml + exeSql("delete from region_table"); - //?????o?????aXML????????ï¿¡?ˉ1è±???? - TiXmlDocument myDocument(xmlPath); - bool ret = myDocument.LoadFile(); + //?????o?????aXML????????ï¿¡?ˉ1è±???? + TiXmlDocument myDocument(xmlPath); + bool ret = myDocument.LoadFile(); - //è?·?????1????′? - TiXmlElement *RootElement = myDocument.RootElement(); - beginTransaction();//----------------------------------------------- - //list-->entry - for (TiXmlElement *channel_list_element = RootElement->FirstChildElement("channel_list"); channel_list_element != NULL; channel_list_element = channel_list_element->NextSiblingElement("channel_list")) { - //LOGD("showboz-----channel_list =%d", channel_list_element); - const char *channel_name = channel_list_element->Attribute("name"); - const char *channel_fe_type = channel_list_element->Attribute("fe_type"); - //LOGD("showboz-----channel_list name = %s type=%s", channel_name, channel_fe_type); + //è?·?????1????′? + TiXmlElement *RootElement = myDocument.RootElement(); + beginTransaction();//----------------------------------------------- + //list-->entry + for (TiXmlElement *channel_list_element = RootElement->FirstChildElement("channel_list"); channel_list_element != NULL; channel_list_element = channel_list_element->NextSiblingElement("channel_list")) { + //LOGD("showboz-----channel_list =%d", channel_list_element); + const char *channel_name = channel_list_element->Attribute("name"); + const char *channel_fe_type = channel_list_element->Attribute("fe_type"); + //LOGD("showboz-----channel_list name = %s type=%s", channel_name, channel_fe_type); - for (TiXmlElement *channel_entry = channel_list_element->FirstChildElement("channel_entry") ; channel_entry != NULL; channel_entry = channel_entry->NextSiblingElement("channel_entry")) { - int freq, symb, channelNum; - String8 cmd = String8("insert into region_table(name,fe_type,frequency,symbol_rate,modulation,bandwidth,ofdm_mode,logical_channel_num)"); - cmd += String8("values('") + channel_name + String8("',") + String8::format("%d", StringToIndex(feTypes, channel_fe_type)) + String8(","); - channel_entry->Attribute("frequency", &freq); - cmd += String8::format("%d", freq) + String8(","); - channel_entry->Attribute("symbol_rate", &symb); - cmd += String8::format("%d", symb) + String8(","); - //LOGD("showboz---------m=%s,b=%s,o=%s", channel_entry->Attribute("modulation"), channel_entry->Attribute("bandwidth"), channel_entry->Attribute("ofdm_mode")); - cmd += String8::format("%d", StringToIndex(mods, channel_entry->Attribute("modulation"))) + String8(","); - cmd += String8::format("%d", StringToIndex(bandwidths, channel_entry->Attribute("bandwidth"))) + String8(","); - cmd += String8::format("%d", StringToIndex(ofdmModes, channel_entry->Attribute("ofdm_mode"))) + String8(","); - channel_entry->Attribute("logical_channel_num", &channelNum); - cmd += String8::format("%d", channelNum) + String8(")"); - exeSql(cmd.string()); - } - } + for (TiXmlElement *channel_entry = channel_list_element->FirstChildElement("channel_entry") ; channel_entry != NULL; channel_entry = channel_entry->NextSiblingElement("channel_entry")) { + int freq, symb, channelNum; + String8 cmd = String8("insert into region_table(name,fe_type,frequency,symbol_rate,modulation,bandwidth,ofdm_mode,logical_channel_num)"); + cmd += String8("values('") + channel_name + String8("',") + String8::format("%d", StringToIndex(feTypes, channel_fe_type)) + String8(","); + channel_entry->Attribute("frequency", &freq); + cmd += String8::format("%d", freq) + String8(","); + channel_entry->Attribute("symbol_rate", &symb); + cmd += String8::format("%d", symb) + String8(","); + //LOGD("showboz---------m=%s,b=%s,o=%s", channel_entry->Attribute("modulation"), channel_entry->Attribute("bandwidth"), channel_entry->Attribute("ofdm_mode")); + cmd += String8::format("%d", StringToIndex(mods, channel_entry->Attribute("modulation"))) + String8(","); + cmd += String8::format("%d", StringToIndex(bandwidths, channel_entry->Attribute("bandwidth"))) + String8(","); + cmd += String8::format("%d", StringToIndex(ofdmModes, channel_entry->Attribute("ofdm_mode"))) + String8(","); + channel_entry->Attribute("logical_channel_num", &channelNum); + cmd += String8::format("%d", channelNum) + String8(")"); + exeSql(cmd.string()); + } + } - commitTransaction();//------------------------------------------------------ - return 0; + commitTransaction();//------------------------------------------------------ + return 0; } bool CTvDatabase::isAtv256ProgInsertForSkyworth() { - String8 select_ts_atvcount = String8("select * from ts_table where src = 4"); - Cursor c; - select(select_ts_atvcount, c); - return c.getCount() < 256 ? false : true; + String8 select_ts_atvcount = String8("select * from ts_table where src = 4"); + Cursor c; + select(select_ts_atvcount, c); + return c.getCount() < 256 ? false : true; } int CTvDatabase::insert256AtvProgForSkyworth() { - beginTransaction(); - for (int i = 0; i < 256; i++) { - String8 insert_ts = String8("insert into ts_table(db_id, src, db_net_id, ts_id, freq, symb, mod, bw, snr, ber, strength, db_sat_para_id, polar, std, aud_mode, flags, dvbt_flag) values ("); - insert_ts += String8::format("'%d'", i); - insert_ts += String8(", '4', '-1', '-1', '44250000', '0', '0', '0', '0', '0', '0', '-1', '-1', '-1', '1', '0', '0')"); - exeSql(insert_ts.string()); - String8 insert_srv = String8("insert into srv_table(db_id, src, db_net_id, db_ts_id, name, service_id, service_type, eit_schedule_flag, eit_pf_flag, running_status, free_ca_mode, volume, aud_track, pmt_pid, vid_pid, vid_fmt, scrambled_flag, current_aud, aud_pids, aud_fmts, aud_langs, aud_types, current_sub, sub_pids, sub_types, sub_composition_page_ids, sub_ancillary_page_ids, sub_langs, current_ttx, ttx_pids, ttx_types, ttx_magazine_nos, ttx_page_nos, ttx_langs, chan_num, skip, lock, favor, lcn, sd_lcn, hd_lcn, default_chan_num, chan_order, lcn_order, service_id_order, hd_sd_order, db_sat_para_id, dvbt2_plp_id, major_chan_num, minor_chan_num, access_controlled, hidden, hide_guide, source_id, sdt_ver) values ("); - insert_srv += String8::format("'%d'", i); - insert_srv += String8(" , '4', '-1', "); - insert_srv += String8::format("'%d'", i); - insert_srv += String8(", 'xxxATV Program', '-1', '3', '-1', '-1', '-1', '-1', '50', '1', '-1', '-1', '-1', '0', '-1', '-1', '-1', 'Audio1', '0', '-1', ' ', ' ', ' ', ' ', ' ', '-1', ' ', ' ', ' ', ' ', ' ', '-1', '1', '0', '0', '-1', '-1', '-1', '-1', "); - insert_srv += String8::format("'%d'", i); - insert_srv += String8(" , '0', '0', '0', '-1', '255', '0', '0', '0', '0', '0', '0', '255') "); - exeSql(insert_srv.string()); - } - commitTransaction(); - return 0; + beginTransaction(); + for (int i = 0; i < 256; i++) { + String8 insert_ts = String8("insert into ts_table(db_id, src, db_net_id, ts_id, freq, symb, mod, bw, snr, ber, strength, db_sat_para_id, polar, std, aud_mode, flags, dvbt_flag) values ("); + insert_ts += String8::format("'%d'", i); + insert_ts += String8(", '4', '-1', '-1', '44250000', '0', '0', '0', '0', '0', '0', '-1', '-1', '-1', '1', '0', '0')"); + exeSql(insert_ts.string()); + String8 insert_srv = String8("insert into srv_table(db_id, src, db_net_id, db_ts_id, name, service_id, service_type, eit_schedule_flag, eit_pf_flag, running_status, free_ca_mode, volume, aud_track, pmt_pid, vid_pid, vid_fmt, scrambled_flag, current_aud, aud_pids, aud_fmts, aud_langs, aud_types, current_sub, sub_pids, sub_types, sub_composition_page_ids, sub_ancillary_page_ids, sub_langs, current_ttx, ttx_pids, ttx_types, ttx_magazine_nos, ttx_page_nos, ttx_langs, chan_num, skip, lock, favor, lcn, sd_lcn, hd_lcn, default_chan_num, chan_order, lcn_order, service_id_order, hd_sd_order, db_sat_para_id, dvbt2_plp_id, major_chan_num, minor_chan_num, access_controlled, hidden, hide_guide, source_id, sdt_ver) values ("); + insert_srv += String8::format("'%d'", i); + insert_srv += String8(" , '4', '-1', "); + insert_srv += String8::format("'%d'", i); + insert_srv += String8(", 'xxxATV Program', '-1', '3', '-1', '-1', '-1', '-1', '50', '1', '-1', '-1', '-1', '0', '-1', '-1', '-1', 'Audio1', '0', '-1', ' ', ' ', ' ', ' ', ' ', '-1', ' ', ' ', ' ', ' ', ' ', '-1', '1', '0', '0', '-1', '-1', '-1', '-1', "); + insert_srv += String8::format("'%d'", i); + insert_srv += String8(" , '0', '0', '0', '-1', '255', '0', '0', '0', '0', '0', '0', '255') "); + exeSql(insert_srv.string()); + } + commitTransaction(); + return 0; } void CTvDatabase::deleteTvDb() { - if (mpDb != NULL) { - delete mpDb; - mpDb = NULL; - } + if (mpDb != NULL) { + delete mpDb; + mpDb = NULL; + } } CTvDatabase *CTvDatabase::GetTvDb() { - if (mpDb == NULL) { - mpDb = new CTvDatabase(); - } - return mpDb; + if (mpDb == NULL) { + mpDb = new CTvDatabase(); + } + return mpDb; } diff --git a/tvapi/libtv/tvdb/CTvDatabase.h b/tvapi/libtv/tvdb/CTvDatabase.h index be29f2a..fc9b285 100644 --- a/tvapi/libtv/tvdb/CTvDatabase.h +++ b/tvapi/libtv/tvdb/CTvDatabase.h @@ -28,67 +28,67 @@ using namespace android; //ÎÞ½âµÄ¹ØÁª class CTvDatabase: public CSqlite { public: - static const char *DEFAULT_DB_PATH; - static const int DB_VERSION = 8; - static const char *DB_VERSION_FIELD; + static const char *DEFAULT_DB_PATH; + static const int DB_VERSION = 8; + static const char *DB_VERSION_FIELD; - static const char feTypes[][32]; - static const char srvTypes[][32]; - static const char vidFmts[][32]; - static const char audFmts[][32]; - static const char mods[][32]; - static const char bandwidths[][32]; - static const char lnbPowers[][32]; - static const char sig22K[][32]; - static const char tonebursts[][32]; - static const char diseqc10s[][32]; - static const char diseqc11s[][32]; - static const char motors[][32]; - static const char ofdmModes[][32]; - static const char atvVideoStds[][32]; - static const char atvAudioStds[][32]; - template<typename T> - int StringToIndex(const T &t, const char *item) - { - if (item == NULL) return -1; - int size = sizeof(t) / sizeof(t[0]); - for (int i = 0; i < size; i++) { - if (strcmp(t[i], item) == 0) return i; - } - return -1; - } + static const char feTypes[][32]; + static const char srvTypes[][32]; + static const char vidFmts[][32]; + static const char audFmts[][32]; + static const char mods[][32]; + static const char bandwidths[][32]; + static const char lnbPowers[][32]; + static const char sig22K[][32]; + static const char tonebursts[][32]; + static const char diseqc10s[][32]; + static const char diseqc11s[][32]; + static const char motors[][32]; + static const char ofdmModes[][32]; + static const char atvVideoStds[][32]; + static const char atvAudioStds[][32]; + template<typename T> + int StringToIndex(const T &t, const char *item) + { + if (item == NULL) return -1; + int size = sizeof(t) / sizeof(t[0]); + for (int i = 0; i < size; i++) { + if (strcmp(t[i], item) == 0) return i; + } + return -1; + } public: - CTvDatabase(); - //Ö±½ÓÖ¸¶¨Êý¾Ý¿âÁ¬½Ó¾ä±ú - //CTvDatabase(char* path, sqlite3 * h); - static CTvDatabase *GetTvDb(); - static void deleteTvDb(); - ~CTvDatabase(); - //ÓÃÖ¸¶¨Â·¾¶´´½¨TVÊý¾Ý¿â. - int UnInitTvDb(); - int InitTvDb(const char *path); - //showboz test - class ChannelPara : public LightRefBase<ChannelPara> { - public: - int mode; - int freq; - int symbol_rate; - int modulation; - int bandwidth; - int polar; - }; + CTvDatabase(); + //Ö±½ÓÖ¸¶¨Êý¾Ý¿âÁ¬½Ó¾ä±ú + //CTvDatabase(char* path, sqlite3 * h); + static CTvDatabase *GetTvDb(); + static void deleteTvDb(); + ~CTvDatabase(); + //ÓÃÖ¸¶¨Â·¾¶´´½¨TVÊý¾Ý¿â. + int UnInitTvDb(); + int InitTvDb(const char *path); + //showboz test + class ChannelPara : public LightRefBase<ChannelPara> { + public: + int mode; + int freq; + int symbol_rate; + int modulation; + int bandwidth; + int polar; + }; - static int getChannelParaList(char *path, Vector<sp<ChannelPara> > &vcp); + static int getChannelParaList(char *path, Vector<sp<ChannelPara> > &vcp); - int importDbToXml(); - int importXmlToDB(const char *xmlPath); - bool isAtv256ProgInsertForSkyworth(); - int insert256AtvProgForSkyworth(); - int ClearDbTable(); - int clearDbAllProgramInfoTable(); + int importDbToXml(); + int importXmlToDB(const char *xmlPath); + bool isAtv256ProgInsertForSkyworth(); + int insert256AtvProgForSkyworth(); + int ClearDbTable(); + int clearDbAllProgramInfoTable(); private: - static CTvDatabase *mpDb; - int isFreqListExist(void); + static CTvDatabase *mpDb; + int isFreqListExist(void); }; #endif //_CTVDATABASE_H diff --git a/tvapi/libtv/tvdb/CTvDimension.cpp b/tvapi/libtv/tvdb/CTvDimension.cpp index 1863080..176dde8 100644 --- a/tvapi/libtv/tvdb/CTvDimension.cpp +++ b/tvapi/libtv/tvdb/CTvDimension.cpp @@ -17,54 +17,54 @@ void CTvDimension::createFromCursor(CTvDatabase::Cursor &c) { - int col; - - col = c.getColumnIndex("db_id"); - this->id = c.getInt(col); - - col = c.getColumnIndex("index_j"); - this->indexj = c.getInt(col); - - col = c.getColumnIndex("rating_region"); - this->ratingRegion = c.getInt(col); - - col = c.getColumnIndex("graduated_scale"); - this->graduatedScale = c.getInt(col); - - col = c.getColumnIndex("name"); - this->name = c.getString(col); - - col = c.getColumnIndex("rating_region_name"); - this->ratingRegionName = c.getString(col); - - col = c.getColumnIndex("values_defined"); - this->valuesDefined = c.getInt(col); - this->lockValues = new int[valuesDefined]; - this->abbrevValues = new String8[valuesDefined]; - this->textValues = new String8[valuesDefined]; - char temp[256]; - for (int i = 0; i < valuesDefined; i++) { - sprintf(temp, "abbrev%d", i); - col = c.getColumnIndex(temp); - this->abbrevValues[i] = c.getString(col); - sprintf(temp, "text%d", i); - col = c.getColumnIndex(temp); - this->textValues[i] = c.getString(col); - sprintf(temp, "locked%d", i); - col = c.getColumnIndex(temp); - this->lockValues[i] = c.getInt(col); - } - - if (ratingRegion == REGION_US && !strcmp(name, "All")) { - isPGAll = true; - } else { - isPGAll = false; - } + int col; + + col = c.getColumnIndex("db_id"); + this->id = c.getInt(col); + + col = c.getColumnIndex("index_j"); + this->indexj = c.getInt(col); + + col = c.getColumnIndex("rating_region"); + this->ratingRegion = c.getInt(col); + + col = c.getColumnIndex("graduated_scale"); + this->graduatedScale = c.getInt(col); + + col = c.getColumnIndex("name"); + this->name = c.getString(col); + + col = c.getColumnIndex("rating_region_name"); + this->ratingRegionName = c.getString(col); + + col = c.getColumnIndex("values_defined"); + this->valuesDefined = c.getInt(col); + this->lockValues = new int[valuesDefined]; + this->abbrevValues = new String8[valuesDefined]; + this->textValues = new String8[valuesDefined]; + char temp[256]; + for (int i = 0; i < valuesDefined; i++) { + sprintf(temp, "abbrev%d", i); + col = c.getColumnIndex(temp); + this->abbrevValues[i] = c.getString(col); + sprintf(temp, "text%d", i); + col = c.getColumnIndex(temp); + this->textValues[i] = c.getString(col); + sprintf(temp, "locked%d", i); + col = c.getColumnIndex(temp); + this->lockValues[i] = c.getInt(col); + } + + if (ratingRegion == REGION_US && !strcmp(name, "All")) { + isPGAll = true; + } else { + isPGAll = false; + } } CTvDimension::CTvDimension(CTvDatabase::Cursor &c) { - createFromCursor(c); + createFromCursor(c); } CTvDimension::CTvDimension() { @@ -72,78 +72,78 @@ CTvDimension::CTvDimension() } CTvDimension::~CTvDimension() { - if (lockValues != NULL) { - delete []lockValues; - } - if (textValues != NULL) { - delete []textValues; - } - if (abbrevValues != NULL) { - delete []abbrevValues; - } + if (lockValues != NULL) { + delete []lockValues; + } + if (textValues != NULL) { + delete []textValues; + } + if (abbrevValues != NULL) { + delete []abbrevValues; + } } /* 'All' is a very special case, it links to dimension0 & dimension5 */ int CTvDimension::getUSPGAllLockStatus(String8 abbrev) { - int len = 0; - CTvDimension dm5; - int j = 0; - selectByIndex(dm5, CTvDimension::REGION_US, 5); - len = dm5.getDefinedValue(); - String8 dm5Abbrev[len - 1]; - dm5.getAbbrev(dm5Abbrev); - for (j = 0; j < len - 1; j++) { - if (dm5Abbrev[j] == abbrev) { - return dm5.getLockStatus(j + 1); - } - } - CTvDimension dm0; - selectByIndex(dm0, CTvDimension::REGION_US, 0); - len = dm0.getDefinedValue(); - String8 dm0Abbrev[len - 1]; - dm0.getAbbrev(dm0Abbrev); - for (j = 0; j < len - 1; j++) { - if (dm0Abbrev[j] == abbrev) { - return dm0.getLockStatus(j + 1); - } - } - return -1; + int len = 0; + CTvDimension dm5; + int j = 0; + selectByIndex(dm5, CTvDimension::REGION_US, 5); + len = dm5.getDefinedValue(); + String8 dm5Abbrev[len - 1]; + dm5.getAbbrev(dm5Abbrev); + for (j = 0; j < len - 1; j++) { + if (dm5Abbrev[j] == abbrev) { + return dm5.getLockStatus(j + 1); + } + } + CTvDimension dm0; + selectByIndex(dm0, CTvDimension::REGION_US, 0); + len = dm0.getDefinedValue(); + String8 dm0Abbrev[len - 1]; + dm0.getAbbrev(dm0Abbrev); + for (j = 0; j < len - 1; j++) { + if (dm0Abbrev[j] == abbrev) { + return dm0.getLockStatus(j + 1); + } + } + return -1; } void CTvDimension::setUSPGAllLockStatus(String8 abbrev, int lock) { - int len = 0; - int j = 0; + int len = 0; + int j = 0; - CTvDimension dm5; + CTvDimension dm5; - selectByIndex(dm5, REGION_US, 5); - len = dm5.getDefinedValue(); - String8 dm5Abbrev[len - 1]; - dm5.getAbbrev(dm5Abbrev); + selectByIndex(dm5, REGION_US, 5); + len = dm5.getDefinedValue(); + String8 dm5Abbrev[len - 1]; + dm5.getAbbrev(dm5Abbrev); - for (j = 0; j < len - 1; j++) { - if (abbrev == dm5Abbrev[j]) { - dm5.setLockStatus(j + 1, lock); - return; - } - } + for (j = 0; j < len - 1; j++) { + if (abbrev == dm5Abbrev[j]) { + dm5.setLockStatus(j + 1, lock); + return; + } + } - CTvDimension dm0; - selectByIndex(dm0, REGION_US, 0); - len = dm0.getDefinedValue(); - String8 dm0Abbrev[len - 1]; - dm0.getAbbrev(dm0Abbrev); + CTvDimension dm0; + selectByIndex(dm0, REGION_US, 0); + len = dm0.getDefinedValue(); + String8 dm0Abbrev[len - 1]; + dm0.getAbbrev(dm0Abbrev); - for (j = 0; j < len - 1; j++) { - if (abbrev == dm0Abbrev[j]) { - dm0.setLockStatus(j + 1, lock); - return; - } - } - return; + for (j = 0; j < len - 1; j++) { + if (abbrev == dm0Abbrev[j]) { + dm0.setLockStatus(j + 1, lock); + return; + } + } + return; } @@ -156,19 +156,19 @@ void CTvDimension::setUSPGAllLockStatus(String8 abbrev, int lock) */ void CTvDimension::selectByID(CTvDimension &dm, int id) { - String8 cmd = String8("select * from dimension_table where evt_table.db_id = ") + String8::format("%d", id); - CTvDatabase::Cursor c; - int ret = CTvDatabase::GetTvDb()->select(cmd, c); + String8 cmd = String8("select * from dimension_table where evt_table.db_id = ") + String8::format("%d", id); + CTvDatabase::Cursor c; + int ret = CTvDatabase::GetTvDb()->select(cmd, c); - if (c.moveToFirst()) { - dm.createFromCursor(c); - LOGD("%s, %d success", "TV", __LINE__); - } else { - LOGD("%s, %d fail", "TV", __LINE__); - c.close(); - return; - } - c.close(); + if (c.moveToFirst()) { + dm.createFromCursor(c); + LOGD("%s, %d success", "TV", __LINE__); + } else { + LOGD("%s, %d fail", "TV", __LINE__); + c.close(); + return; + } + c.close(); } @@ -180,19 +180,19 @@ void CTvDimension::selectByID(CTvDimension &dm, int id) */ void CTvDimension::selectByRatingRegion(CTvDimension &dm, int ratingRegionID) { - String8 cmd = String8("select * from dimension_table where rating_region = ") + String8::format("%d", ratingRegionID); - CTvDatabase::Cursor c; - int ret = CTvDatabase::GetTvDb()->select(cmd, c); + String8 cmd = String8("select * from dimension_table where rating_region = ") + String8::format("%d", ratingRegionID); + CTvDatabase::Cursor c; + int ret = CTvDatabase::GetTvDb()->select(cmd, c); - if (c.moveToFirst()) { - dm.createFromCursor(c); - LOGD("%s, %d success", "TV", __LINE__); - } else { - LOGD("%s, %d fail", "TV", __LINE__); - c.close(); - return; - } - c.close(); + if (c.moveToFirst()) { + dm.createFromCursor(c); + LOGD("%s, %d success", "TV", __LINE__); + } else { + LOGD("%s, %d fail", "TV", __LINE__); + c.close(); + return; + } + c.close(); } /** @@ -204,22 +204,22 @@ void CTvDimension::selectByRatingRegion(CTvDimension &dm, int ratingRegionID) */ int CTvDimension::selectByIndex(CTvDimension &dm, int ratingRegionID, int index) { - String8 cmd = String8("select * from dimension_table where rating_region = ") + String8::format("%d", ratingRegionID); - cmd += String8(" and index_j=") + String8::format("%d", index); - CTvDatabase::Cursor c; - int ret = CTvDatabase::GetTvDb()->select(cmd, c); + String8 cmd = String8("select * from dimension_table where rating_region = ") + String8::format("%d", ratingRegionID); + cmd += String8(" and index_j=") + String8::format("%d", index); + CTvDatabase::Cursor c; + int ret = CTvDatabase::GetTvDb()->select(cmd, c); - if (c.moveToFirst()) { - dm.createFromCursor(c); - LOGD("%s, %d success", "TV", __LINE__); - } else { - LOGD("%s, %d fail", "TV", __LINE__); - c.close(); - return -1; - } - c.close(); + if (c.moveToFirst()) { + dm.createFromCursor(c); + LOGD("%s, %d success", "TV", __LINE__); + } else { + LOGD("%s, %d fail", "TV", __LINE__); + c.close(); + return -1; + } + c.close(); - return 0; + return 0; } /** @@ -231,22 +231,22 @@ int CTvDimension::selectByIndex(CTvDimension &dm, int ratingRegionID, int index) */ void CTvDimension::selectByName(CTvDimension &dm, int ratingRegionID, String8 dimensionName) { - String8 cmd = String8("select * from dimension_table where rating_region = ") + String8::format("%d", ratingRegionID); - cmd += String8(" and name='") + dimensionName + String8("'"); - CTvDatabase::Cursor c; - CTvDatabase::GetTvDb()->select(cmd, c); + String8 cmd = String8("select * from dimension_table where rating_region = ") + String8::format("%d", ratingRegionID); + cmd += String8(" and name='") + dimensionName + String8("'"); + CTvDatabase::Cursor c; + CTvDatabase::GetTvDb()->select(cmd, c); - if (c.moveToFirst()) { - LOGD("%s, %d success", "TV", __LINE__); - dm.createFromCursor(c); - } else { - LOGD("%s, %d fail", "TV", __LINE__); - c.close(); - return; - } - c.close(); + if (c.moveToFirst()) { + LOGD("%s, %d success", "TV", __LINE__); + dm.createFromCursor(c); + } else { + LOGD("%s, %d fail", "TV", __LINE__); + c.close(); + return; + } + c.close(); - return; + return; } @@ -258,14 +258,14 @@ void CTvDimension::selectByName(CTvDimension &dm, int ratingRegionID, String8 di */ bool CTvDimension::isBlocked(CTvDimension &dm, VChipRating *definedRating) { - int ret = 0; - ret = selectByIndex(dm, definedRating->getRegion(), definedRating->getDimension()); - if (ret != -1) { - LOGD("%s, %d, index=%d", "TV", __LINE__, definedRating->getValue()); - return (dm.getLockStatus(definedRating->getValue()) == 1); - } + int ret = 0; + ret = selectByIndex(dm, definedRating->getRegion(), definedRating->getDimension()); + if (ret != -1) { + LOGD("%s, %d, index=%d", "TV", __LINE__, definedRating->getValue()); + return (dm.getLockStatus(definedRating->getValue()) == 1); + } - return false; + return false; } /** @@ -274,7 +274,7 @@ bool CTvDimension::isBlocked(CTvDimension &dm, VChipRating *definedRating) */ int CTvDimension::getID() { - return id; + return id; } /** @@ -283,12 +283,12 @@ int CTvDimension::getID() */ int CTvDimension::getRatingRegion() { - return ratingRegion; + return ratingRegion; } int CTvDimension::getDefinedValue() { - return valuesDefined; + return valuesDefined; } /** *å–å¾— rating region å称 @@ -296,7 +296,7 @@ int CTvDimension::getDefinedValue() */ String8 CTvDimension::getRatingRegionName() { - return ratingRegionName; + return ratingRegionName; } /** @@ -305,7 +305,7 @@ String8 CTvDimension::getRatingRegionName() */ String8 CTvDimension::getName() { - return name; + return name; } /** @@ -314,7 +314,7 @@ String8 CTvDimension::getName() */ int CTvDimension::getGraduatedScale() { - return graduatedScale; + return graduatedScale; } /** @@ -324,20 +324,20 @@ int CTvDimension::getGraduatedScale() #if 0 int *CTvDimension::getLockStatus() { - int len = getDefinedValue(); - if (len > 1) { - if (isPGAll) { - return getUSPGAllLockStatus(abbrevValues); - } else { - int *lock = new int[len - 1]; - //System.arraycopy(lockValues, 1, l, 0, l.length); - for (int i = 0; i < len - 1; i++) - lock[i] = lockValues[1 + i]; - return lock; - } - } else { - return NULL; - } + int len = getDefinedValue(); + if (len > 1) { + if (isPGAll) { + return getUSPGAllLockStatus(abbrevValues); + } else { + int *lock = new int[len - 1]; + //System.arraycopy(lockValues, 1, l, 0, l.length); + for (int i = 0; i < len - 1; i++) + lock[i] = lockValues[1 + i]; + return lock; + } + } else { + return NULL; + } } #endif /** @@ -347,12 +347,12 @@ int *CTvDimension::getLockStatus() */ int CTvDimension::getLockStatus(int valueIndex) { - int len = getDefinedValue(); - if (valueIndex >= len) { - return -1; - } else { - return lockValues[valueIndex]; - } + int len = getDefinedValue(); + if (valueIndex >= len) { + return -1; + } else { + return lockValues[valueIndex]; + } } /** @@ -362,21 +362,21 @@ int CTvDimension::getLockStatus(int valueIndex) */ void CTvDimension::getLockStatus(String8 abbrevs[], int lock[], int *array_len) { - int i = 0; - int len = getDefinedValue(); + int i = 0; + int len = getDefinedValue(); - if (abbrevs != NULL && lock != NULL) { - for (int i = 0; i < *array_len; i++) { - *(lock + i) = -1; - for (int j = 0; j < len; j++) { - if (abbrevs[i] == abbrevValues[j]) { - *(lock + i) = lockValues[j]; - break; - } - } - } - } - *array_len = len; + if (abbrevs != NULL && lock != NULL) { + for (int i = 0; i < *array_len; i++) { + *(lock + i) = -1; + for (int j = 0; j < len; j++) { + if (abbrevs[i] == abbrevValues[j]) { + *(lock + i) = lockValues[j]; + break; + } + } + } + } + *array_len = len; } /** @@ -385,15 +385,15 @@ void CTvDimension::getLockStatus(String8 abbrevs[], int lock[], int *array_len) */ int CTvDimension::getAbbrev(String8 abb[]) { - /* the first rating_value must be not visible to user */ - int len = getDefinedValue(); - if (len > 1) { - for (int i = 0; i < len - 1; i++) - abb[i] = abbrevValues[i + 1]; - return 0; - } else { - return -1; - } + /* the first rating_value must be not visible to user */ + int len = getDefinedValue(); + if (len > 1) { + for (int i = 0; i < len - 1; i++) + abb[i] = abbrevValues[i + 1]; + return 0; + } else { + return -1; + } } /** @@ -402,11 +402,11 @@ int CTvDimension::getAbbrev(String8 abb[]) */ String8 CTvDimension::getAbbrev(int valueIndex) { - int len = getDefinedValue(); - if (valueIndex >= len) - return String8(""); - else - return abbrevValues[valueIndex]; + int len = getDefinedValue(); + if (valueIndex >= len) + return String8(""); + else + return abbrevValues[valueIndex]; } /** @@ -415,14 +415,14 @@ String8 CTvDimension::getAbbrev(int valueIndex) */ int CTvDimension::getText(String8 tx[]) { - int len = getDefinedValue(); - if (len > 1) { - for (int i = 0; i < len - 1; i++) - tx[i] = textValues[i + 1]; - return 0; - } else { - return -1; - } + int len = getDefinedValue(); + if (len > 1) { + for (int i = 0; i < len - 1; i++) + tx[i] = textValues[i + 1]; + return 0; + } else { + return -1; + } } /** @@ -431,11 +431,11 @@ int CTvDimension::getText(String8 tx[]) */ String8 CTvDimension::getText(int valueIndex) { - int len = getDefinedValue(); - if (valueIndex >= len) - return String8(""); - else - return textValues[valueIndex]; + int len = getDefinedValue(); + if (valueIndex >= len) + return String8(""); + else + return textValues[valueIndex]; } /** @@ -445,17 +445,17 @@ String8 CTvDimension::getText(int valueIndex) */ void CTvDimension::setLockStatus(int valueIndex, int status) { - int len = getDefinedValue(); - if (valueIndex >= len) - return; + int len = getDefinedValue(); + if (valueIndex >= len) + return; - if (lockValues[valueIndex] != -1 && lockValues[valueIndex] != status) { - lockValues[valueIndex] = status; - String8 cmd = String8("update dimension_table set locked") + String8::format("%d", valueIndex); - cmd += String8("=") + String8::format("%d", status) + String8(" where db_id = ") + String8::format("%d", id); + if (lockValues[valueIndex] != -1 && lockValues[valueIndex] != status) { + lockValues[valueIndex] = status; + String8 cmd = String8("update dimension_table set locked") + String8::format("%d", valueIndex); + cmd += String8("=") + String8::format("%d", status) + String8(" where db_id = ") + String8::format("%d", id); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); - } + CTvDatabase::GetTvDb()->exeSql(cmd.string()); + } } /** @@ -464,14 +464,14 @@ void CTvDimension::setLockStatus(int valueIndex, int status) */ void CTvDimension::setLockStatus(int status[]) { - int len = getDefinedValue(); - if (status == NULL) { - LOGD("Cannot set lock status, invalid param"); - return; - } - for (int i = 0; i < len; i++) { - setLockStatus(i + 1, status[i]); - } + int len = getDefinedValue(); + if (status == NULL) { + LOGD("Cannot set lock status, invalid param"); + return; + } + for (int i = 0; i < len; i++) { + setLockStatus(i + 1, status[i]); + } } /** @@ -481,25 +481,25 @@ void CTvDimension::setLockStatus(int status[]) */ void CTvDimension::setLockStatus(String8 abbrevs[], int locks[], int abb_size) { - int len = getDefinedValue(); - if (abbrevs == NULL || locks == NULL) - return; + int len = getDefinedValue(); + if (abbrevs == NULL || locks == NULL) + return; - for (int i = 0; i < abb_size; i++) { - for (int j = 0; j < len; j++) { - if (abbrevs[i] == abbrevValues[j]) { - setLockStatus(j, locks[i]); - break; - } - } - } + for (int i = 0; i < abb_size; i++) { + for (int j = 0; j < len; j++) { + if (abbrevs[i] == abbrevValues[j]) { + setLockStatus(j, locks[i]); + break; + } + } + } } CTvDimension::VChipRating::VChipRating(int region, int dimension, int value) { - this->region = region; - this->dimension = dimension; - this->value = value; + this->region = region; + this->dimension = dimension; + this->value = value; } CTvDimension::VChipRating::VChipRating() { @@ -510,135 +510,135 @@ CTvDimension::VChipRating::~VChipRating() } int CTvDimension::VChipRating::getRegion() { - return region; + return region; } int CTvDimension::VChipRating::getDimension() { - return dimension; + return dimension; } int CTvDimension::VChipRating::getValue()const { - return value; + return value; } String8 CTvDimension::getCurdimension() { - return CurvchipDimension; + return CurvchipDimension; } String8 CTvDimension::getCurAbbr() { - return CurvchipAbbrev; + return CurvchipAbbrev; } String8 CTvDimension::getCurText() { - return CurvchipText; + return CurvchipText; } void CTvDimension::insertNewDimension(const int region, String8 regionName, String8 name, - int indexj, int *lock, const char **abbrev, const char **text, int size) -{ - String8 cmd = String8("insert into dimension_table(rating_region,rating_region_name,name,graduated_scale,"); - cmd += String8("values_defined,index_j,version,abbrev0,text0,locked0,abbrev1,text1,locked1,abbrev2,text2,locked2,"); - cmd += String8("abbrev3,text3,locked3,abbrev4,text4,locked4,abbrev5,text5,locked5,abbrev6,text6,locked6,"); - cmd += String8("abbrev7,text7,locked7,abbrev8,text8,locked8,abbrev9,text9,locked9,abbrev10,text10,locked10,"); - cmd += String8("abbrev11,text11,locked11,abbrev12,text12,locked12,abbrev13,text13,locked13,abbrev14,text14,locked14,"); - cmd += String8("abbrev15,text15,locked15) values(") + String8::format("%d", region) + String8(",'") + regionName.string(); - cmd += String8("','") + name.string() + String8("',0,") + String8::format("%d", size) + String8(",") + String8::format("%d", indexj) + String8(",0"); - for (int i = 0; i < 16; i++) { - if (i < size) { - cmd += String8(",'") + String8::format("%s", abbrev[i]) + String8("'"); - cmd += String8(",'") + String8::format("%s", text[i]) + String8("'"); - cmd += String8(",'") + String8::format("%d", lock[i]) + String8("'"); - } else { - cmd += String8(",''"); - cmd += String8(",''"); - cmd += String8(",-1"); - } - } - cmd += String8(")"); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); + int indexj, int *lock, const char **abbrev, const char **text, int size) +{ + String8 cmd = String8("insert into dimension_table(rating_region,rating_region_name,name,graduated_scale,"); + cmd += String8("values_defined,index_j,version,abbrev0,text0,locked0,abbrev1,text1,locked1,abbrev2,text2,locked2,"); + cmd += String8("abbrev3,text3,locked3,abbrev4,text4,locked4,abbrev5,text5,locked5,abbrev6,text6,locked6,"); + cmd += String8("abbrev7,text7,locked7,abbrev8,text8,locked8,abbrev9,text9,locked9,abbrev10,text10,locked10,"); + cmd += String8("abbrev11,text11,locked11,abbrev12,text12,locked12,abbrev13,text13,locked13,abbrev14,text14,locked14,"); + cmd += String8("abbrev15,text15,locked15) values(") + String8::format("%d", region) + String8(",'") + regionName.string(); + cmd += String8("','") + name.string() + String8("',0,") + String8::format("%d", size) + String8(",") + String8::format("%d", indexj) + String8(",0"); + for (int i = 0; i < 16; i++) { + if (i < size) { + cmd += String8(",'") + String8::format("%s", abbrev[i]) + String8("'"); + cmd += String8(",'") + String8::format("%s", text[i]) + String8("'"); + cmd += String8(",'") + String8::format("%d", lock[i]) + String8("'"); + } else { + cmd += String8(",''"); + cmd += String8(",''"); + cmd += String8(",-1"); + } + } + cmd += String8(")"); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); } /** * ??????Standard ATSC V-Chip Dimensions */ void CTvDimension::builtinAtscDimensions() { - CTvDatabase::GetTvDb()->exeSql("delete from dimension_table"); - - /* Add U.S. Rating region 0x1 */ - const char *abbrev0[] = {"", "None", "TV-G", "TV-PG", "TV-14", "TV-MA"}; - const char *text0[] = {"", "None", "TV-G", "TV-PG", "TV-14", "TV-MA"}; - int lock0[] = { -1, -1, 0, 0, 0, 0}; - const char *abbrev1[] = {"", "D", "TV-G", "TV-PG", "TV-14", "TV-MA"}; - const char *text1[] = {"", "D", "TV-G", "TV-PG", "TV-14", "TV-MA"}; - int lock1[] = { -1, -1, -1, 0, 0, -1}; - const char *abbrev2[] = {"", "L", "TV-G", "TV-PG", "TV-14", "TV-MA"}; - const char *text2[] = {"", "L", "TV-G", "TV-PG", "TV-14", "TV-MA"}; - int lock2[] = { -1, -1, -1, 0, 0, 0}; - const char *abbrev3[] = {"", "S", "TV-G", "TV-PG", "TV-14", "TV-MA"}; - const char *text3[] = {"", "S", "TV-G", "TV-PG", "TV-14", "TV-MA"}; - int lock3[] = { -1, -1, -1, 0, 0, 0}; - const char *abbrev4[] = {"", "V", "TV-G", "TV-PG", "TV-14", "TV-MA"}; - const char *text4[] = {"", "V", "TV-G", "TV-PG", "TV-14", "TV-MA"}; - int lock4[] = { -1, -1, -1, 0, 0, 0}; - const char *abbrev5[] = {"", "TV-Y", "TV-Y7"}; - const char *text5[] = {"", "TV-Y", "TV-Y7"}; - int lock5[] = { -1, 0, 0}; - const char *abbrev6[] = {"", "FV", "TV-Y7"}; - const char *text6[] = {"", "FV", "TV-Y7"}; - int lock6[] = { -1, -1, 0}; - const char *abbrev7[] = {"", "N/A", "G", "PG", "PG-13", "R", "NC-17", "X", "NR"}; - const char *text7[] = {"", "MPAA Rating Not Applicable", "Suitable for AllAges", - "Parental GuidanceSuggested", "Parents Strongly Cautioned", - "Restricted, under 17 must be accompanied by adult", - "No One 17 and Under Admitted", "No One 17 and Under Admitted", - "no Rated by MPAA" - }; - int lock7[] = { -1, -1, 0, 0, 0, 0, 0, 0, 0}; - /*Extra for 'All' */ - const char *abbrevall[] = {"TV-Y", "TV-Y7", "TV-G", "TV-PG", "TV-14", "TV-MA"}; - const char *textall[] = {"TV-Y", "TV-Y7", "TV-G", "TV-PG", "TV-14", "TV-MA"}; - int lockall[] = {0, 0, 0, 0, 0, 0}; - - insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), - String8("Entire Audience"), 0, lock0, abbrev0, text0, sizeof(lock0) / sizeof(int)); - insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), - String8("Dialogue"), 1, lock1, abbrev1, text1, sizeof(lock1) / sizeof(int)); - insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), - String8("Language"), 2, lock2, abbrev2, text2, sizeof(lock2) / sizeof(int)); - insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), - String8("Sex"), 3, lock3, abbrev3, text3, sizeof(lock3) / sizeof(int)); - insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), - String8("Violence"), 4, lock4, abbrev4, text4, sizeof(lock4) / sizeof(int)); - insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), - String8("Children"), 5, lock5, abbrev5, text5, sizeof(lock5) / sizeof(int)); - insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), - String8("Fantasy violence"), 6, lock6, abbrev6, text6, sizeof(lock6) / sizeof(int)); - insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), - String8("MPAA"), 7, lock7, abbrev7, text7, sizeof(lock7) / sizeof(int)); - insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), - String8("All"), -1, lockall, abbrevall, textall, sizeof(lockall) / sizeof(int)); - /* Add Canadian Rating region 0x2 */ - const char *cabbrev0[] = {"E", "C", "C8+", "G", "PG", "14+", "18+"}; - const char *ctext0[] = {"Exempt", "Children", "8+", "General", "PG", "14+", "18+"}; - int clock0[] = {0, 0, 0, 0, 0, 0, 0}; - const char *cabbrev1[] = {"E", "G", "8 ans+", "13 ans+", "16 ans+", "18 ans+"}; - const char *ctext1[] = {"Exempt??es", "Pour tous", "8+", "13+", "16+", "18+"}; - int clock1[] = {0, 0, 0, 0, 0, 0}; - - insertNewDimension(CTvDimension::REGION_CANADA, String8("Canada"), - String8("Canadian English Language Rating"), 0, clock0, cabbrev0, ctext0, sizeof(clock0) / sizeof(int)); - insertNewDimension(CTvDimension::REGION_CANADA, String8("Canada"), - String8("Codes francais du Canada"), 1, clock1, cabbrev1, ctext1, sizeof(clock1) / sizeof(int)); + CTvDatabase::GetTvDb()->exeSql("delete from dimension_table"); + + /* Add U.S. Rating region 0x1 */ + const char *abbrev0[] = {"", "None", "TV-G", "TV-PG", "TV-14", "TV-MA"}; + const char *text0[] = {"", "None", "TV-G", "TV-PG", "TV-14", "TV-MA"}; + int lock0[] = { -1, -1, 0, 0, 0, 0}; + const char *abbrev1[] = {"", "D", "TV-G", "TV-PG", "TV-14", "TV-MA"}; + const char *text1[] = {"", "D", "TV-G", "TV-PG", "TV-14", "TV-MA"}; + int lock1[] = { -1, -1, -1, 0, 0, -1}; + const char *abbrev2[] = {"", "L", "TV-G", "TV-PG", "TV-14", "TV-MA"}; + const char *text2[] = {"", "L", "TV-G", "TV-PG", "TV-14", "TV-MA"}; + int lock2[] = { -1, -1, -1, 0, 0, 0}; + const char *abbrev3[] = {"", "S", "TV-G", "TV-PG", "TV-14", "TV-MA"}; + const char *text3[] = {"", "S", "TV-G", "TV-PG", "TV-14", "TV-MA"}; + int lock3[] = { -1, -1, -1, 0, 0, 0}; + const char *abbrev4[] = {"", "V", "TV-G", "TV-PG", "TV-14", "TV-MA"}; + const char *text4[] = {"", "V", "TV-G", "TV-PG", "TV-14", "TV-MA"}; + int lock4[] = { -1, -1, -1, 0, 0, 0}; + const char *abbrev5[] = {"", "TV-Y", "TV-Y7"}; + const char *text5[] = {"", "TV-Y", "TV-Y7"}; + int lock5[] = { -1, 0, 0}; + const char *abbrev6[] = {"", "FV", "TV-Y7"}; + const char *text6[] = {"", "FV", "TV-Y7"}; + int lock6[] = { -1, -1, 0}; + const char *abbrev7[] = {"", "N/A", "G", "PG", "PG-13", "R", "NC-17", "X", "NR"}; + const char *text7[] = {"", "MPAA Rating Not Applicable", "Suitable for AllAges", + "Parental GuidanceSuggested", "Parents Strongly Cautioned", + "Restricted, under 17 must be accompanied by adult", + "No One 17 and Under Admitted", "No One 17 and Under Admitted", + "no Rated by MPAA" + }; + int lock7[] = { -1, -1, 0, 0, 0, 0, 0, 0, 0}; + /*Extra for 'All' */ + const char *abbrevall[] = {"TV-Y", "TV-Y7", "TV-G", "TV-PG", "TV-14", "TV-MA"}; + const char *textall[] = {"TV-Y", "TV-Y7", "TV-G", "TV-PG", "TV-14", "TV-MA"}; + int lockall[] = {0, 0, 0, 0, 0, 0}; + + insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), + String8("Entire Audience"), 0, lock0, abbrev0, text0, sizeof(lock0) / sizeof(int)); + insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), + String8("Dialogue"), 1, lock1, abbrev1, text1, sizeof(lock1) / sizeof(int)); + insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), + String8("Language"), 2, lock2, abbrev2, text2, sizeof(lock2) / sizeof(int)); + insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), + String8("Sex"), 3, lock3, abbrev3, text3, sizeof(lock3) / sizeof(int)); + insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), + String8("Violence"), 4, lock4, abbrev4, text4, sizeof(lock4) / sizeof(int)); + insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), + String8("Children"), 5, lock5, abbrev5, text5, sizeof(lock5) / sizeof(int)); + insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), + String8("Fantasy violence"), 6, lock6, abbrev6, text6, sizeof(lock6) / sizeof(int)); + insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), + String8("MPAA"), 7, lock7, abbrev7, text7, sizeof(lock7) / sizeof(int)); + insertNewDimension(CTvDimension::REGION_US, String8("US (50 states + possessions)"), + String8("All"), -1, lockall, abbrevall, textall, sizeof(lockall) / sizeof(int)); + /* Add Canadian Rating region 0x2 */ + const char *cabbrev0[] = {"E", "C", "C8+", "G", "PG", "14+", "18+"}; + const char *ctext0[] = {"Exempt", "Children", "8+", "General", "PG", "14+", "18+"}; + int clock0[] = {0, 0, 0, 0, 0, 0, 0}; + const char *cabbrev1[] = {"E", "G", "8 ans+", "13 ans+", "16 ans+", "18 ans+"}; + const char *ctext1[] = {"Exempt??es", "Pour tous", "8+", "13+", "16+", "18+"}; + int clock1[] = {0, 0, 0, 0, 0, 0}; + + insertNewDimension(CTvDimension::REGION_CANADA, String8("Canada"), + String8("Canadian English Language Rating"), 0, clock0, cabbrev0, ctext0, sizeof(clock0) / sizeof(int)); + insertNewDimension(CTvDimension::REGION_CANADA, String8("Canada"), + String8("Codes francais du Canada"), 1, clock1, cabbrev1, ctext1, sizeof(clock1) / sizeof(int)); } int CTvDimension::isDimensionTblExist() { - String8 cmd = String8("select * from dimension_table"); - CTvDatabase::Cursor c; - CTvDatabase::GetTvDb()->select(cmd, c); - return c.moveToFirst(); + String8 cmd = String8("select * from dimension_table"); + CTvDatabase::Cursor c; + CTvDatabase::GetTvDb()->select(cmd, c); + return c.moveToFirst(); } diff --git a/tvapi/libtv/tvdb/CTvDimension.h b/tvapi/libtv/tvdb/CTvDimension.h index 9ad9bad..4e7a502 100644 --- a/tvapi/libtv/tvdb/CTvDimension.h +++ b/tvapi/libtv/tvdb/CTvDimension.h @@ -21,77 +21,77 @@ // TV ATSC rating dimension class CTvDimension { public: - class VChipRating { - private: - int region; - int dimension; - int value; + class VChipRating { + private: + int region; + int dimension; + int value; - public: - VChipRating(int region, int dimension, int value); - VChipRating(); - ~VChipRating(); - int getRegion(); - int getDimension(); - int getValue()const; - }; - /* 'All' is a very special case, it links to dimension0 & dimension5 */ - void createFromCursor(CTvDatabase::Cursor &c); - static int getUSPGAllLockStatus(String8 abbrev); - static void setUSPGAllLockStatus(String8 abbrev, int lock); - static void selectByID(CTvDimension &dm, int id); - static int selectByIndex(CTvDimension &dm, int ratingRegionID, int index); - static void selectByName(CTvDimension &dm, int ratingRegionID, String8 dimensionName); - static void selectByRatingRegion(CTvDimension &dm, int ratingRegionID); - bool isBlocked(CTvDimension &dm, VChipRating *definedRating); - int getID(); - int getRatingRegion(); - String8 getRatingRegionName(); - String8 getName(); - int getGraduatedScale(); - int getDefinedValue(); - //int* getLockStatus(); - int getLockStatus(int valueIndex); - void getLockStatus(String8 abbrevs[], int lock[], int *array_len); - int getAbbrev(String8 abb[]); - String8 getAbbrev(int valueIndex); - int getText(String8 tx[]); - String8 getText(int valueIndex); - void setLockStatus(int valueIndex, int status); - void setLockStatus(int status[]); - void setLockStatus(String8 abbrevs[], int locks[], int abb_size); - /**Rating regions*/ + public: + VChipRating(int region, int dimension, int value); + VChipRating(); + ~VChipRating(); + int getRegion(); + int getDimension(); + int getValue()const; + }; + /* 'All' is a very special case, it links to dimension0 & dimension5 */ + void createFromCursor(CTvDatabase::Cursor &c); + static int getUSPGAllLockStatus(String8 abbrev); + static void setUSPGAllLockStatus(String8 abbrev, int lock); + static void selectByID(CTvDimension &dm, int id); + static int selectByIndex(CTvDimension &dm, int ratingRegionID, int index); + static void selectByName(CTvDimension &dm, int ratingRegionID, String8 dimensionName); + static void selectByRatingRegion(CTvDimension &dm, int ratingRegionID); + bool isBlocked(CTvDimension &dm, VChipRating *definedRating); + int getID(); + int getRatingRegion(); + String8 getRatingRegionName(); + String8 getName(); + int getGraduatedScale(); + int getDefinedValue(); + //int* getLockStatus(); + int getLockStatus(int valueIndex); + void getLockStatus(String8 abbrevs[], int lock[], int *array_len); + int getAbbrev(String8 abb[]); + String8 getAbbrev(int valueIndex); + int getText(String8 tx[]); + String8 getText(int valueIndex); + void setLockStatus(int valueIndex, int status); + void setLockStatus(int status[]); + void setLockStatus(String8 abbrevs[], int locks[], int abb_size); + /**Rating regions*/ public: - static const int REGION_US = 0x1; - static const int REGION_CANADA = 0x2; - static const int REGION_TAIWAN = 0x3; - static const int REGION_SOUTHKOREA = 0x4; + static const int REGION_US = 0x1; + static const int REGION_CANADA = 0x2; + static const int REGION_TAIWAN = 0x3; + static const int REGION_SOUTHKOREA = 0x4; - CTvDimension(CTvDatabase::Cursor &c); - CTvDimension(); - ~CTvDimension(); + CTvDimension(CTvDatabase::Cursor &c); + CTvDimension(); + ~CTvDimension(); - static void insertNewDimension(const int region, String8 regionName, String8 name, - int indexj, int *lock, const char **abbrev, const char **text, int size); - static void builtinAtscDimensions(); - static int isDimensionTblExist(); - String8 getCurdimension(); - String8 getCurAbbr(); - String8 getCurText(); + static void insertNewDimension(const int region, String8 regionName, String8 name, + int indexj, int *lock, const char **abbrev, const char **text, int size); + static void builtinAtscDimensions(); + static int isDimensionTblExist(); + String8 getCurdimension(); + String8 getCurAbbr(); + String8 getCurText(); private: - int id; - int indexj; - int ratingRegion; - int graduatedScale; - int valuesDefined; - int *lockValues; - String8 name; - String8 ratingRegionName; - String8 *abbrevValues; - String8 *textValues; - bool isPGAll; - String8 CurvchipDimension; - String8 CurvchipAbbrev; - String8 CurvchipText; + int id; + int indexj; + int ratingRegion; + int graduatedScale; + int valuesDefined; + int *lockValues; + String8 name; + String8 ratingRegionName; + String8 *abbrevValues; + String8 *textValues; + bool isPGAll; + String8 CurvchipDimension; + String8 CurvchipAbbrev; + String8 CurvchipText; }; #endif //_CTVDIMENSION_H diff --git a/tvapi/libtv/tvdb/CTvEvent.cpp b/tvapi/libtv/tvdb/CTvEvent.cpp index b660fc9..9e1f2f6 100644 --- a/tvapi/libtv/tvdb/CTvEvent.cpp +++ b/tvapi/libtv/tvdb/CTvEvent.cpp @@ -21,208 +21,208 @@ void CTvEvent::InitFromCursor(CTvDatabase::Cursor &c) { - int col; - - col = c.getColumnIndex("db_id"); - this->id = c.getInt(col); - - col = c.getColumnIndex("event_id"); - this->dvbEventID = c.getInt(col); - - col = c.getColumnIndex("name"); - this->name = c.getString(col); - - col = c.getColumnIndex("start"); - this->start = (long)c.getInt(col); - - col = c.getColumnIndex("end"); - this->end = (long)c.getInt(col) ; - - col = c.getColumnIndex("nibble_level"); - this->dvbContent = c.getInt(col); - - col = c.getColumnIndex("parental_rating"); - this->dvbViewAge = c.getInt(col); - - col = c.getColumnIndex("sub_flag"); - this->sub_flag = c.getInt(col); - - col = c.getColumnIndex("db_srv_id"); - this->programID = c.getInt(col); - - col = c.getColumnIndex("rrt_ratings"); - String8 rrtRatings = c.getString(col); - char *tmp; - Vector<String8> ratings; - int l = 0; - char *pSave; - tmp = strtok_r(rrtRatings.lockBuffer(rrtRatings.size()), ",", &pSave); - LOGD("%s, %d, %s", "TV", __LINE__, tmp); - while (tmp != NULL) { - ratings.push_back(String8(tmp)); - tmp = strtok_r(NULL, ",", &pSave); - } - rrtRatings.unlockBuffer(); - rating_len = ratings.size(); - if (!ratings.isEmpty()) { - for (int i = 0; i < ratings.size(); i++) { - Vector<String8> rating; - tmp = strtok_r(ratings.editItemAt(i).lockBuffer(ratings.editItemAt(i).length()), " ", &pSave); - while (tmp != NULL) { - rating.push_back(String8(tmp)); - tmp = strtok_r(NULL, " ", &pSave); - } - ratings.editItemAt(i).unlockBuffer(); - if (rating.size() >= 3) { - int re = atoi(rating[0]); - int dm = atoi(rating[1]); - int vl = atoi(rating[2]); - vchipRatings.add( new CTvDimension::VChipRating(re, dm, vl)); - } else - vchipRatings.add(NULL); - } - } - - col = c.getColumnIndex("descr"); - this->description = c.getString(col); - - col = c.getColumnIndex("ext_descr"); - this->extDescription = c.getString(col); + int col; + + col = c.getColumnIndex("db_id"); + this->id = c.getInt(col); + + col = c.getColumnIndex("event_id"); + this->dvbEventID = c.getInt(col); + + col = c.getColumnIndex("name"); + this->name = c.getString(col); + + col = c.getColumnIndex("start"); + this->start = (long)c.getInt(col); + + col = c.getColumnIndex("end"); + this->end = (long)c.getInt(col) ; + + col = c.getColumnIndex("nibble_level"); + this->dvbContent = c.getInt(col); + + col = c.getColumnIndex("parental_rating"); + this->dvbViewAge = c.getInt(col); + + col = c.getColumnIndex("sub_flag"); + this->sub_flag = c.getInt(col); + + col = c.getColumnIndex("db_srv_id"); + this->programID = c.getInt(col); + + col = c.getColumnIndex("rrt_ratings"); + String8 rrtRatings = c.getString(col); + char *tmp; + Vector<String8> ratings; + int l = 0; + char *pSave; + tmp = strtok_r(rrtRatings.lockBuffer(rrtRatings.size()), ",", &pSave); + LOGD("%s, %d, %s", "TV", __LINE__, tmp); + while (tmp != NULL) { + ratings.push_back(String8(tmp)); + tmp = strtok_r(NULL, ",", &pSave); + } + rrtRatings.unlockBuffer(); + rating_len = ratings.size(); + if (!ratings.isEmpty()) { + for (int i = 0; i < ratings.size(); i++) { + Vector<String8> rating; + tmp = strtok_r(ratings.editItemAt(i).lockBuffer(ratings.editItemAt(i).length()), " ", &pSave); + while (tmp != NULL) { + rating.push_back(String8(tmp)); + tmp = strtok_r(NULL, " ", &pSave); + } + ratings.editItemAt(i).unlockBuffer(); + if (rating.size() >= 3) { + int re = atoi(rating[0]); + int dm = atoi(rating[1]); + int vl = atoi(rating[2]); + vchipRatings.add( new CTvDimension::VChipRating(re, dm, vl)); + } else + vchipRatings.add(NULL); + } + } + + col = c.getColumnIndex("descr"); + this->description = c.getString(col); + + col = c.getColumnIndex("ext_descr"); + this->extDescription = c.getString(col); } //id; CTvChannel.MODE_ATSC sourceid , other id int CTvEvent::getProgPresentEvent(int progSrc, int progID, long nowTime, CTvEvent &ev) { - String8 cmd; - CTvDatabase::Cursor c; + String8 cmd; + CTvDatabase::Cursor c; - cmd = String8("select * from evt_table where evt_table."); + cmd = String8("select * from evt_table where evt_table."); - if (progSrc == CTvChannel::MODE_ATSC) { - cmd += String8("source_id = ") + String8::format("%d", progID); - } else { - cmd += String8("db_srv_id = ") + String8::format("%d", progID); - } + if (progSrc == CTvChannel::MODE_ATSC) { + cmd += String8("source_id = ") + String8::format("%d", progID); + } else { + cmd += String8("db_srv_id = ") + String8::format("%d", progID); + } - cmd += String8(" and evt_table.start <= ") + String8::format("%ld", nowTime) + String8(" and evt_table.end > ") + String8::format("%ld", nowTime); + cmd += String8(" and evt_table.start <= ") + String8::format("%ld", nowTime) + String8(" and evt_table.end > ") + String8::format("%ld", nowTime); - int ret = CTvDatabase::GetTvDb()->select(cmd, c); + int ret = CTvDatabase::GetTvDb()->select(cmd, c); - if (c.moveToFirst()) { - ev.InitFromCursor(c); - } else { - c.close(); - return -1; - } + if (c.moveToFirst()) { + ev.InitFromCursor(c); + } else { + c.close(); + return -1; + } - c.close(); + c.close(); - return 0; + return 0; } int CTvEvent::getProgScheduleEvents(int progSrc, int progID, long start, long duration, Vector<sp<CTvEvent> > &vEv) { - String8 cmd; - long begin = start; - long end = start + duration; - - cmd = String8("select * from evt_table where evt_table."); - if (progSrc == CTvChannel::MODE_ATSC) { - cmd += String8("source_id = ") + String8::format("%d", progID); - } else { - cmd += String8("db_srv_id = ") + String8::format("%d", progID); - } - cmd += String8(" and "); - cmd += String8(" ((start < ") + String8::format("%ld", begin) + String8(" and end > ") + String8::format("%ld", begin) + String8(") ||"); - cmd += String8(" (start >= ") + String8::format("%ld", begin) + String8(" and start < ") + String8::format("%ld", end) + String8("))"); - cmd += String8(" order by evt_table.start"); - - CTvDatabase::Cursor c; - int ret = CTvDatabase::GetTvDb()->select(cmd, c); - - if (c.moveToFirst()) { - do { - vEv.add(new CTvEvent(c)); - } while (c.moveToNext()); - - } else { - c.close(); - return -1; - } - - c.close(); - return 0; + String8 cmd; + long begin = start; + long end = start + duration; + + cmd = String8("select * from evt_table where evt_table."); + if (progSrc == CTvChannel::MODE_ATSC) { + cmd += String8("source_id = ") + String8::format("%d", progID); + } else { + cmd += String8("db_srv_id = ") + String8::format("%d", progID); + } + cmd += String8(" and "); + cmd += String8(" ((start < ") + String8::format("%ld", begin) + String8(" and end > ") + String8::format("%ld", begin) + String8(") ||"); + cmd += String8(" (start >= ") + String8::format("%ld", begin) + String8(" and start < ") + String8::format("%ld", end) + String8("))"); + cmd += String8(" order by evt_table.start"); + + CTvDatabase::Cursor c; + int ret = CTvDatabase::GetTvDb()->select(cmd, c); + + if (c.moveToFirst()) { + do { + vEv.add(new CTvEvent(c)); + } while (c.moveToNext()); + + } else { + c.close(); + return -1; + } + + c.close(); + return 0; } int CTvEvent::getATVProgEvent(int progSrc, int progID, CTvEvent &ev) { - String8 cmd; - CTvDatabase::Cursor c; + String8 cmd; + CTvDatabase::Cursor c; - cmd = String8("select * from evt_table where evt_table."); + cmd = String8("select * from evt_table where evt_table."); - if (progSrc == CTvChannel::MODE_ATSC) { - LOGD("%s, %d MODE_ATSC", "TV", __LINE__); - cmd += String8("source_id = ") + String8::format("%d", progID); - } else { - LOGD("%s, %d MODE_ANALOG", "TV", __LINE__); - cmd += String8("db_srv_id = ") + String8::format("%d", progID); - } + if (progSrc == CTvChannel::MODE_ATSC) { + LOGD("%s, %d MODE_ATSC", "TV", __LINE__); + cmd += String8("source_id = ") + String8::format("%d", progID); + } else { + LOGD("%s, %d MODE_ANALOG", "TV", __LINE__); + cmd += String8("db_srv_id = ") + String8::format("%d", progID); + } - //cmd += String8(" and evt_table.start <= ") + String8::format("%ld", nowTime) + String8(" and evt_table.end > ") + String8::format("%ld", nowTime); + //cmd += String8(" and evt_table.start <= ") + String8::format("%ld", nowTime) + String8(" and evt_table.end > ") + String8::format("%ld", nowTime); - int ret = CTvDatabase::GetTvDb()->select(cmd, c); + int ret = CTvDatabase::GetTvDb()->select(cmd, c); - if (c.moveToFirst()) { - ev.InitFromCursor(c); - } else { - c.close(); - return -1; - } + if (c.moveToFirst()) { + ev.InitFromCursor(c); + } else { + c.close(); + return -1; + } - c.close(); + c.close(); - return 0; + return 0; } int CTvEvent::CleanAllEvent() { - CTvDatabase::GetTvDb()->exeSql("delete from evt_table"); - return 0; + CTvDatabase::GetTvDb()->exeSql("delete from evt_table"); + return 0; } int CTvEvent::selectByID(int id, CTvEvent &evt) { - CTvDatabase::Cursor c; - String8 sql; - - sql = String8("select * from evt_table where evt_table.db_id = ") + String8::format("%d", id); - CTvDatabase::GetTvDb()->select(sql.string(), c); - if (c.moveToFirst()) { - evt.InitFromCursor(c); - } else { - c.close(); - return -1; - } - - c.close(); - return 0; + CTvDatabase::Cursor c; + String8 sql; + + sql = String8("select * from evt_table where evt_table.db_id = ") + String8::format("%d", id); + CTvDatabase::GetTvDb()->select(sql.string(), c); + if (c.moveToFirst()) { + evt.InitFromCursor(c); + } else { + c.close(); + return -1; + } + + c.close(); + return 0; } int CTvEvent::bookEvent(int evtId, bool bBookFlag) { - String8 cmd; + String8 cmd; - cmd = String8("update evt_table set sub_flag=") + String8::format("%d", bBookFlag) - + String8(" where event_id=") + String8::format("%d", evtId); + cmd = String8("update evt_table set sub_flag=") + String8::format("%d", bBookFlag) + + String8(" where event_id=") + String8::format("%d", evtId); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); - return 0; + return 0; } CTvEvent::CTvEvent(CTvDatabase::Cursor &c) { - InitFromCursor(c); + InitFromCursor(c); } CTvEvent::CTvEvent() @@ -231,12 +231,12 @@ CTvEvent::CTvEvent() CTvEvent::~CTvEvent() { - int size = vchipRatings.size(); - for (int i = 0; i < size; i++) - delete vchipRatings[i]; + int size = vchipRatings.size(); + for (int i = 0; i < size; i++) + delete vchipRatings[i]; } Vector<CTvDimension::VChipRating *> CTvEvent::getVChipRatings() { - return vchipRatings; + return vchipRatings; } diff --git a/tvapi/libtv/tvdb/CTvEvent.h b/tvapi/libtv/tvdb/CTvEvent.h index 61a89bf..5791bfd 100644 --- a/tvapi/libtv/tvdb/CTvEvent.h +++ b/tvapi/libtv/tvdb/CTvEvent.h @@ -20,66 +20,66 @@ class CTvEvent : public LightRefBase<CTvEvent> { public: - CTvEvent(CTvDatabase::Cursor &c); - CTvEvent(); - ~CTvEvent(); + CTvEvent(CTvDatabase::Cursor &c); + CTvEvent(); + ~CTvEvent(); - int getProgPresentEvent(int progSrc, int progID, long nowTime, CTvEvent &ev); - int getProgScheduleEvents(int progSrc, int progID, long start, long duration, Vector<sp<CTvEvent> > &vEv); - int getATVProgEvent(int progSrc, int progID, CTvEvent &ev); - int bookEvent(int evtId, bool bBookFlag); - static int selectByID(int id, CTvEvent &p); - static int CleanAllEvent(); - String8 &getName() - { - return name; - }; - String8 &getDescription() - { - return description; - }; - String8 &getExtDescription() - { - return extDescription; - }; - long getStartTime() - { - return start; - }; - long getEndTime() - { - return end; - }; - int getSubFlag() - { - return sub_flag; - }; - int getProgramId() - { - return programID; - }; - int getEventId() - { - return dvbEventID; - }; - Vector<CTvDimension::VChipRating *> getVChipRatings(); + int getProgPresentEvent(int progSrc, int progID, long nowTime, CTvEvent &ev); + int getProgScheduleEvents(int progSrc, int progID, long start, long duration, Vector<sp<CTvEvent> > &vEv); + int getATVProgEvent(int progSrc, int progID, CTvEvent &ev); + int bookEvent(int evtId, bool bBookFlag); + static int selectByID(int id, CTvEvent &p); + static int CleanAllEvent(); + String8 &getName() + { + return name; + }; + String8 &getDescription() + { + return description; + }; + String8 &getExtDescription() + { + return extDescription; + }; + long getStartTime() + { + return start; + }; + long getEndTime() + { + return end; + }; + int getSubFlag() + { + return sub_flag; + }; + int getProgramId() + { + return programID; + }; + int getEventId() + { + return dvbEventID; + }; + Vector<CTvDimension::VChipRating *> getVChipRatings(); private: - void InitFromCursor(CTvDatabase::Cursor &c); + void InitFromCursor(CTvDatabase::Cursor &c); - int id; - int dvbEventID; - String8 name; - String8 description; - String8 extDescription; - int programID; - long start; - long end; - int dvbContent; - int dvbViewAge; - int sub_flag; - int rating_len; - Vector<CTvDimension::VChipRating *> vchipRatings; + int id; + int dvbEventID; + String8 name; + String8 description; + String8 extDescription; + int programID; + long start; + long end; + int dvbContent; + int dvbViewAge; + int sub_flag; + int rating_len; + Vector<CTvDimension::VChipRating *> vchipRatings; }; #endif //_CTVEVENT_H diff --git a/tvapi/libtv/tvdb/CTvGroup.cpp b/tvapi/libtv/tvdb/CTvGroup.cpp index dfb043f..c5b6249 100644 --- a/tvapi/libtv/tvdb/CTvGroup.cpp +++ b/tvapi/libtv/tvdb/CTvGroup.cpp @@ -14,8 +14,8 @@ Vector<CTvGroup> CTvGroup::selectByGroup() { - Vector<CTvGroup> vGroup; - return vGroup; + Vector<CTvGroup> vGroup; + return vGroup; } void CTvGroup::addGroup() diff --git a/tvapi/libtv/tvdb/CTvGroup.h b/tvapi/libtv/tvdb/CTvGroup.h index 251ca95..3e92a2e 100644 --- a/tvapi/libtv/tvdb/CTvGroup.h +++ b/tvapi/libtv/tvdb/CTvGroup.h @@ -18,13 +18,13 @@ using namespace android; // Group¶ÔÓ¦DTVÖеÄÒ»¸ö½ÚÄ¿·Ö×é class CTvGroup { public: - CTvGroup(); - ~CTvGroup(); - // È¡µÃËùÓнÚÄ¿·Ö×éÐÅÏ¢ - static Vector<CTvGroup> selectByGroup(); - static void addGroup(); - static void deleteGroup(); - static void editGroup(); + CTvGroup(); + ~CTvGroup(); + // È¡µÃËùÓнÚÄ¿·Ö×éÐÅÏ¢ + static Vector<CTvGroup> selectByGroup(); + static void addGroup(); + static void deleteGroup(); + static void editGroup(); }; #endif //_CTVGROUP_H diff --git a/tvapi/libtv/tvdb/CTvProgram.cpp b/tvapi/libtv/tvdb/CTvProgram.cpp index fdd1c68..d9dca52 100644 --- a/tvapi/libtv/tvdb/CTvProgram.cpp +++ b/tvapi/libtv/tvdb/CTvProgram.cpp @@ -22,334 +22,334 @@ CTvProgram::CTvProgram(CTvDatabase::Cursor &c) { - CreateFromCursor(c); + CreateFromCursor(c); } CTvProgram::~CTvProgram() { - //free mem - // video - if (mpVideo != NULL) delete mpVideo; - // audios - int size = mvAudios.size(); - for (int i = 0; i < size; i++) - delete mvAudios[i]; - // subtitles - size = mvSubtitles.size(); - for (int i = 0; i < size; i++) - delete mvSubtitles[i]; - // teletexts - size = mvTeletexts.size(); - for (int i = 0; i < size; i++) - delete mvTeletexts[i]; + //free mem + // video + if (mpVideo != NULL) delete mpVideo; + // audios + int size = mvAudios.size(); + for (int i = 0; i < size; i++) + delete mvAudios[i]; + // subtitles + size = mvSubtitles.size(); + for (int i = 0; i < size; i++) + delete mvSubtitles[i]; + // teletexts + size = mvTeletexts.size(); + for (int i = 0; i < size; i++) + delete mvTeletexts[i]; } CTvProgram::CTvProgram(int channelID, int type) { - mpVideo = NULL; + mpVideo = NULL; } CTvProgram::CTvProgram() { - mpVideo = NULL; + mpVideo = NULL; } int CTvProgram::CreateFromCursor(CTvDatabase::Cursor &c) { - int i = 0; - int col; - int num, type; - int major, minor; - char tmp_buf[256]; - //LOGD("CTvProgram::CreateFromCursor"); - col = c.getColumnIndex("db_id"); - this->id = c.getInt(col); - - col = c.getColumnIndex("source_id"); - this->sourceID = c.getInt(col); - - col = c.getColumnIndex("src"); - this->src = c.getInt(col); - - col = c.getColumnIndex("service_id"); - this->dvbServiceID = c.getInt(col); - - col = c.getColumnIndex("db_ts_id"); - this->channelID = c.getInt(col); - - col = c.getColumnIndex("name"); - this->name = c.getString(col); - - col = c.getColumnIndex("chan_num"); - num = c.getInt(col); - - col = c.getColumnIndex("chan_order"); - this->chanOrderNum = c.getInt(col); - - col = c.getColumnIndex("major_chan_num"); - major = c.getInt(col); - - col = c.getColumnIndex("minor_chan_num"); - minor = c.getInt(col); - - col = c.getColumnIndex("aud_track"); - this->audioTrack = c.getInt(col); - - //节目å·ä¿¡æ¯åˆ?? - if (src == CTvChannel::MODE_ATSC || (src == CTvChannel::MODE_ANALOG && major > 0)) { - this->major = major; - this->minor = minor; - this->atscMode = true; - this->minorCheck = MINOR_CHECK_NONE; - } else { - this->major = num; - this->minor = 0; - this->atscMode = false; - this->minorCheck = MINOR_CHECK_NONE; - } - - col = c.getColumnIndex("service_type"); - this->type = c.getInt(col); - - col = c.getColumnIndex("pmt_pid"); - pmtPID = c.getInt(col); - - //LOGD("CTvProgram::CreateFromCursor type = %d", this->type); - col = c.getColumnIndex("skip"); - this->skip = c.getInt(col); - - col = c.getColumnIndex("lock"); - this->lock = (c.getInt(col) != 0); - - col = c.getColumnIndex("scrambled_flag"); - this->scrambled = (c.getInt(col) != 0); - - col = c.getColumnIndex("favor"); - this->favorite = (c.getInt(col) != 0); - - col = c.getColumnIndex("volume"); - this->volume = c.getInt(col); - - //Video - int pid, fmt; - col = c.getColumnIndex("vid_pid"); - pid = c.getInt(col); - - col = c.getColumnIndex("vid_fmt"); - fmt = c.getInt(col); - - //LOGD("----------vpid = %d", pid); - this->mpVideo = new Video(pid, fmt); - //LOGD("----------vpid = %d", this->mpVideo->getPID()); - - - //Audio - String8 strPids; - String8 strFmts; - String8 strLangs; - int count = 0; - col = c.getColumnIndex("aud_pids"); - strPids = c.getString(col); - - col = c.getColumnIndex("aud_fmts"); - strFmts = c.getString(col); - - col = c.getColumnIndex("aud_langs"); - strLangs = c.getString(col); - col = c.getColumnIndex("current_aud"); - this->currAudTrackIndex = c.getInt(col); - - char *tmp; - Vector<String8> vpid ; - Vector<String8> vfmt ; - Vector<String8> vlang; - - char *pSave; - tmp = strtok_r(strPids.lockBuffer(strPids.length()), " ", &pSave); - while (tmp != NULL) { - vpid.push_back(String8(tmp)); - tmp = strtok_r(NULL, " ", &pSave); - } - strPids.unlockBuffer(); - - tmp = strtok_r(strFmts.lockBuffer(strFmts.length()), " ", &pSave); - while (tmp != NULL) { - vfmt.push_back(String8(tmp)); - tmp = strtok_r(NULL, " ", &pSave); - } - strFmts.unlockBuffer(); - - tmp = strtok_r(strLangs.lockBuffer(strLangs.length()), " ", &pSave); - - while (tmp != NULL) { - vlang.push_back(String8(tmp)); - tmp = strtok_r(NULL, " ", &pSave); - } - strLangs.unlockBuffer(); - - //check empty aud_langs - for (i = vlang.size(); i < vpid.size(); i++) { - sprintf(tmp_buf, "Audio%d", i + 1); - vlang.push_back(String8(tmp_buf)); - LOGE("%s, aud_langs is empty, add dummy data (%s).\n", "TV", tmp_buf); - } - - //String8 l(vlang[i]); - for (i = 0; i < vpid.size(); i++) { - int i_pid = atoi(vpid[i]); - int i_fmt = atoi(vfmt[i]); - mvAudios.push_back(new Audio(i_pid, vlang[i], i_fmt)); - } - - - - /* parse subtitles */ - vpid.clear(); - vlang.clear(); - Vector<String8> vcid; - Vector<String8> vaid; - String8 strCids; - String8 strAids; - - col = c.getColumnIndex("sub_pids"); - strPids = c.getString(col); - - col = c.getColumnIndex("sub_composition_page_ids"); - strCids = c.getString(col); - - col = c.getColumnIndex("sub_ancillary_page_ids"); - strAids = c.getString(col); - - - col = c.getColumnIndex("sub_langs"); - strLangs = c.getString(col); - - tmp = strtok_r(strPids.lockBuffer(strPids.length()), " ", &pSave); - while (tmp != NULL) { - vpid.push_back(String8(tmp)); - tmp = strtok_r(NULL, " ", &pSave); - } - strPids.unlockBuffer(); - - tmp = strtok_r(strCids.lockBuffer(strCids.length()), " ", &pSave); - while (tmp != NULL) { - vcid.push_back(String8(tmp)); - tmp = strtok_r(NULL, " ", &pSave); - } - strCids.unlockBuffer(); - - tmp = strtok_r(strAids.lockBuffer(strAids.length()), " ", &pSave); - while (tmp != NULL) { - vaid.push_back(String8(tmp)); - tmp = strtok_r(NULL, " ", &pSave); - } - strAids.unlockBuffer(); - - tmp = strtok_r(strLangs.lockBuffer(strLangs.length()), " ", &pSave); - while (tmp != NULL) { - vlang.push_back(String8(tmp)); - tmp = strtok_r(NULL, " ", &pSave); - } - strLangs.unlockBuffer(); - - //Subtitle - for (int i = 0; i < vpid.size(); i++) { - this->mvSubtitles.push_back(new Subtitle( - atoi(vpid[i]), - String8(vlang[i]), Subtitle::TYPE_DVB_SUBTITLE, - atoi(vcid[i]), - atoi(vaid[i]))); - } - - /* - parse teletexts - int ttx_count = 0, ttx_sub_count = 0; - String8 str_ttx_pids, str_ttx_types, str_mag_nos, str_page_nos, str_ttx_langs; - Vector<String8> v_ttx_pids, v_ttx_types, v_mag_nos, v_page_nos, v_ttx_langs; - col = c.getColumnIndex("ttx_pids"); - str_ttx_pids = c.getString(col); - - col = c.getColumnIndex("ttx_types"); - str_ttx_types = c.getString(col); - - col = c.getColumnIndex("ttx_magazine_nos"); - str_mag_nos = c.getString(col); - - col = c.getColumnIndex("ttx_page_nos"); - str_page_nos = c.getString(col); - - col = c.getColumnIndex("ttx_langs"); - str_ttx_langs = c.getString(col); - - tmp = strtok_r(str_ttx_pids.lockBuffer(str_ttx_pids.length()), " ", &pSave); - while (tmp != NULL) { - v_ttx_pids.push_back(String8(tmp)); - tmp = strtok_r(NULL, " ", &pSave); - } - str_ttx_pids.unlockBuffer(); - - tmp = strtok_r(str_ttx_types.lockBuffer(str_ttx_types.length()), " ", &pSave); - while (tmp != NULL) { - v_ttx_types.push_back(String8(tmp)); - tmp = strtok_r(NULL, " ", &pSave); - } - str_ttx_types.unlockBuffer(); - - tmp = strtok_r(str_mag_nos.lockBuffer(str_mag_nos.length()), " ", &pSave); - while (tmp != NULL) { - v_mag_nos.push_back(String8(tmp)); - tmp = strtok_r(NULL, " ", &pSave); - } - str_mag_nos.unlockBuffer(); - - tmp = strtok_r(str_page_nos.lockBuffer(str_page_nos.length()), " ", &pSave); - while (tmp != NULL) { - v_page_nos.push_back(String8(tmp)); - tmp = strtok_r(NULL, " ", &pSave); - } - str_page_nos.unlockBuffer(); - - tmp = strtok_r(str_ttx_langs.lockBuffer(str_ttx_langs.length()), " ", &pSave); - while (tmp != NULL) { - v_ttx_langs.push_back(String8(tmp)); - tmp = strtok_r(NULL, " ", &pSave); - } - str_ttx_langs.unlockBuffer(); - - - for (int i = 0; i < v_ttx_pids.size(); i++) { - int ttype = atoi(v_ttx_types[i]); - if (ttype == 0x2 || ttype == 0x5) { - this->mvSubtitles.push_back(new Subtitle( - atoi(v_ttx_pids[i].string()), - String8(v_ttx_langs[i]), Subtitle::TYPE_DTV_TELETEXT, - atoi(v_mag_nos[i]), - atoi(v_page_nos[i]))); - } else { - this->mvTeletexts.push_back(new Teletext( - atoi(v_ttx_pids[i]), - String8(v_ttx_langs[i]), - atoi(v_mag_nos[i]), - atoi(v_page_nos[i]))); - } - } - */ - return 0; + int i = 0; + int col; + int num, type; + int major, minor; + char tmp_buf[256]; + //LOGD("CTvProgram::CreateFromCursor"); + col = c.getColumnIndex("db_id"); + this->id = c.getInt(col); + + col = c.getColumnIndex("source_id"); + this->sourceID = c.getInt(col); + + col = c.getColumnIndex("src"); + this->src = c.getInt(col); + + col = c.getColumnIndex("service_id"); + this->dvbServiceID = c.getInt(col); + + col = c.getColumnIndex("db_ts_id"); + this->channelID = c.getInt(col); + + col = c.getColumnIndex("name"); + this->name = c.getString(col); + + col = c.getColumnIndex("chan_num"); + num = c.getInt(col); + + col = c.getColumnIndex("chan_order"); + this->chanOrderNum = c.getInt(col); + + col = c.getColumnIndex("major_chan_num"); + major = c.getInt(col); + + col = c.getColumnIndex("minor_chan_num"); + minor = c.getInt(col); + + col = c.getColumnIndex("aud_track"); + this->audioTrack = c.getInt(col); + + //节目å·ä¿¡æ¯åˆ?? + if (src == CTvChannel::MODE_ATSC || (src == CTvChannel::MODE_ANALOG && major > 0)) { + this->major = major; + this->minor = minor; + this->atscMode = true; + this->minorCheck = MINOR_CHECK_NONE; + } else { + this->major = num; + this->minor = 0; + this->atscMode = false; + this->minorCheck = MINOR_CHECK_NONE; + } + + col = c.getColumnIndex("service_type"); + this->type = c.getInt(col); + + col = c.getColumnIndex("pmt_pid"); + pmtPID = c.getInt(col); + + //LOGD("CTvProgram::CreateFromCursor type = %d", this->type); + col = c.getColumnIndex("skip"); + this->skip = c.getInt(col); + + col = c.getColumnIndex("lock"); + this->lock = (c.getInt(col) != 0); + + col = c.getColumnIndex("scrambled_flag"); + this->scrambled = (c.getInt(col) != 0); + + col = c.getColumnIndex("favor"); + this->favorite = (c.getInt(col) != 0); + + col = c.getColumnIndex("volume"); + this->volume = c.getInt(col); + + //Video + int pid, fmt; + col = c.getColumnIndex("vid_pid"); + pid = c.getInt(col); + + col = c.getColumnIndex("vid_fmt"); + fmt = c.getInt(col); + + //LOGD("----------vpid = %d", pid); + this->mpVideo = new Video(pid, fmt); + //LOGD("----------vpid = %d", this->mpVideo->getPID()); + + + //Audio + String8 strPids; + String8 strFmts; + String8 strLangs; + int count = 0; + col = c.getColumnIndex("aud_pids"); + strPids = c.getString(col); + + col = c.getColumnIndex("aud_fmts"); + strFmts = c.getString(col); + + col = c.getColumnIndex("aud_langs"); + strLangs = c.getString(col); + col = c.getColumnIndex("current_aud"); + this->currAudTrackIndex = c.getInt(col); + + char *tmp; + Vector<String8> vpid ; + Vector<String8> vfmt ; + Vector<String8> vlang; + + char *pSave; + tmp = strtok_r(strPids.lockBuffer(strPids.length()), " ", &pSave); + while (tmp != NULL) { + vpid.push_back(String8(tmp)); + tmp = strtok_r(NULL, " ", &pSave); + } + strPids.unlockBuffer(); + + tmp = strtok_r(strFmts.lockBuffer(strFmts.length()), " ", &pSave); + while (tmp != NULL) { + vfmt.push_back(String8(tmp)); + tmp = strtok_r(NULL, " ", &pSave); + } + strFmts.unlockBuffer(); + + tmp = strtok_r(strLangs.lockBuffer(strLangs.length()), " ", &pSave); + + while (tmp != NULL) { + vlang.push_back(String8(tmp)); + tmp = strtok_r(NULL, " ", &pSave); + } + strLangs.unlockBuffer(); + + //check empty aud_langs + for (i = vlang.size(); i < vpid.size(); i++) { + sprintf(tmp_buf, "Audio%d", i + 1); + vlang.push_back(String8(tmp_buf)); + LOGE("%s, aud_langs is empty, add dummy data (%s).\n", "TV", tmp_buf); + } + + //String8 l(vlang[i]); + for (i = 0; i < vpid.size(); i++) { + int i_pid = atoi(vpid[i]); + int i_fmt = atoi(vfmt[i]); + mvAudios.push_back(new Audio(i_pid, vlang[i], i_fmt)); + } + + + + /* parse subtitles */ + vpid.clear(); + vlang.clear(); + Vector<String8> vcid; + Vector<String8> vaid; + String8 strCids; + String8 strAids; + + col = c.getColumnIndex("sub_pids"); + strPids = c.getString(col); + + col = c.getColumnIndex("sub_composition_page_ids"); + strCids = c.getString(col); + + col = c.getColumnIndex("sub_ancillary_page_ids"); + strAids = c.getString(col); + + + col = c.getColumnIndex("sub_langs"); + strLangs = c.getString(col); + + tmp = strtok_r(strPids.lockBuffer(strPids.length()), " ", &pSave); + while (tmp != NULL) { + vpid.push_back(String8(tmp)); + tmp = strtok_r(NULL, " ", &pSave); + } + strPids.unlockBuffer(); + + tmp = strtok_r(strCids.lockBuffer(strCids.length()), " ", &pSave); + while (tmp != NULL) { + vcid.push_back(String8(tmp)); + tmp = strtok_r(NULL, " ", &pSave); + } + strCids.unlockBuffer(); + + tmp = strtok_r(strAids.lockBuffer(strAids.length()), " ", &pSave); + while (tmp != NULL) { + vaid.push_back(String8(tmp)); + tmp = strtok_r(NULL, " ", &pSave); + } + strAids.unlockBuffer(); + + tmp = strtok_r(strLangs.lockBuffer(strLangs.length()), " ", &pSave); + while (tmp != NULL) { + vlang.push_back(String8(tmp)); + tmp = strtok_r(NULL, " ", &pSave); + } + strLangs.unlockBuffer(); + + //Subtitle + for (int i = 0; i < vpid.size(); i++) { + this->mvSubtitles.push_back(new Subtitle( + atoi(vpid[i]), + String8(vlang[i]), Subtitle::TYPE_DVB_SUBTITLE, + atoi(vcid[i]), + atoi(vaid[i]))); + } + + /* + parse teletexts + int ttx_count = 0, ttx_sub_count = 0; + String8 str_ttx_pids, str_ttx_types, str_mag_nos, str_page_nos, str_ttx_langs; + Vector<String8> v_ttx_pids, v_ttx_types, v_mag_nos, v_page_nos, v_ttx_langs; + col = c.getColumnIndex("ttx_pids"); + str_ttx_pids = c.getString(col); + + col = c.getColumnIndex("ttx_types"); + str_ttx_types = c.getString(col); + + col = c.getColumnIndex("ttx_magazine_nos"); + str_mag_nos = c.getString(col); + + col = c.getColumnIndex("ttx_page_nos"); + str_page_nos = c.getString(col); + + col = c.getColumnIndex("ttx_langs"); + str_ttx_langs = c.getString(col); + + tmp = strtok_r(str_ttx_pids.lockBuffer(str_ttx_pids.length()), " ", &pSave); + while (tmp != NULL) { + v_ttx_pids.push_back(String8(tmp)); + tmp = strtok_r(NULL, " ", &pSave); + } + str_ttx_pids.unlockBuffer(); + + tmp = strtok_r(str_ttx_types.lockBuffer(str_ttx_types.length()), " ", &pSave); + while (tmp != NULL) { + v_ttx_types.push_back(String8(tmp)); + tmp = strtok_r(NULL, " ", &pSave); + } + str_ttx_types.unlockBuffer(); + + tmp = strtok_r(str_mag_nos.lockBuffer(str_mag_nos.length()), " ", &pSave); + while (tmp != NULL) { + v_mag_nos.push_back(String8(tmp)); + tmp = strtok_r(NULL, " ", &pSave); + } + str_mag_nos.unlockBuffer(); + + tmp = strtok_r(str_page_nos.lockBuffer(str_page_nos.length()), " ", &pSave); + while (tmp != NULL) { + v_page_nos.push_back(String8(tmp)); + tmp = strtok_r(NULL, " ", &pSave); + } + str_page_nos.unlockBuffer(); + + tmp = strtok_r(str_ttx_langs.lockBuffer(str_ttx_langs.length()), " ", &pSave); + while (tmp != NULL) { + v_ttx_langs.push_back(String8(tmp)); + tmp = strtok_r(NULL, " ", &pSave); + } + str_ttx_langs.unlockBuffer(); + + + for (int i = 0; i < v_ttx_pids.size(); i++) { + int ttype = atoi(v_ttx_types[i]); + if (ttype == 0x2 || ttype == 0x5) { + this->mvSubtitles.push_back(new Subtitle( + atoi(v_ttx_pids[i].string()), + String8(v_ttx_langs[i]), Subtitle::TYPE_DTV_TELETEXT, + atoi(v_mag_nos[i]), + atoi(v_page_nos[i]))); + } else { + this->mvTeletexts.push_back(new Teletext( + atoi(v_ttx_pids[i]), + String8(v_ttx_langs[i]), + atoi(v_mag_nos[i]), + atoi(v_page_nos[i]))); + } + } + */ + return 0; } int CTvProgram::selectProgramInChannelByNumber(int channelID, int num, CTvDatabase::Cursor &c) { - String8 cmd = String8("select * from srv_table where db_ts_id = ") + String8::format("%d", channelID) + String8(" and "); - cmd += String8("chan_num = ") + String8::format("%d", num); - return CTvDatabase::GetTvDb()->select(cmd, c); + String8 cmd = String8("select * from srv_table where db_ts_id = ") + String8::format("%d", channelID) + String8(" and "); + cmd += String8("chan_num = ") + String8::format("%d", num); + return CTvDatabase::GetTvDb()->select(cmd, c); } int CTvProgram::selectProgramInChannelByNumber(int channelID, int major, int minor, CTvDatabase::Cursor &c) { - String8 cmd = String8("select * from srv_table where db_ts_id = ") + String8::format("%d", channelID) + String8(" and "); - cmd += String8("major_chan_num = ") + String8::format("%d", major) + String8(" and minor_chan_num = ") + String8::format("%d", minor); + String8 cmd = String8("select * from srv_table where db_ts_id = ") + String8::format("%d", channelID) + String8(" and "); + cmd += String8("major_chan_num = ") + String8::format("%d", major) + String8(" and minor_chan_num = ") + String8::format("%d", minor); - return CTvDatabase::GetTvDb()->select(cmd, c); + return CTvDatabase::GetTvDb()->select(cmd, c); } /** @@ -357,55 +357,55 @@ int CTvProgram::selectProgramInChannelByNumber(int channelID, int major, int min */ CTvProgram::CTvProgram(int channelID, int type, int num, int skipFlag) { - CTvChannel channel; - int ret = CTvChannel::selectByID(channelID, channel); - if (ret != 0) { - //Log.d(TAG, "Cannot add new program, invalid channel id "+channelID); - this->id = -1; - } else { - CTvDatabase::Cursor c ; - selectProgramInChannelByNumber(channelID, num, c); - - if (c.moveToFirst()) { - /*Construct*/ - CreateFromCursor(c); - } else { - String8 tpids = String8(""), ttypes = String8(""), tmagnums = String8(""), tpgnums = String8(""), tlangs = String8(""); - String8 spids = String8(""), stypes = String8(""), scpgids = String8(""), sapgids = String8(""), slangs = String8(""); - - /*add a new atv program to database*/ - String8 cmd = String8("insert into srv_table(db_net_id,db_ts_id,service_id,src,name,service_type,"); - cmd += String8("eit_schedule_flag,eit_pf_flag,running_status,free_ca_mode,volume,aud_track,vid_pid,"); - cmd += String8("vid_fmt,aud_pids,aud_fmts,aud_langs,skip,lock,chan_num,major_chan_num,"); - cmd += String8("minor_chan_num,access_controlled,hidden,hide_guide,source_id,favor,current_aud,"); - cmd += String8("current_sub,sub_pids,sub_types,sub_composition_page_ids,sub_ancillary_page_ids,sub_langs,"); - cmd += String8("current_ttx,ttx_pids,ttx_types,ttx_magazine_nos,ttx_page_nos,ttx_langs,"); - cmd += String8("db_sat_para_id,scrambled_flag,lcn,hd_lcn,sd_lcn,default_chan_num,chan_order) "); - cmd += String8("values(-1,") + String8::format("%d", channelID) + String8(",65535,") + String8::format("%d", channel.getMode()) + String8(",'',") + String8::format("%d", type) + String8(","); - cmd += String8("0,0,0,0,0,0,8191,"); - int chanNum = num; - int majorNum = 0; - cmd += String8("-1,'','','',") + String8::format("%d", skipFlag) + String8(",0,") + String8::format("%d", chanNum) + String8(",") + String8::format("%d", majorNum) + String8(","); - cmd += String8("") + /*num.getMinor()*/String8("0") + String8(",0,0,0,-1,0,-1,"); - cmd += String8("-1,'") + spids + String8("','") + stypes + String8("','") + scpgids + String8("','") + sapgids + String8("','") + slangs + String8("',"); - cmd += String8("-1,'") + tpids + String8("','") + ttypes + String8("','") + tmagnums + String8("','") + tpgnums + String8("','") + tlangs + String8("',"); - cmd += String8("-1,0,-1,-1,-1,-1,0)"); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); - - CTvDatabase::Cursor cr; - selectProgramInChannelByNumber(channelID, num, cr); - if (cr.moveToFirst()) { - /*Construct*/ - CreateFromCursor(cr); - } else { - /*A critical error*/ - //Log.d(TAG, "Cannot add new program, sqlite error"); - this->id = -1; - } - cr.close(); - } - c.close(); - } + CTvChannel channel; + int ret = CTvChannel::selectByID(channelID, channel); + if (ret != 0) { + //Log.d(TAG, "Cannot add new program, invalid channel id "+channelID); + this->id = -1; + } else { + CTvDatabase::Cursor c ; + selectProgramInChannelByNumber(channelID, num, c); + + if (c.moveToFirst()) { + /*Construct*/ + CreateFromCursor(c); + } else { + String8 tpids = String8(""), ttypes = String8(""), tmagnums = String8(""), tpgnums = String8(""), tlangs = String8(""); + String8 spids = String8(""), stypes = String8(""), scpgids = String8(""), sapgids = String8(""), slangs = String8(""); + + /*add a new atv program to database*/ + String8 cmd = String8("insert into srv_table(db_net_id,db_ts_id,service_id,src,name,service_type,"); + cmd += String8("eit_schedule_flag,eit_pf_flag,running_status,free_ca_mode,volume,aud_track,vid_pid,"); + cmd += String8("vid_fmt,aud_pids,aud_fmts,aud_langs,skip,lock,chan_num,major_chan_num,"); + cmd += String8("minor_chan_num,access_controlled,hidden,hide_guide,source_id,favor,current_aud,"); + cmd += String8("current_sub,sub_pids,sub_types,sub_composition_page_ids,sub_ancillary_page_ids,sub_langs,"); + cmd += String8("current_ttx,ttx_pids,ttx_types,ttx_magazine_nos,ttx_page_nos,ttx_langs,"); + cmd += String8("db_sat_para_id,scrambled_flag,lcn,hd_lcn,sd_lcn,default_chan_num,chan_order) "); + cmd += String8("values(-1,") + String8::format("%d", channelID) + String8(",65535,") + String8::format("%d", channel.getMode()) + String8(",'',") + String8::format("%d", type) + String8(","); + cmd += String8("0,0,0,0,0,0,8191,"); + int chanNum = num; + int majorNum = 0; + cmd += String8("-1,'','','',") + String8::format("%d", skipFlag) + String8(",0,") + String8::format("%d", chanNum) + String8(",") + String8::format("%d", majorNum) + String8(","); + cmd += String8("") + /*num.getMinor()*/String8("0") + String8(",0,0,0,-1,0,-1,"); + cmd += String8("-1,'") + spids + String8("','") + stypes + String8("','") + scpgids + String8("','") + sapgids + String8("','") + slangs + String8("',"); + cmd += String8("-1,'") + tpids + String8("','") + ttypes + String8("','") + tmagnums + String8("','") + tpgnums + String8("','") + tlangs + String8("',"); + cmd += String8("-1,0,-1,-1,-1,-1,0)"); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); + + CTvDatabase::Cursor cr; + selectProgramInChannelByNumber(channelID, num, cr); + if (cr.moveToFirst()) { + /*Construct*/ + CreateFromCursor(cr); + } else { + /*A critical error*/ + //Log.d(TAG, "Cannot add new program, sqlite error"); + this->id = -1; + } + cr.close(); + } + c.close(); + } } @@ -415,55 +415,55 @@ CTvProgram::CTvProgram(int channelID, int type, int num, int skipFlag) */ CTvProgram::CTvProgram(int channelID, int type, int major, int minor, int skipFlag) { - CTvChannel channel; - int ret = CTvChannel::selectByID(channelID, channel); - if (ret != 0) { - //Log.d(TAG, "Cannot add new program, invalid channel id "+channelID); - this->id = -1; - } else { - CTvDatabase::Cursor c ; - selectProgramInChannelByNumber(channelID, major, minor, c); - - if (c.moveToFirst()) { - /*Construct*/ - CreateFromCursor(c); - } else { - String8 tpids = String8(""), ttypes = String8(""), tmagnums = String8(""), tpgnums = String8(""), tlangs = String8(""); - String8 spids = String8(""), stypes = String8(""), scpgids = String8(""), sapgids = String8(""), slangs = String8(""); - - /*add a new atv program to database*/ - String8 cmd = String8("insert into srv_table(db_net_id,db_ts_id,service_id,src,name,service_type,"); - cmd += String8("eit_schedule_flag,eit_pf_flag,running_status,free_ca_mode,volume,aud_track,vid_pid,"); - cmd += String8("vid_fmt,aud_pids,aud_fmts,aud_langs,skip,lock,chan_num,major_chan_num,"); - cmd += String8("minor_chan_num,access_controlled,hidden,hide_guide,source_id,favor,current_aud,"); - cmd += String8("current_sub,sub_pids,sub_types,sub_composition_page_ids,sub_ancillary_page_ids,sub_langs,"); - cmd += String8("current_ttx,ttx_pids,ttx_types,ttx_magazine_nos,ttx_page_nos,ttx_langs,"); - cmd += String8("db_sat_para_id,scrambled_flag,lcn,hd_lcn,sd_lcn,default_chan_num,chan_order) "); - cmd += String8("values(-1,") + String8::format("%d", channelID) + String8(",65535,") + String8::format("%d", channel.getMode()) + String8(",'',") + String8::format("%d", type) + String8(","); - cmd += String8("0,0,0,0,0,0,8191,"); - int chanNum = major << 16 | minor; - int majorNum = major; - cmd += String8("-1,'','','',") + String8::format("%d", skipFlag) + String8(",0,") + String8::format("%d", chanNum) + String8(",") + String8::format("%d", majorNum) + String8(","); - cmd += String8("") + String8::format("%d", minor) + String8(",0,0,0,-1,0,-1,"); - cmd += String8("-1,'") + spids + String8("','") + stypes + String8("','") + scpgids + String8("','") + sapgids + String8("','") + slangs + String8("',"); - cmd += String8("-1,'") + tpids + String8("','") + ttypes + String8("','") + tmagnums + String8("','") + tpgnums + String8("','") + tlangs + String8("',"); - cmd += String8("-1,0,-1,-1,-1,-1,0)"); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); - - CTvDatabase::Cursor cr; - selectProgramInChannelByNumber(channelID, major, minor, cr); - if (cr.moveToFirst()) { - /*Construct*/ - CreateFromCursor(cr); - } else { - /*A critical error*/ - //Log.d(TAG, "Cannot add new program, sqlite error"); - this->id = -1; - } - cr.close(); - } - c.close(); - } + CTvChannel channel; + int ret = CTvChannel::selectByID(channelID, channel); + if (ret != 0) { + //Log.d(TAG, "Cannot add new program, invalid channel id "+channelID); + this->id = -1; + } else { + CTvDatabase::Cursor c ; + selectProgramInChannelByNumber(channelID, major, minor, c); + + if (c.moveToFirst()) { + /*Construct*/ + CreateFromCursor(c); + } else { + String8 tpids = String8(""), ttypes = String8(""), tmagnums = String8(""), tpgnums = String8(""), tlangs = String8(""); + String8 spids = String8(""), stypes = String8(""), scpgids = String8(""), sapgids = String8(""), slangs = String8(""); + + /*add a new atv program to database*/ + String8 cmd = String8("insert into srv_table(db_net_id,db_ts_id,service_id,src,name,service_type,"); + cmd += String8("eit_schedule_flag,eit_pf_flag,running_status,free_ca_mode,volume,aud_track,vid_pid,"); + cmd += String8("vid_fmt,aud_pids,aud_fmts,aud_langs,skip,lock,chan_num,major_chan_num,"); + cmd += String8("minor_chan_num,access_controlled,hidden,hide_guide,source_id,favor,current_aud,"); + cmd += String8("current_sub,sub_pids,sub_types,sub_composition_page_ids,sub_ancillary_page_ids,sub_langs,"); + cmd += String8("current_ttx,ttx_pids,ttx_types,ttx_magazine_nos,ttx_page_nos,ttx_langs,"); + cmd += String8("db_sat_para_id,scrambled_flag,lcn,hd_lcn,sd_lcn,default_chan_num,chan_order) "); + cmd += String8("values(-1,") + String8::format("%d", channelID) + String8(",65535,") + String8::format("%d", channel.getMode()) + String8(",'',") + String8::format("%d", type) + String8(","); + cmd += String8("0,0,0,0,0,0,8191,"); + int chanNum = major << 16 | minor; + int majorNum = major; + cmd += String8("-1,'','','',") + String8::format("%d", skipFlag) + String8(",0,") + String8::format("%d", chanNum) + String8(",") + String8::format("%d", majorNum) + String8(","); + cmd += String8("") + String8::format("%d", minor) + String8(",0,0,0,-1,0,-1,"); + cmd += String8("-1,'") + spids + String8("','") + stypes + String8("','") + scpgids + String8("','") + sapgids + String8("','") + slangs + String8("',"); + cmd += String8("-1,'") + tpids + String8("','") + ttypes + String8("','") + tmagnums + String8("','") + tpgnums + String8("','") + tlangs + String8("',"); + cmd += String8("-1,0,-1,-1,-1,-1,0)"); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); + + CTvDatabase::Cursor cr; + selectProgramInChannelByNumber(channelID, major, minor, cr); + if (cr.moveToFirst()) { + /*Construct*/ + CreateFromCursor(cr); + } else { + /*A critical error*/ + //Log.d(TAG, "Cannot add new program, sqlite error"); + this->id = -1; + } + cr.close(); + } + c.close(); + } } /** @@ -473,46 +473,46 @@ CTvProgram::CTvProgram(int channelID, int type, int major, int minor, int skipFl int CTvProgram::selectByID(int id, CTvProgram &prog) { - CTvDatabase::Cursor c; - String8 sql; - sql = String8("select * from srv_table where srv_table.db_id = ") + String8::format("%d", id); - CTvDatabase::GetTvDb()->select(sql.string(), c) ; - if (c.moveToFirst()) { - prog.CreateFromCursor(c); - } else { - c.close(); - return -1; - } - c.close(); - return 0; + CTvDatabase::Cursor c; + String8 sql; + sql = String8("select * from srv_table where srv_table.db_id = ") + String8::format("%d", id); + CTvDatabase::GetTvDb()->select(sql.string(), c) ; + if (c.moveToFirst()) { + prog.CreateFromCursor(c); + } else { + c.close(); + return -1; + } + c.close(); + return 0; } int CTvProgram::updateVolComp(int progID, int volValue) { - String8 cmd = String8("update srv_table set volume = ") + String8::format("%d", volValue) + - String8(" where srv_table.db_id = ") + String8::format("%d", progID); - LOGD("%s, cmd = %s\n", "TV", cmd.string()); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); + String8 cmd = String8("update srv_table set volume = ") + String8::format("%d", volValue) + + String8(" where srv_table.db_id = ") + String8::format("%d", progID); + LOGD("%s, cmd = %s\n", "TV", cmd.string()); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); - return 0; + return 0; } int CTvProgram::getChannel(CTvChannel &c) { - return CTvChannel::selectByID(channelID, c); + return CTvChannel::selectByID(channelID, c); } int CTvProgram::upDateChannel(CTvChannel &c, int std, int Freq, int fineFreq) { - return CTvChannel::updateByID(channelID, std, Freq, fineFreq); + return CTvChannel::updateByID(channelID, std, Freq, fineFreq); } int CTvProgram::deleteChannelsProgram(CTvChannel &c) { - String8 cmd; - cmd = String8("delete from srv_table where srv_table.db_ts_id = ") + String8::format("%d", c.getID()); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); - return 0; + String8 cmd; + cmd = String8("delete from srv_table where srv_table.db_ts_id = ") + String8::format("%d", c.getID()); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); + return 0; } @@ -521,31 +521,31 @@ int CTvProgram::deleteChannelsProgram(CTvChannel &c) */ int CTvProgram::selectByNumber(int type, int num, CTvProgram &prog) { - String8 cmd; + String8 cmd; - cmd = String8("select * from srv_table where "); - if (type != TYPE_UNKNOWN) { - if (type == TYPE_DTV) { - cmd += String8("(service_type = ") + String8::format("%d", TYPE_DTV) + String8(" or service_type = ") + String8::format("%d", TYPE_RADIO) + String8(") and "); - } else { - cmd += String8("service_type = ") + String8::format("%d", type) + String8(" and "); - } - } + cmd = String8("select * from srv_table where "); + if (type != TYPE_UNKNOWN) { + if (type == TYPE_DTV) { + cmd += String8("(service_type = ") + String8::format("%d", TYPE_DTV) + String8(" or service_type = ") + String8::format("%d", TYPE_RADIO) + String8(") and "); + } else { + cmd += String8("service_type = ") + String8::format("%d", type) + String8(" and "); + } + } - cmd += String8("chan_num = ") + String8::format("%d", num); + cmd += String8("chan_num = ") + String8::format("%d", num); - CTvDatabase::Cursor c; - CTvDatabase::GetTvDb()->select(cmd, c); + CTvDatabase::Cursor c; + CTvDatabase::GetTvDb()->select(cmd, c); - if (c.moveToFirst()) { - prog.CreateFromCursor(c); - } else { - c.close(); - return -1; - } - c.close(); + if (c.moveToFirst()) { + prog.CreateFromCursor(c); + } else { + c.close(); + return -1; + } + c.close(); - return 0; + return 0; } /** @@ -553,60 +553,60 @@ int CTvProgram::selectByNumber(int type, int num, CTvProgram &prog) */ int CTvProgram::selectByNumber(int type, int major, int minor, CTvProgram &prog, int minor_check) { - String8 cmd; - - cmd = String8("select * from srv_table where "); - if (type != TYPE_UNKNOWN) { - if (type == TYPE_DTV) { - cmd += String8("(service_type = ") + String8::format("%d", TYPE_TV) + String8(" or service_type = ") + String8::format("%d", TYPE_RADIO) + String8(") and "); - } else { - cmd += String8("service_type = ") + String8::format("%d", type) + String8(" and "); - } - } - - if (minor < 0) { - /*recursive call*/ - /*select dtv program first*/ - //showbo - int ret = selectByNumber(TYPE_DTV, major, 1, prog, MINOR_CHECK_NEAREST_UP); - if (ret != 0) { - /*then try atv program*/ - selectByNumber(TYPE_ATV, major, 0 , prog, MINOR_CHECK_NONE); - } - return 0; - } else if (minor >= 1) { - if (minor_check == MINOR_CHECK_UP) { - cmd += String8("major_chan_num = ") + String8::format("%d", major) + String8(" and minor_chan_num >= ") + String8::format("%d", minor) + String8(" "); - cmd += String8("order by minor_chan_num DESC limit 1"); - } else if (minor_check == MINOR_CHECK_DOWN) { - cmd += String8("major_chan_num = ") + String8::format("%d", major) + String8(" and minor_chan_num <= ") + String8::format("%d", minor) + String8(" "); - cmd += String8("order by minor_chan_num limit 1"); - } else if (minor_check == MINOR_CHECK_NEAREST_UP) { - cmd += String8("major_chan_num = ") + String8::format("%d", major) + String8(" and minor_chan_num >= ") + String8::format("%d", minor) + String8(" "); - cmd += String8("order by minor_chan_num limit 1"); - } else if (minor_check == MINOR_CHECK_NEAREST_DOWN) { - cmd += String8("major_chan_num = ") + String8::format("%d", major) + String8(" and minor_chan_num <= ") + String8::format("%d", minor) + String8(" "); - cmd += String8("order by minor_chan_num DESC limit 1"); - } else { - cmd += String8("major_chan_num = ") + String8::format("%d", major) + String8(" and minor_chan_num = ") + String8::format("%d", minor); - } - } else { - cmd += String8("major_chan_num = ") + String8::format("%d", major) + String8(" and minor_chan_num = ") + String8::format("%d", minor); - } - - - CTvDatabase::Cursor c; - CTvDatabase::GetTvDb()->select(cmd, c); - - if (c.moveToFirst()) { - prog.CreateFromCursor(c); - } else { - c.close(); - return -1; - } - c.close(); - - return 0; + String8 cmd; + + cmd = String8("select * from srv_table where "); + if (type != TYPE_UNKNOWN) { + if (type == TYPE_DTV) { + cmd += String8("(service_type = ") + String8::format("%d", TYPE_TV) + String8(" or service_type = ") + String8::format("%d", TYPE_RADIO) + String8(") and "); + } else { + cmd += String8("service_type = ") + String8::format("%d", type) + String8(" and "); + } + } + + if (minor < 0) { + /*recursive call*/ + /*select dtv program first*/ + //showbo + int ret = selectByNumber(TYPE_DTV, major, 1, prog, MINOR_CHECK_NEAREST_UP); + if (ret != 0) { + /*then try atv program*/ + selectByNumber(TYPE_ATV, major, 0 , prog, MINOR_CHECK_NONE); + } + return 0; + } else if (minor >= 1) { + if (minor_check == MINOR_CHECK_UP) { + cmd += String8("major_chan_num = ") + String8::format("%d", major) + String8(" and minor_chan_num >= ") + String8::format("%d", minor) + String8(" "); + cmd += String8("order by minor_chan_num DESC limit 1"); + } else if (minor_check == MINOR_CHECK_DOWN) { + cmd += String8("major_chan_num = ") + String8::format("%d", major) + String8(" and minor_chan_num <= ") + String8::format("%d", minor) + String8(" "); + cmd += String8("order by minor_chan_num limit 1"); + } else if (minor_check == MINOR_CHECK_NEAREST_UP) { + cmd += String8("major_chan_num = ") + String8::format("%d", major) + String8(" and minor_chan_num >= ") + String8::format("%d", minor) + String8(" "); + cmd += String8("order by minor_chan_num limit 1"); + } else if (minor_check == MINOR_CHECK_NEAREST_DOWN) { + cmd += String8("major_chan_num = ") + String8::format("%d", major) + String8(" and minor_chan_num <= ") + String8::format("%d", minor) + String8(" "); + cmd += String8("order by minor_chan_num DESC limit 1"); + } else { + cmd += String8("major_chan_num = ") + String8::format("%d", major) + String8(" and minor_chan_num = ") + String8::format("%d", minor); + } + } else { + cmd += String8("major_chan_num = ") + String8::format("%d", major) + String8(" and minor_chan_num = ") + String8::format("%d", minor); + } + + + CTvDatabase::Cursor c; + CTvDatabase::GetTvDb()->select(cmd, c); + + if (c.moveToFirst()) { + prog.CreateFromCursor(c); + } else { + c.close(); + return -1; + } + c.close(); + + return 0; } @@ -618,133 +618,133 @@ int CTvProgram::selectByNumber(int type, int major, int minor, CTvProgram &prog, int CTvProgram::selectByChannel(int channelID, int type, Vector<sp<CTvProgram> > &out) { - //Vector<CTvProgram*> vp; - String8 cmd = String8("select * from srv_table "); + //Vector<CTvProgram*> vp; + String8 cmd = String8("select * from srv_table "); - if (type == TYPE_DTV) { - cmd += String8("where (service_type = ") + String8::format("%d", TYPE_TV) + String8(" or service_type = ") + String8::format("%d", TYPE_RADIO) + String8(") "); - } else if (type != TYPE_UNKNOWN) { - cmd += String8("where service_type = ") + String8::format("%d", type) + String8(" "); - } + if (type == TYPE_DTV) { + cmd += String8("where (service_type = ") + String8::format("%d", TYPE_TV) + String8(" or service_type = ") + String8::format("%d", TYPE_RADIO) + String8(") "); + } else if (type != TYPE_UNKNOWN) { + cmd += String8("where service_type = ") + String8::format("%d", type) + String8(" "); + } - cmd += String8(" and db_ts_id = ") + String8::format("%d", channelID) + String8(" order by chan_order"); + cmd += String8(" and db_ts_id = ") + String8::format("%d", channelID) + String8(" order by chan_order"); - CTvDatabase::Cursor c; - int ret = CTvDatabase::GetTvDb()->select(cmd, c); + CTvDatabase::Cursor c; + int ret = CTvDatabase::GetTvDb()->select(cmd, c); - LOGD("selectByChannel select ret = %d", ret); + LOGD("selectByChannel select ret = %d", ret); - if (c.moveToFirst()) { - do { - out.add(new CTvProgram(c)); - } while (c.moveToNext()); - } - c.close(); + if (c.moveToFirst()) { + do { + out.add(new CTvProgram(c)); + } while (c.moveToNext()); + } + c.close(); - return 0; + return 0; } void CTvProgram::deleteProgram(int progId) { - String8 cmd; + String8 cmd; - cmd = String8("delete from srv_table where srv_table.db_id = ") + String8::format("%d", progId); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); + cmd = String8("delete from srv_table where srv_table.db_id = ") + String8::format("%d", progId); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); } int CTvProgram::CleanAllProgramBySrvType(int srvType) { - String8 cmd = String8("delete from srv_table where service_type = ") + String8::format("%d", srvType); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); - return 0; + String8 cmd = String8("delete from srv_table where service_type = ") + String8::format("%d", srvType); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); + return 0; } int CTvProgram::selectByType(int type, int skip, Vector<sp<CTvProgram> > &out) { - String8 cmd = String8("select * from srv_table "); - LOGD("%s, type= %d\n", "TV", (int)type); + String8 cmd = String8("select * from srv_table "); + LOGD("%s, type= %d\n", "TV", (int)type); - if (type == TYPE_UNKNOWN) { - cmd += String8("where (service_type = ") + String8::format("%d", TYPE_ATV) + - String8(" or service_type = ") + String8::format("%d", TYPE_DTV) + - String8(" or service_type = ") + String8::format("%d", TYPE_RADIO) + - String8(") "); - } else { - cmd += String8("where service_type = ") + String8::format("%d", type) + String8(" "); - } + if (type == TYPE_UNKNOWN) { + cmd += String8("where (service_type = ") + String8::format("%d", TYPE_ATV) + + String8(" or service_type = ") + String8::format("%d", TYPE_DTV) + + String8(" or service_type = ") + String8::format("%d", TYPE_RADIO) + + String8(") "); + } else { + cmd += String8("where service_type = ") + String8::format("%d", type) + String8(" "); + } - if (skip == PROGRAM_SKIP_NO || skip == PROGRAM_SKIP_YES) - cmd += String8(" and skip = ") + String8::format("%d", skip) + String8(" "); + if (skip == PROGRAM_SKIP_NO || skip == PROGRAM_SKIP_YES) + cmd += String8(" and skip = ") + String8::format("%d", skip) + String8(" "); - if (type == TYPE_DTV || type == TYPE_RADIO) { - cmd += String8(" order by db_ts_id"); - } else { - cmd += String8(" order by chan_order"); - } + if (type == TYPE_DTV || type == TYPE_RADIO) { + cmd += String8(" order by db_ts_id"); + } else { + cmd += String8(" order by chan_order"); + } - CTvDatabase::Cursor c; - int ret = CTvDatabase::GetTvDb()->select(cmd, c); + CTvDatabase::Cursor c; + int ret = CTvDatabase::GetTvDb()->select(cmd, c); - LOGD("selectByType select ret = %d", ret); + LOGD("selectByType select ret = %d", ret); - if (c.moveToFirst()) { - do { - out.add(new CTvProgram(c)); - } while (c.moveToNext()); - } - c.close(); + if (c.moveToFirst()) { + do { + out.add(new CTvProgram(c)); + } while (c.moveToNext()); + } + c.close(); - return 0; + return 0; } int CTvProgram::selectByChanID(int type, int skip, Vector < sp < CTvProgram > > &out) { - String8 cmd = String8("select * from srv_table "); + String8 cmd = String8("select * from srv_table "); - if (type == TYPE_UNKNOWN) { - cmd += String8("where (service_type = ") + String8::format("%d", TYPE_ATV) + - String8(" or service_type = ") + String8::format("%d", TYPE_DTV) + - String8(") "); - } else { - cmd += String8("where service_type = ") + String8::format("%d", type) + String8(" "); - } + if (type == TYPE_UNKNOWN) { + cmd += String8("where (service_type = ") + String8::format("%d", TYPE_ATV) + + String8(" or service_type = ") + String8::format("%d", TYPE_DTV) + + String8(") "); + } else { + cmd += String8("where service_type = ") + String8::format("%d", type) + String8(" "); + } - if (skip == PROGRAM_SKIP_NO || skip == PROGRAM_SKIP_YES) - cmd += String8(" and skip = ") + String8::format("%d", PROGRAM_SKIP_NO) + - String8(" or skip = ") + String8::format("%d", PROGRAM_SKIP_YES) + String8(" "); + if (skip == PROGRAM_SKIP_NO || skip == PROGRAM_SKIP_YES) + cmd += String8(" and skip = ") + String8::format("%d", PROGRAM_SKIP_NO) + + String8(" or skip = ") + String8::format("%d", PROGRAM_SKIP_YES) + String8(" "); - cmd += String8(" order by db_id"); + cmd += String8(" order by db_id"); - CTvDatabase::Cursor c; - int ret = CTvDatabase::GetTvDb()->select(cmd, c); + CTvDatabase::Cursor c; + int ret = CTvDatabase::GetTvDb()->select(cmd, c); - if (c.moveToFirst()) { - do { - out.add(new CTvProgram(c)); - } while (c.moveToNext()); - } - c.close(); + if (c.moveToFirst()) { + do { + out.add(new CTvProgram(c)); + } while (c.moveToNext()); + } + c.close(); - return 0; + return 0; } int CTvProgram::selectAll(bool no_skip, Vector<sp<CTvProgram> > &out) { - return selectByType(TYPE_UNKNOWN, no_skip, out); + return selectByType(TYPE_UNKNOWN, no_skip, out); } Vector<CTvProgram> CTvProgram::selectByChannel(int channelID) { - Vector<CTvProgram> vProg; - return vProg; + Vector<CTvProgram> vProg; + return vProg; } Vector<CTvProgram> CTvProgram::selectByName(int name) { - Vector<CTvProgram> vProg; - return vProg; + Vector<CTvProgram> vProg; + return vProg; } void CTvProgram::tvProgramDelByChannelID(int channelID) @@ -755,11 +755,11 @@ void CTvProgram::tvProgramDelByChannelID(int channelID) String8 CTvProgram::getName() { - return name; + return name; } int CTvProgram::getProgSkipFlag() { - return skip; + return skip; } /** @@ -769,155 +769,155 @@ int CTvProgram::getProgSkipFlag() */ int CTvProgram::getCurrentAudio(String8 defaultLang) { - CTvDatabase::Cursor c; - String8 cmd; - cmd = String8("select current_aud from srv_table where db_id = ") + String8::format("%d", this->id); - int ret = CTvDatabase::GetTvDb()->select(cmd, c); - LOGD("getCurrentAudio a size = %d", mvAudios.size()); - int id = 0; - if (c.moveToFirst()) { - id = c.getInt(0); - LOGD("getCurrentAudio a id = %d", id); - if (id < 0 && mvAudios.size() > 0) { - LOGD("getCurrentAudio defaultLang.isEmpty() =%s= %d", defaultLang.string(), defaultLang.isEmpty()); - if (!defaultLang.isEmpty()) { - for (int i = 0; i < mvAudios.size(); i++) { - LOGD("getCurrentAudio a mvAudios[i] = %d", mvAudios[i]); - if (mvAudios[i]->getLang() == defaultLang) { - id = i; - break; - } - } - } - - if (id < 0) { - /* still not found, using the first */ - id = 0; - } - } - } - LOGD("getCurrentAudio a idsss = %d", id); - c.close(); - - return id; + CTvDatabase::Cursor c; + String8 cmd; + cmd = String8("select current_aud from srv_table where db_id = ") + String8::format("%d", this->id); + int ret = CTvDatabase::GetTvDb()->select(cmd, c); + LOGD("getCurrentAudio a size = %d", mvAudios.size()); + int id = 0; + if (c.moveToFirst()) { + id = c.getInt(0); + LOGD("getCurrentAudio a id = %d", id); + if (id < 0 && mvAudios.size() > 0) { + LOGD("getCurrentAudio defaultLang.isEmpty() =%s= %d", defaultLang.string(), defaultLang.isEmpty()); + if (!defaultLang.isEmpty()) { + for (int i = 0; i < mvAudios.size(); i++) { + LOGD("getCurrentAudio a mvAudios[i] = %d", mvAudios[i]); + if (mvAudios[i]->getLang() == defaultLang) { + id = i; + break; + } + } + } + + if (id < 0) { + /* still not found, using the first */ + id = 0; + } + } + } + LOGD("getCurrentAudio a idsss = %d", id); + c.close(); + + return id; } int CTvProgram::getAudioChannel() { - return audioTrack; + return audioTrack; } int CTvProgram::updateAudioChannel(int progId, int ch) { - String8 cmd; + String8 cmd; - cmd = String8("update srv_table set aud_track =") + "\'" + String8::format("%d", ch) + "\'" - + String8(" where srv_table.db_id = ") + String8::format("%d", progId); + cmd = String8("update srv_table set aud_track =") + "\'" + String8::format("%d", ch) + "\'" + + String8(" where srv_table.db_id = ") + String8::format("%d", progId); - return CTvDatabase::GetTvDb()->exeSql(cmd.string()); + return CTvDatabase::GetTvDb()->exeSql(cmd.string()); } int CTvProgram::getSubtitleIndex(int progId) { - CTvDatabase::Cursor c; - String8 cmd = String8("select current_sub from srv_table where db_id = ") + String8::format("%d", progId); - int ret = CTvDatabase::GetTvDb()->select(cmd, c); - if (c.moveToFirst()) { - return c.getInt(0); - } else { - return -1; - } + CTvDatabase::Cursor c; + String8 cmd = String8("select current_sub from srv_table where db_id = ") + String8::format("%d", progId); + int ret = CTvDatabase::GetTvDb()->select(cmd, c); + if (c.moveToFirst()) { + return c.getInt(0); + } else { + return -1; + } } int CTvProgram::setSubtitleIndex(int progId, int index) { - String8 cmd = String8("update srv_table set current_sub = ") + String8::format("%d", index) + String8(" where db_id = ") + String8::format("%d", progId); - return CTvDatabase::GetTvDb()->exeSql(cmd.string()); + String8 cmd = String8("update srv_table set current_sub = ") + String8::format("%d", index) + String8(" where db_id = ") + String8::format("%d", progId); + return CTvDatabase::GetTvDb()->exeSql(cmd.string()); } int CTvProgram::getCurrAudioTrackIndex() { - int audTrackIdx = -1; + int audTrackIdx = -1; - if (-1 == currAudTrackIndex) { // no set field "current_aud" - audTrackIdx = getCurrentAudio(String8("eng")); - setCurrAudioTrackIndex(this->id, audTrackIdx); - } else { - audTrackIdx = currAudTrackIndex; - } + if (-1 == currAudTrackIndex) { // no set field "current_aud" + audTrackIdx = getCurrentAudio(String8("eng")); + setCurrAudioTrackIndex(this->id, audTrackIdx); + } else { + audTrackIdx = currAudTrackIndex; + } - return audTrackIdx; + return audTrackIdx; } void CTvProgram::setCurrAudioTrackIndex(int programId, int audioIndex) { - String8 cmd; + String8 cmd; - cmd = String8("update srv_table set current_aud = ") - + String8::format("%d", audioIndex) + String8(" where srv_table.db_id = ") + String8::format("%d", programId); + cmd = String8("update srv_table set current_aud = ") + + String8::format("%d", audioIndex) + String8(" where srv_table.db_id = ") + String8::format("%d", programId); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); } void CTvProgram::setFavoriteFlag(int progId, bool bFavor) { - String8 cmd; + String8 cmd; - cmd = String8("update srv_table set favor = ") - + String8::format("%d", bFavor ? 1 : 0) + String8(" where srv_table.db_id = ") + String8::format("%d", progId); + cmd = String8("update srv_table set favor = ") + + String8::format("%d", bFavor ? 1 : 0) + String8(" where srv_table.db_id = ") + String8::format("%d", progId); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); } void CTvProgram::setSkipFlag(int progId, bool bSkipFlag) { - String8 cmd; + String8 cmd; - cmd = String8("update srv_table set skip = ") + String8::format("%d", bSkipFlag ? 1 : 0) - + String8(" where srv_table.db_id = ") + String8::format("%d", progId); + cmd = String8("update srv_table set skip = ") + String8::format("%d", bSkipFlag ? 1 : 0) + + String8(" where srv_table.db_id = ") + String8::format("%d", progId); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); } void CTvProgram::updateProgramName(int progId, String8 strName) { - String8 newName = String8("xxx") + strName; - String8 cmd; + String8 newName = String8("xxx") + strName; + String8 cmd; - cmd = String8("update srv_table set name =") + "\'" + String8::format("%s", newName.string()) + "\'" - + String8(" where srv_table.db_id = ") + String8::format("%d", progId); + cmd = String8("update srv_table set name =") + "\'" + String8::format("%s", newName.string()) + "\'" + + String8(" where srv_table.db_id = ") + String8::format("%d", progId); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); } void CTvProgram::swapChanOrder(int ProgId1, int chanOrderNum1, int ProgId2, int chanOrderNum2) { - String8 cmd; + String8 cmd; - cmd = String8("update srv_table set chan_order = ") + String8::format("%d", chanOrderNum2) - + String8(" where db_id = ") + String8::format("%d", ProgId1); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); + cmd = String8("update srv_table set chan_order = ") + String8::format("%d", chanOrderNum2) + + String8(" where db_id = ") + String8::format("%d", ProgId1); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); - String8 cmd2; - cmd2 = String8("update srv_table set chan_order = ") + String8::format("%d", chanOrderNum1) - + String8(" where db_id = ") + String8::format("%d", ProgId2); - CTvDatabase::GetTvDb()->exeSql(cmd2.string()); + String8 cmd2; + cmd2 = String8("update srv_table set chan_order = ") + String8::format("%d", chanOrderNum1) + + String8(" where db_id = ") + String8::format("%d", ProgId2); + CTvDatabase::GetTvDb()->exeSql(cmd2.string()); } void CTvProgram::setLockFlag(int progId, bool bLockFlag) { - String8 cmd; + String8 cmd; - cmd = String8("update srv_table set lock = ") + String8::format("%d", bLockFlag ? 1 : 0) - + String8(" where srv_table.db_id = ") + String8::format("%d", progId); + cmd = String8("update srv_table set lock = ") + String8::format("%d", bLockFlag ? 1 : 0) + + String8(" where srv_table.db_id = ") + String8::format("%d", progId); - CTvDatabase::GetTvDb()->exeSql(cmd.string()); + CTvDatabase::GetTvDb()->exeSql(cmd.string()); } bool CTvProgram::getLockFlag() { - return lock; + return lock; } diff --git a/tvapi/libtv/tvdb/CTvProgram.h b/tvapi/libtv/tvdb/CTvProgram.h index 33d5e7c..1c35c67 100644 --- a/tvapi/libtv/tvdb/CTvProgram.h +++ b/tvapi/libtv/tvdb/CTvProgram.h @@ -24,513 +24,513 @@ using namespace android; class CTvEvent; class CTvProgram : public LightRefBase<CTvProgram> { public: - /*this type value is link to enum AM_SCAN_ServiceType in am_scan.h - * enum AM_SCAN_ServiceType - { - AM_SCAN_SRV_UNKNOWN = 0, < δ֪ÀàÐÍ - AM_SCAN_SRV_DTV = 1, < Êý×ÖµçÊÓÀàÐÍ - AM_SCAN_SRV_DRADIO = 2, < Êý×ֹ㲥ÀàÐÍ - AM_SCAN_SRV_ATV = 3, < Ä£ÄâµçÊÓÀàÐÍ - }; - * / - /**䶨ÒåÀàÐÍ*/ - static const int TYPE_UNKNOWN = 0; - /**µçÊÓ½ÚÄ¿*/ - static const int TYPE_TV = 4; - /**¹ã²¥½ÚÄ¿*/ - static const int TYPE_RADIO = 2; - /**Ä£Äâ½ÚÄ¿*/ - static const int TYPE_ATV = 3; - /**Êý¾Ý½ÚÄ¿*/ - static const int TYPE_DATA = 5; - /**Êý×Ö½ÚÄ¿*/ - static const int TYPE_DTV = 1 ; - /** PVR/Timeshifting playback program*/ - static const int TYPE_PLAYBACK = 6; - - static const int PROGRAM_SKIP_NO = 0; - static const int PROGRAM_SKIP_YES = 1; - static const int PROGRAM_SKIP_UNKOWN = 2; - - /** - *ServiceÖеĻù´¡ÔªËØÐÅÏ¢ - */ + /*this type value is link to enum AM_SCAN_ServiceType in am_scan.h + * enum AM_SCAN_ServiceType + { + AM_SCAN_SRV_UNKNOWN = 0, < δ֪ÀàÐÍ + AM_SCAN_SRV_DTV = 1, < Êý×ÖµçÊÓÀàÐÍ + AM_SCAN_SRV_DRADIO = 2, < Êý×ֹ㲥ÀàÐÍ + AM_SCAN_SRV_ATV = 3, < Ä£ÄâµçÊÓÀàÐÍ + }; + * / + /**䶨ÒåÀàÐÍ*/ + static const int TYPE_UNKNOWN = 0; + /**µçÊÓ½ÚÄ¿*/ + static const int TYPE_TV = 4; + /**¹ã²¥½ÚÄ¿*/ + static const int TYPE_RADIO = 2; + /**Ä£Äâ½ÚÄ¿*/ + static const int TYPE_ATV = 3; + /**Êý¾Ý½ÚÄ¿*/ + static const int TYPE_DATA = 5; + /**Êý×Ö½ÚÄ¿*/ + static const int TYPE_DTV = 1 ; + /** PVR/Timeshifting playback program*/ + static const int TYPE_PLAYBACK = 6; + + static const int PROGRAM_SKIP_NO = 0; + static const int PROGRAM_SKIP_YES = 1; + static const int PROGRAM_SKIP_UNKOWN = 2; + + /** + *ServiceÖеĻù´¡ÔªËØÐÅÏ¢ + */ public: - class Element { - private : - int mpid; - - public : - Element(int pid) - { - this->mpid = pid; - } - /** - *È¡µÃ»ù´¡ÔªËصÄPID - *@return ·µ»ØPID - */ - int getPID() - { - return mpid; - } - }; - - - - /** - *¶àÓïÑÔ»ù´¡ÔªËØÐÅÏ¢ - */ + class Element { + private : + int mpid; + + public : + Element(int pid) + { + this->mpid = pid; + } + /** + *È¡µÃ»ù´¡ÔªËصÄPID + *@return ·µ»ØPID + */ + int getPID() + { + return mpid; + } + }; + + + + /** + *¶àÓïÑÔ»ù´¡ÔªËØÐÅÏ¢ + */ public: - class MultiLangElement : public Element { - private : - String8 mlang; - - public : - MultiLangElement(int pid, String8 lang): Element(pid) - { - this->mlang = lang; - } - - /** - *È¡µÃÔªËضÔÓ¦µÄÓïÑÔ - *@return ·µ»Ø3×Ö·ûÓïÑÔ×Ö·û´® - */ - String8 getLang() - { - return mlang; - } - }; - - - - /** - *ÊÓƵÐÅÏ¢ - */ + class MultiLangElement : public Element { + private : + String8 mlang; + + public : + MultiLangElement(int pid, String8 lang): Element(pid) + { + this->mlang = lang; + } + + /** + *È¡µÃÔªËضÔÓ¦µÄÓïÑÔ + *@return ·µ»Ø3×Ö·ûÓïÑÔ×Ö·û´® + */ + String8 getLang() + { + return mlang; + } + }; + + + + /** + *ÊÓƵÐÅÏ¢ + */ public : - class Video : public Element { - public: - /**MPEG1/2*/ - static const int FORMAT_MPEG12 = 0; - /**MPEG4*/ - static const int FORMAT_MPEG4 = 1; - /**H.264*/ - static const int FORMAT_H264 = 2; - /**MJPEG*/ - static const int FORMAT_MJPEG = 3; - /**Real video*/ - static const int FORMAT_REAL = 4; - /**JPEG*/ - static const int FORMAT_JPEG = 5; - /**Microsoft VC1*/ - static const int FORMAT_VC1 = 6; - /**AVS*/ - static const int FORMAT_AVS = 7; - /**YUV*/ - static const int FORMAT_YUV = 8; - /**H.264 MVC*/ - static const int FORMAT_H264MVC = 9; - /**QJPEG*/ - static const int FORMAT_QJPEG = 10; - - Video(int pid, int fmt): Element(pid) - { - this->mformat = fmt; - } - - /** - *È¡µÃÊÓƵ±àÂë¸ñʽ - *@return ·µ»ØÊÓƵ±àÂë¸ñʽ - */ - int getFormat() - { - return mformat; - } - private : - int mformat; - }; - - /** - *ÒôƵÐÅÏ¢ - */ + class Video : public Element { + public: + /**MPEG1/2*/ + static const int FORMAT_MPEG12 = 0; + /**MPEG4*/ + static const int FORMAT_MPEG4 = 1; + /**H.264*/ + static const int FORMAT_H264 = 2; + /**MJPEG*/ + static const int FORMAT_MJPEG = 3; + /**Real video*/ + static const int FORMAT_REAL = 4; + /**JPEG*/ + static const int FORMAT_JPEG = 5; + /**Microsoft VC1*/ + static const int FORMAT_VC1 = 6; + /**AVS*/ + static const int FORMAT_AVS = 7; + /**YUV*/ + static const int FORMAT_YUV = 8; + /**H.264 MVC*/ + static const int FORMAT_H264MVC = 9; + /**QJPEG*/ + static const int FORMAT_QJPEG = 10; + + Video(int pid, int fmt): Element(pid) + { + this->mformat = fmt; + } + + /** + *È¡µÃÊÓƵ±àÂë¸ñʽ + *@return ·µ»ØÊÓƵ±àÂë¸ñʽ + */ + int getFormat() + { + return mformat; + } + private : + int mformat; + }; + + /** + *ÒôƵÐÅÏ¢ + */ public : - class Audio : public MultiLangElement { - public : - /**MPEG*/ - static const int FORMAT_MPEG = 0; - /**PCM 16λС¶Ë*/ - static const int FORMAT_PCM_S16LE = 1; - /**AAC*/ - static const int FORMAT_AAC = 2; - /**AC3*/ - static const int FORMAT_AC3 = 3; - /**ALAW*/ - static const int FORMAT_ALAW = 4; - /**MULAW*/ - static const int FORMAT_MULAW = 5; - /**DTS*/ - static const int FORMAT_DTS = 6; - /**PCM 16λ´ó¶Ë*/ - static const int FORMAT_PCM_S16BE = 7; - /**FLAC*/ - static const int FORMAT_FLAC = 8; - /**COOK*/ - static const int FORMAT_COOK = 9; - /**PCM 8λ*/ - static const int FORMAT_PCM_U8 = 10; - /**ADPCM*/ - static const int FORMAT_ADPCM = 11; - /**AMR*/ - static const int FORMAT_AMR = 12; - /**RAAC*/ - static const int FORMAT_RAAC = 13; - /**WMA*/ - static const int FORMAT_WMA = 14; - /**WMA Pro*/ - static const int FORMAT_WMAPRO = 15; - /**À¶¹âPCM*/ - static const int FORMAT_PCM_BLURAY = 16; - /**ALAC*/ - static const int FORMAT_ALAC = 17; - /**Vorbis*/ - static const int FORMAT_VORBIS = 18; - /**AAC latm¸ñʽ*/ - static const int FORMAT_AAC_LATM = 19; - /**APE*/ - static const int FORMAT_APE = 20; - - - Audio(int pid, String8 lang, int fmt): MultiLangElement(pid, lang) - { - this->mformat = fmt; - } - - /** - *È¡µÃÒôƵ±àÂë¸ñʽ - *@return ·µ»ØÒôƵ±àÂë¸ñʽ - */ - int getFormat() - { - return mformat; - } - private : - int mformat; - }; - - /** - *×ÖÄ»ÐÅÏ¢ - */ + class Audio : public MultiLangElement { + public : + /**MPEG*/ + static const int FORMAT_MPEG = 0; + /**PCM 16λС¶Ë*/ + static const int FORMAT_PCM_S16LE = 1; + /**AAC*/ + static const int FORMAT_AAC = 2; + /**AC3*/ + static const int FORMAT_AC3 = 3; + /**ALAW*/ + static const int FORMAT_ALAW = 4; + /**MULAW*/ + static const int FORMAT_MULAW = 5; + /**DTS*/ + static const int FORMAT_DTS = 6; + /**PCM 16λ´ó¶Ë*/ + static const int FORMAT_PCM_S16BE = 7; + /**FLAC*/ + static const int FORMAT_FLAC = 8; + /**COOK*/ + static const int FORMAT_COOK = 9; + /**PCM 8λ*/ + static const int FORMAT_PCM_U8 = 10; + /**ADPCM*/ + static const int FORMAT_ADPCM = 11; + /**AMR*/ + static const int FORMAT_AMR = 12; + /**RAAC*/ + static const int FORMAT_RAAC = 13; + /**WMA*/ + static const int FORMAT_WMA = 14; + /**WMA Pro*/ + static const int FORMAT_WMAPRO = 15; + /**À¶¹âPCM*/ + static const int FORMAT_PCM_BLURAY = 16; + /**ALAC*/ + static const int FORMAT_ALAC = 17; + /**Vorbis*/ + static const int FORMAT_VORBIS = 18; + /**AAC latm¸ñʽ*/ + static const int FORMAT_AAC_LATM = 19; + /**APE*/ + static const int FORMAT_APE = 20; + + + Audio(int pid, String8 lang, int fmt): MultiLangElement(pid, lang) + { + this->mformat = fmt; + } + + /** + *È¡µÃÒôƵ±àÂë¸ñʽ + *@return ·µ»ØÒôƵ±àÂë¸ñʽ + */ + int getFormat() + { + return mformat; + } + private : + int mformat; + }; + + /** + *×ÖÄ»ÐÅÏ¢ + */ public : - class Subtitle : public MultiLangElement { - public : - /**DVB subtitle*/ - static const int TYPE_DVB_SUBTITLE = 1; - /**Êý×ÖµçÊÓTeletext*/ - static const int TYPE_DTV_TELETEXT = 2; - /**Ä£ÄâµçÊÓTeletext*/ - static const int TYPE_ATV_TELETEXT = 3; - /**Êý×ÖµçÊÓClosed caption*/ - static const int TYPE_DTV_CC = 4; - /**Ä£ÄâµçÊÓClosed caption*/ - static const int TYPE_ATV_CC = 5; - - - - Subtitle(int pid, String8 lang, int type, int num1, int num2): MultiLangElement(pid, lang) - { - - this->type = type; - if (type == TYPE_DVB_SUBTITLE) { - compositionPage = num1; - ancillaryPage = num2; - } else if (type == TYPE_DTV_TELETEXT) { - magazineNo = num1; - pageNo = num2; - } - } - - /** - *È¡µÃ×ÖÄ»ÀàÐÍ - *@return ·µ»Ø×ÖÄ»ÀàÐÍ - */ - int getType() - { - return type; - } - - /** - *È¡µÃDVB subtitleµÄcomposition page ID - *@return ·µ»Øcomposition page ID - */ - int getCompositionPageID() - { - return compositionPage; - } - - /** - *È¡µÃDVB subtitleµÄancillary page ID - *@return ·µ»Øancillary page ID - */ - int getAncillaryPageID() - { - return ancillaryPage; - } - - /** - *È¡µÃteletextµÄmagazine number - *@return ·µ»Ømagazine number - */ - int getMagazineNumber() - { - return magazineNo; - } - - /** - *È¡µÃteletextµÄpage number - *@return ·µ»Øpage number - */ - int getPageNumber() - { - return pageNo; - } - - private : - int compositionPage; - int ancillaryPage; - int magazineNo; - int pageNo; - int type; - }; - - /** - *TeletextÐÅÏ¢ - */ + class Subtitle : public MultiLangElement { + public : + /**DVB subtitle*/ + static const int TYPE_DVB_SUBTITLE = 1; + /**Êý×ÖµçÊÓTeletext*/ + static const int TYPE_DTV_TELETEXT = 2; + /**Ä£ÄâµçÊÓTeletext*/ + static const int TYPE_ATV_TELETEXT = 3; + /**Êý×ÖµçÊÓClosed caption*/ + static const int TYPE_DTV_CC = 4; + /**Ä£ÄâµçÊÓClosed caption*/ + static const int TYPE_ATV_CC = 5; + + + + Subtitle(int pid, String8 lang, int type, int num1, int num2): MultiLangElement(pid, lang) + { + + this->type = type; + if (type == TYPE_DVB_SUBTITLE) { + compositionPage = num1; + ancillaryPage = num2; + } else if (type == TYPE_DTV_TELETEXT) { + magazineNo = num1; + pageNo = num2; + } + } + + /** + *È¡µÃ×ÖÄ»ÀàÐÍ + *@return ·µ»Ø×ÖÄ»ÀàÐÍ + */ + int getType() + { + return type; + } + + /** + *È¡µÃDVB subtitleµÄcomposition page ID + *@return ·µ»Øcomposition page ID + */ + int getCompositionPageID() + { + return compositionPage; + } + + /** + *È¡µÃDVB subtitleµÄancillary page ID + *@return ·µ»Øancillary page ID + */ + int getAncillaryPageID() + { + return ancillaryPage; + } + + /** + *È¡µÃteletextµÄmagazine number + *@return ·µ»Ømagazine number + */ + int getMagazineNumber() + { + return magazineNo; + } + + /** + *È¡µÃteletextµÄpage number + *@return ·µ»Øpage number + */ + int getPageNumber() + { + return pageNo; + } + + private : + int compositionPage; + int ancillaryPage; + int magazineNo; + int pageNo; + int type; + }; + + /** + *TeletextÐÅÏ¢ + */ public : - class Teletext : public MultiLangElement { - public: - Teletext(int pid, String8 lang, int mag, int page): MultiLangElement(pid, lang) - { - magazineNo = mag; - pageNo = page; - } - - /** - *È¡µÃteletextµÄmagazine number - *@return ·µ»Ømagazine number - */ - int getMagazineNumber() - { - return magazineNo; - } - - /** - *È¡µÃteletextµÄpage number - *@return ·µ»Øpage number - */ - int getPageNumber() - { - return pageNo; - } - - private : - int magazineNo; - int pageNo; - }; - - //½ÚÄ¿ºÅÐÅÏ¢ + class Teletext : public MultiLangElement { + public: + Teletext(int pid, String8 lang, int mag, int page): MultiLangElement(pid, lang) + { + magazineNo = mag; + pageNo = page; + } + + /** + *È¡µÃteletextµÄmagazine number + *@return ·µ»Ømagazine number + */ + int getMagazineNumber() + { + return magazineNo; + } + + /** + *È¡µÃteletextµÄpage number + *@return ·µ»Øpage number + */ + int getPageNumber() + { + return pageNo; + } + + private : + int magazineNo; + int pageNo; + }; + + //½ÚÄ¿ºÅÐÅÏ¢ public: - /**Èç¹ûûÓз¢ÏÖ×ÓƵµÀ£¬ºöÂÔÓû§µÄÊäÈë*/ - static const int MINOR_CHECK_NONE = 0; - /**Èç¹ûûÓз¢ÏÖ×ÓƵµÀ£¬ÏòÉÏÑ°ÕÒ£¨×ÓƵµÀÊý×ÖÔö¼Ó£©,ÕÒµ½×ÓƵµÀºÅ×î´óµÄ*/ - static const int MINOR_CHECK_UP = 1; - /**Èç¹ûûÓз¢ÏÖ×ÓƵµÀ£¬ÏòÏÂÑ°ÕÒ£¨×ÓƵµÀÊý×Ö¼õС£©,ÕÒµ½×ÓƵµÀºÅ×îСµÄ*/ - static const int MINOR_CHECK_DOWN = 2; - /*Èç¹ûûÓз¢ÏÖ×ÓƵµÀ£¬ÏòÉÏÑ°ÕÒ£¬È»ºóÕÒµ½ÏòÉÏ×î½üµÄ.*/ - static const int MINOR_CHECK_NEAREST_UP = 3; - /*Èç¹ûûÓз¢ÏÖ×ÓƵµÀ£¬ÏòÏÂÑ°ÕÒ£¬È»ºóÕÒµ½ÏòÏÂ×î½üµÄ.*/ - static const int MINOR_CHECK_NEAREST_DOWN = 4; - - /** - *È¡µÃ½ÚÄ¿ºÅ - *@return ·µ»Ø½ÚÄ¿ºÅ - */ - int getNumber() - { - return major; - } - - /** - *È¡µÃÖ÷½ÚÄ¿ºÅ(ATSC) - *@return ·µ»Ø½ÚÄ¿µÄÖ÷½ÚÄ¿ºÅ - */ - int getMajor() - { - return major; - } - - /** - *È¡µÃ´Î½ÚÄ¿ºÅ(ATSC) - *@return ·µ»Ø½ÚÄ¿µÄ´Î½ÚÄ¿ºÅ - */ - int getMinor() - { - return minor; - } - - /** - *ÊÇ·ñΪATSCģʽ - *@return Èç¹ûÊÇATSCģʽ·µ»Øtrue - */ - bool isATSCMode() - { - return atscMode; - } - - /** - *È¡µÃ×ÓƵµÀºÅ×Ô¶¯²éÕÒ²ßÂÔ(ATSC) - *@return ·µ»Ø×ÓƵµÀºÅ×Ô¶¯²éÕÒ²ßÂÔ - */ - int getMinorCheck() - { - return minorCheck; - } + /**Èç¹ûûÓз¢ÏÖ×ÓƵµÀ£¬ºöÂÔÓû§µÄÊäÈë*/ + static const int MINOR_CHECK_NONE = 0; + /**Èç¹ûûÓз¢ÏÖ×ÓƵµÀ£¬ÏòÉÏÑ°ÕÒ£¨×ÓƵµÀÊý×ÖÔö¼Ó£©,ÕÒµ½×ÓƵµÀºÅ×î´óµÄ*/ + static const int MINOR_CHECK_UP = 1; + /**Èç¹ûûÓз¢ÏÖ×ÓƵµÀ£¬ÏòÏÂÑ°ÕÒ£¨×ÓƵµÀÊý×Ö¼õС£©,ÕÒµ½×ÓƵµÀºÅ×îСµÄ*/ + static const int MINOR_CHECK_DOWN = 2; + /*Èç¹ûûÓз¢ÏÖ×ÓƵµÀ£¬ÏòÉÏÑ°ÕÒ£¬È»ºóÕÒµ½ÏòÉÏ×î½üµÄ.*/ + static const int MINOR_CHECK_NEAREST_UP = 3; + /*Èç¹ûûÓз¢ÏÖ×ÓƵµÀ£¬ÏòÏÂÑ°ÕÒ£¬È»ºóÕÒµ½ÏòÏÂ×î½üµÄ.*/ + static const int MINOR_CHECK_NEAREST_DOWN = 4; + + /** + *È¡µÃ½ÚÄ¿ºÅ + *@return ·µ»Ø½ÚÄ¿ºÅ + */ + int getNumber() + { + return major; + } + + /** + *È¡µÃÖ÷½ÚÄ¿ºÅ(ATSC) + *@return ·µ»Ø½ÚÄ¿µÄÖ÷½ÚÄ¿ºÅ + */ + int getMajor() + { + return major; + } + + /** + *È¡µÃ´Î½ÚÄ¿ºÅ(ATSC) + *@return ·µ»Ø½ÚÄ¿µÄ´Î½ÚÄ¿ºÅ + */ + int getMinor() + { + return minor; + } + + /** + *ÊÇ·ñΪATSCģʽ + *@return Èç¹ûÊÇATSCģʽ·µ»Øtrue + */ + bool isATSCMode() + { + return atscMode; + } + + /** + *È¡µÃ×ÓƵµÀºÅ×Ô¶¯²éÕÒ²ßÂÔ(ATSC) + *@return ·µ»Ø×ÓƵµÀºÅ×Ô¶¯²éÕÒ²ßÂÔ + */ + int getMinorCheck() + { + return minorCheck; + } private: - int major; - int minor; - int minorCheck; - bool atscMode; + int major; + int minor; + int minorCheck; + bool atscMode; public: - CTvProgram(CTvDatabase::Cursor &c); - CTvProgram(int channelID, int type, int num, int skipFlag); - /** - *ÏòÊý¾Ý¿âÌí¼ÓÒ»¸öProgram,atscMode - */ - CTvProgram(int channelID, int type, int major, int minor, int skipFlag); - ~CTvProgram(); - // ´´½¨²¢ÏòÊý¾Ý¿âÌí¼ÓÒ»¸öProgram - CTvProgram(int channelID, int type); - - CTvProgram(); - - - int getCurrentAudio(String8 defaultLang); - Video *getVideo() - { - return mpVideo; - } - Audio *getAudio(int id) - { - if (mvAudios.size() <= 0) return NULL; - return mvAudios[id]; - } - - int getAudioTrackSize() - { - return mvAudios.size(); - } - static int selectByID(int id, CTvProgram &p); - static CTvProgram selectByNumber(int num, int type); - int selectByNumber(int type, int major, int minor, CTvProgram &prog, int minor_check = MINOR_CHECK_NONE); - static int selectByNumber(int type, int num, CTvProgram &prog); - static int selectByChannel(int channelID, int type, Vector<sp<CTvProgram> > &out); - // ÁгöÈ«²¿TVProgram - static int selectAll(bool no_skip, Vector<sp<CTvProgram> > &out); - static int selectByType(int type, int skip, Vector<sp<CTvProgram> > &out); - static int selectByChanID(int type, int skip, Vector<sp<CTvProgram> > &out); - static Vector<CTvProgram> selectByChannel(int channelID); - // ¸ù¾Ý½ÚÄ¿Ãû³ÆÖеĹؼü×Ö²éÕÒÖ¸¶¨TVProgram - static Vector<CTvProgram> selectByName(int name); - void tvProgramDelByChannelID(int channelID); - int getID() - { - return id; - }; - int getSrc() - { - return src; - }; - int getProgType() - { - return type; - }; - int getChanOrderNum() - { - return chanOrderNum; - }; - int getChanVolume() - { - return volume; - }; - int getSourceId() - { - return sourceID; - }; - int getServiceId() - { - return dvbServiceID; - }; - int getProgSkipFlag(); - int getSubtitleIndex(int progId); - int setSubtitleIndex(int progId, int index); - void setCurrAudioTrackIndex(int programId, int audioIndex); - int getCurrAudioTrackIndex(); - - String8 getName(); - void getCurrentSubtitle(); - void getCurrentTeletext(); - int getChannel(CTvChannel &c); - int upDateChannel(CTvChannel &c, int std, int freq, int fineFreq); - int updateVolComp(int progID, int volValue); - void updateProgramName(int progId, String8 strName); - void setSkipFlag(int progId, bool bSkipFlag); - void setFavoriteFlag(int progId, bool bFavor); - int getFavoriteFlag() - { - return favorite; - }; - void deleteProgram(int progId); - static int CleanAllProgramBySrvType(int srvType); - void setLockFlag(int progId, bool bLockFlag); - bool getLockFlag(); - void swapChanOrder(int ProgId1, int chanOrderNum1, int ProgId2, int chanOrderNum2); - int getAudioChannel(); - static int updateAudioChannel(int progId, int ch); - static int deleteChannelsProgram(CTvChannel &c); - Vector<Subtitle *> getSubtitles() - { - return mvSubtitles; - } + CTvProgram(CTvDatabase::Cursor &c); + CTvProgram(int channelID, int type, int num, int skipFlag); + /** + *ÏòÊý¾Ý¿âÌí¼ÓÒ»¸öProgram,atscMode + */ + CTvProgram(int channelID, int type, int major, int minor, int skipFlag); + ~CTvProgram(); + // ´´½¨²¢ÏòÊý¾Ý¿âÌí¼ÓÒ»¸öProgram + CTvProgram(int channelID, int type); + + CTvProgram(); + + + int getCurrentAudio(String8 defaultLang); + Video *getVideo() + { + return mpVideo; + } + Audio *getAudio(int id) + { + if (mvAudios.size() <= 0) return NULL; + return mvAudios[id]; + } + + int getAudioTrackSize() + { + return mvAudios.size(); + } + static int selectByID(int id, CTvProgram &p); + static CTvProgram selectByNumber(int num, int type); + int selectByNumber(int type, int major, int minor, CTvProgram &prog, int minor_check = MINOR_CHECK_NONE); + static int selectByNumber(int type, int num, CTvProgram &prog); + static int selectByChannel(int channelID, int type, Vector<sp<CTvProgram> > &out); + // ÁгöÈ«²¿TVProgram + static int selectAll(bool no_skip, Vector<sp<CTvProgram> > &out); + static int selectByType(int type, int skip, Vector<sp<CTvProgram> > &out); + static int selectByChanID(int type, int skip, Vector<sp<CTvProgram> > &out); + static Vector<CTvProgram> selectByChannel(int channelID); + // ¸ù¾Ý½ÚÄ¿Ãû³ÆÖеĹؼü×Ö²éÕÒÖ¸¶¨TVProgram + static Vector<CTvProgram> selectByName(int name); + void tvProgramDelByChannelID(int channelID); + int getID() + { + return id; + }; + int getSrc() + { + return src; + }; + int getProgType() + { + return type; + }; + int getChanOrderNum() + { + return chanOrderNum; + }; + int getChanVolume() + { + return volume; + }; + int getSourceId() + { + return sourceID; + }; + int getServiceId() + { + return dvbServiceID; + }; + int getProgSkipFlag(); + int getSubtitleIndex(int progId); + int setSubtitleIndex(int progId, int index); + void setCurrAudioTrackIndex(int programId, int audioIndex); + int getCurrAudioTrackIndex(); + + String8 getName(); + void getCurrentSubtitle(); + void getCurrentTeletext(); + int getChannel(CTvChannel &c); + int upDateChannel(CTvChannel &c, int std, int freq, int fineFreq); + int updateVolComp(int progID, int volValue); + void updateProgramName(int progId, String8 strName); + void setSkipFlag(int progId, bool bSkipFlag); + void setFavoriteFlag(int progId, bool bFavor); + int getFavoriteFlag() + { + return favorite; + }; + void deleteProgram(int progId); + static int CleanAllProgramBySrvType(int srvType); + void setLockFlag(int progId, bool bLockFlag); + bool getLockFlag(); + void swapChanOrder(int ProgId1, int chanOrderNum1, int ProgId2, int chanOrderNum2); + int getAudioChannel(); + static int updateAudioChannel(int progId, int ch); + static int deleteChannelsProgram(CTvChannel &c); + Vector<Subtitle *> getSubtitles() + { + return mvSubtitles; + } private: - int CreateFromCursor(CTvDatabase::Cursor &c); - int selectProgramInChannelByNumber(int channelID, int num, CTvDatabase::Cursor &c); - int selectProgramInChannelByNumber(int channelID, int major, int minor, CTvDatabase::Cursor &c); - CTvChannel channel; - int id; - int dvbServiceID; - int type; - String8 name; - int channelID; - int skip; - int favorite; - int volume; - int sourceID; - int pmtPID; - int src; - int audioTrack; - int chanOrderNum; - int currAudTrackIndex; - bool lock; - bool scrambled; - // videoÐÅÏ¢,ÀàÐͲ»¶¨ - Video *mpVideo; - // audioÐÅÏ¢,ÀàÐͲ»¶¨ - Vector<Audio *> mvAudios; - // subtitleÐÅÏ¢ÀàÐͲ»¶¨ - Vector<Subtitle *> mvSubtitles; - // teletextÐÅÏ¢,ÀàÐͲ»¶¨ - Vector<Teletext *> mvTeletexts; + int CreateFromCursor(CTvDatabase::Cursor &c); + int selectProgramInChannelByNumber(int channelID, int num, CTvDatabase::Cursor &c); + int selectProgramInChannelByNumber(int channelID, int major, int minor, CTvDatabase::Cursor &c); + CTvChannel channel; + int id; + int dvbServiceID; + int type; + String8 name; + int channelID; + int skip; + int favorite; + int volume; + int sourceID; + int pmtPID; + int src; + int audioTrack; + int chanOrderNum; + int currAudTrackIndex; + bool lock; + bool scrambled; + // videoÐÅÏ¢,ÀàÐͲ»¶¨ + Video *mpVideo; + // audioÐÅÏ¢,ÀàÐͲ»¶¨ + Vector<Audio *> mvAudios; + // subtitleÐÅÏ¢ÀàÐͲ»¶¨ + Vector<Subtitle *> mvSubtitles; + // teletextÐÅÏ¢,ÀàÐͲ»¶¨ + Vector<Teletext *> mvTeletexts; }; diff --git a/tvapi/libtv/tvdb/CTvRegion.cpp b/tvapi/libtv/tvdb/CTvRegion.cpp index b6c3ce0..7f87549 100644 --- a/tvapi/libtv/tvdb/CTvRegion.cpp +++ b/tvapi/libtv/tvdb/CTvRegion.cpp @@ -35,110 +35,110 @@ CTvRegion::~CTvRegion() CTvRegion CTvRegion::selectByID() { - CTvRegion r; - return r; + CTvRegion r; + return r; } int CTvRegion::getChannelListByName(char *name, Vector<sp<CTvChannel> > &vcp) { - if (name == NULL) - return -1; - - String8 cmd; - cmd = String8("select * from region_table where name = ") + String8("\'") + name + String8("\'"); - - CTvDatabase::Cursor c; - CTvDatabase::GetTvDb()->select(cmd, c); - int col, size = 0; - int id; - int mode; - int frequency = 0; - int bandwidth; - int modulation; - int symbolRate; - int ofdmMode; - int channelNum = 0; - - if (c.moveToFirst()) { - do { - col = c.getColumnIndex("db_id"); - id = c.getInt(col); - col = c.getColumnIndex("fe_type"); - mode = c.getInt(col); - col = c.getColumnIndex("frequency"); - frequency = c.getInt(col); - col = c.getColumnIndex("modulation"); - modulation = c.getInt(col); - col = c.getColumnIndex("bandwidth"); - bandwidth = c.getInt(col); - col = c.getColumnIndex("symbol_rate"); - symbolRate = c.getInt(col); - col = c.getColumnIndex("ofdm_mode"); - ofdmMode = c.getInt(col); - col = c.getColumnIndex("logical_channel_num"); - channelNum = c.getInt(col); - vcp.add(new CTvChannel(id, mode, frequency, bandwidth, modulation, symbolRate, ofdmMode, channelNum)); - size++; - } while (c.moveToNext()); - } - c.close(); - - return size; + if (name == NULL) + return -1; + + String8 cmd; + cmd = String8("select * from region_table where name = ") + String8("\'") + name + String8("\'"); + + CTvDatabase::Cursor c; + CTvDatabase::GetTvDb()->select(cmd, c); + int col, size = 0; + int id; + int mode; + int frequency = 0; + int bandwidth; + int modulation; + int symbolRate; + int ofdmMode; + int channelNum = 0; + + if (c.moveToFirst()) { + do { + col = c.getColumnIndex("db_id"); + id = c.getInt(col); + col = c.getColumnIndex("fe_type"); + mode = c.getInt(col); + col = c.getColumnIndex("frequency"); + frequency = c.getInt(col); + col = c.getColumnIndex("modulation"); + modulation = c.getInt(col); + col = c.getColumnIndex("bandwidth"); + bandwidth = c.getInt(col); + col = c.getColumnIndex("symbol_rate"); + symbolRate = c.getInt(col); + col = c.getColumnIndex("ofdm_mode"); + ofdmMode = c.getInt(col); + col = c.getColumnIndex("logical_channel_num"); + channelNum = c.getInt(col); + vcp.add(new CTvChannel(id, mode, frequency, bandwidth, modulation, symbolRate, ofdmMode, channelNum)); + size++; + } while (c.moveToNext()); + } + c.close(); + + return size; } int CTvRegion::getChannelListByNameAndFreqRange(char *name, int beginFreq, int endFreq, Vector<sp<CTvChannel> > &vcp) { - if (name == NULL) - return -1; - int ret = 0; - String8 cmd; - cmd = String8("select * from region_table where name = ") + String8("\'") + name + String8("\'") - + String8(" and frequency >= ") + String8::format("%d", beginFreq) + String8(" and frequency <= ") - + String8::format("%d", endFreq); - - CTvDatabase::Cursor c; - CTvDatabase::GetTvDb()->select(cmd, c); - int col, size = 0; - int id; - int mode; - int frequency = 0; - int bandwidth; - int modulation; - int symbolRate; - int ofdmMode; - int channelNum = 0; - - do { - if (c.moveToFirst()) { - do { - col = c.getColumnIndex("db_id"); - id = c.getInt(col); - col = c.getColumnIndex("fe_type"); - mode = c.getInt(col); - col = c.getColumnIndex("frequency"); - frequency = c.getInt(col); - col = c.getColumnIndex("modulation"); - modulation = c.getInt(col); - col = c.getColumnIndex("bandwidth"); - bandwidth = c.getInt(col); - col = c.getColumnIndex("symbol_rate"); - symbolRate = c.getInt(col); - col = c.getColumnIndex("ofdm_mode"); - ofdmMode = c.getInt(col); - col = c.getColumnIndex("logical_channel_num"); - channelNum = c.getInt(col); - vcp.add(new CTvChannel(id, mode, frequency, bandwidth, modulation, symbolRate, ofdmMode, channelNum)); - size++; - } while (c.moveToNext()); - } else { - ret = -1; - break; - } - } while (false); - - c.close(); - return ret; + if (name == NULL) + return -1; + int ret = 0; + String8 cmd; + cmd = String8("select * from region_table where name = ") + String8("\'") + name + String8("\'") + + String8(" and frequency >= ") + String8::format("%d", beginFreq) + String8(" and frequency <= ") + + String8::format("%d", endFreq); + + CTvDatabase::Cursor c; + CTvDatabase::GetTvDb()->select(cmd, c); + int col, size = 0; + int id; + int mode; + int frequency = 0; + int bandwidth; + int modulation; + int symbolRate; + int ofdmMode; + int channelNum = 0; + + do { + if (c.moveToFirst()) { + do { + col = c.getColumnIndex("db_id"); + id = c.getInt(col); + col = c.getColumnIndex("fe_type"); + mode = c.getInt(col); + col = c.getColumnIndex("frequency"); + frequency = c.getInt(col); + col = c.getColumnIndex("modulation"); + modulation = c.getInt(col); + col = c.getColumnIndex("bandwidth"); + bandwidth = c.getInt(col); + col = c.getColumnIndex("symbol_rate"); + symbolRate = c.getInt(col); + col = c.getColumnIndex("ofdm_mode"); + ofdmMode = c.getInt(col); + col = c.getColumnIndex("logical_channel_num"); + channelNum = c.getInt(col); + vcp.add(new CTvChannel(id, mode, frequency, bandwidth, modulation, symbolRate, ofdmMode, channelNum)); + size++; + } while (c.moveToNext()); + } else { + ret = -1; + break; + } + } while (false); + + c.close(); + return ret; } void CTvRegion::selectByCountry() { @@ -147,37 +147,37 @@ void CTvRegion::selectByCountry() Vector<String8> CTvRegion::getAllCountry() { - Vector<String8> vStr; - return vStr; + Vector<String8> vStr; + return vStr; } CTvChannel CTvRegion::getChannels() { - CTvChannel p; - return p; + CTvChannel p; + return p; } int CTvRegion::getLogicNumByNameAndfreq(char *name, int freq) { - int ret = 0; - int col = 0; + int ret = 0; + int col = 0; - if (name == NULL) - return -1; + if (name == NULL) + return -1; - String8 cmd; - cmd = String8("select * from region_table where name = ") + String8("\'") + name + String8("\'"); - cmd += String8(" and frequency = ") + String8::format("%d", freq); + String8 cmd; + cmd = String8("select * from region_table where name = ") + String8("\'") + name + String8("\'"); + cmd += String8(" and frequency = ") + String8::format("%d", freq); - CTvDatabase::Cursor c; - CTvDatabase::GetTvDb()->select(cmd, c); - if (c.moveToFirst()) { - col = c.getColumnIndex("logical_channel_num"); - ret = c.getInt(col); - } - c.close(); + CTvDatabase::Cursor c; + CTvDatabase::GetTvDb()->select(cmd, c); + if (c.moveToFirst()) { + col = c.getColumnIndex("logical_channel_num"); + ret = c.getInt(col); + } + c.close(); - return ret; + return ret; } diff --git a/tvapi/libtv/tvdb/CTvRegion.h b/tvapi/libtv/tvdb/CTvRegion.h index 7f1c7a7..e40a082 100644 --- a/tvapi/libtv/tvdb/CTvRegion.h +++ b/tvapi/libtv/tvdb/CTvRegion.h @@ -22,21 +22,21 @@ using namespace android; class CTvRegion { public: - int id; - String8 name; - String8 country; - CTvRegion(CTvDatabase db); - CTvRegion(); - ~CTvRegion(); - static CTvRegion selectByID(); - static int getChannelListByName(char *name, Vector<sp<CTvChannel> > &vcp); - static int getChannelListByNameAndFreqRange(char *name, int beginFreq, int endFreq, Vector<sp<CTvChannel> > &vcp); - static int getLogicNumByNameAndfreq(char *name, int freq); - void selectByCountry(); - Vector<String8> getAllCountry(); - // È¡µÃ¸ÃRegionµÄÐźÅԴƵÂʲÎÊýÁбí - // @return ·µ»ØÐźÅԴƵÂʲÎÊýÁбí - CTvChannel getChannels(); + int id; + String8 name; + String8 country; + CTvRegion(CTvDatabase db); + CTvRegion(); + ~CTvRegion(); + static CTvRegion selectByID(); + static int getChannelListByName(char *name, Vector<sp<CTvChannel> > &vcp); + static int getChannelListByNameAndFreqRange(char *name, int beginFreq, int endFreq, Vector<sp<CTvChannel> > &vcp); + static int getLogicNumByNameAndfreq(char *name, int freq); + void selectByCountry(); + Vector<String8> getAllCountry(); + // È¡µÃ¸ÃRegionµÄÐźÅԴƵÂʲÎÊýÁбí + // @return ·µ»ØÐźÅԴƵÂʲÎÊýÁбí + CTvChannel getChannels(); }; #endif //_CTVREGION_H diff --git a/tvapi/libtv/tvin/CHDMIRxCEC.cpp b/tvapi/libtv/tvin/CHDMIRxCEC.cpp index 22906a3..6583fe0 100644 --- a/tvapi/libtv/tvin/CHDMIRxCEC.cpp +++ b/tvapi/libtv/tvin/CHDMIRxCEC.cpp @@ -13,32 +13,32 @@ CTvin::CHDMIRxCEC::CHDMIRxCEC(CTvin *pTvin) { - int i = 0; + int i = 0; - for (i = 0; i < CC_REQUEST_LIST_SIZE; i++) { - ClrReplyListItem(&mReplyList[i]); - memset((void *) &mMsgBuf[i], 0, sizeof(struct _cec_msg)); - } + for (i = 0; i < CC_REQUEST_LIST_SIZE; i++) { + ClrReplyListItem(&mReplyList[i]); + memset((void *) &mMsgBuf[i], 0, sizeof(struct _cec_msg)); + } - mModuleEnableFlag = -1; - mRequestPause = false; - mState = STATE_STOPED; + mModuleEnableFlag = -1; + mRequestPause = false; + mState = STATE_STOPED; - mpObserver = NULL; - mpTvin = pTvin; + mpObserver = NULL; + mpTvin = pTvin; - for (i = 0; i < CC_SOURCE_DEV_REFRESH_CNT; i++) { - mSourceDevLogicAddrBuf[i] = -1; - mSourceDevRefreshBuf[i] = -1; - } + for (i = 0; i < CC_SOURCE_DEV_REFRESH_CNT; i++) { + mSourceDevLogicAddrBuf[i] = -1; + mSourceDevRefreshBuf[i] = -1; + } - mSourceDevLogicAddrBuf[0] = E_LA_TV; - mSourceDevLogicAddrBuf[1] = E_LA_TV; - mSourceDevLogicAddrBuf[2] = E_LA_TV; + mSourceDevLogicAddrBuf[0] = E_LA_TV; + mSourceDevLogicAddrBuf[1] = E_LA_TV; + mSourceDevLogicAddrBuf[2] = E_LA_TV; - mSourceDevRefreshBuf[0] = E_LA_PLAYBACK1; - mSourceDevRefreshBuf[1] = E_LA_PLAYBACK2; - mSourceDevRefreshBuf[2] = E_LA_PLYBACK3; + mSourceDevRefreshBuf[0] = E_LA_PLAYBACK1; + mSourceDevRefreshBuf[1] = E_LA_PLAYBACK2; + mSourceDevRefreshBuf[2] = E_LA_PLYBACK3; } CTvin::CHDMIRxCEC::~CHDMIRxCEC() @@ -47,608 +47,608 @@ CTvin::CHDMIRxCEC::~CHDMIRxCEC() int CTvin::CHDMIRxCEC::start() { - CMutex::Autolock _l (mLock); + CMutex::Autolock _l (mLock); - if (GetModuleEnableFlag() == 0) { - return -1; - } + if (GetModuleEnableFlag() == 0) { + return -1; + } - if (mState == STATE_STOPED) { - this->run(); - } + if (mState == STATE_STOPED) { + this->run(); + } - return mState; + return mState; } int CTvin::CHDMIRxCEC::stop() { - CMutex::Autolock _l (mLock); + CMutex::Autolock _l (mLock); - if (GetModuleEnableFlag() == 0) { - return -1; - } + if (GetModuleEnableFlag() == 0) { + return -1; + } - if (mState == STATE_PAUSE) { - resume(); - } + if (mState == STATE_PAUSE) { + resume(); + } - requestExit(); - mState = STATE_STOPED; - return mState; + requestExit(); + mState = STATE_STOPED; + return mState; } int CTvin::CHDMIRxCEC::pause() { - CMutex::Autolock _l (mLock); + CMutex::Autolock _l (mLock); - if (GetModuleEnableFlag() == 0) { - return -1; - } + if (GetModuleEnableFlag() == 0) { + return -1; + } - mRequestPause = true; - return 0; + mRequestPause = true; + return 0; } int CTvin::CHDMIRxCEC::resume() { - CMutex::Autolock _l (mLock); + CMutex::Autolock _l (mLock); - if (GetModuleEnableFlag() == 0) { - return -1; - } + if (GetModuleEnableFlag() == 0) { + return -1; + } - ClearRxMessageBuffer(); + ClearRxMessageBuffer(); - mRequestPause = false; - mPauseCondition.signal(); + mRequestPause = false; + mPauseCondition.signal(); - ClearRxMessageBuffer(); - return 0; + ClearRxMessageBuffer(); + return 0; } int CTvin::CHDMIRxCEC::isAllowOperate(int source_input) { - if (GetModuleEnableFlag() == 0) { - return -1; - } + if (GetModuleEnableFlag() == 0) { + return -1; + } - int source_port = CTvin::Tvin_GetSourcePortBySourceInput((tv_source_input_t)source_input); - if (mpTvin->VDIN_GetPortConnect(source_port) == false) { - return -1; - } + int source_port = CTvin::Tvin_GetSourcePortBySourceInput((tv_source_input_t)source_input); + if (mpTvin->VDIN_GetPortConnect(source_port) == false) { + return -1; + } - return 0; + return 0; } int CTvin::CHDMIRxCEC::GetModuleEnableFlag() { - const char *config_value = NULL; - - if (mModuleEnableFlag < 0) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.hdmirx.cec.enable", "null"); - if (strcasecmp(config_value, "null") == 0) { - mModuleEnableFlag = 0; - } else if (strcasecmp(config_value, "1") == 0 || strcasecmp(config_value, "true") == 0) { - mModuleEnableFlag = 1; - } else { - mModuleEnableFlag = 0; - } - } - - return mModuleEnableFlag; + const char *config_value = NULL; + + if (mModuleEnableFlag < 0) { + config_value = config_get_str(CFG_SECTION_TV, "tvin.hdmirx.cec.enable", "null"); + if (strcasecmp(config_value, "null") == 0) { + mModuleEnableFlag = 0; + } else if (strcasecmp(config_value, "1") == 0 || strcasecmp(config_value, "true") == 0) { + mModuleEnableFlag = 1; + } else { + mModuleEnableFlag = 0; + } + } + + return mModuleEnableFlag; } int CTvin::CHDMIRxCEC::PrintMessage(const char *func_name, int data_type, struct _cec_msg *msg) { #ifdef CC_ENABLE_PRINT_MESSAGE - if (msg == NULL) { - LOGE("%s, msg is NULL\n", func_name); - return -1; - } - - LOGD("%s, msg_len = %d\n", func_name, msg->msg_len); - LOGD("%s, msg addr 0x%02X\n", func_name, msg->addr); - LOGD("%s, msg cmd 0x%02X\n", func_name, msg->cmd); - for (int i = 0; i < msg->msg_len - 2; i++) { - if (data_type == 0) { - LOGD("%s, msg data[%d] = 0x%02X\n", func_name, i, msg->msg_data[i]); - } else { - LOGD("%s, msg data[%d] = %c\n", func_name, i, msg->msg_data[i]); - } - } + if (msg == NULL) { + LOGE("%s, msg is NULL\n", func_name); + return -1; + } + + LOGD("%s, msg_len = %d\n", func_name, msg->msg_len); + LOGD("%s, msg addr 0x%02X\n", func_name, msg->addr); + LOGD("%s, msg cmd 0x%02X\n", func_name, msg->cmd); + for (int i = 0; i < msg->msg_len - 2; i++) { + if (data_type == 0) { + LOGD("%s, msg data[%d] = 0x%02X\n", func_name, i, msg->msg_data[i]); + } else { + LOGD("%s, msg data[%d] = %c\n", func_name, i, msg->msg_data[i]); + } + } #endif - return 0; + return 0; } int CTvin::CHDMIRxCEC::ClrReplyListItem(HDMIRxRequestReplyItem *reply_item) { - if (reply_item == NULL) { - return -1; - } - - reply_item->WaitCmd = 0; - reply_item->WaitLogicAddr = 0; - reply_item->WaitTimeOut = 0; - reply_item->WaitFlag = 0; - reply_item->DataFlag = 0; - memset((void *) & (reply_item->msg), 0, sizeof(struct _cec_msg)); - - return 0; + if (reply_item == NULL) { + return -1; + } + + reply_item->WaitCmd = 0; + reply_item->WaitLogicAddr = 0; + reply_item->WaitTimeOut = 0; + reply_item->WaitFlag = 0; + reply_item->DataFlag = 0; + memset((void *) & (reply_item->msg), 0, sizeof(struct _cec_msg)); + + return 0; } int CTvin::CHDMIRxCEC::CopyMessageData(unsigned char data_buf[], unsigned char msg_data[], int msg_len) { - if (data_buf == NULL) { - return 0; - } + if (data_buf == NULL) { + return 0; + } - memset((void *)data_buf, 0, CC_CEC_STREAM_SIZE); + memset((void *)data_buf, 0, CC_CEC_STREAM_SIZE); - if (msg_len > CC_CEC_STREAM_SIZE) { - return 0; - } + if (msg_len > CC_CEC_STREAM_SIZE) { + return 0; + } - if (msg_len <= 2) { - return 0; - } + if (msg_len <= 2) { + return 0; + } - msg_len -= 2; + msg_len -= 2; - memcpy(data_buf, msg_data, msg_len); + memcpy(data_buf, msg_data, msg_len); - return msg_len; + return msg_len; } int CTvin::CHDMIRxCEC::GetDeviceLogicAddr(int source_input) { - return mSourceDevLogicAddrBuf[source_input - SOURCE_HDMI1]; + return mSourceDevLogicAddrBuf[source_input - SOURCE_HDMI1]; } int CTvin::CHDMIRxCEC::processRefreshSrcDevice(int source_input) { - int i = 0, physical_addr = 0; - int source_port_1 = 0, source_port_2 = 0; - - if (source_input != SOURCE_HDMI1 && source_input != SOURCE_HDMI2 && source_input != SOURCE_HDMI3) { - return -1; - } - - mSourceDevLogicAddrBuf[0] = E_LA_TV; - mSourceDevLogicAddrBuf[1] = E_LA_TV; - mSourceDevLogicAddrBuf[2] = E_LA_TV; - - for (i = 0; i < CC_SOURCE_DEV_REFRESH_CNT; i++) { - if (mSourceDevRefreshBuf[i] < 0) { - continue; - } - - physical_addr = 0; - if (SendGivePhysicalAddressMessage(source_input, mSourceDevRefreshBuf[i], &physical_addr) > 0) { - source_port_1 = CTvin::Tvin_GetSourcePortBySourceInput((tv_source_input_t)source_input); - source_port_2 = CTvin::Tvin_GetSourcePortByCECPhysicalAddress(physical_addr); - if (source_port_1 == source_port_2) { - mSourceDevLogicAddrBuf[source_input - SOURCE_HDMI1] = mSourceDevRefreshBuf[i]; - break; - } - } - } - - if (i == CC_SOURCE_DEV_REFRESH_CNT) { - return -1; - } - - return 0; + int i = 0, physical_addr = 0; + int source_port_1 = 0, source_port_2 = 0; + + if (source_input != SOURCE_HDMI1 && source_input != SOURCE_HDMI2 && source_input != SOURCE_HDMI3) { + return -1; + } + + mSourceDevLogicAddrBuf[0] = E_LA_TV; + mSourceDevLogicAddrBuf[1] = E_LA_TV; + mSourceDevLogicAddrBuf[2] = E_LA_TV; + + for (i = 0; i < CC_SOURCE_DEV_REFRESH_CNT; i++) { + if (mSourceDevRefreshBuf[i] < 0) { + continue; + } + + physical_addr = 0; + if (SendGivePhysicalAddressMessage(source_input, mSourceDevRefreshBuf[i], &physical_addr) > 0) { + source_port_1 = CTvin::Tvin_GetSourcePortBySourceInput((tv_source_input_t)source_input); + source_port_2 = CTvin::Tvin_GetSourcePortByCECPhysicalAddress(physical_addr); + if (source_port_1 == source_port_2) { + mSourceDevLogicAddrBuf[source_input - SOURCE_HDMI1] = mSourceDevRefreshBuf[i]; + break; + } + } + } + + if (i == CC_SOURCE_DEV_REFRESH_CNT) { + return -1; + } + + return 0; } int CTvin::CHDMIRxCEC::ClearRxMessageBuffer() { - int m_cec_dev_fd = -1; + int m_cec_dev_fd = -1; - m_cec_dev_fd = open(CS_HDMIRX_CEC_PATH, O_RDWR); - if (m_cec_dev_fd < 0) { - LOGE("%s, Open file %s error: (%s)!\n", __FUNCTION__, CS_HDMIRX_CEC_PATH, strerror ( errno )); - return -1; - } + m_cec_dev_fd = open(CS_HDMIRX_CEC_PATH, O_RDWR); + if (m_cec_dev_fd < 0) { + LOGE("%s, Open file %s error: (%s)!\n", __FUNCTION__, CS_HDMIRX_CEC_PATH, strerror ( errno )); + return -1; + } - ioctl(m_cec_dev_fd, HDMI_IOC_CEC_CLEAR_BUFFER, NULL); + ioctl(m_cec_dev_fd, HDMI_IOC_CEC_CLEAR_BUFFER, NULL); - close(m_cec_dev_fd); - m_cec_dev_fd = -1; + close(m_cec_dev_fd); + m_cec_dev_fd = -1; - return 0; + return 0; } int CTvin::CHDMIRxCEC::GetMessage(struct _cec_msg msg_buf[]) { - int i = 0; - int m_cec_dev_fd = -1; - int msg_cnt = 0; - - if (msg_buf == NULL) { - LOGE("%s, msg_buf is NULL\n", __FUNCTION__); - } - - m_cec_dev_fd = open(CS_HDMIRX_CEC_PATH, O_RDWR); - if (m_cec_dev_fd < 0) { - LOGE("%s, Open file %s error: (%s)!\n", __FUNCTION__, CS_HDMIRX_CEC_PATH, strerror ( errno )); - return 0; - } - - ioctl(m_cec_dev_fd, HDMI_IOC_CEC_GET_MSG_CNT, &msg_cnt); - if (msg_cnt > 0) { - LOGD("%s, msg_cnt = %d\n", __FUNCTION__, msg_cnt); - - for (i = 0; i < msg_cnt; i++) { - ioctl(m_cec_dev_fd, HDMI_IOC_CEC_GET_MSG, &msg_buf[i]); - PrintMessage(__FUNCTION__, 0, &msg_buf[i]); - } - } - - close(m_cec_dev_fd); - m_cec_dev_fd = -1; - - return msg_cnt; + int i = 0; + int m_cec_dev_fd = -1; + int msg_cnt = 0; + + if (msg_buf == NULL) { + LOGE("%s, msg_buf is NULL\n", __FUNCTION__); + } + + m_cec_dev_fd = open(CS_HDMIRX_CEC_PATH, O_RDWR); + if (m_cec_dev_fd < 0) { + LOGE("%s, Open file %s error: (%s)!\n", __FUNCTION__, CS_HDMIRX_CEC_PATH, strerror ( errno )); + return 0; + } + + ioctl(m_cec_dev_fd, HDMI_IOC_CEC_GET_MSG_CNT, &msg_cnt); + if (msg_cnt > 0) { + LOGD("%s, msg_cnt = %d\n", __FUNCTION__, msg_cnt); + + for (i = 0; i < msg_cnt; i++) { + ioctl(m_cec_dev_fd, HDMI_IOC_CEC_GET_MSG, &msg_buf[i]); + PrintMessage(__FUNCTION__, 0, &msg_buf[i]); + } + } + + close(m_cec_dev_fd); + m_cec_dev_fd = -1; + + return msg_cnt; } int CTvin::CHDMIRxCEC::SendMessage(struct _cec_msg *msg) { - int m_cec_dev_fd = -1; + int m_cec_dev_fd = -1; - if (msg == NULL) { - LOGE("%s, msg is NULL\n", __FUNCTION__); - } + if (msg == NULL) { + LOGE("%s, msg is NULL\n", __FUNCTION__); + } - PrintMessage(__FUNCTION__, 0, msg); + PrintMessage(__FUNCTION__, 0, msg); - m_cec_dev_fd = open(CS_HDMIRX_CEC_PATH, O_RDWR); - if (m_cec_dev_fd < 0) { - LOGE("%s, Open file %s error: (%s)!\n", __FUNCTION__, CS_HDMIRX_CEC_PATH, strerror ( errno )); - return -1; - } + m_cec_dev_fd = open(CS_HDMIRX_CEC_PATH, O_RDWR); + if (m_cec_dev_fd < 0) { + LOGE("%s, Open file %s error: (%s)!\n", __FUNCTION__, CS_HDMIRX_CEC_PATH, strerror ( errno )); + return -1; + } - ioctl(m_cec_dev_fd, HDMI_IOC_CEC_SENT_MSG, msg); + ioctl(m_cec_dev_fd, HDMI_IOC_CEC_SENT_MSG, msg); - close(m_cec_dev_fd); - m_cec_dev_fd = -1; + close(m_cec_dev_fd); + m_cec_dev_fd = -1; - return 0; + return 0; } int CTvin::CHDMIRxCEC::sendMessageAndWaitReply(struct _cec_msg *msg, struct _cec_msg *reply_msg, int WaitCmd, int timeout) { - int tmp_ret = 0, tmp_ind = 0; + int tmp_ret = 0, tmp_ind = 0; - tmp_ret = SendMessage(msg); - if (tmp_ret < 0) { - return tmp_ret; - } + tmp_ret = SendMessage(msg); + if (tmp_ret < 0) { + return tmp_ret; + } - reply_msg->msg_len = 0; + reply_msg->msg_len = 0; - HDMIRxRequestReplyItem reply_item; - reply_item.WaitCmd = WaitCmd; - reply_item.WaitLogicAddr = msg->addr; - reply_item.WaitTimeOut = timeout; - reply_item.WaitFlag = 1; - reply_item.DataFlag = 0; + HDMIRxRequestReplyItem reply_item; + reply_item.WaitCmd = WaitCmd; + reply_item.WaitLogicAddr = msg->addr; + reply_item.WaitTimeOut = timeout; + reply_item.WaitFlag = 1; + reply_item.DataFlag = 0; - tmp_ind = addToRequestList(&reply_item); + tmp_ind = addToRequestList(&reply_item); - mReplyLock[tmp_ind].lock(); - mReplyList[tmp_ind].WaitReplyCondition.waitRelative(mReplyLock[tmp_ind], timeout);//wait reply - mReplyLock[tmp_ind].unlock(); + mReplyLock[tmp_ind].lock(); + mReplyList[tmp_ind].WaitReplyCondition.waitRelative(mReplyLock[tmp_ind], timeout);//wait reply + mReplyLock[tmp_ind].unlock(); - if (mReplyList[tmp_ind].DataFlag == 1) { - PrintMessage(__FUNCTION__, 0, &mReplyList[tmp_ind].msg); - *reply_msg = mReplyList[tmp_ind].msg; - } else { - rmFromRequestList(tmp_ind); - return -1; - } + if (mReplyList[tmp_ind].DataFlag == 1) { + PrintMessage(__FUNCTION__, 0, &mReplyList[tmp_ind].msg); + *reply_msg = mReplyList[tmp_ind].msg; + } else { + rmFromRequestList(tmp_ind); + return -1; + } - rmFromRequestList(tmp_ind); + rmFromRequestList(tmp_ind); - return 0; + return 0; } int CTvin::CHDMIRxCEC::SendCustomMessage(int source_input, unsigned char data_buf[]) { - CECMsgStream msg_stream; + CECMsgStream msg_stream; - if (isAllowOperate(source_input) < 0) { - return -1; - } + if (isAllowOperate(source_input) < 0) { + return -1; + } - memcpy((void *)msg_stream.buf, data_buf, CC_CEC_STREAM_SIZE); - if (msg_stream.msg.msg_len > CC_CEC_STREAM_SIZE) { - return -1; - } + memcpy((void *)msg_stream.buf, data_buf, CC_CEC_STREAM_SIZE); + if (msg_stream.msg.msg_len > CC_CEC_STREAM_SIZE) { + return -1; + } - return SendMessage(&msg_stream.msg); + return SendMessage(&msg_stream.msg); } int CTvin::CHDMIRxCEC::SendCustomMessageAndWaitReply(int source_input, unsigned char data_buf[], unsigned char reply_buf[], int WaitCmd, int timeout) { - CECMsgStream msg_stream; - struct _cec_msg reply_msg; + CECMsgStream msg_stream; + struct _cec_msg reply_msg; - if (isAllowOperate(source_input) < 0) { - return -1; - } + if (isAllowOperate(source_input) < 0) { + return -1; + } - memcpy((void *)msg_stream.buf, data_buf, CC_CEC_STREAM_SIZE); - if (msg_stream.msg.msg_len > CC_CEC_STREAM_SIZE) { - return -1; - } + memcpy((void *)msg_stream.buf, data_buf, CC_CEC_STREAM_SIZE); + if (msg_stream.msg.msg_len > CC_CEC_STREAM_SIZE) { + return -1; + } - if (sendMessageAndWaitReply(&msg_stream.msg, &reply_msg, WaitCmd, timeout) < 0) { - return -1; - } + if (sendMessageAndWaitReply(&msg_stream.msg, &reply_msg, WaitCmd, timeout) < 0) { + return -1; + } - return CopyMessageData(reply_buf, reply_msg.msg_data, reply_msg.msg_len); + return CopyMessageData(reply_buf, reply_msg.msg_data, reply_msg.msg_len); } int CTvin::CHDMIRxCEC::SendBoradcastStandbyMessage(int source_input) { - struct _cec_msg msg; + struct _cec_msg msg; - if (isAllowOperate(source_input) < 0) { - return -1; - } + if (isAllowOperate(source_input) < 0) { + return -1; + } - msg.addr = GetDeviceLogicAddr(source_input); - msg.cmd = E_MSG_STANDBY; - msg.msg_data[0] = 0; - msg.msg_len = 2; + msg.addr = GetDeviceLogicAddr(source_input); + msg.cmd = E_MSG_STANDBY; + msg.msg_data[0] = 0; + msg.msg_len = 2; - return SendMessage(&msg); + return SendMessage(&msg); } int CTvin::CHDMIRxCEC::SendGiveCECVersionMessage(int source_input, unsigned char data_buf[]) { - struct _cec_msg msg, reply_msg; + struct _cec_msg msg, reply_msg; - if (isAllowOperate(source_input) < 0) { - return -1; - } + if (isAllowOperate(source_input) < 0) { + return -1; + } - if (data_buf == NULL) { - return -1; - } + if (data_buf == NULL) { + return -1; + } - msg.addr = GetDeviceLogicAddr(source_input); - msg.cmd = E_MSG_GET_CEC_VERSION; - msg.msg_data[0] = 0; - msg.msg_len = 2; + msg.addr = GetDeviceLogicAddr(source_input); + msg.cmd = E_MSG_GET_CEC_VERSION; + msg.msg_data[0] = 0; + msg.msg_len = 2; - if (sendMessageAndWaitReply(&msg, &reply_msg, E_MSG_CEC_VERSION, 2000) < 0) { - return -1; - } + if (sendMessageAndWaitReply(&msg, &reply_msg, E_MSG_CEC_VERSION, 2000) < 0) { + return -1; + } - return CopyMessageData(data_buf, reply_msg.msg_data, reply_msg.msg_len); + return CopyMessageData(data_buf, reply_msg.msg_data, reply_msg.msg_len); } int CTvin::CHDMIRxCEC::SendGiveDeviceVendorIDMessage(int source_input, unsigned char data_buf[]) { - struct _cec_msg msg, reply_msg; + struct _cec_msg msg, reply_msg; - if (isAllowOperate(source_input) < 0) { - return -1; - } + if (isAllowOperate(source_input) < 0) { + return -1; + } - if (data_buf == NULL) { - return -1; - } + if (data_buf == NULL) { + return -1; + } - msg.addr = GetDeviceLogicAddr(source_input); - msg.cmd = E_MSG_GIVE_DEVICE_VENDOR_ID; - msg.msg_data[0] = 0; - msg.msg_len = 2; + msg.addr = GetDeviceLogicAddr(source_input); + msg.cmd = E_MSG_GIVE_DEVICE_VENDOR_ID; + msg.msg_data[0] = 0; + msg.msg_len = 2; - if (sendMessageAndWaitReply(&msg, &reply_msg, E_MSG_DEVICE_VENDOR_ID, 2000) < 0) { - return -1; - } + if (sendMessageAndWaitReply(&msg, &reply_msg, E_MSG_DEVICE_VENDOR_ID, 2000) < 0) { + return -1; + } - return CopyMessageData(data_buf, reply_msg.msg_data, reply_msg.msg_len); + return CopyMessageData(data_buf, reply_msg.msg_data, reply_msg.msg_len); } int CTvin::CHDMIRxCEC::SendGiveOSDNameMessage(int source_input, unsigned char data_buf[]) { - struct _cec_msg msg, reply_msg; + struct _cec_msg msg, reply_msg; - if (isAllowOperate(source_input) < 0) { - return -1; - } + if (isAllowOperate(source_input) < 0) { + return -1; + } - if (data_buf == NULL) { - return -1; - } + if (data_buf == NULL) { + return -1; + } - msg.addr = GetDeviceLogicAddr(source_input); - msg.cmd = E_MSG_OSDNT_GIVE_OSD_NAME; - msg.msg_data[0] = 0; - msg.msg_len = 2; + msg.addr = GetDeviceLogicAddr(source_input); + msg.cmd = E_MSG_OSDNT_GIVE_OSD_NAME; + msg.msg_data[0] = 0; + msg.msg_len = 2; - if (sendMessageAndWaitReply(&msg, &reply_msg, E_MSG_OSDNT_SET_OSD_NAME, 2000) < 0) { - return -1; - } + if (sendMessageAndWaitReply(&msg, &reply_msg, E_MSG_OSDNT_SET_OSD_NAME, 2000) < 0) { + return -1; + } - return CopyMessageData(data_buf, reply_msg.msg_data, reply_msg.msg_len); + return CopyMessageData(data_buf, reply_msg.msg_data, reply_msg.msg_len); } int CTvin::CHDMIRxCEC::SendGivePhysicalAddressMessage(int source_input, int logic_addr, int *physical_addr) { - struct _cec_msg msg, reply_msg; + struct _cec_msg msg, reply_msg; - if (isAllowOperate(source_input) < 0) { - return -1; - } + if (isAllowOperate(source_input) < 0) { + return -1; + } - if (physical_addr == NULL) { - return -1; - } + if (physical_addr == NULL) { + return -1; + } - msg.addr = logic_addr; - msg.cmd = E_MSG_GIVE_PHYSICAL_ADDRESS; - msg.msg_data[0] = 0; - msg.msg_len = 2; + msg.addr = logic_addr; + msg.cmd = E_MSG_GIVE_PHYSICAL_ADDRESS; + msg.msg_data[0] = 0; + msg.msg_len = 2; - if (sendMessageAndWaitReply(&msg, &reply_msg, E_MSG_REPORT_PHYSICAL_ADDRESS, 2000) < 0) { - return -1; - } + if (sendMessageAndWaitReply(&msg, &reply_msg, E_MSG_REPORT_PHYSICAL_ADDRESS, 2000) < 0) { + return -1; + } - if (reply_msg.msg_len == 5) { - *physical_addr = 0; - *physical_addr |= reply_msg.msg_data[0] << 8; - *physical_addr |= reply_msg.msg_data[1]; - return reply_msg.msg_len; - } + if (reply_msg.msg_len == 5) { + *physical_addr = 0; + *physical_addr |= reply_msg.msg_data[0] << 8; + *physical_addr |= reply_msg.msg_data[1]; + return reply_msg.msg_len; + } - return -1; + return -1; } int CTvin::CHDMIRxCEC::SendSetMenuLanguageMessage(int source_input, unsigned char data_buf[]) { - struct _cec_msg msg; + struct _cec_msg msg; - if (isAllowOperate(source_input) < 0) { - return -1; - } + if (isAllowOperate(source_input) < 0) { + return -1; + } - if (data_buf == NULL) { - return -1; - } + if (data_buf == NULL) { + return -1; + } - msg.addr = GetDeviceLogicAddr(source_input); - msg.cmd = E_MSG_SET_MENU_LANGUAGE; - msg.msg_data[0] = data_buf[0]; - msg.msg_data[1] = data_buf[1]; - msg.msg_data[2] = data_buf[2]; - msg.msg_len = 5; + msg.addr = GetDeviceLogicAddr(source_input); + msg.cmd = E_MSG_SET_MENU_LANGUAGE; + msg.msg_data[0] = data_buf[0]; + msg.msg_data[1] = data_buf[1]; + msg.msg_data[2] = data_buf[2]; + msg.msg_len = 5; - return SendMessage(&msg); + return SendMessage(&msg); } int CTvin::CHDMIRxCEC::SendVendorRemoteKeyDownMessage(int source_input, unsigned char key_val) { - struct _cec_msg msg; + struct _cec_msg msg; - if (isAllowOperate(source_input) < 0) { - return -1; - } + if (isAllowOperate(source_input) < 0) { + return -1; + } - msg.addr = GetDeviceLogicAddr(source_input); - msg.cmd = E_MSG_VENDOR_RC_BUT_DOWN; - msg.msg_data[0] = key_val; - msg.msg_len = 3; + msg.addr = GetDeviceLogicAddr(source_input); + msg.cmd = E_MSG_VENDOR_RC_BUT_DOWN; + msg.msg_data[0] = key_val; + msg.msg_len = 3; - return SendMessage(&msg); + return SendMessage(&msg); } int CTvin::CHDMIRxCEC::SendVendorRemoteKeyUpMessage(int source_input) { - struct _cec_msg msg; + struct _cec_msg msg; - if (isAllowOperate(source_input) < 0) { - return -1; - } + if (isAllowOperate(source_input) < 0) { + return -1; + } - msg.addr = GetDeviceLogicAddr(source_input); - msg.cmd = E_MSG_VENDOR_RC_BUT_UP; - msg.msg_data[0] = 0; - msg.msg_len = 2; + msg.addr = GetDeviceLogicAddr(source_input); + msg.cmd = E_MSG_VENDOR_RC_BUT_UP; + msg.msg_data[0] = 0; + msg.msg_len = 2; - return SendMessage(&msg); + return SendMessage(&msg); } int CTvin::CHDMIRxCEC::rmFromRequestList(int index) { - mListLock.lock(); + mListLock.lock(); - ClrReplyListItem(&mReplyList[index]); + ClrReplyListItem(&mReplyList[index]); - mListLock.unlock(); + mListLock.unlock(); - return 0; + return 0; } int CTvin::CHDMIRxCEC::addToRequestList(HDMIRxRequestReplyItem *reply_item) { - int i = 0; + int i = 0; - mListLock.lock(); + mListLock.lock(); - for (i = 0; i < CC_REQUEST_LIST_SIZE; i++) { - if (mReplyList[i].WaitFlag == 0) { - mReplyList[i] = *reply_item; - mListLock.unlock(); - return i; - } - } + for (i = 0; i < CC_REQUEST_LIST_SIZE; i++) { + if (mReplyList[i].WaitFlag == 0) { + mReplyList[i] = *reply_item; + mListLock.unlock(); + return i; + } + } - mListLock.unlock(); + mListLock.unlock(); - return 0; + return 0; } int CTvin::CHDMIRxCEC::processData(int msg_cnt) { - int i = 0, j = 0; - CECMsgStream msg_stream; - - for (i = 0; i < msg_cnt; i++) { - for (j = 0; j < CC_REQUEST_LIST_SIZE; j++) { - if (mReplyList[j].WaitFlag) { - if (mMsgBuf[i].cmd == mReplyList[j].WaitCmd && ((mMsgBuf[i].addr & 0xF0) >> 4) == mReplyList[j].WaitLogicAddr) { - mReplyList[j].DataFlag = 1; - mReplyList[j].msg = mMsgBuf[i]; - PrintMessage(__FUNCTION__, 0, &mReplyList[j].msg); - mReplyList[j].WaitReplyCondition.signal(); - - return 0; - } - } - } - - msg_stream.msg = mMsgBuf[i]; - if (mpObserver != NULL) { - mpObserver->onHDMIRxCECMessage(msg_stream.msg.msg_len, msg_stream.buf); - } - } - - return 0; + int i = 0, j = 0; + CECMsgStream msg_stream; + + for (i = 0; i < msg_cnt; i++) { + for (j = 0; j < CC_REQUEST_LIST_SIZE; j++) { + if (mReplyList[j].WaitFlag) { + if (mMsgBuf[i].cmd == mReplyList[j].WaitCmd && ((mMsgBuf[i].addr & 0xF0) >> 4) == mReplyList[j].WaitLogicAddr) { + mReplyList[j].DataFlag = 1; + mReplyList[j].msg = mMsgBuf[i]; + PrintMessage(__FUNCTION__, 0, &mReplyList[j].msg); + mReplyList[j].WaitReplyCondition.signal(); + + return 0; + } + } + } + + msg_stream.msg = mMsgBuf[i]; + if (mpObserver != NULL) { + mpObserver->onHDMIRxCECMessage(msg_stream.msg.msg_len, msg_stream.buf); + } + } + + return 0; } bool CTvin::CHDMIRxCEC::threadLoop() { - int msg_cnt = 0; - int sleeptime = 200; //ms + int msg_cnt = 0; + int sleeptime = 200; //ms - mState = STATE_RUNNING; + mState = STATE_RUNNING; - while (!exitPending()) { //requietexit() or requietexitWait() not call - while (mRequestPause) { - mLock.lock(); - mState = STATE_PAUSE; - mPauseCondition.wait(mLock); //first unlock,when return,lock again,so need,call unlock - mState = STATE_RUNNING; - mLock.unlock(); - } + while (!exitPending()) { //requietexit() or requietexitWait() not call + while (mRequestPause) { + mLock.lock(); + mState = STATE_PAUSE; + mPauseCondition.wait(mLock); //first unlock,when return,lock again,so need,call unlock + mState = STATE_RUNNING; + mLock.unlock(); + } - msg_cnt = GetMessage(mMsgBuf); + msg_cnt = GetMessage(mMsgBuf); - processData(msg_cnt); + processData(msg_cnt); - if (!mRequestPause) { - usleep(sleeptime * 1000); - } - } + if (!mRequestPause) { + usleep(sleeptime * 1000); + } + } - mState = STATE_STOPED; - //exit - //return true, run again, return false,not run. - return false; + mState = STATE_STOPED; + //exit + //return true, run again, return false,not run. + return false; } diff --git a/tvapi/libtv/tvin/CSourceConnectDetect.cpp b/tvapi/libtv/tvin/CSourceConnectDetect.cpp index 4399473..cbb2044 100644 --- a/tvapi/libtv/tvin/CSourceConnectDetect.cpp +++ b/tvapi/libtv/tvin/CSourceConnectDetect.cpp @@ -20,32 +20,29 @@ CSourceConnectDetect::CSourceConnectDetect(CTvin *pTvin) { - mpObserver = NULL; - mpTvin = pTvin; - if (mEpoll.create() < 0) { - return; - } - //avin - if (mAvinDetectFile.openFile(AVIN_DETECT_PATH) > 0) - { - m_event.data.fd = mAvinDetectFile.getFd(); - m_event.events = EPOLLIN | EPOLLET; - mEpoll.add(mAvinDetectFile.getFd(), &m_event); - } - //HDMI - if (mHdmiDetectFile.openFile(HDMI_DETECT_PATH) > 0) - { - m_event.data.fd = mHdmiDetectFile.getFd(); - m_event.events = EPOLLIN | EPOLLET; - mEpoll.add(mHdmiDetectFile.getFd(), &m_event); - } - //vfame size change - if (mVppPollFile.openFile(VPP_POLL_PATCH) > 0) - { - m_event.data.fd = mVppPollFile.getFd(); - m_event.events = EPOLLIN | EPOLLET; - mEpoll.add(mVppPollFile.getFd(), &m_event); - } + mpObserver = NULL; + mpTvin = pTvin; + if (mEpoll.create() < 0) { + return; + } + //avin + if (mAvinDetectFile.openFile(AVIN_DETECT_PATH) > 0) { + m_event.data.fd = mAvinDetectFile.getFd(); + m_event.events = EPOLLIN | EPOLLET; + mEpoll.add(mAvinDetectFile.getFd(), &m_event); + } + //HDMI + if (mHdmiDetectFile.openFile(HDMI_DETECT_PATH) > 0) { + m_event.data.fd = mHdmiDetectFile.getFd(); + m_event.events = EPOLLIN | EPOLLET; + mEpoll.add(mHdmiDetectFile.getFd(), &m_event); + } + //vfame size change + if (mVppPollFile.openFile(VPP_POLL_PATCH) > 0) { + m_event.data.fd = mVppPollFile.getFd(); + m_event.events = EPOLLIN | EPOLLET; + mEpoll.add(mVppPollFile.getFd(), &m_event); + } } CSourceConnectDetect::~CSourceConnectDetect() @@ -54,243 +51,216 @@ CSourceConnectDetect::~CSourceConnectDetect() int CSourceConnectDetect::startDetect() { - this->run(); + this->run(); - return 0; + return 0; } int CSourceConnectDetect::SourceInputMaptoChipHdmiPort(tv_source_input_t source_input) { - tvin_port_t source_port = TVIN_PORT_NULL; - source_port = mpTvin->Tvin_GetSourcePortBySourceInput(source_input); - switch (source_port) - { - case TVIN_PORT_HDMI0: - return HDMI_DETECT_STATUS_BIT_A; - break; - case TVIN_PORT_HDMI1: - return HDMI_DETECT_STATUS_BIT_B; - break; - case TVIN_PORT_HDMI2: - return HDMI_DETECT_STATUS_BIT_C; - break; - case TVIN_PORT_HDMI3: - return HDMI_DETECT_STATUS_BIT_D; - break; - default: - return HDMI_DETECT_STATUS_BIT_A; - break; - } + tvin_port_t source_port = TVIN_PORT_NULL; + source_port = mpTvin->Tvin_GetSourcePortBySourceInput(source_input); + switch (source_port) { + case TVIN_PORT_HDMI0: + return HDMI_DETECT_STATUS_BIT_A; + break; + case TVIN_PORT_HDMI1: + return HDMI_DETECT_STATUS_BIT_B; + break; + case TVIN_PORT_HDMI2: + return HDMI_DETECT_STATUS_BIT_C; + break; + case TVIN_PORT_HDMI3: + return HDMI_DETECT_STATUS_BIT_D; + break; + default: + return HDMI_DETECT_STATUS_BIT_A; + break; + } } tv_source_input_t CSourceConnectDetect::ChipHdmiPortMaptoSourceInput(int port) { - switch (port) - { - case HDMI_DETECT_STATUS_BIT_A: - return mpTvin->Tvin_PortToSourceInput(TVIN_PORT_HDMI0); - break; - case HDMI_DETECT_STATUS_BIT_B: - return mpTvin->Tvin_PortToSourceInput(TVIN_PORT_HDMI1); - break; - case HDMI_DETECT_STATUS_BIT_C: - return mpTvin->Tvin_PortToSourceInput(TVIN_PORT_HDMI2); - break; - case HDMI_DETECT_STATUS_BIT_D: - return mpTvin->Tvin_PortToSourceInput(TVIN_PORT_HDMI3); - break; - default: - return mpTvin->Tvin_PortToSourceInput(TVIN_PORT_HDMI0); - break; - } + switch (port) { + case HDMI_DETECT_STATUS_BIT_A: + return mpTvin->Tvin_PortToSourceInput(TVIN_PORT_HDMI0); + break; + case HDMI_DETECT_STATUS_BIT_B: + return mpTvin->Tvin_PortToSourceInput(TVIN_PORT_HDMI1); + break; + case HDMI_DETECT_STATUS_BIT_C: + return mpTvin->Tvin_PortToSourceInput(TVIN_PORT_HDMI2); + break; + case HDMI_DETECT_STATUS_BIT_D: + return mpTvin->Tvin_PortToSourceInput(TVIN_PORT_HDMI3); + break; + default: + return mpTvin->Tvin_PortToSourceInput(TVIN_PORT_HDMI0); + break; + } } int CSourceConnectDetect::GetSourceConnectStatus(tv_source_input_t source_input) { - int PlugStatus = -1; - int hdmi_status = 0; - int source = -1; - int HdmiDetectStatusBit = SourceInputMaptoChipHdmiPort((tv_source_input_t)source_input); - switch (source_input) - { - case SOURCE_AV2: - case SOURCE_AV1: - { - struct report_data_s status[2]; - mAvinDetectFile.readFile((void *)(&status), sizeof(struct report_data_s) * 2); - for (int i = 0; i < 2; i++) - { - if (status[i].channel == AVIN_CHANNEL1) - { - source = SOURCE_AV1; - }else if (status[i].channel == AVIN_CHANNEL2) - { - source = SOURCE_AV2; - } + int PlugStatus = -1; + int hdmi_status = 0; + int source = -1; + int HdmiDetectStatusBit = SourceInputMaptoChipHdmiPort((tv_source_input_t)source_input); + switch (source_input) { + case SOURCE_AV2: + case SOURCE_AV1: { + struct report_data_s status[2]; + mAvinDetectFile.readFile((void *)(&status), sizeof(struct report_data_s) * 2); + for (int i = 0; i < 2; i++) { + if (status[i].channel == AVIN_CHANNEL1) { + source = SOURCE_AV1; + } else if (status[i].channel == AVIN_CHANNEL2) { + source = SOURCE_AV2; + } - if (source == source_input) - { - if (status[i].status == AVIN_STATUS_IN) - { - PlugStatus = CC_SOURCE_PLUG_IN; - }else { - PlugStatus = CC_SOURCE_PLUG_OUT; - } - break; - } - m_avin_status[i] = status[i]; - }//end for + if (source == source_input) { + if (status[i].status == AVIN_STATUS_IN) { + PlugStatus = CC_SOURCE_PLUG_IN; + } else { + PlugStatus = CC_SOURCE_PLUG_OUT; + } + break; + } + m_avin_status[i] = status[i]; + }//end for - break; - } - case SOURCE_HDMI1: - case SOURCE_HDMI2: - case SOURCE_HDMI3: - { - mHdmiDetectFile.readFile((void*)(&hdmi_status), sizeof(int)); - if ((hdmi_status & HdmiDetectStatusBit) == HdmiDetectStatusBit) - { - PlugStatus = CC_SOURCE_PLUG_IN; - } else { - PlugStatus = CC_SOURCE_PLUG_OUT; - } - m_hdmi_status = hdmi_status; - break; - } - default: - LOGD("GetSourceConnectStatus not support source!!!!!!!!!!!!!!!1"); - break; - } + break; + } + case SOURCE_HDMI1: + case SOURCE_HDMI2: + case SOURCE_HDMI3: { + mHdmiDetectFile.readFile((void *)(&hdmi_status), sizeof(int)); + if ((hdmi_status & HdmiDetectStatusBit) == HdmiDetectStatusBit) { + PlugStatus = CC_SOURCE_PLUG_IN; + } else { + PlugStatus = CC_SOURCE_PLUG_OUT; + } + m_hdmi_status = hdmi_status; + break; + } + default: + LOGD("GetSourceConnectStatus not support source!!!!!!!!!!!!!!!1"); + break; + } - return PlugStatus; + return PlugStatus; } bool CSourceConnectDetect::threadLoop() { - if ( mpObserver == NULL ) { - return false; - } + if ( mpObserver == NULL ) { + return false; + } - LOGD("%s, entering...\n", "TV"); + LOGD("%s, entering...\n", "TV"); - prctl(PR_SET_NAME, (unsigned long)"CSourceConnectDetect thread loop"); - //init status - mHdmiDetectFile.readFile((void*)(&m_hdmi_status), sizeof(int)); - mAvinDetectFile.readFile((void *)(&m_avin_status), sizeof(struct report_data_s) * 2); - LOGD("CSourceConnectDetect Loop, get init hdmi = 0x%x avin[0].status = %d, avin[1].status = %d", m_hdmi_status, m_avin_status[0].status, m_avin_status[1].status); + prctl(PR_SET_NAME, (unsigned long)"CSourceConnectDetect thread loop"); + //init status + mHdmiDetectFile.readFile((void *)(&m_hdmi_status), sizeof(int)); + mAvinDetectFile.readFile((void *)(&m_avin_status), sizeof(struct report_data_s) * 2); + LOGD("CSourceConnectDetect Loop, get init hdmi = 0x%x avin[0].status = %d, avin[1].status = %d", m_hdmi_status, m_avin_status[0].status, m_avin_status[1].status); - while (!exitPending()) { //requietexit() or requietexitWait() not call - int num = mEpoll.wait(); - for (int i = 0; i < num; ++i) { - int fd = (mEpoll)[i].data.fd; - /** - * EPOLLIN event - */ - if ((mEpoll)[i].events & EPOLLIN) { - if (fd == mAvinDetectFile.getFd()) {//avin - struct report_data_s status[2]; - mAvinDetectFile.readFile((void *)(&status), sizeof(struct report_data_s) * 2); - for (int i = 0; i < 2; i++) - { - int source = -1, plug = -1; - if (/*status[i].channel == m_avin_status[i].channel &&*/ status[i].status != m_avin_status[i].status) - { - //LOGD("status[i].status != m_avin_status[i].status"); - if (status[i].status == AVIN_STATUS_IN) - { - plug = CC_SOURCE_PLUG_IN; - }else { - plug = CC_SOURCE_PLUG_OUT; - } + while (!exitPending()) { //requietexit() or requietexitWait() not call + int num = mEpoll.wait(); + for (int i = 0; i < num; ++i) { + int fd = (mEpoll)[i].data.fd; + /** + * EPOLLIN event + */ + if ((mEpoll)[i].events & EPOLLIN) { + if (fd == mAvinDetectFile.getFd()) {//avin + struct report_data_s status[2]; + mAvinDetectFile.readFile((void *)(&status), sizeof(struct report_data_s) * 2); + for (int i = 0; i < 2; i++) { + int source = -1, plug = -1; + if (/*status[i].channel == m_avin_status[i].channel &&*/ status[i].status != m_avin_status[i].status) { + //LOGD("status[i].status != m_avin_status[i].status"); + if (status[i].status == AVIN_STATUS_IN) { + plug = CC_SOURCE_PLUG_IN; + } else { + plug = CC_SOURCE_PLUG_OUT; + } - if (status[i].channel == AVIN_CHANNEL1) - { - source = SOURCE_AV1; - }else if (status[i].channel == AVIN_CHANNEL2) - { - source = SOURCE_AV2; - } + if (status[i].channel == AVIN_CHANNEL1) { + source = SOURCE_AV1; + } else if (status[i].channel == AVIN_CHANNEL2) { + source = SOURCE_AV2; + } - if (mpObserver != NULL) - { - mpObserver->onSourceConnect(source, plug); - } - }//not equal - m_avin_status[i] = status[i]; - } - }else if (fd == mHdmiDetectFile.getFd())//hdmi - { - int hdmi_status = 0; - mHdmiDetectFile.readFile((void*)(&hdmi_status), sizeof(int)); - int source = -1, plug = -1; - if ((hdmi_status & HDMI_DETECT_STATUS_BIT_A) != (m_hdmi_status & HDMI_DETECT_STATUS_BIT_A) ) - { - if ((hdmi_status & HDMI_DETECT_STATUS_BIT_A) == HDMI_DETECT_STATUS_BIT_A) - { - source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_A); - plug = CC_SOURCE_PLUG_IN; - } else { - source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_A);; - plug = CC_SOURCE_PLUG_OUT; - } - mpObserver->onSourceConnect(source, plug); - } + if (mpObserver != NULL) { + mpObserver->onSourceConnect(source, plug); + } + }//not equal + m_avin_status[i] = status[i]; + } + } else if (fd == mHdmiDetectFile.getFd()) { //hdmi + int hdmi_status = 0; + mHdmiDetectFile.readFile((void *)(&hdmi_status), sizeof(int)); + int source = -1, plug = -1; + if ((hdmi_status & HDMI_DETECT_STATUS_BIT_A) != (m_hdmi_status & HDMI_DETECT_STATUS_BIT_A) ) { + if ((hdmi_status & HDMI_DETECT_STATUS_BIT_A) == HDMI_DETECT_STATUS_BIT_A) { + source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_A); + plug = CC_SOURCE_PLUG_IN; + } else { + source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_A);; + plug = CC_SOURCE_PLUG_OUT; + } + mpObserver->onSourceConnect(source, plug); + } - if ((hdmi_status & HDMI_DETECT_STATUS_BIT_B) != (m_hdmi_status & HDMI_DETECT_STATUS_BIT_B) ) - { - if ((hdmi_status & HDMI_DETECT_STATUS_BIT_B) == HDMI_DETECT_STATUS_BIT_B) - { - source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_B); - plug = CC_SOURCE_PLUG_IN; - } else { - source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_B);; - plug = CC_SOURCE_PLUG_OUT; - } - mpObserver->onSourceConnect(source, plug); - } + if ((hdmi_status & HDMI_DETECT_STATUS_BIT_B) != (m_hdmi_status & HDMI_DETECT_STATUS_BIT_B) ) { + if ((hdmi_status & HDMI_DETECT_STATUS_BIT_B) == HDMI_DETECT_STATUS_BIT_B) { + source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_B); + plug = CC_SOURCE_PLUG_IN; + } else { + source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_B);; + plug = CC_SOURCE_PLUG_OUT; + } + mpObserver->onSourceConnect(source, plug); + } - if ((hdmi_status & HDMI_DETECT_STATUS_BIT_C) != (m_hdmi_status & HDMI_DETECT_STATUS_BIT_C) ) - { - if ((hdmi_status & HDMI_DETECT_STATUS_BIT_C) == HDMI_DETECT_STATUS_BIT_C) - { - source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_C); - plug = CC_SOURCE_PLUG_IN; - } else { - source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_C);; - plug = CC_SOURCE_PLUG_OUT; - } - mpObserver->onSourceConnect(source, plug); - } + if ((hdmi_status & HDMI_DETECT_STATUS_BIT_C) != (m_hdmi_status & HDMI_DETECT_STATUS_BIT_C) ) { + if ((hdmi_status & HDMI_DETECT_STATUS_BIT_C) == HDMI_DETECT_STATUS_BIT_C) { + source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_C); + plug = CC_SOURCE_PLUG_IN; + } else { + source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_C);; + plug = CC_SOURCE_PLUG_OUT; + } + mpObserver->onSourceConnect(source, plug); + } - if ((hdmi_status & HDMI_DETECT_STATUS_BIT_D) != (m_hdmi_status & HDMI_DETECT_STATUS_BIT_D) ) - { - if ((hdmi_status & HDMI_DETECT_STATUS_BIT_D) == HDMI_DETECT_STATUS_BIT_D) - { - source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_D); - plug = CC_SOURCE_PLUG_IN; - } else { - source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_D);; - plug = CC_SOURCE_PLUG_OUT; - } - mpObserver->onSourceConnect(source, plug); - } - m_hdmi_status = hdmi_status; - }else if (fd == mVppPollFile.getFd())//vframe size change - { - mpObserver->onVframeSizeChange(); - } - /** - * EPOLLOUT event - */ - if ((mEpoll)[i].events & EPOLLOUT) { + if ((hdmi_status & HDMI_DETECT_STATUS_BIT_D) != (m_hdmi_status & HDMI_DETECT_STATUS_BIT_D) ) { + if ((hdmi_status & HDMI_DETECT_STATUS_BIT_D) == HDMI_DETECT_STATUS_BIT_D) { + source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_D); + plug = CC_SOURCE_PLUG_IN; + } else { + source = ChipHdmiPortMaptoSourceInput(HDMI_DETECT_STATUS_BIT_D);; + plug = CC_SOURCE_PLUG_OUT; + } + mpObserver->onSourceConnect(source, plug); + } + m_hdmi_status = hdmi_status; + } else if (fd == mVppPollFile.getFd()) { //vframe size change + mpObserver->onVframeSizeChange(); + } + /** + * EPOLLOUT event + */ + if ((mEpoll)[i].events & EPOLLOUT) { - } - } - } - }//exit + } + } + } + }//exit - LOGD("%s, exiting...\n", "CSourceConnectDetect"); - //return true, run again, return false,not run. - return false; + LOGD("%s, exiting...\n", "CSourceConnectDetect"); + //return true, run again, return false,not run. + return false; } diff --git a/tvapi/libtv/tvin/CSourceConnectDetect.h b/tvapi/libtv/tvin/CSourceConnectDetect.h index a1c4569..eaa26c8 100644 --- a/tvapi/libtv/tvin/CSourceConnectDetect.h +++ b/tvapi/libtv/tvin/CSourceConnectDetect.h @@ -3,18 +3,18 @@ #include "../tvutils/CThread.h" #include "../tvutils/CFile.h" enum avin_status_e { - AVIN_STATUS_IN = 0, - AVIN_STATUS_OUT = 1, - AVIN_STATUS_UNKNOW = 2, + AVIN_STATUS_IN = 0, + AVIN_STATUS_OUT = 1, + AVIN_STATUS_UNKNOW = 2, }; enum avin_channel_e { - AVIN_CHANNEL1 = 0, - AVIN_CHANNEL2 = 1, + AVIN_CHANNEL1 = 0, + AVIN_CHANNEL2 = 1, }; struct report_data_s { - enum avin_channel_e channel; - enum avin_status_e status; + enum avin_channel_e channel; + enum avin_status_e status; }; /* @@ -32,42 +32,42 @@ static const int HDMI_DETECT_STATUS_BIT_B = 0x02; static const int HDMI_DETECT_STATUS_BIT_C = 0x04; static const int HDMI_DETECT_STATUS_BIT_D = 0x08; -static const char* AVIN_DETECT_PATH = "/dev/avin_detect"; -static const char* HDMI_DETECT_PATH = "/dev/hdmirx0"; -static const char* VPP_POLL_PATCH = "/dev/amvideo_poll"; +static const char *AVIN_DETECT_PATH = "/dev/avin_detect"; +static const char *HDMI_DETECT_PATH = "/dev/hdmirx0"; +static const char *VPP_POLL_PATCH = "/dev/amvideo_poll"; class CSourceConnectDetect: public CThread { public: - CSourceConnectDetect(CTvin *pTvin); - ~CSourceConnectDetect(); - int startDetect(); - int GetSourceConnectStatus(tv_source_input_t source_input); - int SourceInputMaptoChipHdmiPort(tv_source_input_t source_input); - tv_source_input_t ChipHdmiPortMaptoSourceInput(int port); + CSourceConnectDetect(CTvin *pTvin); + ~CSourceConnectDetect(); + int startDetect(); + int GetSourceConnectStatus(tv_source_input_t source_input); + int SourceInputMaptoChipHdmiPort(tv_source_input_t source_input); + tv_source_input_t ChipHdmiPortMaptoSourceInput(int port); - class ISourceConnectObserver { - public: - ISourceConnectObserver() {}; - virtual ~ISourceConnectObserver() {}; - virtual void onSourceConnect(int source, int connect_status) {}; - virtual void onVframeSizeChange() {}; - }; - void setObserver ( ISourceConnectObserver *pOb ) - { - mpObserver = pOb; - }; + class ISourceConnectObserver { + public: + ISourceConnectObserver() {}; + virtual ~ISourceConnectObserver() {}; + virtual void onSourceConnect(int source, int connect_status) {}; + virtual void onVframeSizeChange() {}; + }; + void setObserver ( ISourceConnectObserver *pOb ) + { + mpObserver = pOb; + }; private: - bool threadLoop(); + bool threadLoop(); - ISourceConnectObserver *mpObserver; - CTvin *mpTvin; - Epoll mEpoll; - mutable CMutex mLock; - epoll_event m_event; - CFile mAvinDetectFile; - CFile mHdmiDetectFile; - CFile mVppPollFile; - struct report_data_s m_avin_status[2]; - int m_hdmi_status; + ISourceConnectObserver *mpObserver; + CTvin *mpTvin; + Epoll mEpoll; + mutable CMutex mLock; + epoll_event m_event; + CFile mAvinDetectFile; + CFile mHdmiDetectFile; + CFile mVppPollFile; + struct report_data_s m_avin_status[2]; + int m_hdmi_status; }; #endif diff --git a/tvapi/libtv/tvin/CTvin.cpp b/tvapi/libtv/tvin/CTvin.cpp index 034713c..8b07c69 100644 --- a/tvapi/libtv/tvin/CTvin.cpp +++ b/tvapi/libtv/tvin/CTvin.cpp @@ -62,40 +62,40 @@ #define FBIOPUT_OSD_FREE_SCALE_HEIGHT 0x4506 typedef enum { - VIEWMODE_NULL = 0, - VIEWMODE_4_3, - VIEWMODE_16_9 + VIEWMODE_NULL = 0, + VIEWMODE_4_3, + VIEWMODE_16_9 } view_mode_t; int CTvin::mSourceInputToPortMap[SOURCE_MAX]; CTvin::CTvin() { - int i = 0; + int i = 0; - m_vdin_dev_fd = -1; - afe_dev_fd = -1; + m_vdin_dev_fd = -1; + afe_dev_fd = -1; - m_tvin_param.index = 0; - m_is_decoder_start = false; - gExistD2D3 = -1; - gVideoPath[0] = '\0'; - m_pathid = TV_PATH_DECODER_3D_AMVIDEO; + m_tvin_param.index = 0; + m_is_decoder_start = false; + gExistD2D3 = -1; + gVideoPath[0] = '\0'; + m_pathid = TV_PATH_DECODER_3D_AMVIDEO; - for (i = 0; i < SOURCE_MAX; i++) { - mSourceInputToPortMap[i] = TVIN_PORT_NULL; - } + for (i = 0; i < SOURCE_MAX; i++) { + mSourceInputToPortMap[i] = TVIN_PORT_NULL; + } - mSourceInputToPortMap[SOURCE_TV] = TVIN_PORT_CVBS3; - mSourceInputToPortMap[SOURCE_AV1] = TVIN_PORT_CVBS1; - mSourceInputToPortMap[SOURCE_AV2] = TVIN_PORT_CVBS2; - mSourceInputToPortMap[SOURCE_YPBPR1] = TVIN_PORT_COMP0; - mSourceInputToPortMap[SOURCE_YPBPR2] = TVIN_PORT_COMP1; - mSourceInputToPortMap[SOURCE_HDMI1] = TVIN_PORT_HDMI0; - mSourceInputToPortMap[SOURCE_HDMI2] = TVIN_PORT_HDMI2; - mSourceInputToPortMap[SOURCE_HDMI3] = TVIN_PORT_HDMI1; - mSourceInputToPortMap[SOURCE_VGA] = TVIN_PORT_VGA0; - mSourceInputToPortMap[SOURCE_MPEG] = TVIN_PORT_MPEG0; - mSourceInputToPortMap[SOURCE_DTV] = TVIN_PORT_DTV; - mSourceInputToPortMap[SOURCE_IPTV] = TVIN_PORT_BT656; + mSourceInputToPortMap[SOURCE_TV] = TVIN_PORT_CVBS3; + mSourceInputToPortMap[SOURCE_AV1] = TVIN_PORT_CVBS1; + mSourceInputToPortMap[SOURCE_AV2] = TVIN_PORT_CVBS2; + mSourceInputToPortMap[SOURCE_YPBPR1] = TVIN_PORT_COMP0; + mSourceInputToPortMap[SOURCE_YPBPR2] = TVIN_PORT_COMP1; + mSourceInputToPortMap[SOURCE_HDMI1] = TVIN_PORT_HDMI0; + mSourceInputToPortMap[SOURCE_HDMI2] = TVIN_PORT_HDMI2; + mSourceInputToPortMap[SOURCE_HDMI3] = TVIN_PORT_HDMI1; + mSourceInputToPortMap[SOURCE_VGA] = TVIN_PORT_VGA0; + mSourceInputToPortMap[SOURCE_MPEG] = TVIN_PORT_MPEG0; + mSourceInputToPortMap[SOURCE_DTV] = TVIN_PORT_DTV; + mSourceInputToPortMap[SOURCE_IPTV] = TVIN_PORT_BT656; } CTvin::~CTvin() @@ -105,1472 +105,1472 @@ CTvin::~CTvin() int CTvin::OpenTvin() { - const char *config_value; - config_value = config_get_str ( CFG_SECTION_TV, "tvin.manual.set.tvpath", "null" ); - strcpy ( config_tv_path, config_value ); - memset ( config_default_path, 0x0, 64 ); - config_value = config_get_str ( CFG_SECTION_TV, "tvin.manual.set.defaultpath", "null" ); - strcpy ( config_default_path, config_value ); - return 0; + const char *config_value; + config_value = config_get_str ( CFG_SECTION_TV, "tvin.manual.set.tvpath", "null" ); + strcpy ( config_tv_path, config_value ); + memset ( config_default_path, 0x0, 64 ); + config_value = config_get_str ( CFG_SECTION_TV, "tvin.manual.set.defaultpath", "null" ); + strcpy ( config_default_path, config_value ); + return 0; } int CTvin::IsFileExist ( const char *file_name ) { - struct stat tmp_st; + struct stat tmp_st; - if ( stat ( file_name, &tmp_st ) < 0 ) { - return 0; - } + if ( stat ( file_name, &tmp_st ) < 0 ) { + return 0; + } - return 1; + return 1; } char *CTvin::DelSub ( char *str, char *sub ) { - char *psrc = str, *pdest = str, *psub = NULL, *p = NULL; + char *psrc = str, *pdest = str, *psub = NULL, *p = NULL; - if ( ( str == NULL ) || ( sub == NULL ) ) { - return NULL; - } + if ( ( str == NULL ) || ( sub == NULL ) ) { + return NULL; + } - while ( *psrc ) { - p = psrc; - psub = sub; + while ( *psrc ) { + p = psrc; + psub = sub; - while ( *p && *p == *psub ) { - p++; - psub++; - } + while ( *p && *p == *psub ) { + p++; + psub++; + } - if ( *psub == 0 ) { - psrc = p; - } else { - *pdest++ = *psrc++; - } - } + if ( *psub == 0 ) { + psrc = p; + } else { + *pdest++ = *psrc++; + } + } - *pdest = 0; + *pdest = 0; - return str; + return str; } int CTvin::setMpeg2Vdin(int enable) { - /* let output data loop to vdin */ - FILE *fp = fopen ( "/sys/module/di/parameters/mpeg2vdin_en", "w" ); + /* let output data loop to vdin */ + FILE *fp = fopen ( "/sys/module/di/parameters/mpeg2vdin_en", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/di/parameters/mpeg2vdin_en error\n" ); - return -1; - } - fprintf ( fp, "%d", enable ); - fclose ( fp ); - return 0; + if ( fp == NULL ) { + LOGW ( "Open /sys/module/di/parameters/mpeg2vdin_en error\n" ); + return -1; + } + fprintf ( fp, "%d", enable ); + fclose ( fp ); + return 0; } char *CTvin::VDIN_CheckVideoPath ( const char *videopath ) { - strncpy ( gVideoPath, videopath, sizeof ( gVideoPath ) ); + strncpy ( gVideoPath, videopath, sizeof ( gVideoPath ) ); - if ( strstr ( videopath, "d2d3 " ) != NULL ) { - if ( gExistD2D3 == -1 ) { - gExistD2D3 = IsFileExist ( "/sys/class/d2d3/d2d3" ); - } + if ( strstr ( videopath, "d2d3 " ) != NULL ) { + if ( gExistD2D3 == -1 ) { + gExistD2D3 = IsFileExist ( "/sys/class/d2d3/d2d3" ); + } - if ( gExistD2D3 == 0 ) { - DelSub ( gVideoPath, "d2d3 " ); - } - } + if ( gExistD2D3 == 0 ) { + DelSub ( gVideoPath, "d2d3 " ); + } + } - LOGW ( "%s, video path before check [%s]\n", CFG_SECTION_TV, videopath ); - LOGW ( "%s, video path after check [%s]\n", CFG_SECTION_TV, gVideoPath ); + LOGW ( "%s, video path before check [%s]\n", CFG_SECTION_TV, videopath ); + LOGW ( "%s, video path after check [%s]\n", CFG_SECTION_TV, gVideoPath ); - return gVideoPath; + return gVideoPath; } int CTvin::VDIN_AddPath ( const char *videopath ) { - FILE *fp = NULL; - int ret = -1; - char *tmp_video_path = NULL; + FILE *fp = NULL; + int ret = -1; + char *tmp_video_path = NULL; - tmp_video_path = VDIN_CheckVideoPath ( videopath ); + tmp_video_path = VDIN_CheckVideoPath ( videopath ); - fp = fopen ( "/sys/class/vfm/map", "w" ); + fp = fopen ( "/sys/class/vfm/map", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/class/vfm/map error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/class/vfm/map error(%s)!\n", strerror ( errno ) ); + return -1; + } - ret = fprintf ( fp, "%s", tmp_video_path ); + ret = fprintf ( fp, "%s", tmp_video_path ); - if ( ret < 0 ) { - LOGW ( "Add VideoPath error(%s)!\n", strerror ( errno ) ); - } + if ( ret < 0 ) { + LOGW ( "Add VideoPath error(%s)!\n", strerror ( errno ) ); + } - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return ret; + return ret; } int CTvin::VDIN_RmDefPath ( void ) { - int fd = -1, ret; - char str[] = "rm default"; + int fd = -1, ret; + char str[] = "rm default"; - fd = open ( "/sys/class/vfm/map", O_RDWR ); + fd = open ( "/sys/class/vfm/map", O_RDWR ); - if ( fd < 0 ) { - LOGW ( "Open /sys/class/vfm/map error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fd < 0 ) { + LOGW ( "Open /sys/class/vfm/map error(%s)!\n", strerror ( errno ) ); + return -1; + } - ret = write ( fd, str, sizeof ( str ) ); + ret = write ( fd, str, sizeof ( str ) ); - if ( ret < 0 ) { - LOGW ( "Rm default path error(%s)!\n", strerror ( errno ) ); - } + if ( ret < 0 ) { + LOGW ( "Rm default path error(%s)!\n", strerror ( errno ) ); + } - close ( fd ); - fd = -1; + close ( fd ); + fd = -1; - return ret; + return ret; } int CTvin::VDIN_RmTvPath ( void ) { - int fd, ret; - char str[] = "rm tvpath"; + int fd, ret; + char str[] = "rm tvpath"; - fd = open ( "/sys/class/vfm/map", O_RDWR ); + fd = open ( "/sys/class/vfm/map", O_RDWR ); - if ( fd < 0 ) { - LOGW ( "Open /sys/class/vfm/map error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fd < 0 ) { + LOGW ( "Open /sys/class/vfm/map error(%s)!\n", strerror ( errno ) ); + return -1; + } - ret = write ( fd, str, sizeof ( str ) ); + ret = write ( fd, str, sizeof ( str ) ); - if ( ret <= 0 ) { - LOGW ( "Rm tv path error(%s)!\n", strerror ( errno ) ); - } + if ( ret <= 0 ) { + LOGW ( "Rm tv path error(%s)!\n", strerror ( errno ) ); + } - close ( fd ); - fd = -1; - return ret; + close ( fd ); + fd = -1; + return ret; } int CTvin::VDIN_AddVideoPath ( int selPath ) { - int ret = -1; - char prop_value[PROPERTY_VALUE_MAX]; + int ret = -1; + char prop_value[PROPERTY_VALUE_MAX]; - switch ( selPath ) { - case TV_PATH_VDIN_AMVIDEO: - ret = VDIN_AddPath ( "add tvpath vdin0 amvideo" ); - break; + switch ( selPath ) { + case TV_PATH_VDIN_AMVIDEO: + ret = VDIN_AddPath ( "add tvpath vdin0 amvideo" ); + break; - case TV_PATH_VDIN_DEINTERLACE_AMVIDEO: - ret = VDIN_AddPath ( "add tvpath vdin0 deinterlace amvideo" ); - break; + case TV_PATH_VDIN_DEINTERLACE_AMVIDEO: + ret = VDIN_AddPath ( "add tvpath vdin0 deinterlace amvideo" ); + break; - case TV_PATH_VDIN_3D_AMVIDEO: - ret = VDIN_AddPath ( "add tvpath vdin0 ppmgr amvideo" ); - break; + case TV_PATH_VDIN_3D_AMVIDEO: + ret = VDIN_AddPath ( "add tvpath vdin0 ppmgr amvideo" ); + break; - case TV_PATH_VDIN_NEW3D_AMVIDEO: - ret = VDIN_AddPath ( "add tvpath vdin0 deinterlace ppmgr d2d3 amvideo" ); - break; + case TV_PATH_VDIN_NEW3D_AMVIDEO: + ret = VDIN_AddPath ( "add tvpath vdin0 deinterlace ppmgr d2d3 amvideo" ); + break; - case TV_PATH_VDIN_NEW3D_WITHOUTPPMGR_AMVIDEO: - ret = VDIN_AddPath ( "add tvpath vdin0 deinterlace d2d3 amvideo" ); - break; + case TV_PATH_VDIN_NEW3D_WITHOUTPPMGR_AMVIDEO: + ret = VDIN_AddPath ( "add tvpath vdin0 deinterlace d2d3 amvideo" ); + break; - case TV_PATH_DECODER_3D_AMVIDEO: - ret = VDIN_AddPath ( "add default decoder ppmgr deinterlace amvideo" ); - break; + case TV_PATH_DECODER_3D_AMVIDEO: + ret = VDIN_AddPath ( "add default decoder ppmgr deinterlace amvideo" ); + break; - case TV_PATH_DECODER_AMVIDEO: - ret = VDIN_AddPath ( "add default decoder deinterlace amvideo" ); - break; + case TV_PATH_DECODER_AMVIDEO: + ret = VDIN_AddPath ( "add default decoder deinterlace amvideo" ); + break; - case TV_PATH_VDIN_FREESCALE_AMVIDEO: - ret = VDIN_AddPath ( "add previewpath vdin0 freescale amvideo" ); - break; + case TV_PATH_VDIN_FREESCALE_AMVIDEO: + ret = VDIN_AddPath ( "add previewpath vdin0 freescale amvideo" ); + break; - case TV_PATH_DECODER_NEW3D_AMVIDEO: - ret = VDIN_AddPath ( "add default decoder deinterlace ppmgr d2d3 amvideo" ); - break; + case TV_PATH_DECODER_NEW3D_AMVIDEO: + ret = VDIN_AddPath ( "add default decoder deinterlace ppmgr d2d3 amvideo" ); + break; - case TV_PATH_DECODER_NEW3D_WITHOUTPPMGR_AMVIDEO: - ret = VDIN_AddPath ( "add default decoder deinterlace d2d3 amvideo" ); - break; - } + case TV_PATH_DECODER_NEW3D_WITHOUTPPMGR_AMVIDEO: + ret = VDIN_AddPath ( "add default decoder deinterlace d2d3 amvideo" ); + break; + } - return ret; + return ret; } int CTvin::VDIN_RmPreviewPath ( void ) { - int fd, ret; - char str[] = "rm previewpath"; + int fd, ret; + char str[] = "rm previewpath"; - fd = open ( "/sys/class/vfm/map", O_RDWR ); + fd = open ( "/sys/class/vfm/map", O_RDWR ); - if ( fd < 0 ) { - LOGW ( "Open /sys/class/vfm/map error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fd < 0 ) { + LOGW ( "Open /sys/class/vfm/map error(%s)!\n", strerror ( errno ) ); + return -1; + } - ret = write ( fd, str, sizeof ( str ) ); + ret = write ( fd, str, sizeof ( str ) ); - if ( ret < 0 ) { - LOGW ( "Rm tv path error(%s)!\n", strerror ( errno ) ); - } + if ( ret < 0 ) { + LOGW ( "Rm tv path error(%s)!\n", strerror ( errno ) ); + } - close ( fd ); - fd = -1; + close ( fd ); + fd = -1; - return ret; + return ret; } int CTvin::VDIN_OpenModule() { - char file_name[64]; - sprintf ( file_name, "/dev/vdin%d", CC_SEL_VDIN_DEV ); - m_vdin_dev_fd = open ( file_name, O_RDWR ); + char file_name[64]; + sprintf ( file_name, "/dev/vdin%d", CC_SEL_VDIN_DEV ); + m_vdin_dev_fd = open ( file_name, O_RDWR ); - if ( m_vdin_dev_fd < 0 ) { - LOGW ( "Open %s error(%s)!\n", file_name, strerror ( errno ) ); - return -1; - } + if ( m_vdin_dev_fd < 0 ) { + LOGW ( "Open %s error(%s)!\n", file_name, strerror ( errno ) ); + return -1; + } - memset ( &gTvinVDINParam, 0, sizeof ( gTvinVDINParam ) ); - memset ( &gTvinVDINSignalInfo, 0, sizeof ( gTvinVDINSignalInfo ) ); + memset ( &gTvinVDINParam, 0, sizeof ( gTvinVDINParam ) ); + memset ( &gTvinVDINSignalInfo, 0, sizeof ( gTvinVDINSignalInfo ) ); - LOGD ( "Open vdin module vdin_dev_fd = [%d]", m_vdin_dev_fd ); + LOGD ( "Open vdin module vdin_dev_fd = [%d]", m_vdin_dev_fd ); - return m_vdin_dev_fd; + return m_vdin_dev_fd; } int CTvin::VDIN_GetVdinFd() { - return m_vdin_dev_fd; + return m_vdin_dev_fd; } int CTvin::VDIN_CloseModule() { - if ( m_vdin_dev_fd != -1 ) { - close ( m_vdin_dev_fd ); - m_vdin_dev_fd = -1; - } + if ( m_vdin_dev_fd != -1 ) { + close ( m_vdin_dev_fd ); + m_vdin_dev_fd = -1; + } - return 0; + return 0; } int CTvin::VDIN_DeviceIOCtl ( int request, ... ) { - int tmp_ret = -1; - va_list ap; - void *arg; + int tmp_ret = -1; + va_list ap; + void *arg; - if ( m_vdin_dev_fd >= 0 ) { - va_start ( ap, request ); - arg = va_arg ( ap, void * ); - va_end ( ap ); + if ( m_vdin_dev_fd >= 0 ) { + va_start ( ap, request ); + arg = va_arg ( ap, void * ); + va_end ( ap ); - tmp_ret = ioctl ( m_vdin_dev_fd, request, arg ); - return tmp_ret; - } + tmp_ret = ioctl ( m_vdin_dev_fd, request, arg ); + return tmp_ret; + } - return -1; + return -1; } int CTvin::VDIN_OpenPort ( tvin_port_t port ) { - int rt = -1; - struct tvin_parm_s vdinParam; - vdinParam.port = port; - vdinParam.index = 0; - rt = VDIN_DeviceIOCtl ( TVIN_IOC_OPEN, &vdinParam ); + int rt = -1; + struct tvin_parm_s vdinParam; + vdinParam.port = port; + vdinParam.index = 0; + rt = VDIN_DeviceIOCtl ( TVIN_IOC_OPEN, &vdinParam ); - if ( rt < 0 ) { - LOGW ( "Vdin open port, error(%s)!", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGW ( "Vdin open port, error(%s)!", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::VDIN_ClosePort() { - int rt = -1; + int rt = -1; - rt = VDIN_DeviceIOCtl ( TVIN_IOC_CLOSE ); + rt = VDIN_DeviceIOCtl ( TVIN_IOC_CLOSE ); - if ( rt < 0 ) { - LOGW ( "Vdin close port, error(%s)!", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGW ( "Vdin close port, error(%s)!", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::VDIN_StartDec ( const struct tvin_parm_s *vdinParam ) { - int rt = -1; + int rt = -1; - if ( vdinParam == NULL ) { - return -1; - } + if ( vdinParam == NULL ) { + return -1; + } - rt = VDIN_DeviceIOCtl ( TVIN_IOC_START_DEC, vdinParam ); + rt = VDIN_DeviceIOCtl ( TVIN_IOC_START_DEC, vdinParam ); - LOGD ( "VDIN_StartDec:\n" ); - LOGD ( "index = [%d]\n", vdinParam->index ); - LOGD ( "port = [0x%x]\n", ( unsigned int ) vdinParam->port ); - LOGD ( "format = [0x%x]\n", ( unsigned int ) ( vdinParam->info.fmt ) ); + LOGD ( "VDIN_StartDec:\n" ); + LOGD ( "index = [%d]\n", vdinParam->index ); + LOGD ( "port = [0x%x]\n", ( unsigned int ) vdinParam->port ); + LOGD ( "format = [0x%x]\n", ( unsigned int ) ( vdinParam->info.fmt ) ); - if ( rt < 0 ) { - LOGW ( "Vdin start decode, error(%s)!\n", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGW ( "Vdin start decode, error(%s)!\n", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::VDIN_StopDec() { - int rt = -1; + int rt = -1; - rt = VDIN_DeviceIOCtl ( TVIN_IOC_STOP_DEC ); + rt = VDIN_DeviceIOCtl ( TVIN_IOC_STOP_DEC ); - if ( rt < 0 ) { - LOGW ( "Vdin stop decode, error(%s)", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGW ( "Vdin stop decode, error(%s)", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::VDIN_GetSignalInfo ( struct tvin_info_s *SignalInfo ) { - int rt = -1; + int rt = -1; - rt = VDIN_DeviceIOCtl ( TVIN_IOC_G_SIG_INFO, SignalInfo ); + rt = VDIN_DeviceIOCtl ( TVIN_IOC_G_SIG_INFO, SignalInfo ); - if ( rt < 0 ) { - LOGW ( "Vdin get signal info, error(%s), ret = %d.\n", strerror ( errno ), rt ); - //system("reboot"); - } + if ( rt < 0 ) { + LOGW ( "Vdin get signal info, error(%s), ret = %d.\n", strerror ( errno ), rt ); + //system("reboot"); + } - return rt; + return rt; } int CTvin::VDIN_SetVdinParam ( const struct tvin_parm_s *vdinParam ) { - int rt = -1, i = 0; + int rt = -1, i = 0; - rt = VDIN_DeviceIOCtl ( TVIN_IOC_S_PARM, vdinParam ); + rt = VDIN_DeviceIOCtl ( TVIN_IOC_S_PARM, vdinParam ); - if ( rt < 0 ) { - LOGW ( "Vdin set signal param, error(%s)\n", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGW ( "Vdin set signal param, error(%s)\n", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::VDIN_GetVdinParam ( const struct tvin_parm_s *vdinParam ) { - int rt = -1, i = 0; + int rt = -1, i = 0; - rt = VDIN_DeviceIOCtl ( TVIN_IOC_G_PARM, vdinParam ); + rt = VDIN_DeviceIOCtl ( TVIN_IOC_G_PARM, vdinParam ); - if ( rt < 0 ) { - LOGW ( "Vdin get signal param, error(%s)\n", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGW ( "Vdin get signal param, error(%s)\n", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::VDIN_OnoffVScaler ( int isOn ) { - FILE *fp = NULL; + FILE *fp = NULL; - if ( isOn == 1 ) { - isOn = 1; - } else { - isOn = 0; - } + if ( isOn == 1 ) { + isOn = 1; + } else { + isOn = 0; + } - fp = fopen ( "/sys/class/video/vscaler", "w" ); + fp = fopen ( "/sys/class/video/vscaler", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/class/video/vscaler error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/class/video/vscaler error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", ( int ) isOn ); + fprintf ( fp, "%d", ( int ) isOn ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_GetDisplayVFreq (void) { - int fd = -1; - char buf[32]; - - fd = open("/sys/class/display/mode", O_RDWR); - if (fd < 0) { - LOGW("Open /sys/class/display/mode error(%s)!\n", strerror(errno)); - return -1; - } - memset(buf, 0, sizeof(buf)); - read(fd, buf, sizeof(buf)); - close(fd); - LOGD( "s%, VDIN_GetDisplayVFreq is %s\n", __FUNCTION__, buf); - if (strstr(buf, "50hz") != NULL) { - return 50; - } else if (strstr(buf, "60hz") != 0) { - return 60; - } else { - return 50; - } + int fd = -1; + char buf[32]; + + fd = open("/sys/class/display/mode", O_RDWR); + if (fd < 0) { + LOGW("Open /sys/class/display/mode error(%s)!\n", strerror(errno)); + return -1; + } + memset(buf, 0, sizeof(buf)); + read(fd, buf, sizeof(buf)); + close(fd); + LOGD( "s%, VDIN_GetDisplayVFreq is %s\n", __FUNCTION__, buf); + if (strstr(buf, "50hz") != NULL) { + return 50; + } else if (strstr(buf, "60hz") != 0) { + return 60; + } else { + return 50; + } } int CTvin::VDIN_SetDisplayVFreq ( int freq, int display_resolution , bool isFbc) { - FILE *fp = NULL; - const char *config_value = NULL; - static int display_mode_type = -1; - CFbcCommunication *pFBC = NULL; - static int last_freq = 50; - - last_freq = VDIN_GetDisplayVFreq(); - if (last_freq == freq) { - LOGD ( "%s, same freq, last_freq = %d, freq = %d.", __FUNCTION__, last_freq, freq); - return 0; - } else { - LOGD ( "%s, from last_freq[%d[ to new_freq[%d].", __FUNCTION__, last_freq, freq); - last_freq = freq; - } - - if (display_mode_type == -1) { - config_value = config_get_str ( CFG_SECTION_TV, "tvin.display.mode.type", "null" ); - if (strcasecmp(config_value, "null") == 0 || strcasecmp(config_value, "hdmi_out") == 0) { - display_mode_type = 0; - } else if (strcasecmp(config_value, "lvds_out") == 0) { - display_mode_type = 1; - } else { - display_mode_type = 0; - } - } - - fp = fopen ( "/sys/class/display/mode", "w" ); - - if ( fp == NULL ) { - LOGW ( "Open /sys/class/display/mode error(%s)!\n", strerror ( errno ) ); - return -1; - } - - if ( isFbc ) { - pFBC = GetSingletonFBC(); - if (pFBC != NULL) { - pFBC->cfbc_Set_VMute (COMM_DEV_SERIAL, 2); - usleep ( 300000 ); - } - } - - switch ( display_resolution ) { - case VPP_DISPLAY_RESOLUTION_1366X768: - if ( freq == 50 ) { - fprintf ( fp, "%s", "768p50hz" ); - } else { - fprintf ( fp, "%s", "768p60hz" ); - } - break; - case VPP_DISPLAY_RESOLUTION_3840X2160: - if ( freq == 50 ) { - if (isFbc) { - fprintf ( fp, "%s", "2160p50hz420" ); - } else { - fprintf ( fp, "%s", "2160p50hz" ); - } - } else { - if (isFbc) { - fprintf ( fp, "%s", "2160p60hz420" ); - } else { - fprintf ( fp, "%s", "2160p60hz" ); - } - } - break; - case VPP_DISPLAY_RESOLUTION_1920X1080: - default: - if ( freq == 50 ) { - fprintf ( fp, "%s", "1080p50hz" ); - } else { - fprintf ( fp, "%s", "1080p60hz" ); - } - break; - } - - fclose ( fp ); - fp = NULL; - - return 0; + FILE *fp = NULL; + const char *config_value = NULL; + static int display_mode_type = -1; + CFbcCommunication *pFBC = NULL; + static int last_freq = 50; + + last_freq = VDIN_GetDisplayVFreq(); + if (last_freq == freq) { + LOGD ( "%s, same freq, last_freq = %d, freq = %d.", __FUNCTION__, last_freq, freq); + return 0; + } else { + LOGD ( "%s, from last_freq[%d[ to new_freq[%d].", __FUNCTION__, last_freq, freq); + last_freq = freq; + } + + if (display_mode_type == -1) { + config_value = config_get_str ( CFG_SECTION_TV, "tvin.display.mode.type", "null" ); + if (strcasecmp(config_value, "null") == 0 || strcasecmp(config_value, "hdmi_out") == 0) { + display_mode_type = 0; + } else if (strcasecmp(config_value, "lvds_out") == 0) { + display_mode_type = 1; + } else { + display_mode_type = 0; + } + } + + fp = fopen ( "/sys/class/display/mode", "w" ); + + if ( fp == NULL ) { + LOGW ( "Open /sys/class/display/mode error(%s)!\n", strerror ( errno ) ); + return -1; + } + + if ( isFbc ) { + pFBC = GetSingletonFBC(); + if (pFBC != NULL) { + pFBC->cfbc_Set_VMute (COMM_DEV_SERIAL, 2); + usleep ( 300000 ); + } + } + + switch ( display_resolution ) { + case VPP_DISPLAY_RESOLUTION_1366X768: + if ( freq == 50 ) { + fprintf ( fp, "%s", "768p50hz" ); + } else { + fprintf ( fp, "%s", "768p60hz" ); + } + break; + case VPP_DISPLAY_RESOLUTION_3840X2160: + if ( freq == 50 ) { + if (isFbc) { + fprintf ( fp, "%s", "2160p50hz420" ); + } else { + fprintf ( fp, "%s", "2160p50hz" ); + } + } else { + if (isFbc) { + fprintf ( fp, "%s", "2160p60hz420" ); + } else { + fprintf ( fp, "%s", "2160p60hz" ); + } + } + break; + case VPP_DISPLAY_RESOLUTION_1920X1080: + default: + if ( freq == 50 ) { + fprintf ( fp, "%s", "1080p50hz" ); + } else { + fprintf ( fp, "%s", "1080p60hz" ); + } + break; + } + + fclose ( fp ); + fp = NULL; + + return 0; } void CTvin::Tvin_SetDepthOf2Dto3D ( int value ) { - //value = -16~16 - int tmp_value = DepthTable_2DTO3D[value + 16]; - LOGD ( "%s, value: %d", __FUNCTION__, value ); - VDIN_Set2D3DDepth ( value ); + //value = -16~16 + int tmp_value = DepthTable_2DTO3D[value + 16]; + LOGD ( "%s, value: %d", __FUNCTION__, value ); + VDIN_Set2D3DDepth ( value ); } int CTvin::VDIN_Set2D3DDepth ( int count ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/module/d2d3/parameters/depth", "w" ); + fp = fopen ( "/sys/module/d2d3/parameters/depth", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/d2d3/parameters/depth ERROR(%s)!!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/d2d3/parameters/depth ERROR(%s)!!\n", strerror ( errno ) ); + return -1; + } - if ( count >= -127 && count <= 127 ) { + if ( count >= -127 && count <= 127 ) { #ifdef LOGD_3D_FUNCTION - LOGD ( "set depth value (%d).\n", count ); + LOGD ( "set depth value (%d).\n", count ); #endif - } else { - count = 8 * 12; - LOGE ( "set depth value ERROR!! set default depth.\n" ); - } + } else { + count = 8 * 12; + LOGE ( "set depth value ERROR!! set default depth.\n" ); + } - fprintf ( fp, "%d", count ); - fclose ( fp ); - fp = NULL; + fprintf ( fp, "%d", count ); + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_Set2Dto3D ( int on_off ) { - struct tvin_parm_s VdinParam; - VDIN_GetVdinParam ( &VdinParam ); - VdinParam.flag &= ( ~TVIN_PARM_FLAG_2D_TO_3D ); - VdinParam.flag |= ( on_off ) ? ( TVIN_PARM_FLAG_2D_TO_3D ) : ( 0 ); - return VDIN_SetVdinParam ( &VdinParam ); + struct tvin_parm_s VdinParam; + VDIN_GetVdinParam ( &VdinParam ); + VdinParam.flag &= ( ~TVIN_PARM_FLAG_2D_TO_3D ); + VdinParam.flag |= ( on_off ) ? ( TVIN_PARM_FLAG_2D_TO_3D ) : ( 0 ); + return VDIN_SetVdinParam ( &VdinParam ); } int CTvin::VDIN_Get_avg_luma(void) { - unsigned int lum_sum,pixel_sum,luma_avg; - struct tvin_parm_s vdinParam; + unsigned int lum_sum, pixel_sum, luma_avg; + struct tvin_parm_s vdinParam; - if ( 0 == VDIN_GetVdinParam( &vdinParam )) { - lum_sum = vdinParam.luma_sum; - pixel_sum = vdinParam.pixel_sum*2; - if (pixel_sum != 0 && m_is_decoder_start) { - luma_avg = lum_sum/pixel_sum; - } else { - luma_avg = 116; - } - } else { - return -1; - } - LOGD ( "VDIN_get_avg_lut lum_sum =%d,pixel_sum=%d,lut_avg=%d\n", lum_sum,pixel_sum,luma_avg); - return luma_avg; + if ( 0 == VDIN_GetVdinParam( &vdinParam )) { + lum_sum = vdinParam.luma_sum; + pixel_sum = vdinParam.pixel_sum * 2; + if (pixel_sum != 0 && m_is_decoder_start) { + luma_avg = lum_sum / pixel_sum; + } else { + luma_avg = 116; + } + } else { + return -1; + } + LOGD ( "VDIN_get_avg_lut lum_sum =%d,pixel_sum=%d,lut_avg=%d\n", lum_sum, pixel_sum, luma_avg); + return luma_avg; } int CTvin::VDIN_GetHistgram ( int *hisgram ) { - int i = 0; - struct tvin_parm_s vdinParam; + int i = 0; + struct tvin_parm_s vdinParam; - if ( NULL == hisgram ) { - return -1; - } + if ( NULL == hisgram ) { + return -1; + } - if ( 0 == VDIN_GetVdinParam ( &vdinParam ) ) { - for ( i = 0; i < CC_HIST_GRAM_BUF_SIZE; i++ ) { - hisgram[i] = ( int ) vdinParam.histgram[i]; - } - } else { - return -1; - } + if ( 0 == VDIN_GetVdinParam ( &vdinParam ) ) { + for ( i = 0; i < CC_HIST_GRAM_BUF_SIZE; i++ ) { + hisgram[i] = ( int ) vdinParam.histgram[i]; + } + } else { + return -1; + } - return 0; + return 0; } int CTvin::VDIN_SetMVCViewMode ( int mode ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/module/amvdec_h264mvc/parameters/view_mode", "w" ); + fp = fopen ( "/sys/module/amvdec_h264mvc/parameters/view_mode", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/amvdec_h264mvc/parameters/view_mode error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/amvdec_h264mvc/parameters/view_mode error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", ( int ) mode ); + fprintf ( fp, "%d", ( int ) mode ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_GetMVCViewMode ( void ) { - FILE *fp = NULL; - int ret = 0; - int mode = 0; + FILE *fp = NULL; + int ret = 0; + int mode = 0; - fp = fopen ( "/sys/module/amvdec_h264mvc/parameters/view_mode", "w" ); + fp = fopen ( "/sys/module/amvdec_h264mvc/parameters/view_mode", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/amvdec_h264mvc/parameters/view_mode ERROR(%s)!!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/amvdec_h264mvc/parameters/view_mode ERROR(%s)!!\n", strerror ( errno ) ); + return -1; + } - ret = fread ( &mode, 1, 1, fp ); - LOGD ( "fread /sys/module/amvdec_h264mvc/parameters/view_mode = [%d]", mode ); + ret = fread ( &mode, 1, 1, fp ); + LOGD ( "fread /sys/module/amvdec_h264mvc/parameters/view_mode = [%d]", mode ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return mode; + return mode; } int CTvin::VDIN_SetDIBuffMgrMode ( int mgr_mode ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "sys/module/di/parameters/buf_mgr_mode", "w" ); + fp = fopen ( "sys/module/di/parameters/buf_mgr_mode", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/di/parameters/buf_mgr_mode error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/di/parameters/buf_mgr_mode error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", mgr_mode ); + fprintf ( fp, "%d", mgr_mode ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_SetDICFG ( int cfg ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "sys/class/deinterlace/di0/config", "w" ); + fp = fopen ( "sys/class/deinterlace/di0/config", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/class/deinterlace/di0/config error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/class/deinterlace/di0/config error(%s)!\n", strerror ( errno ) ); + return -1; + } - if ( 0 == cfg ) { - fprintf ( fp, "%s", "disable" ); - } else { - fprintf ( fp, "%s", "enable" ); - } + if ( 0 == cfg ) { + fprintf ( fp, "%s", "disable" ); + } else { + fprintf ( fp, "%s", "enable" ); + } - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_SetDI3DDetc ( int enable ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/module/di/parameters/det3d_en", "w" ); + fp = fopen ( "/sys/module/di/parameters/det3d_en", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/di/parameters/det3d_en error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/di/parameters/det3d_en error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", enable ); + fprintf ( fp, "%d", enable ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_Get3DDetc ( void ) { - int fd = -1; - int ret = -1; - char buf[10]; + int fd = -1; + int ret = -1; + char buf[10]; - fd = open ( "/sys/module/di/parameters/det3d_en", O_RDWR ); + fd = open ( "/sys/module/di/parameters/det3d_en", O_RDWR ); - if ( fd < 0 ) { - LOGW ( "Open /sys/module/di/parameters/det3d_en error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fd < 0 ) { + LOGW ( "Open /sys/module/di/parameters/det3d_en error(%s)!\n", strerror ( errno ) ); + return -1; + } - ret = read ( fd, buf, sizeof ( buf ) ); + ret = read ( fd, buf, sizeof ( buf ) ); - close ( fd ); - fd = -1; + close ( fd ); + fd = -1; - if ( strcmp ( "enable", buf ) == 0 ) { - return 1; - } else { - return 0; - } + if ( strcmp ( "enable", buf ) == 0 ) { + return 1; + } else { + return 0; + } } int CTvin::VDIN_GetVscalerStatus ( void ) { - int fd = -1; - int ret = -1; - char buf[7]; + int fd = -1; + int ret = -1; + char buf[7]; - fd = open ( "/sys/class/video/vscaler", O_RDWR ); + fd = open ( "/sys/class/video/vscaler", O_RDWR ); - if ( fd < 0 ) { - LOGW ( "Open /sys/class/video/vscaler error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fd < 0 ) { + LOGW ( "Open /sys/class/video/vscaler error(%s)!\n", strerror ( errno ) ); + return -1; + } - ret = read ( fd, buf, sizeof ( buf ) ); + ret = read ( fd, buf, sizeof ( buf ) ); - close ( fd ); - fd = -1; + close ( fd ); + fd = -1; - sscanf ( buf, "%d", &ret ); + sscanf ( buf, "%d", &ret ); - ret = ( ( ret & 0x40000 ) == 0 ) ? 1 : 0; + ret = ( ( ret & 0x40000 ) == 0 ) ? 1 : 0; - if ( ret == 1 ) { - sleep ( 1 ); - } + if ( ret == 1 ) { + sleep ( 1 ); + } - return ret; + return ret; } int CTvin::VDIN_TurnOnBlackBarDetect ( int isEnable ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/module/tvin_vdin/parameters/black_bar_enable", "w" ); + fp = fopen ( "/sys/module/tvin_vdin/parameters/black_bar_enable", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/tvin_vdin/parameters/black_bar_enable error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/tvin_vdin/parameters/black_bar_enable error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", isEnable ); + fprintf ( fp, "%d", isEnable ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_LoadHdcpKey ( unsigned char *hdcpkey_buff ) { - unsigned char testHdcp[368] = { 0x53, 0x4B, 0x59, 0x01, 0x00, 0x10, 0x0D, 0x15, 0x3A, 0x8E, 0x99, 0xEE, 0x2A, 0x55, 0x58, 0xEE, 0xED, 0x4B, 0xBE, 0x00, 0x74, 0xA9, 0x00, 0x10, 0x0A, 0x21, 0xE3, - 0x30, 0x66, 0x34, 0xCE, 0x9C, 0xC7, 0x8B, 0x51, 0x27, 0xF9, 0x0B, 0xAD, 0x09, 0x5F, 0x4D, 0xC2, 0xCA, 0xA2, 0x13, 0x06, 0x18, 0x8D, 0x34, 0x82, 0x46, 0x2D, 0xC9, 0x4B, 0xB0, 0x1C, 0xDE, - 0x3D, 0x49, 0x39, 0x58, 0xEF, 0x2B, 0x68, 0x39, 0x71, 0xC9, 0x4D, 0x25, 0xE9, 0x75, 0x4D, 0xAC, 0x62, 0xF5, 0xF5, 0x87, 0xA0, 0xB2, 0x4A, 0x60, 0xD3, 0xF1, 0x09, 0x3A, 0xB2, 0x3E, 0x19, - 0x4F, 0x3B, 0x1B, 0x2F, 0x85, 0x14, 0x28, 0x44, 0xFC, 0x69, 0x6F, 0x50, 0x42, 0x81, 0xBF, 0x7C, 0x2B, 0x3A, 0x17, 0x2C, 0x15, 0xE4, 0x93, 0x77, 0x74, 0xE8, 0x1F, 0x1C, 0x38, 0x54, 0x49, - 0x10, 0x64, 0x5B, 0x7D, 0x90, 0x3D, 0xA0, 0xE1, 0x8B, 0x67, 0x5C, 0x19, 0xE6, 0xCA, 0x9D, 0xE9, 0x68, 0x5A, 0xB5, 0x62, 0xDF, 0xA1, 0x28, 0xBC, 0x68, 0x82, 0x9A, 0x22, 0xC4, 0xDC, 0x48, - 0x85, 0x0F, 0xF1, 0x3E, 0x05, 0xDD, 0x1B, 0x2D, 0xF5, 0x49, 0x3A, 0x15, 0x29, 0xE7, 0xB6, 0x0B, 0x2A, 0x40, 0xE3, 0xB0, 0x89, 0xD5, 0x75, 0x84, 0x2E, 0x76, 0xE7, 0xBC, 0x63, 0x67, 0xE3, - 0x57, 0x67, 0x86, 0x81, 0xF4, 0xD7, 0xEA, 0x4D, 0x89, 0x8E, 0x37, 0x95, 0x59, 0x1C, 0x8A, 0xCD, 0x79, 0xF8, 0x4F, 0x82, 0xF2, 0x6C, 0x7E, 0x7F, 0x79, 0x8A, 0x6B, 0x90, 0xC0, 0xAF, 0x4C, - 0x8D, 0x43, 0x47, 0x1F, 0x9A, 0xF1, 0xBB, 0x88, 0x64, 0x49, 0x14, 0x50, 0xD1, 0xC3, 0xDF, 0xA6, 0x87, 0xA0, 0x15, 0x98, 0x51, 0x81, 0xF5, 0x97, 0x55, 0x10, 0x4A, 0x99, 0x30, 0x54, 0xA4, - 0xFC, 0xDA, 0x0E, 0xAC, 0x6A, 0xFA, 0x90, 0xEE, 0x12, 0x70, 0x69, 0x74, 0x63, 0x46, 0x63, 0xFB, 0xE6, 0x1F, 0x72, 0xEC, 0x43, 0x5D, 0x50, 0xFF, 0x03, 0x4F, 0x05, 0x33, 0x88, 0x36, 0x93, - 0xE4, 0x72, 0xD5, 0xCC, 0x34, 0x52, 0x96, 0x15, 0xCE, 0xD0, 0x32, 0x52, 0x41, 0x4F, 0xBC, 0x2D, 0xDF, 0xC5, 0xD6, 0x7F, 0xD5, 0x74, 0xCE, 0x51, 0xDC, 0x10, 0x5E, 0xF7, 0xAA, 0x4A, 0x2D, - 0x20, 0x9A, 0x17, 0xDD, 0x30, 0x89, 0x71, 0x82, 0x36, 0x50, 0x09, 0x1F, 0x7C, 0xF3, 0x12, 0xE9, 0x43, 0x10, 0x5F, 0x51, 0xBF, 0xB8, 0x45, 0xA8, 0x5A, 0x8D, 0x3F, 0x77, 0xE5, 0x96, 0x73, - 0x68, 0xAB, 0x73, 0xE5, 0x4C, 0xFB, 0xE5, 0x98, 0xB9, 0xAE, 0x74, 0xEB, 0x51, 0xDB, 0x91, 0x07, 0x7B, 0x66, 0x02, 0x9B, 0x79, 0x03, 0xC5, 0x34, 0x1C, 0x58, 0x13, 0x31, 0xD2, 0x4A, 0xEC - }; - int ret = -1; - int fd = -1; + unsigned char testHdcp[368] = { 0x53, 0x4B, 0x59, 0x01, 0x00, 0x10, 0x0D, 0x15, 0x3A, 0x8E, 0x99, 0xEE, 0x2A, 0x55, 0x58, 0xEE, 0xED, 0x4B, 0xBE, 0x00, 0x74, 0xA9, 0x00, 0x10, 0x0A, 0x21, 0xE3, + 0x30, 0x66, 0x34, 0xCE, 0x9C, 0xC7, 0x8B, 0x51, 0x27, 0xF9, 0x0B, 0xAD, 0x09, 0x5F, 0x4D, 0xC2, 0xCA, 0xA2, 0x13, 0x06, 0x18, 0x8D, 0x34, 0x82, 0x46, 0x2D, 0xC9, 0x4B, 0xB0, 0x1C, 0xDE, + 0x3D, 0x49, 0x39, 0x58, 0xEF, 0x2B, 0x68, 0x39, 0x71, 0xC9, 0x4D, 0x25, 0xE9, 0x75, 0x4D, 0xAC, 0x62, 0xF5, 0xF5, 0x87, 0xA0, 0xB2, 0x4A, 0x60, 0xD3, 0xF1, 0x09, 0x3A, 0xB2, 0x3E, 0x19, + 0x4F, 0x3B, 0x1B, 0x2F, 0x85, 0x14, 0x28, 0x44, 0xFC, 0x69, 0x6F, 0x50, 0x42, 0x81, 0xBF, 0x7C, 0x2B, 0x3A, 0x17, 0x2C, 0x15, 0xE4, 0x93, 0x77, 0x74, 0xE8, 0x1F, 0x1C, 0x38, 0x54, 0x49, + 0x10, 0x64, 0x5B, 0x7D, 0x90, 0x3D, 0xA0, 0xE1, 0x8B, 0x67, 0x5C, 0x19, 0xE6, 0xCA, 0x9D, 0xE9, 0x68, 0x5A, 0xB5, 0x62, 0xDF, 0xA1, 0x28, 0xBC, 0x68, 0x82, 0x9A, 0x22, 0xC4, 0xDC, 0x48, + 0x85, 0x0F, 0xF1, 0x3E, 0x05, 0xDD, 0x1B, 0x2D, 0xF5, 0x49, 0x3A, 0x15, 0x29, 0xE7, 0xB6, 0x0B, 0x2A, 0x40, 0xE3, 0xB0, 0x89, 0xD5, 0x75, 0x84, 0x2E, 0x76, 0xE7, 0xBC, 0x63, 0x67, 0xE3, + 0x57, 0x67, 0x86, 0x81, 0xF4, 0xD7, 0xEA, 0x4D, 0x89, 0x8E, 0x37, 0x95, 0x59, 0x1C, 0x8A, 0xCD, 0x79, 0xF8, 0x4F, 0x82, 0xF2, 0x6C, 0x7E, 0x7F, 0x79, 0x8A, 0x6B, 0x90, 0xC0, 0xAF, 0x4C, + 0x8D, 0x43, 0x47, 0x1F, 0x9A, 0xF1, 0xBB, 0x88, 0x64, 0x49, 0x14, 0x50, 0xD1, 0xC3, 0xDF, 0xA6, 0x87, 0xA0, 0x15, 0x98, 0x51, 0x81, 0xF5, 0x97, 0x55, 0x10, 0x4A, 0x99, 0x30, 0x54, 0xA4, + 0xFC, 0xDA, 0x0E, 0xAC, 0x6A, 0xFA, 0x90, 0xEE, 0x12, 0x70, 0x69, 0x74, 0x63, 0x46, 0x63, 0xFB, 0xE6, 0x1F, 0x72, 0xEC, 0x43, 0x5D, 0x50, 0xFF, 0x03, 0x4F, 0x05, 0x33, 0x88, 0x36, 0x93, + 0xE4, 0x72, 0xD5, 0xCC, 0x34, 0x52, 0x96, 0x15, 0xCE, 0xD0, 0x32, 0x52, 0x41, 0x4F, 0xBC, 0x2D, 0xDF, 0xC5, 0xD6, 0x7F, 0xD5, 0x74, 0xCE, 0x51, 0xDC, 0x10, 0x5E, 0xF7, 0xAA, 0x4A, 0x2D, + 0x20, 0x9A, 0x17, 0xDD, 0x30, 0x89, 0x71, 0x82, 0x36, 0x50, 0x09, 0x1F, 0x7C, 0xF3, 0x12, 0xE9, 0x43, 0x10, 0x5F, 0x51, 0xBF, 0xB8, 0x45, 0xA8, 0x5A, 0x8D, 0x3F, 0x77, 0xE5, 0x96, 0x73, + 0x68, 0xAB, 0x73, 0xE5, 0x4C, 0xFB, 0xE5, 0x98, 0xB9, 0xAE, 0x74, 0xEB, 0x51, 0xDB, 0x91, 0x07, 0x7B, 0x66, 0x02, 0x9B, 0x79, 0x03, 0xC5, 0x34, 0x1C, 0x58, 0x13, 0x31, 0xD2, 0x4A, 0xEC + }; + int ret = -1; + int fd = -1; - fd = open ( "/sys/class/hdmirx/hdmirx0/edid", O_RDWR ); + fd = open ( "/sys/class/hdmirx/hdmirx0/edid", O_RDWR ); - if ( fd < 0 ) { - LOGW ( "Open hdmi hdcp key error(%s)!!\n", strerror ( errno ) ); - return -1; - } + if ( fd < 0 ) { + LOGW ( "Open hdmi hdcp key error(%s)!!\n", strerror ( errno ) ); + return -1; + } - ret = write ( fd, testHdcp, 368 ); + ret = write ( fd, testHdcp, 368 ); - if ( ret < 0 ) { - LOGD ( "Write hdmi hdcp key error(%s)!!\n", strerror ( errno ) ); - } + if ( ret < 0 ) { + LOGD ( "Write hdmi hdcp key error(%s)!!\n", strerror ( errno ) ); + } - close ( fd ); - fd = -1; + close ( fd ); + fd = -1; - return ret; + return ret; } int CTvin::VDIN_KeepLastFrame ( int enable ) { - FILE *fp = NULL; + FILE *fp = NULL; - return 0; + return 0; - fp = fopen ( "/sys/module/amvideo/parameters/keep_old_frame", "w" ); + fp = fopen ( "/sys/module/amvideo/parameters/keep_old_frame", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/amvideo/parameters/keep_old_frame error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/amvideo/parameters/keep_old_frame error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", enable ); + fprintf ( fp, "%d", enable ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_SetVideoFreeze ( int enable ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/class/vdin/vdin0/attr", "w" ); + fp = fopen ( "/sys/class/vdin/vdin0/attr", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/class/vdin/vdin0/attr error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/class/vdin/vdin0/attr error(%s)!\n", strerror ( errno ) ); + return -1; + } - if ( enable == 1 ) { - fprintf ( fp, "freeze" ); - } else { - fprintf ( fp, "unfreeze" ); - } + if ( enable == 1 ) { + fprintf ( fp, "freeze" ); + } else { + fprintf ( fp, "unfreeze" ); + } - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_SetDIBypasshd ( int enable ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/module/di/parameters/bypass_hd", "w" ); + fp = fopen ( "/sys/module/di/parameters/bypass_hd", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/di/parameters/bypass_hd error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/di/parameters/bypass_hd error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", enable ); + fprintf ( fp, "%d", enable ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_SetDIBypassAll ( int enable ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/module/di/parameters/bypass_all", "w" ); + fp = fopen ( "/sys/module/di/parameters/bypass_all", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/di/parameters/bypass_all error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/di/parameters/bypass_all error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", enable ); - fclose ( fp ); - fp = NULL; - return 0; + fprintf ( fp, "%d", enable ); + fclose ( fp ); + fp = NULL; + return 0; } int CTvin::VDIN_SetDIBypass_Get_Buf_Threshold ( int enable ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/module/di/parameters/bypass_get_buf_threshold", "w" ); + fp = fopen ( "/sys/module/di/parameters/bypass_get_buf_threshold", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/di/parameters/bypass_get_buf_threshold error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/di/parameters/bypass_get_buf_threshold error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", enable ); + fprintf ( fp, "%d", enable ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_SetDIBypassProg ( int enable ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/module/di/parameters/bypass_prog", "w" ); + fp = fopen ( "/sys/module/di/parameters/bypass_prog", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/di/parameters/bypass_prog error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/di/parameters/bypass_prog error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", enable ); + fprintf ( fp, "%d", enable ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_SetDIBypassDynamic ( int flag ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/module/di/parameters/bypass_dynamic", "w" ); + fp = fopen ( "/sys/module/di/parameters/bypass_dynamic", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/di/parameters/bypass_dynamic error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/di/parameters/bypass_dynamic error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", flag ); + fprintf ( fp, "%d", flag ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_SetDIDet3DMode ( int value ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/module/di/parameters/det3d_mode", "w" ); + fp = fopen ( "/sys/module/di/parameters/det3d_mode", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/di/parameters/det3d_mode error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/di/parameters/det3d_mode error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", value ); + fprintf ( fp, "%d", value ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_SetDIBypass3D ( int enable ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/module/di/parameters/bypass_3d", "w" ); + fp = fopen ( "/sys/module/di/parameters/bypass_3d", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/di/parameters/bypass_3d error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/di/parameters/bypass_3d error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", enable ); + fprintf ( fp, "%d", enable ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_SetDIBypassPost ( int enable ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/module/di/parameters/bypass_post", "w" ); + fp = fopen ( "/sys/module/di/parameters/bypass_post", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/di/parameters/bypass_post error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/di/parameters/bypass_post error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", enable ); + fprintf ( fp, "%d", enable ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::set3D_FL_Frame(int value) { - FILE *fp = NULL; - fp = fopen ( "/sys/module/amvideo/parameters/pause_one_3d_fl_frame", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/amvideo/parameters/pause_one_3d_fl_frame error(%s)!\n", strerror ( errno ) ); - return -1; - } - fprintf ( fp, "%d", value ); - fclose ( fp ); - fp = NULL; - return 0; + FILE *fp = NULL; + fp = fopen ( "/sys/module/amvideo/parameters/pause_one_3d_fl_frame", "w" ); + if ( fp == NULL ) { + LOGW ( "Open /sys/module/amvideo/parameters/pause_one_3d_fl_frame error(%s)!\n", strerror ( errno ) ); + return -1; + } + fprintf ( fp, "%d", value ); + fclose ( fp ); + fp = NULL; + return 0; } int CTvin::setLatchFlag(int value) { - int fd = -1; - int nodeVal = 0; - char s[10]; - FILE *fp = NULL; - memset(s, 0, sizeof(s)); - read(fd, s, sizeof(s)); - close(fd); - nodeVal = atoi(s); - fp = fopen ( "/sys/module/am_vecm/parameters/vecm_latch_flag", "w" ); - if ( fp == NULL ) { - LOGW ( "/sys/module/am_vecm/parameters/vecm_latch_flag error(%s)!\n", strerror ( errno ) ); - return -1; - } - fprintf ( fp, "%d", value | nodeVal); - fclose ( fp ); - fp = NULL; - LOGD ( "read vecm_latch_flag = (%s)====(0x%x), then set vecm_latch_flag | 0x%x = 0x%x.\n", s, nodeVal, value, value | nodeVal); - return 0; + int fd = -1; + int nodeVal = 0; + char s[10]; + FILE *fp = NULL; + memset(s, 0, sizeof(s)); + read(fd, s, sizeof(s)); + close(fd); + nodeVal = atoi(s); + fp = fopen ( "/sys/module/am_vecm/parameters/vecm_latch_flag", "w" ); + if ( fp == NULL ) { + LOGW ( "/sys/module/am_vecm/parameters/vecm_latch_flag error(%s)!\n", strerror ( errno ) ); + return -1; + } + fprintf ( fp, "%d", value | nodeVal); + fclose ( fp ); + fp = NULL; + LOGD ( "read vecm_latch_flag = (%s)====(0x%x), then set vecm_latch_flag | 0x%x = 0x%x.\n", s, nodeVal, value, value | nodeVal); + return 0; } int CTvin::VDIN_SetDIProg_Proc_Config ( int value ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/module/di/parameters/prog_proc_config", "w" ); + fp = fopen ( "/sys/module/di/parameters/prog_proc_config", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/di/parameters/prog_proc_config error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/di/parameters/prog_proc_config error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", value ); + fprintf ( fp, "%d", value ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } #if(1) int CTvin::VDIN_SetDIInput2Pre ( int value ) { - FILE *fp = NULL; + FILE *fp = NULL; - fp = fopen ( "/sys/module/di/parameters/input2pre", "w" ); + fp = fopen ( "/sys/module/di/parameters/input2pre", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/di/parameters/input2pre error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/di/parameters/input2pre error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", value ); + fprintf ( fp, "%d", value ); - fclose ( fp ); - fp = NULL; + fclose ( fp ); + fp = NULL; - return 0; + return 0; } #endif int CTvin::VDIN_SetVdinFlag ( int flag ) { - FILE *fp = NULL; - int freq = 1200000; + FILE *fp = NULL; + int freq = 1200000; - fp = fopen ( "/sys/class/vdin/memp", "w" ); + fp = fopen ( "/sys/class/vdin/memp", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/class/vdin/memp error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/class/vdin/memp error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", flag ); - fclose ( fp ); - fp = NULL; + fprintf ( fp, "%d", flag ); + fclose ( fp ); + fp = NULL; - return 0; + return 0; } int CTvin::VDIN_EnableRDMA ( int enable ) { - FILE *fp = NULL; - fp = fopen ( "/sys/module/rdma/parameters/enable", "w" ); + FILE *fp = NULL; + fp = fopen ( "/sys/module/rdma/parameters/enable", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/module/rdma/parameters/enable error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/module/rdma/parameters/enable error(%s)!\n", strerror ( errno ) ); + return -1; + } - fprintf ( fp, "%d", enable ); - fclose ( fp ); - fp = NULL; - return 0; + fprintf ( fp, "%d", enable ); + fclose ( fp ); + fp = NULL; + return 0; } // AFE int CTvin::AFE_OpenModule ( void ) { - if ( afe_dev_fd < 0 ) { - afe_dev_fd = open ( AFE_DEV_PATH, O_RDWR ); + if ( afe_dev_fd < 0 ) { + afe_dev_fd = open ( AFE_DEV_PATH, O_RDWR ); - if ( afe_dev_fd < 0 ) { - LOGW ( "Open tvafe module, error(%s).\n", strerror ( errno ) ); - return -1; - } - } + if ( afe_dev_fd < 0 ) { + LOGW ( "Open tvafe module, error(%s).\n", strerror ( errno ) ); + return -1; + } + } - return afe_dev_fd; + return afe_dev_fd; } void CTvin::AFE_CloseModule ( void ) { - if ( afe_dev_fd >= 0 ) { - close ( afe_dev_fd ); - afe_dev_fd = -1; - } + if ( afe_dev_fd >= 0 ) { + close ( afe_dev_fd ); + afe_dev_fd = -1; + } - return; + return; } int CTvin::AFE_DeviceIOCtl ( int request, ... ) { - int tmp_ret = -1; - va_list ap; - void *arg; + int tmp_ret = -1; + va_list ap; + void *arg; - if ( afe_dev_fd >= 0 ) { - va_start ( ap, request ); - arg = va_arg ( ap, void * ); - va_end ( ap ); + if ( afe_dev_fd >= 0 ) { + va_start ( ap, request ); + arg = va_arg ( ap, void * ); + va_end ( ap ); - tmp_ret = ioctl ( afe_dev_fd, request, arg ); + tmp_ret = ioctl ( afe_dev_fd, request, arg ); - return tmp_ret; - } + return tmp_ret; + } - return -1; + return -1; } int CTvin::AFE_GetDeviceFileHandle() { - return afe_dev_fd; + return afe_dev_fd; } int CTvin::AFE_SetVGAEdid ( const unsigned char *ediddata ) { - int rt = -1; - struct tvafe_vga_edid_s vgaEdid; + int rt = -1; + struct tvafe_vga_edid_s vgaEdid; #ifdef NO_IC_TEST - for ( int i = 0; i < 256; i++ ) { - test_edid[i] = ediddata[i]; - } + for ( int i = 0; i < 256; i++ ) { + test_edid[i] = ediddata[i]; + } #endif - for ( int i = 0; i < 256; i++ ) { - vgaEdid.value[i] = ediddata[i]; - } + for ( int i = 0; i < 256; i++ ) { + vgaEdid.value[i] = ediddata[i]; + } - rt = AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_VGA_EDID, &vgaEdid ); + rt = AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_VGA_EDID, &vgaEdid ); - if ( rt < 0 ) { - LOGW ( "AFE_SetVGAEdid, error(%s).!\n", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGW ( "AFE_SetVGAEdid, error(%s).!\n", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::AFE_GetVGAEdid ( unsigned char *ediddata ) { - int rt = -1; - struct tvafe_vga_edid_s vgaEdid; + int rt = -1; + struct tvafe_vga_edid_s vgaEdid; #ifdef NO_IC_TEST - for ( int i = 0; i < 256; i++ ) { - ediddata[i] = test_edid[i]; - } + for ( int i = 0; i < 256; i++ ) { + ediddata[i] = test_edid[i]; + } - LOGD ( "AFE_GetVGAEdid:\n" ); - LOGD ( "===================================================\n" ); + LOGD ( "AFE_GetVGAEdid:\n" ); + LOGD ( "===================================================\n" ); - for ( int i = 0; i < 256; i++ ) { - LOGD ( "vag edid[%d] = [0x%x].\n", i, ediddata[i] ); - } + for ( int i = 0; i < 256; i++ ) { + LOGD ( "vag edid[%d] = [0x%x].\n", i, ediddata[i] ); + } - LOGD ( "===================================================\n" ); + LOGD ( "===================================================\n" ); #endif - rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_VGA_EDID, &vgaEdid ); + rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_VGA_EDID, &vgaEdid ); - for ( int i = 0; i < 256; i++ ) { - ediddata[i] = vgaEdid.value[i]; - } + for ( int i = 0; i < 256; i++ ) { + ediddata[i] = vgaEdid.value[i]; + } - if ( rt < 0 ) { - LOGW ( "AFE_GetVGAEdid, error(%s)!\n", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGW ( "AFE_GetVGAEdid, error(%s)!\n", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::AFE_SetADCTimingAdjust ( const struct tvafe_vga_parm_s *timingadj ) { - int rt = -1; + int rt = -1; - if ( timingadj == NULL ) { - return rt; - } + if ( timingadj == NULL ) { + return rt; + } - rt = AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_VGA_PARM, timingadj ); + rt = AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_VGA_PARM, timingadj ); - if ( rt < 0 ) { - LOGW ( "AFE_SetADCTimingAdjust, error(%s)!\n", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGW ( "AFE_SetADCTimingAdjust, error(%s)!\n", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::AFE_GetADCCurrentTimingAdjust ( struct tvafe_vga_parm_s *timingadj ) { - int rt = -1; + int rt = -1; - if ( timingadj == NULL ) { - return rt; - } + if ( timingadj == NULL ) { + return rt; + } - rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_VGA_PARM, timingadj ); + rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_VGA_PARM, timingadj ); - if ( rt < 0 ) { - LOGW ( "AFE_GetADCCurrentTimingAdjust, error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( rt < 0 ) { + LOGW ( "AFE_GetADCCurrentTimingAdjust, error(%s)!\n", strerror ( errno ) ); + return -1; + } - return 0; + return 0; } int CTvin::AFE_VGAAutoAdjust ( struct tvafe_vga_parm_s *timingadj ) { - enum tvafe_cmd_status_e CMDStatus = TVAFE_CMD_STATUS_PROCESSING; - struct tvin_parm_s tvin_para; - int rt = -1, i = 0; + enum tvafe_cmd_status_e CMDStatus = TVAFE_CMD_STATUS_PROCESSING; + struct tvin_parm_s tvin_para; + int rt = -1, i = 0; - if ( timingadj == NULL ) { - return -1; - } + if ( timingadj == NULL ) { + return -1; + } - for ( i = 0, CMDStatus == TVAFE_CMD_STATUS_PROCESSING; i < 50; i++ ) { - rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_CMD_STATUS, &CMDStatus ); + for ( i = 0, CMDStatus == TVAFE_CMD_STATUS_PROCESSING; i < 50; i++ ) { + rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_CMD_STATUS, &CMDStatus ); - if ( rt < 0 ) { - LOGD ( "get afe CMD status, error(%s), fd(%d), return(%d).\n", strerror ( errno ), AFE_GetDeviceFileHandle(), rt ); - } + if ( rt < 0 ) { + LOGD ( "get afe CMD status, error(%s), fd(%d), return(%d).\n", strerror ( errno ), AFE_GetDeviceFileHandle(), rt ); + } - if ( ( CMDStatus == TVAFE_CMD_STATUS_IDLE ) || ( CMDStatus == TVAFE_CMD_STATUS_SUCCESSFUL ) ) { - break; - } + if ( ( CMDStatus == TVAFE_CMD_STATUS_IDLE ) || ( CMDStatus == TVAFE_CMD_STATUS_SUCCESSFUL ) ) { + break; + } - usleep ( 10 * 1000 ); - } + usleep ( 10 * 1000 ); + } - if ( ( CMDStatus == TVAFE_CMD_STATUS_PROCESSING ) || ( CMDStatus == TVAFE_CMD_STATUS_FAILED ) ) { - return -1; - } + if ( ( CMDStatus == TVAFE_CMD_STATUS_PROCESSING ) || ( CMDStatus == TVAFE_CMD_STATUS_FAILED ) ) { + return -1; + } - for ( i = 0; i < 100; i++ ) { - rt = VDIN_DeviceIOCtl ( TVIN_IOC_G_PARM, &tvin_para ); + for ( i = 0; i < 100; i++ ) { + rt = VDIN_DeviceIOCtl ( TVIN_IOC_G_PARM, &tvin_para ); - if ( tvin_para.info.status == TVIN_SIG_STATUS_STABLE ) { - break; - } + if ( tvin_para.info.status == TVIN_SIG_STATUS_STABLE ) { + break; + } - usleep ( 10 * 1000 ); - } + usleep ( 10 * 1000 ); + } - rt = AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_VGA_AUTO ); + rt = AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_VGA_AUTO ); - if ( rt < 0 ) { - timingadj->clk_step = 0; - timingadj->phase = 0; - timingadj->hpos_step = 0; - timingadj->vpos_step = 0; - AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_VGA_PARM, timingadj ); - return rt; - } else { - ;//AFE_DeviceIOCtl(TVIN_IOC_G_AFE_VGA_PARM, timingadj); - } + if ( rt < 0 ) { + timingadj->clk_step = 0; + timingadj->phase = 0; + timingadj->hpos_step = 0; + timingadj->vpos_step = 0; + AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_VGA_PARM, timingadj ); + return rt; + } else { + ;//AFE_DeviceIOCtl(TVIN_IOC_G_AFE_VGA_PARM, timingadj); + } - for ( i = 0; i < 10; i++ ) { - sleep ( 1 ); + for ( i = 0; i < 10; i++ ) { + sleep ( 1 ); - rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_CMD_STATUS, &CMDStatus ); + rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_CMD_STATUS, &CMDStatus ); - if ( rt < 0 ) { - return rt; - } else { - if ( CMDStatus == TVAFE_CMD_STATUS_SUCCESSFUL ) { - usleep ( 100 * 1000 ); - AFE_GetADCCurrentTimingAdjust ( timingadj ); - LOGD ( "===================================================\n" ); - LOGW ( "AFE_VGAAutoAdjust, successfull!\n" ); - return 0; - } - } - } + if ( rt < 0 ) { + return rt; + } else { + if ( CMDStatus == TVAFE_CMD_STATUS_SUCCESSFUL ) { + usleep ( 100 * 1000 ); + AFE_GetADCCurrentTimingAdjust ( timingadj ); + LOGD ( "===================================================\n" ); + LOGW ( "AFE_VGAAutoAdjust, successfull!\n" ); + return 0; + } + } + } - return -1; + return -1; } int CTvin::AFE_SetVGAAutoAjust ( void ) { - int rt = -1; - tvafe_vga_parm_t timingadj; - tvafe_cmd_status_t Status; - rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_CMD_STATUS, &Status ); + int rt = -1; + tvafe_vga_parm_t timingadj; + tvafe_cmd_status_t Status; + rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_CMD_STATUS, &Status ); - if ( ( Status == TVAFE_CMD_STATUS_IDLE ) || ( Status == TVAFE_CMD_STATUS_SUCCESSFUL ) ) { - ; - } else { - LOGW ( "AFE_SetVGAAutoAjust, TVIN_IOC_G_AFE_CMD_STATUS failed!\n" ); - return -1; - } + if ( ( Status == TVAFE_CMD_STATUS_IDLE ) || ( Status == TVAFE_CMD_STATUS_SUCCESSFUL ) ) { + ; + } else { + LOGW ( "AFE_SetVGAAutoAjust, TVIN_IOC_G_AFE_CMD_STATUS failed!\n" ); + return -1; + } - rt = AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_VGA_AUTO ); + rt = AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_VGA_AUTO ); - if ( rt < 0 ) { - timingadj.clk_step = 0; - timingadj.phase = 0; - timingadj.hpos_step = 0; - timingadj.vpos_step = 0; - AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_VGA_PARM, &timingadj ); - return rt; - } + if ( rt < 0 ) { + timingadj.clk_step = 0; + timingadj.phase = 0; + timingadj.hpos_step = 0; + timingadj.vpos_step = 0; + AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_VGA_PARM, &timingadj ); + return rt; + } - return 0; + return 0; } int CTvin::AFE_GetVGAAutoAdjustCMDStatus ( tvafe_cmd_status_t *Status ) { - int rt = -1; + int rt = -1; - if ( Status == NULL ) { - return rt; - } + if ( Status == NULL ) { + return rt; + } - rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_CMD_STATUS, Status ); + rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_CMD_STATUS, Status ); - if ( rt < 0 ) { - LOGW ( "AFE_GetVGAAutoAdjustStatus, get status, error(%s) fd(%d) return(%d)\n", strerror ( errno ), AFE_GetDeviceFileHandle(), rt ); - return rt; - } + if ( rt < 0 ) { + LOGW ( "AFE_GetVGAAutoAdjustStatus, get status, error(%s) fd(%d) return(%d)\n", strerror ( errno ), AFE_GetDeviceFileHandle(), rt ); + return rt; + } - return 0; + return 0; } int CTvin::AFE_GetAdcCal ( struct tvafe_adc_cal_s *adccalvalue ) { - int rt = -1; + int rt = -1; - rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_ADC_CAL, adccalvalue ); + rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_ADC_CAL, adccalvalue ); - if ( rt < 0 ) { - LOGW ( "AFE_GetADCGainOffset, error(%s)!\n", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGW ( "AFE_GetADCGainOffset, error(%s)!\n", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::AFE_SetAdcCal ( struct tvafe_adc_cal_s *adccalvalue ) { - int rt = AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_ADC_CAL, adccalvalue ); + int rt = AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_ADC_CAL, adccalvalue ); - if ( rt < 0 ) { - LOGW ( "AFE_SetAdcCal, error(%s)!", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGW ( "AFE_SetAdcCal, error(%s)!", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::AFE_GetAdcCompCal ( struct tvafe_adc_comp_cal_s *adccalvalue ) { - int rt = -1; + int rt = -1; - rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_ADC_COMP_CAL, adccalvalue ); + rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_ADC_COMP_CAL, adccalvalue ); - if ( rt < 0 ) { - LOGW ( "AFE_GetYPbPrADCGainOffset, error(%s)!\n", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGW ( "AFE_GetYPbPrADCGainOffset, error(%s)!\n", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::AFE_SetAdcCompCal ( struct tvafe_adc_comp_cal_s *adccalvalue ) { - int rt = AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_ADC_COMP_CAL, adccalvalue ); + int rt = AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_ADC_COMP_CAL, adccalvalue ); - if ( rt < 0 ) { - LOGW ( "AFE_SetYPbPrADCGainOffset, error(%s)!", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGW ( "AFE_SetYPbPrADCGainOffset, error(%s)!", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::AFE_GetYPbPrWSSinfo ( struct tvafe_comp_wss_s *wssinfo ) { - int rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_COMP_WSS, wssinfo ); + int rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_COMP_WSS, wssinfo ); - if ( rt < 0 ) { - LOGW ( "AFE_GetYPbPrWSSinfo, error(%s)!", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGW ( "AFE_GetYPbPrWSSinfo, error(%s)!", strerror ( errno ) ); + } - return rt; + return rt; } #define RGB444 3 @@ -1713,1408 +1713,1408 @@ int CTvin::AFE_GetYPbPrWSSinfo ( struct tvafe_comp_wss_s *wssinfo ) unsigned int CTvin::data_limit ( float data ) { - if ( data < 0 ) { - return ( 0 ); - } else if ( data > 255 ) { - return ( 255 ); - } else { - return ( ( unsigned int ) data ); - } + if ( data < 0 ) { + return ( 0 ); + } else if ( data > 255 ) { + return ( 255 ); + } else { + return ( ( unsigned int ) data ); + } } void CTvin::matrix_convert_yuv709_to_rgb ( unsigned int y, unsigned int u, unsigned int v, unsigned int *r, unsigned int *g, unsigned int *b ) { - *r = data_limit ( ( ( float ) y + PRE_0 ) * COEF_00 + ( ( float ) u + PRE_1 ) * COEF_01 + ( ( float ) v + PRE_2 ) * COEF_02 + POST_0 + 0.5 ); - *g = data_limit ( ( ( float ) y + PRE_0 ) * COEF_10 + ( ( float ) u + PRE_1 ) * COEF_11 + ( ( float ) v + PRE_2 ) * COEF_12 + POST_1 + 0.5 ); - *b = data_limit ( ( ( float ) y + PRE_0 ) * COEF_20 + ( ( float ) u + PRE_1 ) * COEF_21 + ( ( float ) v + PRE_2 ) * COEF_22 + POST_2 + 0.5 ); + *r = data_limit ( ( ( float ) y + PRE_0 ) * COEF_00 + ( ( float ) u + PRE_1 ) * COEF_01 + ( ( float ) v + PRE_2 ) * COEF_02 + POST_0 + 0.5 ); + *g = data_limit ( ( ( float ) y + PRE_0 ) * COEF_10 + ( ( float ) u + PRE_1 ) * COEF_11 + ( ( float ) v + PRE_2 ) * COEF_12 + POST_1 + 0.5 ); + *b = data_limit ( ( ( float ) y + PRE_0 ) * COEF_20 + ( ( float ) u + PRE_1 ) * COEF_21 + ( ( float ) v + PRE_2 ) * COEF_22 + POST_2 + 0.5 ); } void CTvin::re_order ( unsigned int *a, unsigned int *b ) { - unsigned int c = 0; + unsigned int c = 0; - if ( *a > *b ) { - c = *a; - *a = *b; - *b = c; - } + if ( *a > *b ) { + c = *a; + *a = *b; + *b = c; + } } char *CTvin::get_cap_addr ( enum adc_cal_type_e calType ) { - int n; - char *dp; + int n; + char *dp; - for ( n = 0; n < 0x00ff; n++ ) { - if ( VDIN_DeviceIOCtl ( TVIN_IOC_G_SIG_INFO, &gTvinAFESignalInfo ) < 0 ) { - LOGW ( "get_cap_addr, get signal info, error(%s),fd(%d).\n", strerror ( errno ), m_vdin_dev_fd ); - return NULL; - } else { - if ( gTvinAFESignalInfo.status == TVIN_SIG_STATUS_STABLE ) { - gTvinAFEParam.info.fmt = gTvinAFESignalInfo.fmt; - break; - } - } - } + for ( n = 0; n < 0x00ff; n++ ) { + if ( VDIN_DeviceIOCtl ( TVIN_IOC_G_SIG_INFO, &gTvinAFESignalInfo ) < 0 ) { + LOGW ( "get_cap_addr, get signal info, error(%s),fd(%d).\n", strerror ( errno ), m_vdin_dev_fd ); + return NULL; + } else { + if ( gTvinAFESignalInfo.status == TVIN_SIG_STATUS_STABLE ) { + gTvinAFEParam.info.fmt = gTvinAFESignalInfo.fmt; + break; + } + } + } - if ( gTvinAFESignalInfo.status != TVIN_SIG_STATUS_STABLE ) { - LOGD ( "get_cap_addr, signal isn't stable, out of calibration!\n" ); - return NULL; - } else { - if ( VDIN_DeviceIOCtl ( TVIN_IOC_STOP_DEC ) < 0 ) { - LOGW ( "get_cap_addr, stop vdin, error (%s).\n", strerror ( errno ) ); - return NULL; - } + if ( gTvinAFESignalInfo.status != TVIN_SIG_STATUS_STABLE ) { + LOGD ( "get_cap_addr, signal isn't stable, out of calibration!\n" ); + return NULL; + } else { + if ( VDIN_DeviceIOCtl ( TVIN_IOC_STOP_DEC ) < 0 ) { + LOGW ( "get_cap_addr, stop vdin, error (%s).\n", strerror ( errno ) ); + return NULL; + } - usleep ( 1000 ); + usleep ( 1000 ); - if ( calType == CAL_YPBPR ) { - dp = ( char * ) mmap ( NULL, COMP_CAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, m_vdin_dev_fd, 0 ); - } else { - dp = ( char * ) mmap ( NULL, VGA_CAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, m_vdin_dev_fd, 0 ); - } + if ( calType == CAL_YPBPR ) { + dp = ( char * ) mmap ( NULL, COMP_CAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, m_vdin_dev_fd, 0 ); + } else { + dp = ( char * ) mmap ( NULL, VGA_CAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, m_vdin_dev_fd, 0 ); + } - if ( dp < 0 ) { - LOGD ( "get_cap_addr, mmap failed!\n" ); - } + if ( dp < 0 ) { + LOGD ( "get_cap_addr, mmap failed!\n" ); + } - return dp; - } + return dp; + } - return NULL; + return NULL; } inline unsigned char CTvin::get_mem_data ( char *dp, unsigned int addr ) { - return ( * ( dp + ( addr ^ 7 ) ) ); + return ( * ( dp + ( addr ^ 7 ) ) ); } int CTvin::get_frame_average ( enum adc_cal_type_e calType, struct adc_cal_s *mem_data ) { - unsigned int y = 0, cb = 0, cr = 0; - unsigned int r = 0, g = 0, b = 0; - unsigned long n; - unsigned int i = 0, j = 0; - char *dp = get_cap_addr ( calType ); - - if ( calType == CAL_YPBPR ) { - for ( j = COMP_WHITE_VS; j <= COMP_WHITE_VE; j++ ) { - for ( i = COMP_WHITE_HS; i <= COMP_WHITE_HE; i++ ) { - mem_data->g_y_max += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 ) ); - } - } - - mem_data->g_y_max /= COMP_WHITE_SIZE; - - for ( j = COMP_WHITE_VS; j <= COMP_WHITE_VE; j++ ) { - for ( i = COMP_WHITE_HS; i <= COMP_WHITE_HE; ) { - mem_data->cb_white += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 + CB422_POS ) ); - mem_data->cr_white += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 + CR422_POS ) ); - i = i + 2; - } - } - - mem_data->cb_white /= CB_WHITE_SIZE; - mem_data->cr_white /= CR_WHITE_SIZE; - - for ( j = COMP_RED_VS; j <= COMP_RED_VE; j++ ) { - for ( i = COMP_RED_HS; i <= COMP_RED_HE; ) { - mem_data->rcr_max += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 + CR422_POS ) ); - i = i + 2; - } - } - - mem_data->rcr_max /= COMP_RED_SIZE; - - for ( j = COMP_BLUE_VS; j <= COMP_BLUE_VE; j++ ) { - for ( i = COMP_BLUE_HS; i <= COMP_BLUE_HE; ) { - mem_data->bcb_max += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 + CB422_POS ) ); - i = i + 2; - } - } - - mem_data->bcb_max /= COMP_BLUE_SIZE; - - for ( j = COMP_BLACK_VS; j <= COMP_BLACK_VE; j++ ) { - for ( i = COMP_BLACK_HS; i <= COMP_BLACK_HE; i++ ) { - mem_data->g_y_min += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 ) ); - } - } - - mem_data->g_y_min /= COMP_BLACK_SIZE; - - for ( j = COMP_BLACK_VS; j <= COMP_BLACK_VE; j++ ) { - for ( i = COMP_BLACK_HS; i <= COMP_BLACK_HE; ) { - mem_data->cb_black += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 + CB422_POS ) ); - mem_data->cr_black += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 + CR422_POS ) ); - i = i + 2; - } - } - - mem_data->cb_black /= CB_BLACK_SIZE; - mem_data->cr_black /= CR_BLACK_SIZE; - - /* - for (j=COMP_BLACK_VS; j<=COMP_BLACK_VE; j++) { - for (i=COMP_BLACK_HS; i<=COMP_BLACK_HE;) { - //mem_data->cb_black += get_mem_data(dp, ((COMP_BUF_WID*j+i)*YCBCR422+CB422_POS)); - mem_data->cr_black += get_mem_data(dp, ((COMP_BUF_WID*j+i)*YCBCR422+CR422_POS)); - i = i+2; - } - } - mem_data->cr_black /= CR_BLACK_SIZE; - */ - for ( j = COMP_CYAN_VS; j <= COMP_CYAN_VE; j++ ) { - for ( i = COMP_CYAN_HS; i <= COMP_CYAN_HE; ) { - mem_data->rcr_min += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 + CR422_POS ) ); - i = i + 2; - } - } - - mem_data->rcr_min /= COMP_CYAN_SIZE; - - for ( j = COMP_YELLOW_VS; j <= COMP_YELLOW_VE; j++ ) { - for ( i = COMP_YELLOW_HS; i <= COMP_YELLOW_HE; ) { - mem_data->bcb_min += get_mem_data ( dp, ( COMP_BUF_WID * j + i ) * YCBCR422 + CB422_POS ); - i = i + 2; - } - } - - mem_data->bcb_min /= COMP_YELLOW_SIZE; - - } else if ( calType == CAL_VGA ) { - for ( j = VGA_WHITE_VS; j <= VGA_WHITE_VE; j++ ) { - for ( i = VGA_WHITE_HS; i <= VGA_WHITE_HE; i++ ) { + unsigned int y = 0, cb = 0, cr = 0; + unsigned int r = 0, g = 0, b = 0; + unsigned long n; + unsigned int i = 0, j = 0; + char *dp = get_cap_addr ( calType ); + + if ( calType == CAL_YPBPR ) { + for ( j = COMP_WHITE_VS; j <= COMP_WHITE_VE; j++ ) { + for ( i = COMP_WHITE_HS; i <= COMP_WHITE_HE; i++ ) { + mem_data->g_y_max += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 ) ); + } + } + + mem_data->g_y_max /= COMP_WHITE_SIZE; + + for ( j = COMP_WHITE_VS; j <= COMP_WHITE_VE; j++ ) { + for ( i = COMP_WHITE_HS; i <= COMP_WHITE_HE; ) { + mem_data->cb_white += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 + CB422_POS ) ); + mem_data->cr_white += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 + CR422_POS ) ); + i = i + 2; + } + } + + mem_data->cb_white /= CB_WHITE_SIZE; + mem_data->cr_white /= CR_WHITE_SIZE; + + for ( j = COMP_RED_VS; j <= COMP_RED_VE; j++ ) { + for ( i = COMP_RED_HS; i <= COMP_RED_HE; ) { + mem_data->rcr_max += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 + CR422_POS ) ); + i = i + 2; + } + } + + mem_data->rcr_max /= COMP_RED_SIZE; + + for ( j = COMP_BLUE_VS; j <= COMP_BLUE_VE; j++ ) { + for ( i = COMP_BLUE_HS; i <= COMP_BLUE_HE; ) { + mem_data->bcb_max += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 + CB422_POS ) ); + i = i + 2; + } + } + + mem_data->bcb_max /= COMP_BLUE_SIZE; + + for ( j = COMP_BLACK_VS; j <= COMP_BLACK_VE; j++ ) { + for ( i = COMP_BLACK_HS; i <= COMP_BLACK_HE; i++ ) { + mem_data->g_y_min += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 ) ); + } + } + + mem_data->g_y_min /= COMP_BLACK_SIZE; + + for ( j = COMP_BLACK_VS; j <= COMP_BLACK_VE; j++ ) { + for ( i = COMP_BLACK_HS; i <= COMP_BLACK_HE; ) { + mem_data->cb_black += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 + CB422_POS ) ); + mem_data->cr_black += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 + CR422_POS ) ); + i = i + 2; + } + } + + mem_data->cb_black /= CB_BLACK_SIZE; + mem_data->cr_black /= CR_BLACK_SIZE; + + /* + for (j=COMP_BLACK_VS; j<=COMP_BLACK_VE; j++) { + for (i=COMP_BLACK_HS; i<=COMP_BLACK_HE;) { + //mem_data->cb_black += get_mem_data(dp, ((COMP_BUF_WID*j+i)*YCBCR422+CB422_POS)); + mem_data->cr_black += get_mem_data(dp, ((COMP_BUF_WID*j+i)*YCBCR422+CR422_POS)); + i = i+2; + } + } + mem_data->cr_black /= CR_BLACK_SIZE; + */ + for ( j = COMP_CYAN_VS; j <= COMP_CYAN_VE; j++ ) { + for ( i = COMP_CYAN_HS; i <= COMP_CYAN_HE; ) { + mem_data->rcr_min += get_mem_data ( dp, ( ( COMP_BUF_WID * j + i ) * YCBCR422 + CR422_POS ) ); + i = i + 2; + } + } + + mem_data->rcr_min /= COMP_CYAN_SIZE; + + for ( j = COMP_YELLOW_VS; j <= COMP_YELLOW_VE; j++ ) { + for ( i = COMP_YELLOW_HS; i <= COMP_YELLOW_HE; ) { + mem_data->bcb_min += get_mem_data ( dp, ( COMP_BUF_WID * j + i ) * YCBCR422 + CB422_POS ); + i = i + 2; + } + } + + mem_data->bcb_min /= COMP_YELLOW_SIZE; + + } else if ( calType == CAL_VGA ) { + for ( j = VGA_WHITE_VS; j <= VGA_WHITE_VE; j++ ) { + for ( i = VGA_WHITE_HS; i <= VGA_WHITE_HE; i++ ) { #ifdef VGA_SOURCE_RGB444 - r = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * RGB444 + R444_POS ) ); - g = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * RGB444 + G444_POS ) ); - b = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * RGB444 + B444_POS ) ); + r = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * RGB444 + R444_POS ) ); + g = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * RGB444 + G444_POS ) ); + b = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * RGB444 + B444_POS ) ); #else - y = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * YCBCR444 + Y444_POS ) ); - cb = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * YCBCR444 + CB444_POS ) ); - cr = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * YCBCR444 + CR444_POS ) ); - matrix_convert_yuv709_to_rgb ( y, cb, cr, &r, &g, &b ); + y = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * YCBCR444 + Y444_POS ) ); + cb = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * YCBCR444 + CB444_POS ) ); + cr = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * YCBCR444 + CR444_POS ) ); + matrix_convert_yuv709_to_rgb ( y, cb, cr, &r, &g, &b ); #endif - mem_data->rcr_max = mem_data->rcr_max + r; - mem_data->g_y_max = mem_data->g_y_max + g; - mem_data->bcb_max = mem_data->bcb_max + b; - } - } - - mem_data->rcr_max = mem_data->rcr_max / VGA_WHITE_SIZE; - mem_data->g_y_max = mem_data->g_y_max / VGA_WHITE_SIZE; - mem_data->bcb_max = mem_data->bcb_max / VGA_WHITE_SIZE; - - for ( j = VGA_BLACK_VS; j <= VGA_BLACK_VE; j++ ) { - for ( i = VGA_BLACK_HS; i <= VGA_BLACK_HE; i++ ) { + mem_data->rcr_max = mem_data->rcr_max + r; + mem_data->g_y_max = mem_data->g_y_max + g; + mem_data->bcb_max = mem_data->bcb_max + b; + } + } + + mem_data->rcr_max = mem_data->rcr_max / VGA_WHITE_SIZE; + mem_data->g_y_max = mem_data->g_y_max / VGA_WHITE_SIZE; + mem_data->bcb_max = mem_data->bcb_max / VGA_WHITE_SIZE; + + for ( j = VGA_BLACK_VS; j <= VGA_BLACK_VE; j++ ) { + for ( i = VGA_BLACK_HS; i <= VGA_BLACK_HE; i++ ) { #ifdef VGA_SOURCE_RGB444 - r = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * RGB444 + R444_POS ) ); - g = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * RGB444 + G444_POS ) ); - b = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * RGB444 + B444_POS ) ); + r = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * RGB444 + R444_POS ) ); + g = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * RGB444 + G444_POS ) ); + b = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * RGB444 + B444_POS ) ); #else - y = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * YCBCR444 + Y444_POS ) ); - cb = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * YCBCR444 + CB444_POS ) ); - cr = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * YCBCR444 + CR444_POS ) ); - matrix_convert_yuv709_to_rgb ( y, cb, cr, &r, &g, &b ); + y = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * YCBCR444 + Y444_POS ) ); + cb = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * YCBCR444 + CB444_POS ) ); + cr = get_mem_data ( dp, ( ( VGA_BUF_WID * j + i ) * YCBCR444 + CR444_POS ) ); + matrix_convert_yuv709_to_rgb ( y, cb, cr, &r, &g, &b ); #endif - mem_data->rcr_min = mem_data->rcr_min + r; - mem_data->g_y_min = mem_data->g_y_min + g; - mem_data->bcb_min = mem_data->bcb_min + b; - } - } - - mem_data->rcr_min = mem_data->rcr_min / VGA_BLACK_SIZE; - mem_data->g_y_min = mem_data->g_y_min / VGA_BLACK_SIZE; - mem_data->bcb_min = mem_data->bcb_min / VGA_BLACK_SIZE; - - } else { //CVBS - for ( j = CVBS_WHITE_VS; j <= CVBS_WHITE_VE; j++ ) { - for ( i = CVBS_WHITE_HS; i <= CVBS_WHITE_HE; i++ ) { - mem_data->g_y_max += mem_data->g_y_max + get_mem_data ( dp, ( ( CVBS_BUF_WID * j + i ) * YCBCR422 ) ); - } - } - - mem_data->g_y_max /= COMP_WHITE_SIZE; - - for ( j = CVBS_BLACK_VS; j <= CVBS_BLACK_VE; j++ ) { - for ( i = CVBS_BLACK_HS; i <= CVBS_BLACK_HE; i++ ) { - mem_data->g_y_min += mem_data->g_y_min + get_mem_data ( dp, ( ( CVBS_BUF_WID * j + i ) * YCBCR422 ) ); - } - } - - mem_data->g_y_min /= CVBS_BLACK_SIZE; - } - - if ( calType == CAL_YPBPR ) { - munmap ( dp, COMP_CAP_SIZE ); - } else if ( calType == CAL_VGA ) { - munmap ( dp, VGA_CAP_SIZE ); - } else { - munmap ( dp, CVBS_CAP_SIZE ); - } - - if ( VDIN_DeviceIOCtl ( TVIN_IOC_START_DEC, &gTvinAFEParam ) < 0 ) { - LOGW ( "get_frame_average, get vdin signal info, error(%s),fd(%d).\n", strerror ( errno ), m_vdin_dev_fd ); - return NULL; - } else { - ; - } - - return 0; + mem_data->rcr_min = mem_data->rcr_min + r; + mem_data->g_y_min = mem_data->g_y_min + g; + mem_data->bcb_min = mem_data->bcb_min + b; + } + } + + mem_data->rcr_min = mem_data->rcr_min / VGA_BLACK_SIZE; + mem_data->g_y_min = mem_data->g_y_min / VGA_BLACK_SIZE; + mem_data->bcb_min = mem_data->bcb_min / VGA_BLACK_SIZE; + + } else { //CVBS + for ( j = CVBS_WHITE_VS; j <= CVBS_WHITE_VE; j++ ) { + for ( i = CVBS_WHITE_HS; i <= CVBS_WHITE_HE; i++ ) { + mem_data->g_y_max += mem_data->g_y_max + get_mem_data ( dp, ( ( CVBS_BUF_WID * j + i ) * YCBCR422 ) ); + } + } + + mem_data->g_y_max /= COMP_WHITE_SIZE; + + for ( j = CVBS_BLACK_VS; j <= CVBS_BLACK_VE; j++ ) { + for ( i = CVBS_BLACK_HS; i <= CVBS_BLACK_HE; i++ ) { + mem_data->g_y_min += mem_data->g_y_min + get_mem_data ( dp, ( ( CVBS_BUF_WID * j + i ) * YCBCR422 ) ); + } + } + + mem_data->g_y_min /= CVBS_BLACK_SIZE; + } + + if ( calType == CAL_YPBPR ) { + munmap ( dp, COMP_CAP_SIZE ); + } else if ( calType == CAL_VGA ) { + munmap ( dp, VGA_CAP_SIZE ); + } else { + munmap ( dp, CVBS_CAP_SIZE ); + } + + if ( VDIN_DeviceIOCtl ( TVIN_IOC_START_DEC, &gTvinAFEParam ) < 0 ) { + LOGW ( "get_frame_average, get vdin signal info, error(%s),fd(%d).\n", strerror ( errno ), m_vdin_dev_fd ); + return NULL; + } else { + ; + } + + return 0; } #define ADC_CAL_FRAME_QTY_ORDER 2 //NOTE: MUST >=2!! struct adc_cal_s CTvin::get_n_frame_average ( enum adc_cal_type_e calType ) { - struct adc_cal_s mem_data = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - unsigned int rcrmax[1 << ADC_CAL_FRAME_QTY_ORDER]; - unsigned int rcrmin[1 << ADC_CAL_FRAME_QTY_ORDER]; - unsigned int g_ymax[1 << ADC_CAL_FRAME_QTY_ORDER]; - unsigned int g_ymin[1 << ADC_CAL_FRAME_QTY_ORDER]; - unsigned int bcbmax[1 << ADC_CAL_FRAME_QTY_ORDER]; - unsigned int bcbmin[1 << ADC_CAL_FRAME_QTY_ORDER]; - unsigned int cbwhite[1 << ADC_CAL_FRAME_QTY_ORDER]; - unsigned int crwhite[1 << ADC_CAL_FRAME_QTY_ORDER]; - unsigned int cbblack[1 << ADC_CAL_FRAME_QTY_ORDER]; - unsigned int crblack[1 << ADC_CAL_FRAME_QTY_ORDER]; - unsigned int i = 0, j = 0; - - for ( i = 0; i < ( 1 << ADC_CAL_FRAME_QTY_ORDER ); i++ ) { - get_frame_average ( calType, &mem_data ); - rcrmax[i] = mem_data.rcr_max; - rcrmin[i] = mem_data.rcr_min; - g_ymax[i] = mem_data.g_y_max; - g_ymin[i] = mem_data.g_y_min; - bcbmax[i] = mem_data.bcb_max; - bcbmin[i] = mem_data.bcb_min; - cbwhite[i] = mem_data.cb_white; - crwhite[i] = mem_data.cr_white; - cbblack[i] = mem_data.cb_black; - crblack[i] = mem_data.cr_black; - } - - for ( i = 0; i < ( 1 << ADC_CAL_FRAME_QTY_ORDER ) - 1; i++ ) { - for ( j = 1; j < ( 1 << ADC_CAL_FRAME_QTY_ORDER ); j++ ) { - re_order ( & ( rcrmax[i] ), & ( rcrmax[j] ) ); - re_order ( & ( rcrmin[i] ), & ( rcrmin[j] ) ); - re_order ( & ( g_ymax[i] ), & ( g_ymax[j] ) ); - re_order ( & ( g_ymin[i] ), & ( g_ymin[j] ) ); - re_order ( & ( bcbmax[i] ), & ( bcbmax[j] ) ); - re_order ( & ( bcbmin[i] ), & ( bcbmin[j] ) ); - re_order ( & ( cbwhite[i] ), & ( cbwhite[j] ) ); - re_order ( & ( crwhite[i] ), & ( crwhite[j] ) ); - re_order ( & ( cbblack[i] ), & ( cbblack[j] ) ); - re_order ( & ( crblack[i] ), & ( crblack[j] ) ); - } - } - - - memset ( &mem_data, 0, sizeof ( mem_data ) ); - - for ( i = 0; i < ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 1 ) ); i++ ) { //(1<<(ADC_CAL_FRAME_QTY_ORDER-1)) - mem_data.rcr_max += rcrmax[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; - mem_data.rcr_min += rcrmin[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; - mem_data.g_y_max += g_ymax[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; - mem_data.g_y_min += g_ymin[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; - mem_data.bcb_max += bcbmax[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; - mem_data.bcb_min += bcbmin[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; - mem_data.cb_white += cbwhite[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; - mem_data.cr_white += crwhite[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; - mem_data.cb_black += cbblack[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; - mem_data.cr_black += crblack[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; - } - - - mem_data.rcr_max >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); - mem_data.rcr_min >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); - mem_data.g_y_max >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); - mem_data.g_y_min >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); - mem_data.bcb_max >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); - mem_data.bcb_min >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); - mem_data.cb_white >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); - mem_data.cr_white >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); - mem_data.cb_black >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); - mem_data.cr_black >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); - - return mem_data; + struct adc_cal_s mem_data = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + unsigned int rcrmax[1 << ADC_CAL_FRAME_QTY_ORDER]; + unsigned int rcrmin[1 << ADC_CAL_FRAME_QTY_ORDER]; + unsigned int g_ymax[1 << ADC_CAL_FRAME_QTY_ORDER]; + unsigned int g_ymin[1 << ADC_CAL_FRAME_QTY_ORDER]; + unsigned int bcbmax[1 << ADC_CAL_FRAME_QTY_ORDER]; + unsigned int bcbmin[1 << ADC_CAL_FRAME_QTY_ORDER]; + unsigned int cbwhite[1 << ADC_CAL_FRAME_QTY_ORDER]; + unsigned int crwhite[1 << ADC_CAL_FRAME_QTY_ORDER]; + unsigned int cbblack[1 << ADC_CAL_FRAME_QTY_ORDER]; + unsigned int crblack[1 << ADC_CAL_FRAME_QTY_ORDER]; + unsigned int i = 0, j = 0; + + for ( i = 0; i < ( 1 << ADC_CAL_FRAME_QTY_ORDER ); i++ ) { + get_frame_average ( calType, &mem_data ); + rcrmax[i] = mem_data.rcr_max; + rcrmin[i] = mem_data.rcr_min; + g_ymax[i] = mem_data.g_y_max; + g_ymin[i] = mem_data.g_y_min; + bcbmax[i] = mem_data.bcb_max; + bcbmin[i] = mem_data.bcb_min; + cbwhite[i] = mem_data.cb_white; + crwhite[i] = mem_data.cr_white; + cbblack[i] = mem_data.cb_black; + crblack[i] = mem_data.cr_black; + } + + for ( i = 0; i < ( 1 << ADC_CAL_FRAME_QTY_ORDER ) - 1; i++ ) { + for ( j = 1; j < ( 1 << ADC_CAL_FRAME_QTY_ORDER ); j++ ) { + re_order ( & ( rcrmax[i] ), & ( rcrmax[j] ) ); + re_order ( & ( rcrmin[i] ), & ( rcrmin[j] ) ); + re_order ( & ( g_ymax[i] ), & ( g_ymax[j] ) ); + re_order ( & ( g_ymin[i] ), & ( g_ymin[j] ) ); + re_order ( & ( bcbmax[i] ), & ( bcbmax[j] ) ); + re_order ( & ( bcbmin[i] ), & ( bcbmin[j] ) ); + re_order ( & ( cbwhite[i] ), & ( cbwhite[j] ) ); + re_order ( & ( crwhite[i] ), & ( crwhite[j] ) ); + re_order ( & ( cbblack[i] ), & ( cbblack[j] ) ); + re_order ( & ( crblack[i] ), & ( crblack[j] ) ); + } + } + + + memset ( &mem_data, 0, sizeof ( mem_data ) ); + + for ( i = 0; i < ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 1 ) ); i++ ) { //(1<<(ADC_CAL_FRAME_QTY_ORDER-1)) + mem_data.rcr_max += rcrmax[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; + mem_data.rcr_min += rcrmin[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; + mem_data.g_y_max += g_ymax[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; + mem_data.g_y_min += g_ymin[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; + mem_data.bcb_max += bcbmax[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; + mem_data.bcb_min += bcbmin[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; + mem_data.cb_white += cbwhite[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; + mem_data.cr_white += crwhite[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; + mem_data.cb_black += cbblack[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; + mem_data.cr_black += crblack[i + ( 1 << ( ADC_CAL_FRAME_QTY_ORDER - 2 ) )]; + } + + + mem_data.rcr_max >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); + mem_data.rcr_min >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); + mem_data.g_y_max >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); + mem_data.g_y_min >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); + mem_data.bcb_max >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); + mem_data.bcb_min >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); + mem_data.cb_white >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); + mem_data.cr_white >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); + mem_data.cb_black >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); + mem_data.cr_black >>= ( ADC_CAL_FRAME_QTY_ORDER - 1 ); + + return mem_data; } int CTvin::AFE_GetMemData ( int typeSel, struct adc_cal_s *mem_data ) { - int rt = -1; + int rt = -1; - if ( m_vdin_dev_fd < 0 || mem_data == NULL ) { - LOGW ( "AFE_GetMemData, didn't open vdin fd, return!\n" ); - return -1; - } + if ( m_vdin_dev_fd < 0 || mem_data == NULL ) { + LOGW ( "AFE_GetMemData, didn't open vdin fd, return!\n" ); + return -1; + } - memset ( &gTvinAFEParam, 0, sizeof ( gTvinAFEParam ) ); - memset ( &gTvinAFESignalInfo, 0, sizeof ( gTvinAFESignalInfo ) ); + memset ( &gTvinAFEParam, 0, sizeof ( gTvinAFEParam ) ); + memset ( &gTvinAFESignalInfo, 0, sizeof ( gTvinAFESignalInfo ) ); - if ( VDIN_DeviceIOCtl ( TVIN_IOC_G_PARM, &gTvinAFEParam ) < 0 ) { - LOGW ( "AFE_GetMemData, get vdin param, error(%s), fd(%d)!\n", strerror ( errno ), m_vdin_dev_fd ); - return -1; - } + if ( VDIN_DeviceIOCtl ( TVIN_IOC_G_PARM, &gTvinAFEParam ) < 0 ) { + LOGW ( "AFE_GetMemData, get vdin param, error(%s), fd(%d)!\n", strerror ( errno ), m_vdin_dev_fd ); + return -1; + } - gTvinAFEParam.flag = gTvinAFEParam.flag | TVIN_PARM_FLAG_CAP; + gTvinAFEParam.flag = gTvinAFEParam.flag | TVIN_PARM_FLAG_CAP; - if ( VDIN_DeviceIOCtl ( TVIN_IOC_S_PARM, &gTvinAFEParam ) < 0 ) { - LOGW ( "AFE_GetMemData, set vdin param error(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( VDIN_DeviceIOCtl ( TVIN_IOC_S_PARM, &gTvinAFEParam ) < 0 ) { + LOGW ( "AFE_GetMemData, set vdin param error(%s)!\n", strerror ( errno ) ); + return -1; + } - if ( typeSel == 0 ) { - get_frame_average ( CAL_YPBPR, mem_data ); - } else if ( typeSel == 1 ) { - get_frame_average ( CAL_VGA, mem_data ); - } else { - *mem_data = get_n_frame_average ( CAL_CVBS ); - } + if ( typeSel == 0 ) { + get_frame_average ( CAL_YPBPR, mem_data ); + } else if ( typeSel == 1 ) { + get_frame_average ( CAL_VGA, mem_data ); + } else { + *mem_data = get_n_frame_average ( CAL_CVBS ); + } - gTvinAFEParam.flag &= 0x11111110; + gTvinAFEParam.flag &= 0x11111110; - if ( VDIN_DeviceIOCtl ( TVIN_IOC_S_PARM, &gTvinAFEParam ) < 0 ) { - LOGW ( "AFE_GetMemData, set vdin param error(%s)\n", strerror ( errno ) ); - return -1; - } + if ( VDIN_DeviceIOCtl ( TVIN_IOC_S_PARM, &gTvinAFEParam ) < 0 ) { + LOGW ( "AFE_GetMemData, set vdin param error(%s)\n", strerror ( errno ) ); + return -1; + } - LOGD ( "AFE_GetMemData, MAX ======> :\n Y(White)->%d \n Cb(Blue)->%d \n Cr(Red)->%d\n", mem_data->g_y_max, mem_data->bcb_max, mem_data->rcr_max ); - LOGD ( "AFE_GetMemData, MIN ======>:\n Y(Black)->%d \n Cb(Yellow)->%d \n Cr(Cyan)->%d\n Cb(White) ->%d\n Cb(Black)->%d\n Cr(Black)->%d\n", mem_data->g_y_min, mem_data->bcb_min, mem_data->rcr_min, - mem_data->cb_white, mem_data->cb_black, mem_data->cr_black ); - return 0; + LOGD ( "AFE_GetMemData, MAX ======> :\n Y(White)->%d \n Cb(Blue)->%d \n Cr(Red)->%d\n", mem_data->g_y_max, mem_data->bcb_max, mem_data->rcr_max ); + LOGD ( "AFE_GetMemData, MIN ======>:\n Y(Black)->%d \n Cb(Yellow)->%d \n Cr(Cyan)->%d\n Cb(White) ->%d\n Cb(Black)->%d\n Cr(Black)->%d\n", mem_data->g_y_min, mem_data->bcb_min, mem_data->rcr_min, + mem_data->cb_white, mem_data->cb_black, mem_data->cr_black ); + return 0; } int CTvin::AFE_GetCVBSLockStatus ( enum tvafe_cvbs_video_e *cvbs_lock_status ) { - int rt = -1; + int rt = -1; - rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_CVBS_LOCK, cvbs_lock_status ); + rt = AFE_DeviceIOCtl ( TVIN_IOC_G_AFE_CVBS_LOCK, cvbs_lock_status ); - if ( rt < 0 ) { - LOGD ( "AFE_GetCVBSLockStatus, error: return(%d), error(%s)!\n", rt, strerror ( errno ) ); - } else { - LOGD ( "AFE_GetCVBSLockStatus, value=%d.\n", *cvbs_lock_status ); - } + if ( rt < 0 ) { + LOGD ( "AFE_GetCVBSLockStatus, error: return(%d), error(%s)!\n", rt, strerror ( errno ) ); + } else { + LOGD ( "AFE_GetCVBSLockStatus, value=%d.\n", *cvbs_lock_status ); + } - return *cvbs_lock_status; + return *cvbs_lock_status; } int CTvin::AFE_SetCVBSStd ( tvin_sig_fmt_t fmt ) { - int rt = -1; + int rt = -1; - LOGD ( "AFE_SetCVBSStd, sig_fmt = %d\n", fmt ); - rt = AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_CVBS_STD, &fmt ); + LOGD ( "AFE_SetCVBSStd, sig_fmt = %d\n", fmt ); + rt = AFE_DeviceIOCtl ( TVIN_IOC_S_AFE_CVBS_STD, &fmt ); - if ( rt < 0 ) { - LOGD ( "AFE_SetCVBSStd, error: return(%d), error(%s)!\n", rt, strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGD ( "AFE_SetCVBSStd, error: return(%d), error(%s)!\n", rt, strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::TvinApi_SetStartDropFrameCn ( int count ) { - int ret = -1; - char set_str[4]; + int ret = -1; + char set_str[4]; - memset ( set_str, 0, 4 ); - sprintf ( set_str, "%d", count ); - return SetFileAttrValue ( "/sys/module/di/parameters/start_frame_drop_count", set_str ); + memset ( set_str, 0, 4 ); + sprintf ( set_str, "%d", count ); + return SetFileAttrValue ( "/sys/module/di/parameters/start_frame_drop_count", set_str ); } int CTvin::TvinApi_SetVdinHVScale ( int vdinx, int hscale, int vscale ) { - int ret = -1; - char set_str[32]; + int ret = -1; + char set_str[32]; - memset ( set_str, 0, 32 ); - sprintf ( set_str, "%s %d %d", "hvscaler", hscale, vscale ); + memset ( set_str, 0, 32 ); + sprintf ( set_str, "%s %d %d", "hvscaler", hscale, vscale ); - if ( vdinx == 0 ) { - ret = SetFileAttrValue ( "/sys/class/vdin/vdin0/attr", set_str ); - } else { - ret = SetFileAttrValue ( "/sys/class/vdin/vdin1/attr", set_str ); - } + if ( vdinx == 0 ) { + ret = SetFileAttrValue ( "/sys/class/vdin/vdin0/attr", set_str ); + } else { + ret = SetFileAttrValue ( "/sys/class/vdin/vdin1/attr", set_str ); + } - return ret; + return ret; } int CTvin::TvinApi_SetCompPhase ( am_phase_t &am_phase ) { - int ret = -1, fd = -1; - unsigned int i = 0; - int idx = 0, len = 0; - char str1[200], str2[100]; + int ret = -1, fd = -1; + unsigned int i = 0; + int idx = 0, len = 0; + char str1[200], str2[100]; - LOGD ( "enter,TvinApi_SetCompPhase" ); + LOGD ( "enter,TvinApi_SetCompPhase" ); - fd = open ( "/sys/module/tvin_afe/parameters/comp_phase", O_RDWR ); + fd = open ( "/sys/module/tvin_afe/parameters/comp_phase", O_RDWR ); - if ( fd < 0 ) { - LOGW ( "Open vdin_comp_phase_op_mutex error(%s)!!\n", strerror ( errno ) ); + if ( fd < 0 ) { + LOGW ( "Open vdin_comp_phase_op_mutex error(%s)!!\n", strerror ( errno ) ); - return -1; - } + return -1; + } - for ( i = 0; i < am_phase.length; i++ ) { - sprintf ( &str1[idx], "%d,", am_phase.phase[i] ); - sprintf ( str2, "%d,", am_phase.phase[i] ); - int len = strlen ( str2 ); - idx = idx + len; - } + for ( i = 0; i < am_phase.length; i++ ) { + sprintf ( &str1[idx], "%d,", am_phase.phase[i] ); + sprintf ( str2, "%d,", am_phase.phase[i] ); + int len = strlen ( str2 ); + idx = idx + len; + } - LOGD ( "##########str1 = %s\n", str1 ); + LOGD ( "##########str1 = %s\n", str1 ); - ret = write ( fd, str1, strlen ( str1 ) ); + ret = write ( fd, str1, strlen ( str1 ) ); - if ( ret < 0 ) { - LOGD ( "Write vdin_comp_phase_op_mutex error(%s)!!\n", strerror ( errno ) ); - } + if ( ret < 0 ) { + LOGD ( "Write vdin_comp_phase_op_mutex error(%s)!!\n", strerror ( errno ) ); + } - LOGD ( "write ok!!!" ); - close ( fd ); - fd = -1; + LOGD ( "write ok!!!" ); + close ( fd ); + fd = -1; - return ret; + return ret; } tvin_trans_fmt CTvin::TvinApi_Get3DDectMode() { - int fd; - int ret; - char det_3d[10]; - int det_3dmode = 8; - //LOGW("det_3dmode %d\n", det_3dmode); + int fd; + int ret; + char det_3d[10]; + int det_3dmode = 8; + //LOGW("det_3dmode %d\n", det_3dmode); - fd = open ( "/sys/module/di/parameters/det3d_mode", O_RDWR ); + fd = open ( "/sys/module/di/parameters/det3d_mode", O_RDWR ); - if ( fd < 0 ) { - LOGW ( "/sys/module/di/parameters/det3d_mode error(%s)!!\n", strerror ( errno ) ); + if ( fd < 0 ) { + LOGW ( "/sys/module/di/parameters/det3d_mode error(%s)!!\n", strerror ( errno ) ); - return TVIN_TFMT_3D_MAX; - } + return TVIN_TFMT_3D_MAX; + } - ret = read ( fd, det_3d, 10 ); + ret = read ( fd, det_3d, 10 ); - if ( ret < 0 ) { - LOGW ( "/sys/module/di/parameters/det3d_mode error(%s)!!\n", strerror ( errno ) ); - } + if ( ret < 0 ) { + LOGW ( "/sys/module/di/parameters/det3d_mode error(%s)!!\n", strerror ( errno ) ); + } - det_3dmode = atoi ( det_3d ); - close ( fd ); - fd = -1; + det_3dmode = atoi ( det_3d ); + close ( fd ); + fd = -1; - return (tvin_trans_fmt)det_3dmode; + return (tvin_trans_fmt)det_3dmode; } int CTvin::TvinApi_SetCompPhaseEnable ( int enable ) { - int ret = -1; + int ret = -1; - if ( enable == 1 ) { - ret = SetFileAttrValue ( "/sys/module/tvin_afe/parameters/enable_dphase", "Y" ); - LOGD ( "%s, enable TvinApi_SetCompPhase.", CFG_SECTION_TV ); - } + if ( enable == 1 ) { + ret = SetFileAttrValue ( "/sys/module/tvin_afe/parameters/enable_dphase", "Y" ); + LOGD ( "%s, enable TvinApi_SetCompPhase.", CFG_SECTION_TV ); + } - return ret; + return ret; } int CTvin::VDIN_GetPortConnect ( int port ) { - int status = 0; + int status = 0; - if ( VDIN_DeviceIOCtl ( TVIN_IOC_CALLMASTER_SET, &port ) < 0 ) { - LOGW ( "TVIN_IOC_CALLMASTER_SET error(%s) port %d\n", strerror ( errno ), port ); - return 0; - } + if ( VDIN_DeviceIOCtl ( TVIN_IOC_CALLMASTER_SET, &port ) < 0 ) { + LOGW ( "TVIN_IOC_CALLMASTER_SET error(%s) port %d\n", strerror ( errno ), port ); + return 0; + } - if ( VDIN_DeviceIOCtl ( TVIN_IOC_CALLMASTER_GET, &status ) < 0 ) { - LOGW ( "TVIN_IOC_CALLMASTER_GET error(%s)\n", strerror ( errno ) ); - return 0; - } + if ( VDIN_DeviceIOCtl ( TVIN_IOC_CALLMASTER_GET, &status ) < 0 ) { + LOGW ( "TVIN_IOC_CALLMASTER_GET error(%s)\n", strerror ( errno ) ); + return 0; + } - //LOGD("%s, port:%x,status:%d", CFG_SECTION_TV,port,status); + //LOGD("%s, port:%x,status:%d", CFG_SECTION_TV,port,status); - return status; + return status; } int CTvin::VDIN_OpenHDMIPinMuxOn ( bool flag ) { - FILE *fp = NULL; - int status = 1; + FILE *fp = NULL; + int status = 1; - fp = fopen ( "/sys/class/hdmirx/hdmirx0/debug", "w" ); + fp = fopen ( "/sys/class/hdmirx/hdmirx0/debug", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/class/hdmirx/hdmirx0/debug(%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/class/hdmirx/hdmirx0/debug(%s)!\n", strerror ( errno ) ); + return -1; + } - if ( flag ) { - fprintf ( fp, "%s", "pinmux_on" ); - } else { - fprintf ( fp, "%s", "pinmux_off" ); + if ( flag ) { + fprintf ( fp, "%s", "pinmux_on" ); + } else { + fprintf ( fp, "%s", "pinmux_off" ); - } + } - fclose ( fp ); - fp = NULL; - return status; + fclose ( fp ); + fp = NULL; + return status; } int CTvin::VDIN_GetHdmiHdcpKeyKsvInfo(struct _hdcp_ksv *msg) { - int m_ksv_dev_fd = -1; + int m_ksv_dev_fd = -1; - if (msg == NULL) { - LOGE("%s, msg is NULL\n", __FUNCTION__); - } + if (msg == NULL) { + LOGE("%s, msg is NULL\n", __FUNCTION__); + } - //PrintMessage(__FUNCTION__, 0, msg); + //PrintMessage(__FUNCTION__, 0, msg); - m_ksv_dev_fd = open(HDMIRX_KSV_PATH, O_RDWR); - if (m_ksv_dev_fd < 0) { - LOGE("%s, Open file %s error: (%s)!\n", __FUNCTION__, HDMIRX_KSV_PATH, strerror ( errno )); - return -1; - } - LOGD("# call ioctl with HDMI_IOC_HDCP_SENT_KSV #"); - ioctl(m_ksv_dev_fd, HDMI_IOC_HDCP_KSV, msg); + m_ksv_dev_fd = open(HDMIRX_KSV_PATH, O_RDWR); + if (m_ksv_dev_fd < 0) { + LOGE("%s, Open file %s error: (%s)!\n", __FUNCTION__, HDMIRX_KSV_PATH, strerror ( errno )); + return -1; + } + LOGD("# call ioctl with HDMI_IOC_HDCP_SENT_KSV #"); + ioctl(m_ksv_dev_fd, HDMI_IOC_HDCP_KSV, msg); - close(m_ksv_dev_fd); - m_ksv_dev_fd = -1; + close(m_ksv_dev_fd); + m_ksv_dev_fd = -1; - LOGD("msg->bksv0 is %x, msg->bksv1 is %x", msg->bksv0, msg->bksv1); + LOGD("msg->bksv0 is %x, msg->bksv1 is %x", msg->bksv0, msg->bksv1); - return 0; + return 0; } int CTvin::get_hdmi_ksv_info(int source_input, int data_buf[]) { - if (source_input != SOURCE_HDMI1 && source_input != SOURCE_HDMI2 && source_input != SOURCE_HDMI3) { - return -1; - } + if (source_input != SOURCE_HDMI1 && source_input != SOURCE_HDMI2 && source_input != SOURCE_HDMI3) { + return -1; + } - struct _hdcp_ksv msg; - int ret = -1; - ret = VDIN_GetHdmiHdcpKeyKsvInfo(&msg); - memset((void *)data_buf, 0, 2); - data_buf[0] = msg.bksv0; - data_buf[1] = msg.bksv1; - return ret; + struct _hdcp_ksv msg; + int ret = -1; + ret = VDIN_GetHdmiHdcpKeyKsvInfo(&msg); + memset((void *)data_buf, 0, 2); + data_buf[0] = msg.bksv0; + data_buf[1] = msg.bksv1; + return ret; } int CTvin::TVAFE_EnablePlugInDetect ( bool flag ) { - FILE *fp = NULL; - int status = 1; + FILE *fp = NULL; + int status = 1; - fp = fopen ( "/sys/class/tvafe/tvafe0/debug", "w" ); + fp = fopen ( "/sys/class/tvafe/tvafe0/debug", "w" ); - if ( fp == NULL ) { - LOGW ( "Open /sys/class/tvafe/tvafe0/debug (%s)!\n", strerror ( errno ) ); - return -1; - } + if ( fp == NULL ) { + LOGW ( "Open /sys/class/tvafe/tvafe0/debug (%s)!\n", strerror ( errno ) ); + return -1; + } - if ( flag ) { - fprintf ( fp, "%s", "tvafe_enable" ); - } else { - fprintf ( fp, "%s", "tvafe_down" ); + if ( flag ) { + fprintf ( fp, "%s", "tvafe_enable" ); + } else { + fprintf ( fp, "%s", "tvafe_down" ); - } + } - fclose ( fp ); - fp = NULL; - return status; + fclose ( fp ); + fp = NULL; + return status; } int CTvin::TvinApi_GetHDMIAudioStatus ( void ) { - int fd; - int val = 0; - char bcmd[16]; - fd = open ( "/sys/module/tvin_hdmirx/parameters/auds_rcv_sts", O_RDONLY ); + int fd; + int val = 0; + char bcmd[16]; + fd = open ( "/sys/module/tvin_hdmirx/parameters/auds_rcv_sts", O_RDONLY ); - if ( fd >= 0 ) { - read ( fd, bcmd, sizeof ( bcmd ) ); - val = strtol ( bcmd, NULL, 10 ); - close ( fd ); - } else { - LOGE ( "open /sys/module/tvin_hdmirx/parameters/auds_rcv_sts ERROR(%s)!!\n", strerror ( errno ) ); - return -1; - } + if ( fd >= 0 ) { + read ( fd, bcmd, sizeof ( bcmd ) ); + val = strtol ( bcmd, NULL, 10 ); + close ( fd ); + } else { + LOGE ( "open /sys/module/tvin_hdmirx/parameters/auds_rcv_sts ERROR(%s)!!\n", strerror ( errno ) ); + return -1; + } - return val; + return val; } int CTvin::TvinApi_LoadPLLValues ( am_regs_t regs ) { - int rt = AFE_DeviceIOCtl ( TVIN_IOC_LOAD_REG, ®s ); + int rt = AFE_DeviceIOCtl ( TVIN_IOC_LOAD_REG, ®s ); - if ( rt < 0 ) { - LOGE ( "TvinApi_LoadPLLValues, error(%s)!\n", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGE ( "TvinApi_LoadPLLValues, error(%s)!\n", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::TvinApi_LoadCVD2Values ( am_regs_t regs ) { - int rt = AFE_DeviceIOCtl ( TVIN_IOC_LOAD_REG, ®s ); + int rt = AFE_DeviceIOCtl ( TVIN_IOC_LOAD_REG, ®s ); - if ( rt < 0 ) { - LOGE ( "TvinApi_LoadCVD2Values, error(%s)!\n", strerror ( errno ) ); - } + if ( rt < 0 ) { + LOGE ( "TvinApi_LoadCVD2Values, error(%s)!\n", strerror ( errno ) ); + } - return rt; + return rt; } int CTvin::TvinApi_GetFbSize ( unsigned int *fb_width, unsigned int *fb_height ) { - int fbfd = 0; - struct fb_var_screeninfo vinfo; - struct fb_fix_screeninfo finfo; - int xres = 0, yres = 0, bits_per_pixel = 0; + int fbfd = 0; + struct fb_var_screeninfo vinfo; + struct fb_fix_screeninfo finfo; + int xres = 0, yres = 0, bits_per_pixel = 0; - fbfd = open ( "/dev/graphics/fb0", O_RDWR ); + fbfd = open ( "/dev/graphics/fb0", O_RDWR ); - if ( !fbfd ) { - return -1; - } + if ( !fbfd ) { + return -1; + } - if ( ioctl ( fbfd, FBIOGET_FSCREENINFO, &finfo ) ) { - goto fail_close_fb; - } + if ( ioctl ( fbfd, FBIOGET_FSCREENINFO, &finfo ) ) { + goto fail_close_fb; + } - if ( ioctl ( fbfd, FBIOGET_VSCREENINFO, &vinfo ) ) { - goto fail_close_fb; - } + if ( ioctl ( fbfd, FBIOGET_VSCREENINFO, &vinfo ) ) { + goto fail_close_fb; + } - *fb_width = vinfo.xres; - *fb_height = vinfo.yres; + *fb_width = vinfo.xres; + *fb_height = vinfo.yres; - return 1; + return 1; fail_close_fb: - close ( fbfd );; - return -1; + close ( fbfd );; + return -1; } tv_source_input_type_t CTvin::Tvin_SourceInputToSourceInputType ( tv_source_input_t source_input ) { - if (source_input == SOURCE_TV) { - return SOURCE_TYPE_TV; - } else if (source_input == SOURCE_AV1 || source_input == SOURCE_AV2) { - return SOURCE_TYPE_AV; - } else if (source_input == SOURCE_YPBPR1 || source_input == SOURCE_YPBPR2) { - return SOURCE_TYPE_COMPONENT; - } else if (source_input == SOURCE_VGA) { - return SOURCE_TYPE_VGA; - } else if (source_input == SOURCE_HDMI1 || source_input == SOURCE_HDMI2 || source_input == SOURCE_HDMI3) { - return SOURCE_TYPE_HDMI; - } else if (source_input == SOURCE_DTV) { - return SOURCE_TYPE_DTV; - } else if (source_input == SOURCE_IPTV) { - return SOURCE_TYPE_IPTV; - } else if (source_input == SOURCE_MPEG) { - return SOURCE_TYPE_MPEG; - } - - return SOURCE_TYPE_MPEG; + if (source_input == SOURCE_TV) { + return SOURCE_TYPE_TV; + } else if (source_input == SOURCE_AV1 || source_input == SOURCE_AV2) { + return SOURCE_TYPE_AV; + } else if (source_input == SOURCE_YPBPR1 || source_input == SOURCE_YPBPR2) { + return SOURCE_TYPE_COMPONENT; + } else if (source_input == SOURCE_VGA) { + return SOURCE_TYPE_VGA; + } else if (source_input == SOURCE_HDMI1 || source_input == SOURCE_HDMI2 || source_input == SOURCE_HDMI3) { + return SOURCE_TYPE_HDMI; + } else if (source_input == SOURCE_DTV) { + return SOURCE_TYPE_DTV; + } else if (source_input == SOURCE_IPTV) { + return SOURCE_TYPE_IPTV; + } else if (source_input == SOURCE_MPEG) { + return SOURCE_TYPE_MPEG; + } + + return SOURCE_TYPE_MPEG; } tv_source_input_type_t CTvin::Tvin_SourcePortToSourceInputType ( tvin_port_t source_port ) { - tv_source_input_t source_input = Tvin_PortToSourceInput(source_port); - return Tvin_SourceInputToSourceInputType(source_input); + tv_source_input_t source_input = Tvin_PortToSourceInput(source_port); + return Tvin_SourceInputToSourceInputType(source_input); } tvin_port_t CTvin::Tvin_GetSourcePortBySourceType ( tv_source_input_type_t source_type ) { - tvin_port_t source_port; - - switch ( source_type ) { - case SOURCE_TYPE_TV: - source_port = Tvin_GetSourcePortBySourceInput(SOURCE_TV); - break; - case SOURCE_TYPE_AV: - source_port = Tvin_GetSourcePortBySourceInput(SOURCE_AV1); - break; - case SOURCE_TYPE_COMPONENT: - source_port = Tvin_GetSourcePortBySourceInput(SOURCE_YPBPR1); - break; - case SOURCE_TYPE_VGA: - source_port = Tvin_GetSourcePortBySourceInput(SOURCE_VGA); - break; - case SOURCE_TYPE_HDMI: - source_port = TVIN_PORT_HDMI0; - break; - case SOURCE_TYPE_IPTV: - source_port = Tvin_GetSourcePortBySourceInput(SOURCE_IPTV); - break; - case SOURCE_TYPE_DTV: - source_port = Tvin_GetSourcePortBySourceInput(SOURCE_DTV); - break; - case SOURCE_TYPE_MPEG: - default: - source_port = Tvin_GetSourcePortBySourceInput(SOURCE_MPEG); - break; - } - - return source_port; + tvin_port_t source_port; + + switch ( source_type ) { + case SOURCE_TYPE_TV: + source_port = Tvin_GetSourcePortBySourceInput(SOURCE_TV); + break; + case SOURCE_TYPE_AV: + source_port = Tvin_GetSourcePortBySourceInput(SOURCE_AV1); + break; + case SOURCE_TYPE_COMPONENT: + source_port = Tvin_GetSourcePortBySourceInput(SOURCE_YPBPR1); + break; + case SOURCE_TYPE_VGA: + source_port = Tvin_GetSourcePortBySourceInput(SOURCE_VGA); + break; + case SOURCE_TYPE_HDMI: + source_port = TVIN_PORT_HDMI0; + break; + case SOURCE_TYPE_IPTV: + source_port = Tvin_GetSourcePortBySourceInput(SOURCE_IPTV); + break; + case SOURCE_TYPE_DTV: + source_port = Tvin_GetSourcePortBySourceInput(SOURCE_DTV); + break; + case SOURCE_TYPE_MPEG: + default: + source_port = Tvin_GetSourcePortBySourceInput(SOURCE_MPEG); + break; + } + + return source_port; } tvin_port_t CTvin::Tvin_GetSourcePortBySourceInput ( tv_source_input_t source_input ) { - tvin_port_t source_port = TVIN_PORT_NULL; + tvin_port_t source_port = TVIN_PORT_NULL; - if ( source_input < SOURCE_TV || source_input >= SOURCE_MAX ) { - source_port = TVIN_PORT_NULL; - } else { - source_port = ( tvin_port_t ) mSourceInputToPortMap[ ( int ) source_input]; - } + if ( source_input < SOURCE_TV || source_input >= SOURCE_MAX ) { + source_port = TVIN_PORT_NULL; + } else { + source_port = ( tvin_port_t ) mSourceInputToPortMap[ ( int ) source_input]; + } - return source_port; + return source_port; } tv_source_input_t CTvin::Tvin_PortToSourceInput ( tvin_port_t port ) { - int i; + int i; - for ( i = SOURCE_TV; i < SOURCE_MAX; i++ ) { - if ( mSourceInputToPortMap[i] == port ) { - break; - } - } + for ( i = SOURCE_TV; i < SOURCE_MAX; i++ ) { + if ( mSourceInputToPortMap[i] == port ) { + break; + } + } - if ( i == SOURCE_MAX ) { - return SOURCE_MAX; - } else { - return tv_source_input_t ( i ); - } + if ( i == SOURCE_MAX ) { + return SOURCE_MAX; + } else { + return tv_source_input_t ( i ); + } } unsigned int CTvin::Tvin_TransPortStringToValue(const char *port_str) { - if (strcasecmp(port_str, "TVIN_PORT_CVBS0") == 0) { - return TVIN_PORT_CVBS0; - } else if (strcasecmp(port_str, "TVIN_PORT_CVBS1") == 0) { - return TVIN_PORT_CVBS1; - } else if (strcasecmp(port_str, "TVIN_PORT_CVBS2") == 0) { - return TVIN_PORT_CVBS2; - } else if (strcasecmp(port_str, "TVIN_PORT_CVBS3") == 0) { - return TVIN_PORT_CVBS3; - } else if (strcasecmp(port_str, "TVIN_PORT_COMP0") == 0) { - return TVIN_PORT_COMP0; - } else if (strcasecmp(port_str, "TVIN_PORT_COMP1") == 0) { - return TVIN_PORT_COMP1; - } else if (strcasecmp(port_str, "TVIN_PORT_VGA0") == 0) { - return TVIN_PORT_VGA0; - } else if (strcasecmp(port_str, "TVIN_PORT_HDMI0") == 0) { - return TVIN_PORT_HDMI0; - } else if (strcasecmp(port_str, "TVIN_PORT_HDMI1") == 0) { - return TVIN_PORT_HDMI1; - } else if (strcasecmp(port_str, "TVIN_PORT_HDMI2") == 0) { - return TVIN_PORT_HDMI2; - } else if (strcasecmp(port_str, "TVIN_PORT_HDMI3") == 0) { - return TVIN_PORT_HDMI3; - } - - return TVIN_PORT_MPEG0; + if (strcasecmp(port_str, "TVIN_PORT_CVBS0") == 0) { + return TVIN_PORT_CVBS0; + } else if (strcasecmp(port_str, "TVIN_PORT_CVBS1") == 0) { + return TVIN_PORT_CVBS1; + } else if (strcasecmp(port_str, "TVIN_PORT_CVBS2") == 0) { + return TVIN_PORT_CVBS2; + } else if (strcasecmp(port_str, "TVIN_PORT_CVBS3") == 0) { + return TVIN_PORT_CVBS3; + } else if (strcasecmp(port_str, "TVIN_PORT_COMP0") == 0) { + return TVIN_PORT_COMP0; + } else if (strcasecmp(port_str, "TVIN_PORT_COMP1") == 0) { + return TVIN_PORT_COMP1; + } else if (strcasecmp(port_str, "TVIN_PORT_VGA0") == 0) { + return TVIN_PORT_VGA0; + } else if (strcasecmp(port_str, "TVIN_PORT_HDMI0") == 0) { + return TVIN_PORT_HDMI0; + } else if (strcasecmp(port_str, "TVIN_PORT_HDMI1") == 0) { + return TVIN_PORT_HDMI1; + } else if (strcasecmp(port_str, "TVIN_PORT_HDMI2") == 0) { + return TVIN_PORT_HDMI2; + } else if (strcasecmp(port_str, "TVIN_PORT_HDMI3") == 0) { + return TVIN_PORT_HDMI3; + } + + return TVIN_PORT_MPEG0; } void CTvin::Tvin_LoadSourceInputToPortMap() { - const char *config_value = NULL; + const char *config_value = NULL; - config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.atv", "TVIN_PORT_CVBS3"); - mSourceInputToPortMap[SOURCE_TV] = Tvin_TransPortStringToValue(config_value); + config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.atv", "TVIN_PORT_CVBS3"); + mSourceInputToPortMap[SOURCE_TV] = Tvin_TransPortStringToValue(config_value); - config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.av1", "TVIN_PORT_CVBS1"); - mSourceInputToPortMap[SOURCE_AV1] = Tvin_TransPortStringToValue(config_value); + config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.av1", "TVIN_PORT_CVBS1"); + mSourceInputToPortMap[SOURCE_AV1] = Tvin_TransPortStringToValue(config_value); - config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.av2", "TVIN_PORT_CVBS2"); - mSourceInputToPortMap[SOURCE_AV2] = Tvin_TransPortStringToValue(config_value); + config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.av2", "TVIN_PORT_CVBS2"); + mSourceInputToPortMap[SOURCE_AV2] = Tvin_TransPortStringToValue(config_value); - config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.ypbpr1", "TVIN_PORT_COMP0"); - mSourceInputToPortMap[SOURCE_YPBPR1] = Tvin_TransPortStringToValue(config_value); + config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.ypbpr1", "TVIN_PORT_COMP0"); + mSourceInputToPortMap[SOURCE_YPBPR1] = Tvin_TransPortStringToValue(config_value); - config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.ypbpr2", "TVIN_PORT_COMP1"); - mSourceInputToPortMap[SOURCE_YPBPR2] = Tvin_TransPortStringToValue(config_value); + config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.ypbpr2", "TVIN_PORT_COMP1"); + mSourceInputToPortMap[SOURCE_YPBPR2] = Tvin_TransPortStringToValue(config_value); - config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.hdmi1", "TVIN_PORT_HDMI0"); - mSourceInputToPortMap[SOURCE_HDMI1] = Tvin_TransPortStringToValue(config_value); + config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.hdmi1", "TVIN_PORT_HDMI0"); + mSourceInputToPortMap[SOURCE_HDMI1] = Tvin_TransPortStringToValue(config_value); - config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.hdmi2", "TVIN_PORT_HDMI2"); - mSourceInputToPortMap[SOURCE_HDMI2] = Tvin_TransPortStringToValue(config_value); + config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.hdmi2", "TVIN_PORT_HDMI2"); + mSourceInputToPortMap[SOURCE_HDMI2] = Tvin_TransPortStringToValue(config_value); - config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.hdmi3", "TVIN_PORT_HDMI1"); - mSourceInputToPortMap[SOURCE_HDMI3] = Tvin_TransPortStringToValue(config_value); + config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.hdmi3", "TVIN_PORT_HDMI1"); + mSourceInputToPortMap[SOURCE_HDMI3] = Tvin_TransPortStringToValue(config_value); - config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.vga", "TVIN_PORT_VGA0"); - mSourceInputToPortMap[SOURCE_VGA] = Tvin_TransPortStringToValue(config_value); + config_value = config_get_str(CFG_SECTION_SRC_INPUT, "ro.tv.tvinchannel.vga", "TVIN_PORT_VGA0"); + mSourceInputToPortMap[SOURCE_VGA] = Tvin_TransPortStringToValue(config_value); - mSourceInputToPortMap[SOURCE_MPEG] = TVIN_PORT_MPEG0; - mSourceInputToPortMap[SOURCE_DTV] = TVIN_PORT_DTV; - mSourceInputToPortMap[SOURCE_IPTV] = TVIN_PORT_BT656; + mSourceInputToPortMap[SOURCE_MPEG] = TVIN_PORT_MPEG0; + mSourceInputToPortMap[SOURCE_DTV] = TVIN_PORT_DTV; + mSourceInputToPortMap[SOURCE_IPTV] = TVIN_PORT_BT656; - return; + return; } int CTvin::Tvin_GetSourcePortByCECPhysicalAddress(int physical_addr) { - if (physical_addr == 0x1000) { - return TVIN_PORT_HDMI0; - } else if (physical_addr == 0x2000) { - return TVIN_PORT_HDMI1; - } else if (physical_addr == 0x3000) { - return TVIN_PORT_HDMI2; - } + if (physical_addr == 0x1000) { + return TVIN_PORT_HDMI0; + } else if (physical_addr == 0x2000) { + return TVIN_PORT_HDMI1; + } else if (physical_addr == 0x3000) { + return TVIN_PORT_HDMI2; + } - return TVIN_PORT_MAX; + return TVIN_PORT_MAX; } tv_audio_channel_t CTvin::Tvin_GetInputSourceAudioChannelIndex ( tv_source_input_t source_input ) { - int aud_chan = TV_AUDIO_LINE_IN_0; - const char *config_value = NULL; - - if ( source_input == SOURCE_TV ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.atv", "2"); - } else if ( source_input == SOURCE_AV1 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.av1", "1"); - } else if ( source_input == SOURCE_AV2 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.av2", "3"); - } else if ( source_input == SOURCE_YPBPR1 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.comp1", "0"); - } else if ( source_input == SOURCE_YPBPR2 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.comp2", "0"); - } else if ( source_input == SOURCE_HDMI1 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.hdmi1", "0"); - } else if ( source_input == SOURCE_HDMI2 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.hdmi2", "0"); - } else if ( source_input == SOURCE_HDMI3 ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.hdmi3", "0"); - } else if ( source_input == SOURCE_VGA ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.vga", "0"); - } else if ( source_input == SOURCE_MPEG ) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.mpeg", "0"); - } - - if (config_value != NULL) { - aud_chan = strtol (config_value, NULL, 10); - } - - return ( tv_audio_channel_t ) aud_chan; + int aud_chan = TV_AUDIO_LINE_IN_0; + const char *config_value = NULL; + + if ( source_input == SOURCE_TV ) { + config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.atv", "2"); + } else if ( source_input == SOURCE_AV1 ) { + config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.av1", "1"); + } else if ( source_input == SOURCE_AV2 ) { + config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.av2", "3"); + } else if ( source_input == SOURCE_YPBPR1 ) { + config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.comp1", "0"); + } else if ( source_input == SOURCE_YPBPR2 ) { + config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.comp2", "0"); + } else if ( source_input == SOURCE_HDMI1 ) { + config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.hdmi1", "0"); + } else if ( source_input == SOURCE_HDMI2 ) { + config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.hdmi2", "0"); + } else if ( source_input == SOURCE_HDMI3 ) { + config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.hdmi3", "0"); + } else if ( source_input == SOURCE_VGA ) { + config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.vga", "0"); + } else if ( source_input == SOURCE_MPEG ) { + config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.chan.mpeg", "0"); + } + + if (config_value != NULL) { + aud_chan = strtol (config_value, NULL, 10); + } + + return ( tv_audio_channel_t ) aud_chan; } tv_audio_in_source_type_t CTvin::Tvin_GetAudioInSourceType ( tv_source_input_t source_input ) { - const char *config_value = NULL; + const char *config_value = NULL; - if (source_input == SOURCE_TV) { - config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.insource.atv", "TV_AUDIO_IN_SOURCE_TYPE_LINEIN"); - if (strcasecmp(config_value, "TV_AUDIO_IN_SOURCE_TYPE_ATV") == 0) { - return TV_AUDIO_IN_SOURCE_TYPE_ATV; - } - return TV_AUDIO_IN_SOURCE_TYPE_LINEIN; - } else if (source_input == SOURCE_AV1 || source_input == SOURCE_AV2) { - return TV_AUDIO_IN_SOURCE_TYPE_LINEIN; - } else if (source_input == SOURCE_YPBPR1 || source_input == SOURCE_YPBPR2 || source_input == SOURCE_VGA) { - return TV_AUDIO_IN_SOURCE_TYPE_LINEIN; - } else if (source_input == SOURCE_HDMI1 || source_input == SOURCE_HDMI2 || source_input == SOURCE_HDMI3) { - return TV_AUDIO_IN_SOURCE_TYPE_HDMI; - } + if (source_input == SOURCE_TV) { + config_value = config_get_str(CFG_SECTION_TV, "tvin.aud.insource.atv", "TV_AUDIO_IN_SOURCE_TYPE_LINEIN"); + if (strcasecmp(config_value, "TV_AUDIO_IN_SOURCE_TYPE_ATV") == 0) { + return TV_AUDIO_IN_SOURCE_TYPE_ATV; + } + return TV_AUDIO_IN_SOURCE_TYPE_LINEIN; + } else if (source_input == SOURCE_AV1 || source_input == SOURCE_AV2) { + return TV_AUDIO_IN_SOURCE_TYPE_LINEIN; + } else if (source_input == SOURCE_YPBPR1 || source_input == SOURCE_YPBPR2 || source_input == SOURCE_VGA) { + return TV_AUDIO_IN_SOURCE_TYPE_LINEIN; + } else if (source_input == SOURCE_HDMI1 || source_input == SOURCE_HDMI2 || source_input == SOURCE_HDMI3) { + return TV_AUDIO_IN_SOURCE_TYPE_HDMI; + } - return TV_AUDIO_IN_SOURCE_TYPE_LINEIN; + return TV_AUDIO_IN_SOURCE_TYPE_LINEIN; } int CTvin::isVgaFmtInHdmi ( tvin_sig_fmt_t fmt ) { - if ( fmt == TVIN_SIG_FMT_HDMI_640X480P_60HZ - || fmt == TVIN_SIG_FMT_HDMI_800X600_00HZ - || fmt == TVIN_SIG_FMT_HDMI_1024X768_00HZ - || fmt == TVIN_SIG_FMT_HDMI_720X400_00HZ - || fmt == TVIN_SIG_FMT_HDMI_1280X768_00HZ - || fmt == TVIN_SIG_FMT_HDMI_1280X800_00HZ - || fmt == TVIN_SIG_FMT_HDMI_1280X960_00HZ - || fmt == TVIN_SIG_FMT_HDMI_1280X1024_00HZ - || fmt == TVIN_SIG_FMT_HDMI_1360X768_00HZ - || fmt == TVIN_SIG_FMT_HDMI_1366X768_00HZ - || fmt == TVIN_SIG_FMT_HDMI_1600X1200_00HZ - || fmt == TVIN_SIG_FMT_HDMI_1920X1200_00HZ ) { - LOGD ( "%s, HDMI source : VGA format.", CFG_SECTION_TV ); - return 1; - } - - return -1; + if ( fmt == TVIN_SIG_FMT_HDMI_640X480P_60HZ + || fmt == TVIN_SIG_FMT_HDMI_800X600_00HZ + || fmt == TVIN_SIG_FMT_HDMI_1024X768_00HZ + || fmt == TVIN_SIG_FMT_HDMI_720X400_00HZ + || fmt == TVIN_SIG_FMT_HDMI_1280X768_00HZ + || fmt == TVIN_SIG_FMT_HDMI_1280X800_00HZ + || fmt == TVIN_SIG_FMT_HDMI_1280X960_00HZ + || fmt == TVIN_SIG_FMT_HDMI_1280X1024_00HZ + || fmt == TVIN_SIG_FMT_HDMI_1360X768_00HZ + || fmt == TVIN_SIG_FMT_HDMI_1366X768_00HZ + || fmt == TVIN_SIG_FMT_HDMI_1600X1200_00HZ + || fmt == TVIN_SIG_FMT_HDMI_1920X1200_00HZ ) { + LOGD ( "%s, HDMI source : VGA format.", CFG_SECTION_TV ); + return 1; + } + + return -1; } int CTvin::isSDFmtInHdmi ( tvin_sig_fmt_t fmt ) { - if ( fmt == TVIN_SIG_FMT_HDMI_640X480P_60HZ - || fmt == TVIN_SIG_FMT_HDMI_720X480P_60HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X480I_60HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X240P_60HZ - || fmt == TVIN_SIG_FMT_HDMI_2880X480I_60HZ - || fmt == TVIN_SIG_FMT_HDMI_2880X240P_60HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X480P_60HZ - || fmt == TVIN_SIG_FMT_HDMI_720X576P_50HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X576I_50HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X288P_50HZ - || fmt == TVIN_SIG_FMT_HDMI_2880X576I_50HZ - || fmt == TVIN_SIG_FMT_HDMI_2880X288P_50HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X576P_50HZ - || fmt == TVIN_SIG_FMT_HDMI_2880X480P_60HZ - || fmt == TVIN_SIG_FMT_HDMI_2880X576P_60HZ - || fmt == TVIN_SIG_FMT_HDMI_720X576P_100HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X576I_100HZ - || fmt == TVIN_SIG_FMT_HDMI_720X480P_120HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X480I_120HZ - || fmt == TVIN_SIG_FMT_HDMI_720X576P_200HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X576I_200HZ - || fmt == TVIN_SIG_FMT_HDMI_720X480P_240HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X480I_240HZ - || fmt == TVIN_SIG_FMT_HDMI_800X600_00HZ - || fmt == TVIN_SIG_FMT_HDMI_720X400_00HZ ) { - LOGD ( "%s, SD format.", CFG_SECTION_TV ); - return true; - } else { - LOGD ( "%s, HD format.", CFG_SECTION_TV ); - return false; - } + if ( fmt == TVIN_SIG_FMT_HDMI_640X480P_60HZ + || fmt == TVIN_SIG_FMT_HDMI_720X480P_60HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X480I_60HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X240P_60HZ + || fmt == TVIN_SIG_FMT_HDMI_2880X480I_60HZ + || fmt == TVIN_SIG_FMT_HDMI_2880X240P_60HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X480P_60HZ + || fmt == TVIN_SIG_FMT_HDMI_720X576P_50HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X576I_50HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X288P_50HZ + || fmt == TVIN_SIG_FMT_HDMI_2880X576I_50HZ + || fmt == TVIN_SIG_FMT_HDMI_2880X288P_50HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X576P_50HZ + || fmt == TVIN_SIG_FMT_HDMI_2880X480P_60HZ + || fmt == TVIN_SIG_FMT_HDMI_2880X576P_60HZ + || fmt == TVIN_SIG_FMT_HDMI_720X576P_100HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X576I_100HZ + || fmt == TVIN_SIG_FMT_HDMI_720X480P_120HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X480I_120HZ + || fmt == TVIN_SIG_FMT_HDMI_720X576P_200HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X576I_200HZ + || fmt == TVIN_SIG_FMT_HDMI_720X480P_240HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X480I_240HZ + || fmt == TVIN_SIG_FMT_HDMI_800X600_00HZ + || fmt == TVIN_SIG_FMT_HDMI_720X400_00HZ ) { + LOGD ( "%s, SD format.", CFG_SECTION_TV ); + return true; + } else { + LOGD ( "%s, HD format.", CFG_SECTION_TV ); + return false; + } } bool CTvin::Tvin_is50HzFrameRateFmt ( tvin_sig_fmt_t fmt ) { - /** component **/ - if ( fmt == TVIN_SIG_FMT_COMP_576P_50HZ_D000 - || fmt == TVIN_SIG_FMT_COMP_576I_50HZ_D000 - || fmt == TVIN_SIG_FMT_COMP_720P_50HZ_D000 - || fmt == TVIN_SIG_FMT_COMP_1080P_50HZ_D000 - || fmt == TVIN_SIG_FMT_COMP_1080I_50HZ_D000_A - || fmt == TVIN_SIG_FMT_COMP_1080I_50HZ_D000_B - || fmt == TVIN_SIG_FMT_COMP_1080I_50HZ_D000_C - || fmt == TVIN_SIG_FMT_COMP_1080P_24HZ_D000 - || fmt == TVIN_SIG_FMT_COMP_1080P_25HZ_D000 - /** hdmi **/ - || fmt == TVIN_SIG_FMT_HDMI_720X576P_50HZ - || fmt == TVIN_SIG_FMT_HDMI_1280X720P_50HZ - || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_A - || fmt == TVIN_SIG_FMT_HDMI_1440X576I_50HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X288P_50HZ - || fmt == TVIN_SIG_FMT_HDMI_2880X576I_50HZ - || fmt == TVIN_SIG_FMT_HDMI_2880X288P_50HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X576P_50HZ - || fmt == TVIN_SIG_FMT_HDMI_1920X1080P_50HZ - || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_B - || fmt == TVIN_SIG_FMT_HDMI_1280X720P_50HZ_FRAME_PACKING - || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_FRAME_PACKING - || fmt == TVIN_SIG_FMT_HDMI_720X576P_50HZ_FRAME_PACKING - /** cvbs **/ - || fmt == TVIN_SIG_FMT_CVBS_PAL_I - || fmt == TVIN_SIG_FMT_CVBS_PAL_M - || fmt == TVIN_SIG_FMT_CVBS_PAL_CN - || fmt == TVIN_SIG_FMT_CVBS_SECAM ) { - LOGD ( "%s, Frame rate == 50Hz.", CFG_SECTION_TV ); - return true; - } else { - LOGD ( "%s, Frame rate != 50Hz.", CFG_SECTION_TV ); - return false; - } + /** component **/ + if ( fmt == TVIN_SIG_FMT_COMP_576P_50HZ_D000 + || fmt == TVIN_SIG_FMT_COMP_576I_50HZ_D000 + || fmt == TVIN_SIG_FMT_COMP_720P_50HZ_D000 + || fmt == TVIN_SIG_FMT_COMP_1080P_50HZ_D000 + || fmt == TVIN_SIG_FMT_COMP_1080I_50HZ_D000_A + || fmt == TVIN_SIG_FMT_COMP_1080I_50HZ_D000_B + || fmt == TVIN_SIG_FMT_COMP_1080I_50HZ_D000_C + || fmt == TVIN_SIG_FMT_COMP_1080P_24HZ_D000 + || fmt == TVIN_SIG_FMT_COMP_1080P_25HZ_D000 + /** hdmi **/ + || fmt == TVIN_SIG_FMT_HDMI_720X576P_50HZ + || fmt == TVIN_SIG_FMT_HDMI_1280X720P_50HZ + || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_A + || fmt == TVIN_SIG_FMT_HDMI_1440X576I_50HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X288P_50HZ + || fmt == TVIN_SIG_FMT_HDMI_2880X576I_50HZ + || fmt == TVIN_SIG_FMT_HDMI_2880X288P_50HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X576P_50HZ + || fmt == TVIN_SIG_FMT_HDMI_1920X1080P_50HZ + || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_B + || fmt == TVIN_SIG_FMT_HDMI_1280X720P_50HZ_FRAME_PACKING + || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_FRAME_PACKING + || fmt == TVIN_SIG_FMT_HDMI_720X576P_50HZ_FRAME_PACKING + /** cvbs **/ + || fmt == TVIN_SIG_FMT_CVBS_PAL_I + || fmt == TVIN_SIG_FMT_CVBS_PAL_M + || fmt == TVIN_SIG_FMT_CVBS_PAL_CN + || fmt == TVIN_SIG_FMT_CVBS_SECAM ) { + LOGD ( "%s, Frame rate == 50Hz.", CFG_SECTION_TV ); + return true; + } else { + LOGD ( "%s, Frame rate != 50Hz.", CFG_SECTION_TV ); + return false; + } } bool CTvin::Tvin_IsDeinterlaceFmt ( tvin_sig_fmt_t fmt ) { - if ( fmt == TVIN_SIG_FMT_COMP_480I_59HZ_D940 - || fmt == TVIN_SIG_FMT_COMP_576I_50HZ_D000 - || fmt == TVIN_SIG_FMT_COMP_1080I_47HZ_D952 - || fmt == TVIN_SIG_FMT_COMP_1080I_48HZ_D000 - || fmt == TVIN_SIG_FMT_COMP_1080I_50HZ_D000_A - || fmt == TVIN_SIG_FMT_COMP_1080I_50HZ_D000_B - || fmt == TVIN_SIG_FMT_COMP_1080I_50HZ_D000_C - || fmt == TVIN_SIG_FMT_COMP_1080I_60HZ_D000 - || fmt == TVIN_SIG_FMT_HDMI_1440X480I_120HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X480I_240HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X480I_60HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X576I_100HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X576I_200HZ - || fmt == TVIN_SIG_FMT_HDMI_1440X576I_50HZ - || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_100HZ - || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_120HZ - || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_A - || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_B - || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_FRAME_PACKING - || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_60HZ - || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_60HZ_FRAME_PACKING - || fmt == TVIN_SIG_FMT_HDMI_2880X480I_60HZ - || fmt == TVIN_SIG_FMT_HDMI_2880X576I_50HZ - || fmt == TVIN_SIG_FMT_CVBS_NTSC_M - || fmt == TVIN_SIG_FMT_CVBS_NTSC_443 - || fmt == TVIN_SIG_FMT_CVBS_PAL_60 - || fmt == TVIN_SIG_FMT_CVBS_PAL_CN - || fmt == TVIN_SIG_FMT_CVBS_PAL_I - || fmt == TVIN_SIG_FMT_CVBS_PAL_M - || fmt == TVIN_SIG_FMT_CVBS_SECAM ) { - LOGD ( "%s, Interlace format.", CFG_SECTION_TV ); - return true; - } else { - LOGD ( "%s, Progressive format.", CFG_SECTION_TV ); - return false; - } + if ( fmt == TVIN_SIG_FMT_COMP_480I_59HZ_D940 + || fmt == TVIN_SIG_FMT_COMP_576I_50HZ_D000 + || fmt == TVIN_SIG_FMT_COMP_1080I_47HZ_D952 + || fmt == TVIN_SIG_FMT_COMP_1080I_48HZ_D000 + || fmt == TVIN_SIG_FMT_COMP_1080I_50HZ_D000_A + || fmt == TVIN_SIG_FMT_COMP_1080I_50HZ_D000_B + || fmt == TVIN_SIG_FMT_COMP_1080I_50HZ_D000_C + || fmt == TVIN_SIG_FMT_COMP_1080I_60HZ_D000 + || fmt == TVIN_SIG_FMT_HDMI_1440X480I_120HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X480I_240HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X480I_60HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X576I_100HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X576I_200HZ + || fmt == TVIN_SIG_FMT_HDMI_1440X576I_50HZ + || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_100HZ + || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_120HZ + || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_A + || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_B + || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_FRAME_PACKING + || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_60HZ + || fmt == TVIN_SIG_FMT_HDMI_1920X1080I_60HZ_FRAME_PACKING + || fmt == TVIN_SIG_FMT_HDMI_2880X480I_60HZ + || fmt == TVIN_SIG_FMT_HDMI_2880X576I_50HZ + || fmt == TVIN_SIG_FMT_CVBS_NTSC_M + || fmt == TVIN_SIG_FMT_CVBS_NTSC_443 + || fmt == TVIN_SIG_FMT_CVBS_PAL_60 + || fmt == TVIN_SIG_FMT_CVBS_PAL_CN + || fmt == TVIN_SIG_FMT_CVBS_PAL_I + || fmt == TVIN_SIG_FMT_CVBS_PAL_M + || fmt == TVIN_SIG_FMT_CVBS_SECAM ) { + LOGD ( "%s, Interlace format.", CFG_SECTION_TV ); + return true; + } else { + LOGD ( "%s, Progressive format.", CFG_SECTION_TV ); + return false; + } } int CTvin::Tvin_StartDecoder ( tvin_info_t &info ) { - if ( m_is_decoder_start == false ) { - m_tvin_param.info = info; + if ( m_is_decoder_start == false ) { + m_tvin_param.info = info; - if ( VDIN_StartDec ( &m_tvin_param ) >= 0 ) { - LOGD ( "StartDecoder succeed." ); - m_is_decoder_start = true; - } else { - LOGW ( "StartDecoder failed." ); - return -1; - } - } else { - return -2; - } + if ( VDIN_StartDec ( &m_tvin_param ) >= 0 ) { + LOGD ( "StartDecoder succeed." ); + m_is_decoder_start = true; + } else { + LOGW ( "StartDecoder failed." ); + return -1; + } + } else { + return -2; + } - return 0; + return 0; } int CTvin::SwitchPort (tvin_port_t source_port ) { - int ret = 0; - LOGD ("%s, source_port = %x", __FUNCTION__, source_port); - ret = Tvin_StopDecoder(); - if ( 0 == ret || 1 == ret ) { - if ( 1 == ret ) { //decode not started - //mVpp.Tvin_SetVideoScreenColorType ( TV_SIGNAL_BLUE_PATTERN ); - } - VDIN_ClosePort(); - } else { - LOGW ( "%s,stop decoder failed.", __FUNCTION__); - return -1; - } - // Open Port - if ( VDIN_OpenPort ( source_port ) < 0 ) { - LOGD ( "%s, OpenPort failed, source_port =%x ", __FUNCTION__, source_port ); - } - m_tvin_param.port = source_port; - return 0; + int ret = 0; + LOGD ("%s, source_port = %x", __FUNCTION__, source_port); + ret = Tvin_StopDecoder(); + if ( 0 == ret || 1 == ret ) { + if ( 1 == ret ) { //decode not started + //mVpp.Tvin_SetVideoScreenColorType ( TV_SIGNAL_BLUE_PATTERN ); + } + VDIN_ClosePort(); + } else { + LOGW ( "%s,stop decoder failed.", __FUNCTION__); + return -1; + } + // Open Port + if ( VDIN_OpenPort ( source_port ) < 0 ) { + LOGD ( "%s, OpenPort failed, source_port =%x ", __FUNCTION__, source_port ); + } + m_tvin_param.port = source_port; + return 0; } int CTvin::Tvin_StopDecoder() { - if ( m_is_decoder_start == true ) { - if ( VDIN_StopDec() >= 0 ) { - LOGD ( "StopDecoder ok!" ); - m_is_decoder_start = false; - return 0; - } else { - LOGD ( "StopDecoder Failed!" ); - } - } else { - return 1; - } + if ( m_is_decoder_start == true ) { + if ( VDIN_StopDec() >= 0 ) { + LOGD ( "StopDecoder ok!" ); + m_is_decoder_start = false; + return 0; + } else { + LOGD ( "StopDecoder Failed!" ); + } + } else { + return 1; + } - return -1; + return -1; } int CTvin::init_vdin ( void ) { - VDIN_OpenModule(); - return 0; + VDIN_OpenModule(); + return 0; } int CTvin::uninit_vdin ( void ) { - VDIN_ClosePort(); - VDIN_CloseModule(); - return 0; + VDIN_ClosePort(); + VDIN_CloseModule(); + return 0; } int CTvin::Tvin_AddPath ( tvin_path_id_t pathid ) { - int ret = -1; - int i = 0, dly = 10; - tv_path_type_t pathtype; - - if ( pathid >= TV_PATH_VDIN_AMVIDEO && pathid < TV_PATH_DECODER_3D_AMVIDEO ) { - pathtype = TV_PATH_TYPE_TVIN; - } else { - pathtype = TV_PATH_TYPE_DEFAULT; - } - - if ( pathid >= TV_PATH_VDIN_AMVIDEO && pathid < TV_PATH_DECODER_3D_AMVIDEO ) { - if ( m_pathid == pathid ) { - LOGW ( "%s, no need to add the same tvin path.\n", CFG_SECTION_TV ); - return 0; - } - - for ( i = 0; i < 50; i++ ) { - ret = VDIN_RmTvPath(); - - if ( ret > 0 ) { - LOGD ( "%s, remove tvin path ok, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); - break; - } else { - LOGW ( "%s, remove tvin path faild, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); - usleep ( dly * 1000 ); - } - } - } else { - for ( i = 0; i < 50; i++ ) { - ret = VDIN_RmDefPath(); - - if ( ret > 0 ) { - LOGD ( "%s, remove default path ok, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); - break; - } else { - LOGW ( "%s, remove default path faild, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); - usleep ( dly * 1000 ); - } - } - } - - for ( i = 0; i < 50; i++ ) { - if ( pathid >= TV_PATH_VDIN_AMVIDEO && pathid < TV_PATH_DECODER_3D_AMVIDEO ) { - if ( strcmp ( config_tv_path, "null" ) == 0 ) { - ret = VDIN_AddVideoPath ( pathid ); - } else { - ret = VDIN_AddPath ( config_tv_path ); - } - } else { - if ( strcmp ( config_default_path, "null" ) == 0 ) { - ret = VDIN_AddVideoPath ( pathid ); - } else { - ret = VDIN_AddPath ( config_default_path ); - } - } - - if ( ret >= 0 ) { - LOGD ( "%s, add pathid[%d] ok, %d ms gone.\n", CFG_SECTION_TV, pathid, i ); - break; - } else { - LOGW ( "%s, add pathid[%d] faild, %d ms gone.\n", CFG_SECTION_TV, pathid, i ); - usleep ( dly * 1000 ); - } - } - - if ( pathid >= TV_PATH_VDIN_AMVIDEO && pathid < TV_PATH_MAX ) { - m_pathid = pathid; - } - - return ret; + int ret = -1; + int i = 0, dly = 10; + tv_path_type_t pathtype; + + if ( pathid >= TV_PATH_VDIN_AMVIDEO && pathid < TV_PATH_DECODER_3D_AMVIDEO ) { + pathtype = TV_PATH_TYPE_TVIN; + } else { + pathtype = TV_PATH_TYPE_DEFAULT; + } + + if ( pathid >= TV_PATH_VDIN_AMVIDEO && pathid < TV_PATH_DECODER_3D_AMVIDEO ) { + if ( m_pathid == pathid ) { + LOGW ( "%s, no need to add the same tvin path.\n", CFG_SECTION_TV ); + return 0; + } + + for ( i = 0; i < 50; i++ ) { + ret = VDIN_RmTvPath(); + + if ( ret > 0 ) { + LOGD ( "%s, remove tvin path ok, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); + break; + } else { + LOGW ( "%s, remove tvin path faild, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); + usleep ( dly * 1000 ); + } + } + } else { + for ( i = 0; i < 50; i++ ) { + ret = VDIN_RmDefPath(); + + if ( ret > 0 ) { + LOGD ( "%s, remove default path ok, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); + break; + } else { + LOGW ( "%s, remove default path faild, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); + usleep ( dly * 1000 ); + } + } + } + + for ( i = 0; i < 50; i++ ) { + if ( pathid >= TV_PATH_VDIN_AMVIDEO && pathid < TV_PATH_DECODER_3D_AMVIDEO ) { + if ( strcmp ( config_tv_path, "null" ) == 0 ) { + ret = VDIN_AddVideoPath ( pathid ); + } else { + ret = VDIN_AddPath ( config_tv_path ); + } + } else { + if ( strcmp ( config_default_path, "null" ) == 0 ) { + ret = VDIN_AddVideoPath ( pathid ); + } else { + ret = VDIN_AddPath ( config_default_path ); + } + } + + if ( ret >= 0 ) { + LOGD ( "%s, add pathid[%d] ok, %d ms gone.\n", CFG_SECTION_TV, pathid, i ); + break; + } else { + LOGW ( "%s, add pathid[%d] faild, %d ms gone.\n", CFG_SECTION_TV, pathid, i ); + usleep ( dly * 1000 ); + } + } + + if ( pathid >= TV_PATH_VDIN_AMVIDEO && pathid < TV_PATH_MAX ) { + m_pathid = pathid; + } + + return ret; } int CTvin::Tvin_RemovePath ( tv_path_type_t pathtype ) { - int ret = -1; - int i = 0, dly = 10; - - for ( i = 0; i < 500; i++ ) { - ret = Tvin_CheckPathActive ( pathtype, 0 ); - - if ( ret == TV_PATH_STATUS_INACTIVE ) { - LOGD ( "%s, check path is inactive, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); - break; - } else if ( ret == TV_PATH_STATUS_INACTIVE || ret == TV_PATH_STATUS_ERROR ) { - usleep ( dly * 1000 ); - } else { - break; - } - } - - if ( i == 500 ) { - LOGE ( "%s, check path active faild, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); - } - - if ( pathtype == TV_PATH_TYPE_DEFAULT ) { - for ( i = 0; i < 50; i++ ) { - ret = VDIN_RmDefPath(); - - if ( ret > 0 ) { - LOGD ( "%s, remove default path ok, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); - break; - } else { - LOGW ( "%s, remove default path faild, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); - usleep ( dly * 1000 ); - } - } - } else if ( pathtype == TV_PATH_TYPE_TVIN ) { - for ( i = 0; i < 50; i++ ) { - ret = VDIN_RmTvPath(); - - if ( ret > 0 ) { - LOGD ( "%s, remove tvin path ok, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); - break; - } else { - LOGW ( "%s, remove tvin path faild, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); - usleep ( dly * 1000 ); - } - } - - m_pathid = TV_PATH_DECODER_3D_AMVIDEO; - } else if ( pathtype == TV_PATH_TYPE_TVIN_PREVIEW ) { - for ( i = 0; i < 50; i++ ) { - ret = VDIN_RmPreviewPath(); - - if ( ret > 0 ) { - LOGD ( "%s, remove preview path ok, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); - break; - } else { - LOGW ( "%s, remove preview path faild, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); - usleep ( dly * 1000 ); - } - } - - m_pathid = TV_PATH_DECODER_NEW3D_WITHOUTPPMGR_AMVIDEO; - } else { - ret = -1; - } - - return ret; + int ret = -1; + int i = 0, dly = 10; + + for ( i = 0; i < 500; i++ ) { + ret = Tvin_CheckPathActive ( pathtype, 0 ); + + if ( ret == TV_PATH_STATUS_INACTIVE ) { + LOGD ( "%s, check path is inactive, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); + break; + } else if ( ret == TV_PATH_STATUS_INACTIVE || ret == TV_PATH_STATUS_ERROR ) { + usleep ( dly * 1000 ); + } else { + break; + } + } + + if ( i == 500 ) { + LOGE ( "%s, check path active faild, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); + } + + if ( pathtype == TV_PATH_TYPE_DEFAULT ) { + for ( i = 0; i < 50; i++ ) { + ret = VDIN_RmDefPath(); + + if ( ret > 0 ) { + LOGD ( "%s, remove default path ok, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); + break; + } else { + LOGW ( "%s, remove default path faild, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); + usleep ( dly * 1000 ); + } + } + } else if ( pathtype == TV_PATH_TYPE_TVIN ) { + for ( i = 0; i < 50; i++ ) { + ret = VDIN_RmTvPath(); + + if ( ret > 0 ) { + LOGD ( "%s, remove tvin path ok, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); + break; + } else { + LOGW ( "%s, remove tvin path faild, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); + usleep ( dly * 1000 ); + } + } + + m_pathid = TV_PATH_DECODER_3D_AMVIDEO; + } else if ( pathtype == TV_PATH_TYPE_TVIN_PREVIEW ) { + for ( i = 0; i < 50; i++ ) { + ret = VDIN_RmPreviewPath(); + + if ( ret > 0 ) { + LOGD ( "%s, remove preview path ok, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); + break; + } else { + LOGW ( "%s, remove preview path faild, %d ms gone.\n", CFG_SECTION_TV, ( dly * i ) ); + usleep ( dly * 1000 ); + } + } + + m_pathid = TV_PATH_DECODER_NEW3D_WITHOUTPPMGR_AMVIDEO; + } else { + ret = -1; + } + + return ret; } int CTvin::Tvin_CheckPathActive ( tv_path_type_t path_type, int isCheckD2D3 ) { - FILE *f; - char path[256]; - char decoder_str[20] = "default {"; - char tvin_str[20] = "tvpath {"; - char decoder_active_str[20] = "decoder(1)"; - char tvin_active_str[20] = "vdin0(1)"; - char di_active_str[20] = "deinterlace(1)"; - char d2d3_active_str[20] = "d2d3(1)"; - char decoder_inactive_str[20] = "decoder(0)"; - char tvin_inactive_str[20] = "vdin0(0)"; - char di_inactive_str[20] = "deinterlace(0)"; - char d2d3_inactive_str[20] = "d2d3(0)"; - - char *str_find = NULL; - char *active_str = NULL; - char *inactive_str = NULL; - int mount_freq; - int match; - int is_active = TV_PATH_STATUS_INACTIVE; - - memset ( path, 0, 255 ); - - f = fopen ( "/sys/class/vfm/map", "r" ); - - if ( !f ) { - LOGE ( "%s, can not open /sys/class/vfm/map!\n", CFG_SECTION_TV ); - return TV_PATH_STATUS_NO_DEV; - } - - while ( fgets ( path, 254, f ) ) { - if ( path_type == TV_PATH_TYPE_DEFAULT ) { - str_find = strstr ( path, decoder_str ); - active_str = decoder_active_str; - inactive_str = decoder_inactive_str; - } else if ( path_type == TV_PATH_TYPE_TVIN || path_type == TV_PATH_TYPE_TVIN_PREVIEW ) { - str_find = strstr ( path, tvin_str ); - active_str = tvin_active_str; - inactive_str = tvin_inactive_str; - } else { - LOGW ( "%s, there is no %d path_type.\n", CFG_SECTION_TV, path_type ); - break; - } - - if ( str_find ) { - if ( isCheckD2D3 == 0 ) { - if ( strstr ( str_find, active_str ) && strstr ( str_find, di_active_str ) ) { - is_active = TV_PATH_STATUS_ACTIVE; - //LOGD("%s, %s is active.\n", CFG_SECTION_TV, path); - } else if ( strstr ( str_find, inactive_str ) - && ( strstr ( str_find, di_inactive_str ) || ( !strstr ( str_find, di_inactive_str ) ) ) - ) { - is_active = TV_PATH_STATUS_INACTIVE; - //LOGD("%s, %s is inactive.\n", CFG_SECTION_TV, path); - } else { - is_active = TV_PATH_STATUS_ERROR; - LOGE ( "%s, %s is error!\n", CFG_SECTION_TV, path ); - } - - break; - } else { - if ( strstr ( str_find, active_str ) && strstr ( str_find, di_active_str ) && strstr ( str_find, d2d3_active_str ) ) { - is_active = TV_PATH_STATUS_ACTIVE; - //LOGD("%s, %s is active.\n", CFG_SECTION_TV, path); - } else if ( strstr ( str_find, inactive_str ) - && ( strstr ( str_find, di_inactive_str ) || ( !strstr ( str_find, di_inactive_str ) ) ) - && ( strstr ( str_find, d2d3_inactive_str ) || ( !strstr ( str_find, d2d3_inactive_str ) ) ) - ) { - is_active = TV_PATH_STATUS_INACTIVE; - //LOGD("%s, %s is inactive.\n", CFG_SECTION_TV, path); - } else { - is_active = TV_PATH_STATUS_ERROR; - LOGE ( "%s, %s is error!\n", CFG_SECTION_TV, path ); - } - - break; - } - } - } - - fclose ( f ); - - return is_active; + FILE *f; + char path[256]; + char decoder_str[20] = "default {"; + char tvin_str[20] = "tvpath {"; + char decoder_active_str[20] = "decoder(1)"; + char tvin_active_str[20] = "vdin0(1)"; + char di_active_str[20] = "deinterlace(1)"; + char d2d3_active_str[20] = "d2d3(1)"; + char decoder_inactive_str[20] = "decoder(0)"; + char tvin_inactive_str[20] = "vdin0(0)"; + char di_inactive_str[20] = "deinterlace(0)"; + char d2d3_inactive_str[20] = "d2d3(0)"; + + char *str_find = NULL; + char *active_str = NULL; + char *inactive_str = NULL; + int mount_freq; + int match; + int is_active = TV_PATH_STATUS_INACTIVE; + + memset ( path, 0, 255 ); + + f = fopen ( "/sys/class/vfm/map", "r" ); + + if ( !f ) { + LOGE ( "%s, can not open /sys/class/vfm/map!\n", CFG_SECTION_TV ); + return TV_PATH_STATUS_NO_DEV; + } + + while ( fgets ( path, 254, f ) ) { + if ( path_type == TV_PATH_TYPE_DEFAULT ) { + str_find = strstr ( path, decoder_str ); + active_str = decoder_active_str; + inactive_str = decoder_inactive_str; + } else if ( path_type == TV_PATH_TYPE_TVIN || path_type == TV_PATH_TYPE_TVIN_PREVIEW ) { + str_find = strstr ( path, tvin_str ); + active_str = tvin_active_str; + inactive_str = tvin_inactive_str; + } else { + LOGW ( "%s, there is no %d path_type.\n", CFG_SECTION_TV, path_type ); + break; + } + + if ( str_find ) { + if ( isCheckD2D3 == 0 ) { + if ( strstr ( str_find, active_str ) && strstr ( str_find, di_active_str ) ) { + is_active = TV_PATH_STATUS_ACTIVE; + //LOGD("%s, %s is active.\n", CFG_SECTION_TV, path); + } else if ( strstr ( str_find, inactive_str ) + && ( strstr ( str_find, di_inactive_str ) || ( !strstr ( str_find, di_inactive_str ) ) ) + ) { + is_active = TV_PATH_STATUS_INACTIVE; + //LOGD("%s, %s is inactive.\n", CFG_SECTION_TV, path); + } else { + is_active = TV_PATH_STATUS_ERROR; + LOGE ( "%s, %s is error!\n", CFG_SECTION_TV, path ); + } + + break; + } else { + if ( strstr ( str_find, active_str ) && strstr ( str_find, di_active_str ) && strstr ( str_find, d2d3_active_str ) ) { + is_active = TV_PATH_STATUS_ACTIVE; + //LOGD("%s, %s is active.\n", CFG_SECTION_TV, path); + } else if ( strstr ( str_find, inactive_str ) + && ( strstr ( str_find, di_inactive_str ) || ( !strstr ( str_find, di_inactive_str ) ) ) + && ( strstr ( str_find, d2d3_inactive_str ) || ( !strstr ( str_find, d2d3_inactive_str ) ) ) + ) { + is_active = TV_PATH_STATUS_INACTIVE; + //LOGD("%s, %s is inactive.\n", CFG_SECTION_TV, path); + } else { + is_active = TV_PATH_STATUS_ERROR; + LOGE ( "%s, %s is error!\n", CFG_SECTION_TV, path ); + } + + break; + } + } + } + + fclose ( f ); + + return is_active; } int CTvin::Tv_init_afe ( void ) { - AFE_OpenModule(); - return 0; + AFE_OpenModule(); + return 0; } int CTvin::Tv_uninit_afe ( void ) { - AFE_CloseModule(); - return 0; + AFE_CloseModule(); + return 0; } int CTvin::get_hdmi_sampling_rate() { - int fd; - int val = 0; - char bcmd[16]; - fd = open ( "/sys/module/tvin_hdmirx/parameters/audio_sample_rate", O_RDONLY ); + int fd; + int val = 0; + char bcmd[16]; + fd = open ( "/sys/module/tvin_hdmirx/parameters/audio_sample_rate", O_RDONLY ); - if ( fd >= 0 ) { - read ( fd, bcmd, sizeof ( bcmd ) ); - val = strtol ( bcmd, NULL, 10 ); - close ( fd ); - } + if ( fd >= 0 ) { + read ( fd, bcmd, sizeof ( bcmd ) ); + val = strtol ( bcmd, NULL, 10 ); + close ( fd ); + } - return val; + return val; } //************************************************************************** CTvin::CTvinSigDetect::CTvinSigDetect ( CTvin *pTvin ) { - m_cur_sig_info.trans_fmt = TVIN_TFMT_2D; - m_cur_sig_info.fmt = TVIN_SIG_FMT_NULL; - m_cur_sig_info.status = TVIN_SIG_STATUS_NULL; - m_cur_sig_info.reserved = 0; + m_cur_sig_info.trans_fmt = TVIN_TFMT_2D; + m_cur_sig_info.fmt = TVIN_SIG_FMT_NULL; + m_cur_sig_info.status = TVIN_SIG_STATUS_NULL; + m_cur_sig_info.reserved = 0; - m_pre_sig_info = m_cur_sig_info; - mDetectState = STATE_STOPED; - mpObserver = NULL; - mpTvin = pTvin; - mKeepNosigTime = 0; - mResumeLaterTime = 0; - m_is_nosig_checktimes_once_valid = false; + m_pre_sig_info = m_cur_sig_info; + mDetectState = STATE_STOPED; + mpObserver = NULL; + mpTvin = pTvin; + mKeepNosigTime = 0; + mResumeLaterTime = 0; + m_is_nosig_checktimes_once_valid = false; } CTvin::CTvinSigDetect::~CTvinSigDetect() @@ -3124,293 +3124,293 @@ CTvin::CTvinSigDetect::~CTvinSigDetect() int CTvin::CTvinSigDetect::startDetect(bool bPause) { - LOGD ( "startDetect()" ); + LOGD ( "startDetect()" ); - if ( mDetectState == STATE_RUNNING || mDetectState == STATE_PAUSE ) { - return mDetectState; - } + if ( mDetectState == STATE_RUNNING || mDetectState == STATE_PAUSE ) { + return mDetectState; + } - m_cur_sig_info.trans_fmt = TVIN_TFMT_2D; - m_cur_sig_info.fmt = TVIN_SIG_FMT_NULL; - m_cur_sig_info.status = TVIN_SIG_STATUS_NULL; - m_cur_sig_info.reserved = 0; + m_cur_sig_info.trans_fmt = TVIN_TFMT_2D; + m_cur_sig_info.fmt = TVIN_SIG_FMT_NULL; + m_cur_sig_info.status = TVIN_SIG_STATUS_NULL; + m_cur_sig_info.reserved = 0; - m_pre_sig_info = m_cur_sig_info; + m_pre_sig_info = m_cur_sig_info; - // - m_request_pause_detect = bPause; - this->run(); - return mDetectState; + // + m_request_pause_detect = bPause; + this->run(); + return mDetectState; } int CTvin::CTvinSigDetect::initSigState() { - m_cur_sig_info.trans_fmt = TVIN_TFMT_2D; - m_cur_sig_info.fmt = TVIN_SIG_FMT_NULL; - m_cur_sig_info.status = TVIN_SIG_STATUS_NULL; - m_cur_sig_info.reserved = 0; - m_pre_sig_info = m_cur_sig_info; - mKeepNosigTime = 0; - m_is_nosig_checktimes_once_valid = false; - mResumeLaterTime = 0; - return 0; + m_cur_sig_info.trans_fmt = TVIN_TFMT_2D; + m_cur_sig_info.fmt = TVIN_SIG_FMT_NULL; + m_cur_sig_info.status = TVIN_SIG_STATUS_NULL; + m_cur_sig_info.reserved = 0; + m_pre_sig_info = m_cur_sig_info; + mKeepNosigTime = 0; + m_is_nosig_checktimes_once_valid = false; + mResumeLaterTime = 0; + return 0; } int CTvin::CTvinSigDetect::stopDetect() { - CMutex::Autolock _l ( mLock ); - LOGD ( "stopDetect()" ); - requestExit(); - return 0; + CMutex::Autolock _l ( mLock ); + LOGD ( "stopDetect()" ); + requestExit(); + return 0; } int CTvin::CTvinSigDetect::pauseDetect() { - CMutex::Autolock _l ( mLock ); - LOGD ( "pauseDetect()" ); - m_request_pause_detect = true; - return 0; + CMutex::Autolock _l ( mLock ); + LOGD ( "pauseDetect()" ); + m_request_pause_detect = true; + return 0; } int CTvin::CTvinSigDetect::requestAndWaitPauseDetect() { - CMutex::Autolock _l ( mLock ); - LOGD ( "requestAndWaitPauseDetect()" ); - m_request_pause_detect = true; + CMutex::Autolock _l ( mLock ); + LOGD ( "requestAndWaitPauseDetect()" ); + m_request_pause_detect = true; - if ( mDetectState == STATE_RUNNING ) { - mRequestPauseCondition.wait ( mLock ); - } + if ( mDetectState == STATE_RUNNING ) { + mRequestPauseCondition.wait ( mLock ); + } - return 0; + return 0; } int CTvin::CTvinSigDetect::resumeDetect(int later)//ms { - CMutex::Autolock _l ( mLock ); - LOGD ( "resumeDetect()" ); - mResumeLaterTime = later; - m_request_pause_detect = false; - mDetectPauseCondition.signal(); - return 0; + CMutex::Autolock _l ( mLock ); + LOGD ( "resumeDetect()" ); + mResumeLaterTime = later; + m_request_pause_detect = false; + mDetectPauseCondition.signal(); + return 0; } void CTvin::CTvinSigDetect::setVdinNoSigCheckKeepTimes(int times, bool isOnce) { - LOGD("setVdinNoSigCheckKeepTimes mKeepNosigTime = %d, times = %d", mKeepNosigTime, times); - mKeepNosigTime = times; - m_is_nosig_checktimes_once_valid = isOnce; + LOGD("setVdinNoSigCheckKeepTimes mKeepNosigTime = %d, times = %d", mKeepNosigTime, times); + mKeepNosigTime = times; + m_is_nosig_checktimes_once_valid = isOnce; } int CTvin::CTvinSigDetect::Tv_TvinSigDetect ( int &sleeptime ) { - mpTvin->VDIN_GetSignalInfo ( &m_cur_sig_info ); //get info - //set no sig check times - static long long sNosigKeepTime = 0; - //LOGD("stime=%d status=%d, fmt = %d sNosigKeepTime = %d, mKeepNosigTime = %d", sleeptime, m_cur_sig_info.status,m_cur_sig_info.fmt, sNosigKeepTime, mKeepNosigTime); - if ( m_cur_sig_info.status == TVIN_SIG_STATUS_NOSIG || m_cur_sig_info.status == TVIN_SIG_STATUS_NULL ) { - sNosigKeepTime += sleeptime; - if ( sNosigKeepTime > mKeepNosigTime ) { //real no sig - //cur is no sig - if ( m_is_nosig_checktimes_once_valid ) { //just once change,is nosig, and default it - m_is_nosig_checktimes_once_valid = false; - mKeepNosigTime = 0; - } - // - } else {//not - m_cur_sig_info.status = m_pre_sig_info.status; - } - } else { - sNosigKeepTime = 0; - // - if ( m_is_nosig_checktimes_once_valid ) { //just once change,not nosig,default is - m_is_nosig_checktimes_once_valid = false; - mKeepNosigTime = 0; - } - // - } - - //if state change - if ( m_cur_sig_info.status != m_pre_sig_info.status ) { - //sleeptime = 200; - - if ( m_cur_sig_info.status == TVIN_SIG_STATUS_STABLE ) { // to stable - // - sleeptime = 20; - mpObserver->onSigToStable(); - } else if ( m_pre_sig_info.status == TVIN_SIG_STATUS_STABLE && m_cur_sig_info.status == TVIN_SIG_STATUS_UNSTABLE ) { //stable to unstable - // - //mVpp.Tvin_SetVideoScreenColorType ( TV_SIGNAL_BLACK_PATTERN ); - sleeptime = 20; - mpObserver->onSigStableToUnstable(); - } else if ( m_pre_sig_info.status == TVIN_SIG_STATUS_STABLE && m_cur_sig_info.status == TVIN_SIG_STATUS_NOTSUP ) { - // - sleeptime = 20; - mpObserver->onSigStableToUnSupport(); - } else if ( m_pre_sig_info.status == TVIN_SIG_STATUS_STABLE && m_cur_sig_info.status == TVIN_SIG_STATUS_NOSIG ) { - // - sleeptime = 20; - mpObserver->onSigStableToNoSig(); - } else if ( m_pre_sig_info.status == TVIN_SIG_STATUS_UNSTABLE && m_cur_sig_info.status == TVIN_SIG_STATUS_NOTSUP ) { - // - sleeptime = 20; - mpObserver->onSigUnStableToUnSupport(); - } else if ( m_pre_sig_info.status == TVIN_SIG_STATUS_UNSTABLE && m_cur_sig_info.status == TVIN_SIG_STATUS_NOSIG ) { - // - sleeptime = 20; - mpObserver->onSigUnStableToNoSig(); - } else if ( m_pre_sig_info.status == TVIN_SIG_STATUS_NULL && m_cur_sig_info.status == TVIN_SIG_STATUS_NOSIG ) { - // - sleeptime = 20; - mpObserver->onSigNullToNoSig(); - } else if ( m_pre_sig_info.status == TVIN_SIG_STATUS_NOSIG && m_cur_sig_info.status == TVIN_SIG_STATUS_UNSTABLE ) { - // - sleeptime = 20; - mpObserver->onSigNoSigToUnstable(); - } else { - sleeptime = 20; - } - } else { //state not change - //sleeptime = 500; - - switch ( m_cur_sig_info.status ) { - case TVIN_SIG_STATUS_STABLE: - // - sleeptime = 20;//sleeptime = 500; - mpObserver->onSigStillStable(); - if ( m_cur_sig_info.trans_fmt != m_pre_sig_info.trans_fmt ) { - mpObserver->onStableTransFmtChange(); - } - if (m_cur_sig_info.fmt != m_pre_sig_info.fmt) { - mpObserver->onStableSigFmtChange(); - } - break; - - case TVIN_SIG_STATUS_NOTSUP: - // - sleeptime = 20; - mpObserver->onSigStillNoSupport(); - break; - - case TVIN_SIG_STATUS_UNSTABLE: - // - sleeptime = 20; - mpObserver->onSigStillUnstable(); - break; - - case TVIN_SIG_STATUS_NOSIG: - // - sleeptime = 20; - mpObserver->onSigStillNosig(); - break; - - case TVIN_SIG_STATUS_NULL: - // - sleeptime = 20; - mpObserver->onSigStillNull(); - break; - - default: - // - sleeptime = 20; - mpObserver->onSigStillNull(); - break; - } - } - - m_pre_sig_info = m_cur_sig_info;//backup info - - return sleeptime; + mpTvin->VDIN_GetSignalInfo ( &m_cur_sig_info ); //get info + //set no sig check times + static long long sNosigKeepTime = 0; + //LOGD("stime=%d status=%d, fmt = %d sNosigKeepTime = %d, mKeepNosigTime = %d", sleeptime, m_cur_sig_info.status,m_cur_sig_info.fmt, sNosigKeepTime, mKeepNosigTime); + if ( m_cur_sig_info.status == TVIN_SIG_STATUS_NOSIG || m_cur_sig_info.status == TVIN_SIG_STATUS_NULL ) { + sNosigKeepTime += sleeptime; + if ( sNosigKeepTime > mKeepNosigTime ) { //real no sig + //cur is no sig + if ( m_is_nosig_checktimes_once_valid ) { //just once change,is nosig, and default it + m_is_nosig_checktimes_once_valid = false; + mKeepNosigTime = 0; + } + // + } else {//not + m_cur_sig_info.status = m_pre_sig_info.status; + } + } else { + sNosigKeepTime = 0; + // + if ( m_is_nosig_checktimes_once_valid ) { //just once change,not nosig,default is + m_is_nosig_checktimes_once_valid = false; + mKeepNosigTime = 0; + } + // + } + + //if state change + if ( m_cur_sig_info.status != m_pre_sig_info.status ) { + //sleeptime = 200; + + if ( m_cur_sig_info.status == TVIN_SIG_STATUS_STABLE ) { // to stable + // + sleeptime = 20; + mpObserver->onSigToStable(); + } else if ( m_pre_sig_info.status == TVIN_SIG_STATUS_STABLE && m_cur_sig_info.status == TVIN_SIG_STATUS_UNSTABLE ) { //stable to unstable + // + //mVpp.Tvin_SetVideoScreenColorType ( TV_SIGNAL_BLACK_PATTERN ); + sleeptime = 20; + mpObserver->onSigStableToUnstable(); + } else if ( m_pre_sig_info.status == TVIN_SIG_STATUS_STABLE && m_cur_sig_info.status == TVIN_SIG_STATUS_NOTSUP ) { + // + sleeptime = 20; + mpObserver->onSigStableToUnSupport(); + } else if ( m_pre_sig_info.status == TVIN_SIG_STATUS_STABLE && m_cur_sig_info.status == TVIN_SIG_STATUS_NOSIG ) { + // + sleeptime = 20; + mpObserver->onSigStableToNoSig(); + } else if ( m_pre_sig_info.status == TVIN_SIG_STATUS_UNSTABLE && m_cur_sig_info.status == TVIN_SIG_STATUS_NOTSUP ) { + // + sleeptime = 20; + mpObserver->onSigUnStableToUnSupport(); + } else if ( m_pre_sig_info.status == TVIN_SIG_STATUS_UNSTABLE && m_cur_sig_info.status == TVIN_SIG_STATUS_NOSIG ) { + // + sleeptime = 20; + mpObserver->onSigUnStableToNoSig(); + } else if ( m_pre_sig_info.status == TVIN_SIG_STATUS_NULL && m_cur_sig_info.status == TVIN_SIG_STATUS_NOSIG ) { + // + sleeptime = 20; + mpObserver->onSigNullToNoSig(); + } else if ( m_pre_sig_info.status == TVIN_SIG_STATUS_NOSIG && m_cur_sig_info.status == TVIN_SIG_STATUS_UNSTABLE ) { + // + sleeptime = 20; + mpObserver->onSigNoSigToUnstable(); + } else { + sleeptime = 20; + } + } else { //state not change + //sleeptime = 500; + + switch ( m_cur_sig_info.status ) { + case TVIN_SIG_STATUS_STABLE: + // + sleeptime = 20;//sleeptime = 500; + mpObserver->onSigStillStable(); + if ( m_cur_sig_info.trans_fmt != m_pre_sig_info.trans_fmt ) { + mpObserver->onStableTransFmtChange(); + } + if (m_cur_sig_info.fmt != m_pre_sig_info.fmt) { + mpObserver->onStableSigFmtChange(); + } + break; + + case TVIN_SIG_STATUS_NOTSUP: + // + sleeptime = 20; + mpObserver->onSigStillNoSupport(); + break; + + case TVIN_SIG_STATUS_UNSTABLE: + // + sleeptime = 20; + mpObserver->onSigStillUnstable(); + break; + + case TVIN_SIG_STATUS_NOSIG: + // + sleeptime = 20; + mpObserver->onSigStillNosig(); + break; + + case TVIN_SIG_STATUS_NULL: + // + sleeptime = 20; + mpObserver->onSigStillNull(); + break; + + default: + // + sleeptime = 20; + mpObserver->onSigStillNull(); + break; + } + } + + m_pre_sig_info = m_cur_sig_info;//backup info + + return sleeptime; } bool CTvin::CTvinSigDetect::threadLoop() { - //enter onStart() - if ( mpObserver == NULL ) { - return false; - } - - int sleeptime = 200;//ms - mDetectState = STATE_RUNNING; - mpObserver->onSigDetectEnter(); - - while ( !exitPending() ) { //requietexit() or requietexitWait() not call - while ( m_request_pause_detect ) { - mLock.lock(); - mRequestPauseCondition.broadcast(); - mDetectState = STATE_PAUSE; - mDetectPauseCondition.wait ( mLock ); //first unlock,when return,lock again,so need,call unlock - mDetectState = STATE_RUNNING; - mLock.unlock(); - // - while (!m_request_pause_detect && mResumeLaterTime > 0) { - //LOGD("mResumeLaterTime = %d", mResumeLaterTime); - usleep(10 * 1000); - mResumeLaterTime -= 10; - } - } - - // - mResumeLaterTime = 0; - // - mpObserver->onSigDetectLoop(); - Tv_TvinSigDetect ( sleeptime ); - //å¯ä»¥ä¼˜åŒ– - if ( !m_request_pause_detect ) { - usleep ( sleeptime * 1000 ); - } - } - - mDetectState = STATE_STOPED; - mRequestPauseCondition.broadcast(); - //exit - //return true, run again, return false,not run. - return false; + //enter onStart() + if ( mpObserver == NULL ) { + return false; + } + + int sleeptime = 200;//ms + mDetectState = STATE_RUNNING; + mpObserver->onSigDetectEnter(); + + while ( !exitPending() ) { //requietexit() or requietexitWait() not call + while ( m_request_pause_detect ) { + mLock.lock(); + mRequestPauseCondition.broadcast(); + mDetectState = STATE_PAUSE; + mDetectPauseCondition.wait ( mLock ); //first unlock,when return,lock again,so need,call unlock + mDetectState = STATE_RUNNING; + mLock.unlock(); + // + while (!m_request_pause_detect && mResumeLaterTime > 0) { + //LOGD("mResumeLaterTime = %d", mResumeLaterTime); + usleep(10 * 1000); + mResumeLaterTime -= 10; + } + } + + // + mResumeLaterTime = 0; + // + mpObserver->onSigDetectLoop(); + Tv_TvinSigDetect ( sleeptime ); + //å¯ä»¥ä¼˜åŒ– + if ( !m_request_pause_detect ) { + usleep ( sleeptime * 1000 ); + } + } + + mDetectState = STATE_STOPED; + mRequestPauseCondition.broadcast(); + //exit + //return true, run again, return false,not run. + return false; } v4l2_std_id CTvin::CvbsFtmToV4l2ColorStd(tvin_sig_fmt_t fmt) { - v4l2_std_id v4l2_std; - if (fmt == TVIN_SIG_FMT_CVBS_NTSC_M || fmt == TVIN_SIG_FMT_CVBS_NTSC_443) { - v4l2_std = V4L2_COLOR_STD_NTSC; - } else if (fmt >= TVIN_SIG_FMT_CVBS_PAL_I && fmt <= TVIN_SIG_FMT_CVBS_PAL_CN) { - v4l2_std = V4L2_COLOR_STD_PAL; - } else if (fmt == TVIN_SIG_FMT_CVBS_SECAM) { - v4l2_std = V4L2_COLOR_STD_SECAM; - } else { - v4l2_std = V4L2_COLOR_STD_PAL; - } - return v4l2_std; + v4l2_std_id v4l2_std; + if (fmt == TVIN_SIG_FMT_CVBS_NTSC_M || fmt == TVIN_SIG_FMT_CVBS_NTSC_443) { + v4l2_std = V4L2_COLOR_STD_NTSC; + } else if (fmt >= TVIN_SIG_FMT_CVBS_PAL_I && fmt <= TVIN_SIG_FMT_CVBS_PAL_CN) { + v4l2_std = V4L2_COLOR_STD_PAL; + } else if (fmt == TVIN_SIG_FMT_CVBS_SECAM) { + v4l2_std = V4L2_COLOR_STD_SECAM; + } else { + v4l2_std = V4L2_COLOR_STD_PAL; + } + return v4l2_std; } int CTvin::CvbsFtmToColorStdEnum(tvin_sig_fmt_t fmt) { - v4l2_std_id v4l2_std; - if (fmt == TVIN_SIG_FMT_CVBS_NTSC_M || fmt == TVIN_SIG_FMT_CVBS_NTSC_443) { - v4l2_std = CC_ATV_VIDEO_STD_NTSC; - } else if (fmt >= TVIN_SIG_FMT_CVBS_PAL_I && fmt <= TVIN_SIG_FMT_CVBS_PAL_CN) { - v4l2_std = CC_ATV_VIDEO_STD_PAL; - } else if (fmt == TVIN_SIG_FMT_CVBS_SECAM) { - v4l2_std = CC_ATV_VIDEO_STD_SECAM; - } else { - v4l2_std = CC_ATV_VIDEO_STD_PAL; - } - return v4l2_std; + v4l2_std_id v4l2_std; + if (fmt == TVIN_SIG_FMT_CVBS_NTSC_M || fmt == TVIN_SIG_FMT_CVBS_NTSC_443) { + v4l2_std = CC_ATV_VIDEO_STD_NTSC; + } else if (fmt >= TVIN_SIG_FMT_CVBS_PAL_I && fmt <= TVIN_SIG_FMT_CVBS_PAL_CN) { + v4l2_std = CC_ATV_VIDEO_STD_PAL; + } else if (fmt == TVIN_SIG_FMT_CVBS_SECAM) { + v4l2_std = CC_ATV_VIDEO_STD_SECAM; + } else { + v4l2_std = CC_ATV_VIDEO_STD_PAL; + } + return v4l2_std; } int CTvin::GetITContent() { - FILE *fp = NULL; - int value = 0; - fp = fopen("/sys/module/tvin_hdmirx/parameters/it_content", "r"); - if (fp == NULL) { - LOGE ( "Open /sys/module/tvin_hdmirx/parameters/it_content error(%s)!\n", strerror ( errno ) ); - return -1; - } - fscanf(fp, "%d", &value ); - fclose(fp); - fp = NULL; - return value; + FILE *fp = NULL; + int value = 0; + fp = fopen("/sys/module/tvin_hdmirx/parameters/it_content", "r"); + if (fp == NULL) { + LOGE ( "Open /sys/module/tvin_hdmirx/parameters/it_content error(%s)!\n", strerror ( errno ) ); + return -1; + } + fscanf(fp, "%d", &value ); + fclose(fp); + fp = NULL; + return value; } //************************************************************************** diff --git a/tvapi/libtv/tvin/CTvin.h b/tvapi/libtv/tvin/CTvin.h index 44af963..c680f94 100644 --- a/tvapi/libtv/tvin/CTvin.h +++ b/tvapi/libtv/tvin/CTvin.h @@ -25,48 +25,48 @@ #define DEPTH_LEVEL_2DTO3D 33 static const int DepthTable_2DTO3D[DEPTH_LEVEL_2DTO3D] = { - -64, // -16 - -60, // -15 - -56, // -14 - -52, // -13 - -49, // -12 - -46, // -11 - -43, // -10 - -40, // -09 - -37, // -08 - -34, // -07 - -31, // -06 - -28, // -05 - -25, // -04 - -22, // -03 - -19, // -02 - -16, // -01 - -13, // 0 - 3, // 1 - 6, // 2 - 9, // 3 - 12, // 4 - 15, // 5 - 18, // 6 - 21, // 7 - 24, // 8 - 28, // 9 - 32, // 10 - 36, // 11 - 40, // 12 - 44, // 13 - 48, // 14 - 52, // 15 - 56, // 16 + -64, // -16 + -60, // -15 + -56, // -14 + -52, // -13 + -49, // -12 + -46, // -11 + -43, // -10 + -40, // -09 + -37, // -08 + -34, // -07 + -31, // -06 + -28, // -05 + -25, // -04 + -22, // -03 + -19, // -02 + -16, // -01 + -13, // 0 + 3, // 1 + 6, // 2 + 9, // 3 + 12, // 4 + 15, // 5 + 18, // 6 + 21, // 7 + 24, // 8 + 28, // 9 + 32, // 10 + 36, // 11 + 40, // 12 + 44, // 13 + 48, // 14 + 52, // 15 + 56, // 16 }; enum { - MEMP_VDIN_WITHOUT_3D = 0, - MEMP_VDIN_WITH_3D, - MEMP_DCDR_WITHOUT_3D, - MEMP_DCDR_WITH_3D, - MEMP_ATV_WITHOUT_3D, - MEMP_ATV_WITH_3D, + MEMP_VDIN_WITHOUT_3D = 0, + MEMP_VDIN_WITH_3D, + MEMP_DCDR_WITHOUT_3D, + MEMP_DCDR_WITH_3D, + MEMP_ATV_WITHOUT_3D, + MEMP_ATV_WITH_3D, }; // *************************************************************************** @@ -74,57 +74,57 @@ enum { // *************************************************************************** /* tvin input port select */ typedef enum tvin_port_e { - TVIN_PORT_NULL = 0x00000000, - TVIN_PORT_MPEG0 = 0x00000100, - TVIN_PORT_BT656 = 0x00000200, - TVIN_PORT_BT601, - TVIN_PORT_CAMERA, - TVIN_PORT_VGA0 = 0x00000400, - TVIN_PORT_VGA1, - TVIN_PORT_VGA2, - TVIN_PORT_VGA3, - TVIN_PORT_VGA4, - TVIN_PORT_VGA5, - TVIN_PORT_VGA6, - TVIN_PORT_VGA7, - TVIN_PORT_COMP0 = 0x00000800, - TVIN_PORT_COMP1, - TVIN_PORT_COMP2, - TVIN_PORT_COMP3, - TVIN_PORT_COMP4, - TVIN_PORT_COMP5, - TVIN_PORT_COMP6, - TVIN_PORT_COMP7, - TVIN_PORT_CVBS0 = 0x00001000, - TVIN_PORT_CVBS1, - TVIN_PORT_CVBS2, - TVIN_PORT_CVBS3, //as atv demod to tvafe - TVIN_PORT_CVBS4, - TVIN_PORT_CVBS5, - TVIN_PORT_CVBS6, - TVIN_PORT_CVBS7, - TVIN_PORT_SVIDEO0 = 0x00002000, - TVIN_PORT_SVIDEO1, - TVIN_PORT_SVIDEO2, - TVIN_PORT_SVIDEO3, - TVIN_PORT_SVIDEO4, - TVIN_PORT_SVIDEO5, - TVIN_PORT_SVIDEO6, - TVIN_PORT_SVIDEO7, - TVIN_PORT_HDMI0 = 0x00004000, - TVIN_PORT_HDMI1, - TVIN_PORT_HDMI2, - TVIN_PORT_HDMI3, - TVIN_PORT_HDMI4, - TVIN_PORT_HDMI5, - TVIN_PORT_HDMI6, - TVIN_PORT_HDMI7, - TVIN_PORT_DVIN0 = 0x00008000, - TVIN_PORT_VIU = 0x0000C000, - TVIN_PORT_MIPI = 0x00010000, - TVIN_PORT_ISP = 0x00020000, - TVIN_PORT_DTV = 0x00040000, - TVIN_PORT_MAX = 0x80000000, + TVIN_PORT_NULL = 0x00000000, + TVIN_PORT_MPEG0 = 0x00000100, + TVIN_PORT_BT656 = 0x00000200, + TVIN_PORT_BT601, + TVIN_PORT_CAMERA, + TVIN_PORT_VGA0 = 0x00000400, + TVIN_PORT_VGA1, + TVIN_PORT_VGA2, + TVIN_PORT_VGA3, + TVIN_PORT_VGA4, + TVIN_PORT_VGA5, + TVIN_PORT_VGA6, + TVIN_PORT_VGA7, + TVIN_PORT_COMP0 = 0x00000800, + TVIN_PORT_COMP1, + TVIN_PORT_COMP2, + TVIN_PORT_COMP3, + TVIN_PORT_COMP4, + TVIN_PORT_COMP5, + TVIN_PORT_COMP6, + TVIN_PORT_COMP7, + TVIN_PORT_CVBS0 = 0x00001000, + TVIN_PORT_CVBS1, + TVIN_PORT_CVBS2, + TVIN_PORT_CVBS3, //as atv demod to tvafe + TVIN_PORT_CVBS4, + TVIN_PORT_CVBS5, + TVIN_PORT_CVBS6, + TVIN_PORT_CVBS7, + TVIN_PORT_SVIDEO0 = 0x00002000, + TVIN_PORT_SVIDEO1, + TVIN_PORT_SVIDEO2, + TVIN_PORT_SVIDEO3, + TVIN_PORT_SVIDEO4, + TVIN_PORT_SVIDEO5, + TVIN_PORT_SVIDEO6, + TVIN_PORT_SVIDEO7, + TVIN_PORT_HDMI0 = 0x00004000, + TVIN_PORT_HDMI1, + TVIN_PORT_HDMI2, + TVIN_PORT_HDMI3, + TVIN_PORT_HDMI4, + TVIN_PORT_HDMI5, + TVIN_PORT_HDMI6, + TVIN_PORT_HDMI7, + TVIN_PORT_DVIN0 = 0x00008000, + TVIN_PORT_VIU = 0x0000C000, + TVIN_PORT_MIPI = 0x00010000, + TVIN_PORT_ISP = 0x00020000, + TVIN_PORT_DTV = 0x00040000, + TVIN_PORT_MAX = 0x80000000, } tvin_port_t; const char *tvin_port_str(enum tvin_port_e port); @@ -132,275 +132,275 @@ const char *tvin_port_str(enum tvin_port_e port); /* tvin signal format table */ typedef enum tvin_sig_fmt_e { - TVIN_SIG_FMT_NULL = 0, - //VGA Formats - TVIN_SIG_FMT_VGA_512X384P_60HZ_D147 = 0x001, - TVIN_SIG_FMT_VGA_560X384P_60HZ_D147 = 0x002, - TVIN_SIG_FMT_VGA_640X200P_59HZ_D924 = 0x003, - TVIN_SIG_FMT_VGA_640X350P_85HZ_D080 = 0x004, - TVIN_SIG_FMT_VGA_640X400P_59HZ_D940 = 0x005, - TVIN_SIG_FMT_VGA_640X400P_85HZ_D080 = 0x006, - TVIN_SIG_FMT_VGA_640X400P_59HZ_D638 = 0x007, - TVIN_SIG_FMT_VGA_640X400P_56HZ_D416 = 0x008, - TVIN_SIG_FMT_VGA_640X480P_66HZ_D619 = 0x009, - TVIN_SIG_FMT_VGA_640X480P_66HZ_D667 = 0x00a, - TVIN_SIG_FMT_VGA_640X480P_59HZ_D940 = 0x00b, - TVIN_SIG_FMT_VGA_640X480P_60HZ_D000 = 0x00c, - TVIN_SIG_FMT_VGA_640X480P_72HZ_D809 = 0x00d, - TVIN_SIG_FMT_VGA_640X480P_75HZ_D000_A = 0x00e, - TVIN_SIG_FMT_VGA_640X480P_85HZ_D008 = 0x00f, - TVIN_SIG_FMT_VGA_640X480P_59HZ_D638 = 0x010, - TVIN_SIG_FMT_VGA_640X480P_75HZ_D000_B = 0x011, - TVIN_SIG_FMT_VGA_640X870P_75HZ_D000 = 0x012, - TVIN_SIG_FMT_VGA_720X350P_70HZ_D086 = 0x013, - TVIN_SIG_FMT_VGA_720X400P_85HZ_D039 = 0x014, - TVIN_SIG_FMT_VGA_720X400P_70HZ_D086 = 0x015, - TVIN_SIG_FMT_VGA_720X400P_87HZ_D849 = 0x016, - TVIN_SIG_FMT_VGA_720X400P_59HZ_D940 = 0x017, - TVIN_SIG_FMT_VGA_720X480P_59HZ_D940 = 0x018, - TVIN_SIG_FMT_VGA_768X480P_59HZ_D896 = 0x019, - TVIN_SIG_FMT_VGA_800X600P_56HZ_D250 = 0x01a, - TVIN_SIG_FMT_VGA_800X600P_60HZ_D000 = 0x01b, - TVIN_SIG_FMT_VGA_800X600P_60HZ_D000_A = 0x01c, - TVIN_SIG_FMT_VGA_800X600P_60HZ_D317 = 0x01d, - TVIN_SIG_FMT_VGA_800X600P_72HZ_D188 = 0x01e, - TVIN_SIG_FMT_VGA_800X600P_75HZ_D000 = 0x01f, - TVIN_SIG_FMT_VGA_800X600P_85HZ_D061 = 0x020, - TVIN_SIG_FMT_VGA_832X624P_75HZ_D087 = 0x021, - TVIN_SIG_FMT_VGA_848X480P_84HZ_D751 = 0x022, - TVIN_SIG_FMT_VGA_960X600P_59HZ_D635 = 0x023, - TVIN_SIG_FMT_VGA_1024X768P_59HZ_D278 = 0x024, - TVIN_SIG_FMT_VGA_1024X768P_60HZ_D000 = 0x025, - TVIN_SIG_FMT_VGA_1024X768P_60HZ_D000_A = 0x026, - TVIN_SIG_FMT_VGA_1024X768P_60HZ_D000_B = 0x027, - TVIN_SIG_FMT_VGA_1024X768P_74HZ_D927 = 0x028, - TVIN_SIG_FMT_VGA_1024X768P_60HZ_D004 = 0x029, - TVIN_SIG_FMT_VGA_1024X768P_70HZ_D069 = 0x02a, - TVIN_SIG_FMT_VGA_1024X768P_75HZ_D029 = 0x02b, - TVIN_SIG_FMT_VGA_1024X768P_84HZ_D997 = 0x02c, - TVIN_SIG_FMT_VGA_1024X768P_74HZ_D925 = 0x02d, - TVIN_SIG_FMT_VGA_1024X768P_60HZ_D020 = 0x02e, - TVIN_SIG_FMT_VGA_1024X768P_70HZ_D008 = 0x02f, - TVIN_SIG_FMT_VGA_1024X768P_75HZ_D782 = 0x030, - TVIN_SIG_FMT_VGA_1024X768P_77HZ_D069 = 0x031, - TVIN_SIG_FMT_VGA_1024X768P_71HZ_D799 = 0x032, - TVIN_SIG_FMT_VGA_1024X1024P_60HZ_D000 = 0x033, - TVIN_SIG_FMT_VGA_1152X864P_60HZ_D000 = 0x034, - TVIN_SIG_FMT_VGA_1152X864P_70HZ_D012 = 0x035, - TVIN_SIG_FMT_VGA_1152X864P_75HZ_D000 = 0x036, - TVIN_SIG_FMT_VGA_1152X864P_84HZ_D999 = 0x037, - TVIN_SIG_FMT_VGA_1152X870P_75HZ_D062 = 0x038, - TVIN_SIG_FMT_VGA_1152X900P_65HZ_D950 = 0x039, - TVIN_SIG_FMT_VGA_1152X900P_66HZ_D004 = 0x03a, - TVIN_SIG_FMT_VGA_1152X900P_76HZ_D047 = 0x03b, - TVIN_SIG_FMT_VGA_1152X900P_76HZ_D149 = 0x03c, - TVIN_SIG_FMT_VGA_1280X720P_59HZ_D855 = 0x03d, - TVIN_SIG_FMT_VGA_1280X720P_60HZ_D000_A = 0x03e, - TVIN_SIG_FMT_VGA_1280X720P_60HZ_D000_B = 0x03f, - TVIN_SIG_FMT_VGA_1280X720P_60HZ_D000_C = 0x040, - TVIN_SIG_FMT_VGA_1280X720P_60HZ_D000_D = 0x041, - TVIN_SIG_FMT_VGA_1280X768P_59HZ_D870 = 0x042, - TVIN_SIG_FMT_VGA_1280X768P_59HZ_D995 = 0x043, - TVIN_SIG_FMT_VGA_1280X768P_60HZ_D100 = 0x044, - TVIN_SIG_FMT_VGA_1280X768P_85HZ_D000 = 0x045, - TVIN_SIG_FMT_VGA_1280X768P_74HZ_D893 = 0x046, - TVIN_SIG_FMT_VGA_1280X768P_84HZ_D837 = 0x047, - TVIN_SIG_FMT_VGA_1280X800P_59HZ_D810 = 0x048, - TVIN_SIG_FMT_VGA_1280X800P_59HZ_D810_A = 0x049, - TVIN_SIG_FMT_VGA_1280X800P_60HZ_D000 = 0x04a, - TVIN_SIG_FMT_VGA_1280X800P_85HZ_D000 = 0x04b, - TVIN_SIG_FMT_VGA_1280X960P_60HZ_D000 = 0x04c, - TVIN_SIG_FMT_VGA_1280X960P_60HZ_D000_A = 0x04d, - TVIN_SIG_FMT_VGA_1280X960P_75HZ_D000 = 0x04e, - TVIN_SIG_FMT_VGA_1280X960P_85HZ_D002 = 0x04f, - TVIN_SIG_FMT_VGA_1280X1024P_60HZ_D020 = 0x050, - TVIN_SIG_FMT_VGA_1280X1024P_60HZ_D020_A = 0x051, - TVIN_SIG_FMT_VGA_1280X1024P_75HZ_D025 = 0x052, - TVIN_SIG_FMT_VGA_1280X1024P_85HZ_D024 = 0x053, - TVIN_SIG_FMT_VGA_1280X1024P_59HZ_D979 = 0x054, - TVIN_SIG_FMT_VGA_1280X1024P_72HZ_D005 = 0x055, - TVIN_SIG_FMT_VGA_1280X1024P_60HZ_D002 = 0x056, - TVIN_SIG_FMT_VGA_1280X1024P_67HZ_D003 = 0x057, - TVIN_SIG_FMT_VGA_1280X1024P_74HZ_D112 = 0x058, - TVIN_SIG_FMT_VGA_1280X1024P_76HZ_D179 = 0x059, - TVIN_SIG_FMT_VGA_1280X1024P_66HZ_D718 = 0x05a, - TVIN_SIG_FMT_VGA_1280X1024P_66HZ_D677 = 0x05b, - TVIN_SIG_FMT_VGA_1280X1024P_76HZ_D107 = 0x05c, - TVIN_SIG_FMT_VGA_1280X1024P_59HZ_D996 = 0x05d, - TVIN_SIG_FMT_VGA_1280X1024P_60HZ_D000 = 0x05e, - TVIN_SIG_FMT_VGA_1360X768P_59HZ_D799 = 0x05f, - TVIN_SIG_FMT_VGA_1360X768P_60HZ_D015 = 0x060, - TVIN_SIG_FMT_VGA_1360X768P_60HZ_D015_A = 0x061, - TVIN_SIG_FMT_VGA_1360X850P_60HZ_D000 = 0x062, - TVIN_SIG_FMT_VGA_1360X1024P_60HZ_D000 = 0x063, - TVIN_SIG_FMT_VGA_1366X768P_59HZ_D790 = 0x064, - TVIN_SIG_FMT_VGA_1366X768P_60HZ_D000 = 0x065, - TVIN_SIG_FMT_VGA_1400X1050P_59HZ_D978 = 0x066, - TVIN_SIG_FMT_VGA_1440X900P_59HZ_D887 = 0x067, - TVIN_SIG_FMT_VGA_1440X1080P_60HZ_D000 = 0x068, - TVIN_SIG_FMT_VGA_1600X900P_60HZ_D000 = 0x069, - TVIN_SIG_FMT_VGA_1600X1024P_60HZ_D000 = 0x06a, - TVIN_SIG_FMT_VGA_1600X1200P_59HZ_D869 = 0x06b, - TVIN_SIG_FMT_VGA_1600X1200P_60HZ_D000 = 0x06c, - TVIN_SIG_FMT_VGA_1600X1200P_65HZ_D000 = 0x06d, - TVIN_SIG_FMT_VGA_1600X1200P_70HZ_D000 = 0x06e, - TVIN_SIG_FMT_VGA_1680X1050P_59HZ_D954 = 0x06f, - TVIN_SIG_FMT_VGA_1680X1080P_60HZ_D000 = 0x070, - TVIN_SIG_FMT_VGA_1920X1080P_49HZ_D929 = 0x071, - TVIN_SIG_FMT_VGA_1920X1080P_59HZ_D963_A = 0x072, - TVIN_SIG_FMT_VGA_1920X1080P_59HZ_D963 = 0x073, - TVIN_SIG_FMT_VGA_1920X1080P_60HZ_D000 = 0x074, - TVIN_SIG_FMT_VGA_1920X1200P_59HZ_D950 = 0x075, - TVIN_SIG_FMT_VGA_1024X768P_60HZ_D000_C = 0x076, - TVIN_SIG_FMT_VGA_1024X768P_60HZ_D000_D = 0x077, - TVIN_SIG_FMT_VGA_1920X1200P_59HZ_D988 = 0x078, - TVIN_SIG_FMT_VGA_1400X900P_60HZ_D000 = 0x079, - TVIN_SIG_FMT_VGA_1680X1050P_60HZ_D000 = 0x07a, - TVIN_SIG_FMT_VGA_800X600P_60HZ_D062 = 0x07b, - TVIN_SIG_FMT_VGA_800X600P_60HZ_317_B = 0x07c, - TVIN_SIG_FMT_VGA_RESERVE8 = 0x07d, - TVIN_SIG_FMT_VGA_RESERVE9 = 0x07e, - TVIN_SIG_FMT_VGA_RESERVE10 = 0x07f, - TVIN_SIG_FMT_VGA_RESERVE11 = 0x080, - TVIN_SIG_FMT_VGA_RESERVE12 = 0x081, - TVIN_SIG_FMT_VGA_MAX = 0x082, - TVIN_SIG_FMT_VGA_THRESHOLD = 0x200, - //Component Formats - TVIN_SIG_FMT_COMP_480P_60HZ_D000 = 0x201, - TVIN_SIG_FMT_COMP_480I_59HZ_D940 = 0x202, - TVIN_SIG_FMT_COMP_576P_50HZ_D000 = 0x203, - TVIN_SIG_FMT_COMP_576I_50HZ_D000 = 0x204, - TVIN_SIG_FMT_COMP_720P_59HZ_D940 = 0x205, - TVIN_SIG_FMT_COMP_720P_50HZ_D000 = 0x206, - TVIN_SIG_FMT_COMP_1080P_23HZ_D976 = 0x207, - TVIN_SIG_FMT_COMP_1080P_24HZ_D000 = 0x208, - TVIN_SIG_FMT_COMP_1080P_25HZ_D000 = 0x209, - TVIN_SIG_FMT_COMP_1080P_30HZ_D000 = 0x20a, - TVIN_SIG_FMT_COMP_1080P_50HZ_D000 = 0x20b, - TVIN_SIG_FMT_COMP_1080P_60HZ_D000 = 0x20c, - TVIN_SIG_FMT_COMP_1080I_47HZ_D952 = 0x20d, - TVIN_SIG_FMT_COMP_1080I_48HZ_D000 = 0x20e, - TVIN_SIG_FMT_COMP_1080I_50HZ_D000_A = 0x20f, - TVIN_SIG_FMT_COMP_1080I_50HZ_D000_B = 0x210, - TVIN_SIG_FMT_COMP_1080I_50HZ_D000_C = 0x211, - TVIN_SIG_FMT_COMP_1080I_60HZ_D000 = 0x212, - TVIN_SIG_FMT_COMP_MAX = 0x213, - TVIN_SIG_FMT_COMP_THRESHOLD = 0x400, - //HDMI Formats - TVIN_SIG_FMT_HDMI_640X480P_60HZ = 0x401, - TVIN_SIG_FMT_HDMI_720X480P_60HZ = 0x402, - TVIN_SIG_FMT_HDMI_1280X720P_60HZ = 0x403, - TVIN_SIG_FMT_HDMI_1920X1080I_60HZ = 0x404, - TVIN_SIG_FMT_HDMI_1440X480I_60HZ = 0x405, - TVIN_SIG_FMT_HDMI_1440X240P_60HZ = 0x406, - TVIN_SIG_FMT_HDMI_2880X480I_60HZ = 0x407, - TVIN_SIG_FMT_HDMI_2880X240P_60HZ = 0x408, - TVIN_SIG_FMT_HDMI_1440X480P_60HZ = 0x409, - TVIN_SIG_FMT_HDMI_1920X1080P_60HZ = 0x40a, - TVIN_SIG_FMT_HDMI_720X576P_50HZ = 0x40b, - TVIN_SIG_FMT_HDMI_1280X720P_50HZ = 0x40c, - TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_A = 0x40d, - TVIN_SIG_FMT_HDMI_1440X576I_50HZ = 0x40e, - TVIN_SIG_FMT_HDMI_1440X288P_50HZ = 0x40f, - TVIN_SIG_FMT_HDMI_2880X576I_50HZ = 0x410, - TVIN_SIG_FMT_HDMI_2880X288P_50HZ = 0x411, - TVIN_SIG_FMT_HDMI_1440X576P_50HZ = 0x412, - TVIN_SIG_FMT_HDMI_1920X1080P_50HZ = 0x413, - TVIN_SIG_FMT_HDMI_1920X1080P_24HZ = 0x414, - TVIN_SIG_FMT_HDMI_1920X1080P_25HZ = 0x415, - TVIN_SIG_FMT_HDMI_1920X1080P_30HZ = 0x416, - TVIN_SIG_FMT_HDMI_2880X480P_60HZ = 0x417, - TVIN_SIG_FMT_HDMI_2880X576P_60HZ = 0x418, - TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_B = 0x419, - TVIN_SIG_FMT_HDMI_1920X1080I_100HZ = 0x41a, - TVIN_SIG_FMT_HDMI_1280X720P_100HZ = 0x41b, - TVIN_SIG_FMT_HDMI_720X576P_100HZ = 0x41c, - TVIN_SIG_FMT_HDMI_1440X576I_100HZ = 0x41d, - TVIN_SIG_FMT_HDMI_1920X1080I_120HZ = 0x41e, - TVIN_SIG_FMT_HDMI_1280X720P_120HZ = 0x41f, - TVIN_SIG_FMT_HDMI_720X480P_120HZ = 0x420, - TVIN_SIG_FMT_HDMI_1440X480I_120HZ = 0x421, - TVIN_SIG_FMT_HDMI_720X576P_200HZ = 0x422, - TVIN_SIG_FMT_HDMI_1440X576I_200HZ = 0x423, - TVIN_SIG_FMT_HDMI_720X480P_240HZ = 0x424, - TVIN_SIG_FMT_HDMI_1440X480I_240HZ = 0x425, - TVIN_SIG_FMT_HDMI_1280X720P_24HZ = 0x426, - TVIN_SIG_FMT_HDMI_1280X720P_25HZ = 0x427, - TVIN_SIG_FMT_HDMI_1280X720P_30HZ = 0x428, - TVIN_SIG_FMT_HDMI_1920X1080P_120HZ = 0x429, - TVIN_SIG_FMT_HDMI_1920X1080P_100HZ = 0x42a, - TVIN_SIG_FMT_HDMI_1280X720P_60HZ_FRAME_PACKING = 0x42b, - TVIN_SIG_FMT_HDMI_1280X720P_50HZ_FRAME_PACKING = 0x42c, - TVIN_SIG_FMT_HDMI_1280X720P_24HZ_FRAME_PACKING = 0x42d, - TVIN_SIG_FMT_HDMI_1280X720P_30HZ_FRAME_PACKING = 0x42e, - TVIN_SIG_FMT_HDMI_1920X1080I_60HZ_FRAME_PACKING = 0x42f, - TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_FRAME_PACKING = 0x430, - TVIN_SIG_FMT_HDMI_1920X1080P_24HZ_FRAME_PACKING = 0x431, - TVIN_SIG_FMT_HDMI_1920X1080P_30HZ_FRAME_PACKING = 0x432, - TVIN_SIG_FMT_HDMI_800X600_00HZ = 0x433, - TVIN_SIG_FMT_HDMI_1024X768_00HZ = 0x434, - TVIN_SIG_FMT_HDMI_720X400_00HZ = 0x435, - TVIN_SIG_FMT_HDMI_1280X768_00HZ = 0x436, - TVIN_SIG_FMT_HDMI_1280X800_00HZ = 0x437, - TVIN_SIG_FMT_HDMI_1280X960_00HZ = 0x438, - TVIN_SIG_FMT_HDMI_1280X1024_00HZ = 0x439, - TVIN_SIG_FMT_HDMI_1360X768_00HZ = 0x43a, - TVIN_SIG_FMT_HDMI_1366X768_00HZ = 0x43b, - TVIN_SIG_FMT_HDMI_1600X1200_00HZ = 0x43c, - TVIN_SIG_FMT_HDMI_1920X1200_00HZ = 0x43d, - TVIN_SIG_FMT_HDMI_1440X900_00HZ = 0x43e, - TVIN_SIG_FMT_HDMI_1400X1050_00HZ = 0x43f, - TVIN_SIG_FMT_HDMI_1680X1050_00HZ = 0x440, - /* for alternative and 4k2k */ - TVIN_SIG_FMT_HDMI_1920X1080I_60HZ_ALTERNATIVE = 0x441, - TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_ALTERNATIVE = 0x442, - TVIN_SIG_FMT_HDMI_1920X1080P_24HZ_ALTERNATIVE = 0x443, - TVIN_SIG_FMT_HDMI_1920X1080P_30HZ_ALTERNATIVE = 0x444, - TVIN_SIG_FMT_HDMI_3840_2160_00HZ = 0x445, - TVIN_SIG_FMT_HDMI_4096_2160_00HZ = 0x446, - TVIN_SIG_FMT_HDMI_RESERVE7 = 0x447, - TVIN_SIG_FMT_HDMI_RESERVE8 = 0x448, - TVIN_SIG_FMT_HDMI_RESERVE9 = 0x449, - TVIN_SIG_FMT_HDMI_RESERVE10 = 0x44a, - TVIN_SIG_FMT_HDMI_RESERVE11 = 0x44b, - TVIN_SIG_FMT_HDMI_720X480P_60HZ_FRAME_PACKING = 0x44c, - TVIN_SIG_FMT_HDMI_720X576P_50HZ_FRAME_PACKING = 0x44d, - TVIN_SIG_FMT_HDMI_MAX = 0x44e, - TVIN_SIG_FMT_HDMI_THRESHOLD = 0x600, - //Video Formats - TVIN_SIG_FMT_CVBS_NTSC_M = 0x601, - TVIN_SIG_FMT_CVBS_NTSC_443 = 0x602, - TVIN_SIG_FMT_CVBS_PAL_I = 0x603, - TVIN_SIG_FMT_CVBS_PAL_M = 0x604, - TVIN_SIG_FMT_CVBS_PAL_60 = 0x605, - TVIN_SIG_FMT_CVBS_PAL_CN = 0x606, - TVIN_SIG_FMT_CVBS_SECAM = 0x607, - TVIN_SIG_FMT_CVBS_MAX = 0x608, - TVIN_SIG_FMT_CVBS_THRESHOLD = 0x800, - //656 Formats - TVIN_SIG_FMT_BT656IN_576I_50HZ = 0x801, - TVIN_SIG_FMT_BT656IN_480I_60HZ = 0x802, - //601 Formats - TVIN_SIG_FMT_BT601IN_576I_50HZ = 0x803, - TVIN_SIG_FMT_BT601IN_480I_60HZ = 0x804, - //Camera Formats - TVIN_SIG_FMT_CAMERA_640X480P_30HZ = 0x805, - TVIN_SIG_FMT_CAMERA_800X600P_30HZ = 0x806, - TVIN_SIG_FMT_CAMERA_1024X768P_30HZ = 0x807, - TVIN_SIG_FMT_CAMERA_1920X1080P_30HZ = 0x808, - TVIN_SIG_FMT_CAMERA_1280X720P_30HZ = 0x809, - TVIN_SIG_FMT_BT601_MAX = 0x80a, - TVIN_SIG_FMT_BT601_THRESHOLD = 0xa00, - TVIN_SIG_FMT_MAX, + TVIN_SIG_FMT_NULL = 0, + //VGA Formats + TVIN_SIG_FMT_VGA_512X384P_60HZ_D147 = 0x001, + TVIN_SIG_FMT_VGA_560X384P_60HZ_D147 = 0x002, + TVIN_SIG_FMT_VGA_640X200P_59HZ_D924 = 0x003, + TVIN_SIG_FMT_VGA_640X350P_85HZ_D080 = 0x004, + TVIN_SIG_FMT_VGA_640X400P_59HZ_D940 = 0x005, + TVIN_SIG_FMT_VGA_640X400P_85HZ_D080 = 0x006, + TVIN_SIG_FMT_VGA_640X400P_59HZ_D638 = 0x007, + TVIN_SIG_FMT_VGA_640X400P_56HZ_D416 = 0x008, + TVIN_SIG_FMT_VGA_640X480P_66HZ_D619 = 0x009, + TVIN_SIG_FMT_VGA_640X480P_66HZ_D667 = 0x00a, + TVIN_SIG_FMT_VGA_640X480P_59HZ_D940 = 0x00b, + TVIN_SIG_FMT_VGA_640X480P_60HZ_D000 = 0x00c, + TVIN_SIG_FMT_VGA_640X480P_72HZ_D809 = 0x00d, + TVIN_SIG_FMT_VGA_640X480P_75HZ_D000_A = 0x00e, + TVIN_SIG_FMT_VGA_640X480P_85HZ_D008 = 0x00f, + TVIN_SIG_FMT_VGA_640X480P_59HZ_D638 = 0x010, + TVIN_SIG_FMT_VGA_640X480P_75HZ_D000_B = 0x011, + TVIN_SIG_FMT_VGA_640X870P_75HZ_D000 = 0x012, + TVIN_SIG_FMT_VGA_720X350P_70HZ_D086 = 0x013, + TVIN_SIG_FMT_VGA_720X400P_85HZ_D039 = 0x014, + TVIN_SIG_FMT_VGA_720X400P_70HZ_D086 = 0x015, + TVIN_SIG_FMT_VGA_720X400P_87HZ_D849 = 0x016, + TVIN_SIG_FMT_VGA_720X400P_59HZ_D940 = 0x017, + TVIN_SIG_FMT_VGA_720X480P_59HZ_D940 = 0x018, + TVIN_SIG_FMT_VGA_768X480P_59HZ_D896 = 0x019, + TVIN_SIG_FMT_VGA_800X600P_56HZ_D250 = 0x01a, + TVIN_SIG_FMT_VGA_800X600P_60HZ_D000 = 0x01b, + TVIN_SIG_FMT_VGA_800X600P_60HZ_D000_A = 0x01c, + TVIN_SIG_FMT_VGA_800X600P_60HZ_D317 = 0x01d, + TVIN_SIG_FMT_VGA_800X600P_72HZ_D188 = 0x01e, + TVIN_SIG_FMT_VGA_800X600P_75HZ_D000 = 0x01f, + TVIN_SIG_FMT_VGA_800X600P_85HZ_D061 = 0x020, + TVIN_SIG_FMT_VGA_832X624P_75HZ_D087 = 0x021, + TVIN_SIG_FMT_VGA_848X480P_84HZ_D751 = 0x022, + TVIN_SIG_FMT_VGA_960X600P_59HZ_D635 = 0x023, + TVIN_SIG_FMT_VGA_1024X768P_59HZ_D278 = 0x024, + TVIN_SIG_FMT_VGA_1024X768P_60HZ_D000 = 0x025, + TVIN_SIG_FMT_VGA_1024X768P_60HZ_D000_A = 0x026, + TVIN_SIG_FMT_VGA_1024X768P_60HZ_D000_B = 0x027, + TVIN_SIG_FMT_VGA_1024X768P_74HZ_D927 = 0x028, + TVIN_SIG_FMT_VGA_1024X768P_60HZ_D004 = 0x029, + TVIN_SIG_FMT_VGA_1024X768P_70HZ_D069 = 0x02a, + TVIN_SIG_FMT_VGA_1024X768P_75HZ_D029 = 0x02b, + TVIN_SIG_FMT_VGA_1024X768P_84HZ_D997 = 0x02c, + TVIN_SIG_FMT_VGA_1024X768P_74HZ_D925 = 0x02d, + TVIN_SIG_FMT_VGA_1024X768P_60HZ_D020 = 0x02e, + TVIN_SIG_FMT_VGA_1024X768P_70HZ_D008 = 0x02f, + TVIN_SIG_FMT_VGA_1024X768P_75HZ_D782 = 0x030, + TVIN_SIG_FMT_VGA_1024X768P_77HZ_D069 = 0x031, + TVIN_SIG_FMT_VGA_1024X768P_71HZ_D799 = 0x032, + TVIN_SIG_FMT_VGA_1024X1024P_60HZ_D000 = 0x033, + TVIN_SIG_FMT_VGA_1152X864P_60HZ_D000 = 0x034, + TVIN_SIG_FMT_VGA_1152X864P_70HZ_D012 = 0x035, + TVIN_SIG_FMT_VGA_1152X864P_75HZ_D000 = 0x036, + TVIN_SIG_FMT_VGA_1152X864P_84HZ_D999 = 0x037, + TVIN_SIG_FMT_VGA_1152X870P_75HZ_D062 = 0x038, + TVIN_SIG_FMT_VGA_1152X900P_65HZ_D950 = 0x039, + TVIN_SIG_FMT_VGA_1152X900P_66HZ_D004 = 0x03a, + TVIN_SIG_FMT_VGA_1152X900P_76HZ_D047 = 0x03b, + TVIN_SIG_FMT_VGA_1152X900P_76HZ_D149 = 0x03c, + TVIN_SIG_FMT_VGA_1280X720P_59HZ_D855 = 0x03d, + TVIN_SIG_FMT_VGA_1280X720P_60HZ_D000_A = 0x03e, + TVIN_SIG_FMT_VGA_1280X720P_60HZ_D000_B = 0x03f, + TVIN_SIG_FMT_VGA_1280X720P_60HZ_D000_C = 0x040, + TVIN_SIG_FMT_VGA_1280X720P_60HZ_D000_D = 0x041, + TVIN_SIG_FMT_VGA_1280X768P_59HZ_D870 = 0x042, + TVIN_SIG_FMT_VGA_1280X768P_59HZ_D995 = 0x043, + TVIN_SIG_FMT_VGA_1280X768P_60HZ_D100 = 0x044, + TVIN_SIG_FMT_VGA_1280X768P_85HZ_D000 = 0x045, + TVIN_SIG_FMT_VGA_1280X768P_74HZ_D893 = 0x046, + TVIN_SIG_FMT_VGA_1280X768P_84HZ_D837 = 0x047, + TVIN_SIG_FMT_VGA_1280X800P_59HZ_D810 = 0x048, + TVIN_SIG_FMT_VGA_1280X800P_59HZ_D810_A = 0x049, + TVIN_SIG_FMT_VGA_1280X800P_60HZ_D000 = 0x04a, + TVIN_SIG_FMT_VGA_1280X800P_85HZ_D000 = 0x04b, + TVIN_SIG_FMT_VGA_1280X960P_60HZ_D000 = 0x04c, + TVIN_SIG_FMT_VGA_1280X960P_60HZ_D000_A = 0x04d, + TVIN_SIG_FMT_VGA_1280X960P_75HZ_D000 = 0x04e, + TVIN_SIG_FMT_VGA_1280X960P_85HZ_D002 = 0x04f, + TVIN_SIG_FMT_VGA_1280X1024P_60HZ_D020 = 0x050, + TVIN_SIG_FMT_VGA_1280X1024P_60HZ_D020_A = 0x051, + TVIN_SIG_FMT_VGA_1280X1024P_75HZ_D025 = 0x052, + TVIN_SIG_FMT_VGA_1280X1024P_85HZ_D024 = 0x053, + TVIN_SIG_FMT_VGA_1280X1024P_59HZ_D979 = 0x054, + TVIN_SIG_FMT_VGA_1280X1024P_72HZ_D005 = 0x055, + TVIN_SIG_FMT_VGA_1280X1024P_60HZ_D002 = 0x056, + TVIN_SIG_FMT_VGA_1280X1024P_67HZ_D003 = 0x057, + TVIN_SIG_FMT_VGA_1280X1024P_74HZ_D112 = 0x058, + TVIN_SIG_FMT_VGA_1280X1024P_76HZ_D179 = 0x059, + TVIN_SIG_FMT_VGA_1280X1024P_66HZ_D718 = 0x05a, + TVIN_SIG_FMT_VGA_1280X1024P_66HZ_D677 = 0x05b, + TVIN_SIG_FMT_VGA_1280X1024P_76HZ_D107 = 0x05c, + TVIN_SIG_FMT_VGA_1280X1024P_59HZ_D996 = 0x05d, + TVIN_SIG_FMT_VGA_1280X1024P_60HZ_D000 = 0x05e, + TVIN_SIG_FMT_VGA_1360X768P_59HZ_D799 = 0x05f, + TVIN_SIG_FMT_VGA_1360X768P_60HZ_D015 = 0x060, + TVIN_SIG_FMT_VGA_1360X768P_60HZ_D015_A = 0x061, + TVIN_SIG_FMT_VGA_1360X850P_60HZ_D000 = 0x062, + TVIN_SIG_FMT_VGA_1360X1024P_60HZ_D000 = 0x063, + TVIN_SIG_FMT_VGA_1366X768P_59HZ_D790 = 0x064, + TVIN_SIG_FMT_VGA_1366X768P_60HZ_D000 = 0x065, + TVIN_SIG_FMT_VGA_1400X1050P_59HZ_D978 = 0x066, + TVIN_SIG_FMT_VGA_1440X900P_59HZ_D887 = 0x067, + TVIN_SIG_FMT_VGA_1440X1080P_60HZ_D000 = 0x068, + TVIN_SIG_FMT_VGA_1600X900P_60HZ_D000 = 0x069, + TVIN_SIG_FMT_VGA_1600X1024P_60HZ_D000 = 0x06a, + TVIN_SIG_FMT_VGA_1600X1200P_59HZ_D869 = 0x06b, + TVIN_SIG_FMT_VGA_1600X1200P_60HZ_D000 = 0x06c, + TVIN_SIG_FMT_VGA_1600X1200P_65HZ_D000 = 0x06d, + TVIN_SIG_FMT_VGA_1600X1200P_70HZ_D000 = 0x06e, + TVIN_SIG_FMT_VGA_1680X1050P_59HZ_D954 = 0x06f, + TVIN_SIG_FMT_VGA_1680X1080P_60HZ_D000 = 0x070, + TVIN_SIG_FMT_VGA_1920X1080P_49HZ_D929 = 0x071, + TVIN_SIG_FMT_VGA_1920X1080P_59HZ_D963_A = 0x072, + TVIN_SIG_FMT_VGA_1920X1080P_59HZ_D963 = 0x073, + TVIN_SIG_FMT_VGA_1920X1080P_60HZ_D000 = 0x074, + TVIN_SIG_FMT_VGA_1920X1200P_59HZ_D950 = 0x075, + TVIN_SIG_FMT_VGA_1024X768P_60HZ_D000_C = 0x076, + TVIN_SIG_FMT_VGA_1024X768P_60HZ_D000_D = 0x077, + TVIN_SIG_FMT_VGA_1920X1200P_59HZ_D988 = 0x078, + TVIN_SIG_FMT_VGA_1400X900P_60HZ_D000 = 0x079, + TVIN_SIG_FMT_VGA_1680X1050P_60HZ_D000 = 0x07a, + TVIN_SIG_FMT_VGA_800X600P_60HZ_D062 = 0x07b, + TVIN_SIG_FMT_VGA_800X600P_60HZ_317_B = 0x07c, + TVIN_SIG_FMT_VGA_RESERVE8 = 0x07d, + TVIN_SIG_FMT_VGA_RESERVE9 = 0x07e, + TVIN_SIG_FMT_VGA_RESERVE10 = 0x07f, + TVIN_SIG_FMT_VGA_RESERVE11 = 0x080, + TVIN_SIG_FMT_VGA_RESERVE12 = 0x081, + TVIN_SIG_FMT_VGA_MAX = 0x082, + TVIN_SIG_FMT_VGA_THRESHOLD = 0x200, + //Component Formats + TVIN_SIG_FMT_COMP_480P_60HZ_D000 = 0x201, + TVIN_SIG_FMT_COMP_480I_59HZ_D940 = 0x202, + TVIN_SIG_FMT_COMP_576P_50HZ_D000 = 0x203, + TVIN_SIG_FMT_COMP_576I_50HZ_D000 = 0x204, + TVIN_SIG_FMT_COMP_720P_59HZ_D940 = 0x205, + TVIN_SIG_FMT_COMP_720P_50HZ_D000 = 0x206, + TVIN_SIG_FMT_COMP_1080P_23HZ_D976 = 0x207, + TVIN_SIG_FMT_COMP_1080P_24HZ_D000 = 0x208, + TVIN_SIG_FMT_COMP_1080P_25HZ_D000 = 0x209, + TVIN_SIG_FMT_COMP_1080P_30HZ_D000 = 0x20a, + TVIN_SIG_FMT_COMP_1080P_50HZ_D000 = 0x20b, + TVIN_SIG_FMT_COMP_1080P_60HZ_D000 = 0x20c, + TVIN_SIG_FMT_COMP_1080I_47HZ_D952 = 0x20d, + TVIN_SIG_FMT_COMP_1080I_48HZ_D000 = 0x20e, + TVIN_SIG_FMT_COMP_1080I_50HZ_D000_A = 0x20f, + TVIN_SIG_FMT_COMP_1080I_50HZ_D000_B = 0x210, + TVIN_SIG_FMT_COMP_1080I_50HZ_D000_C = 0x211, + TVIN_SIG_FMT_COMP_1080I_60HZ_D000 = 0x212, + TVIN_SIG_FMT_COMP_MAX = 0x213, + TVIN_SIG_FMT_COMP_THRESHOLD = 0x400, + //HDMI Formats + TVIN_SIG_FMT_HDMI_640X480P_60HZ = 0x401, + TVIN_SIG_FMT_HDMI_720X480P_60HZ = 0x402, + TVIN_SIG_FMT_HDMI_1280X720P_60HZ = 0x403, + TVIN_SIG_FMT_HDMI_1920X1080I_60HZ = 0x404, + TVIN_SIG_FMT_HDMI_1440X480I_60HZ = 0x405, + TVIN_SIG_FMT_HDMI_1440X240P_60HZ = 0x406, + TVIN_SIG_FMT_HDMI_2880X480I_60HZ = 0x407, + TVIN_SIG_FMT_HDMI_2880X240P_60HZ = 0x408, + TVIN_SIG_FMT_HDMI_1440X480P_60HZ = 0x409, + TVIN_SIG_FMT_HDMI_1920X1080P_60HZ = 0x40a, + TVIN_SIG_FMT_HDMI_720X576P_50HZ = 0x40b, + TVIN_SIG_FMT_HDMI_1280X720P_50HZ = 0x40c, + TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_A = 0x40d, + TVIN_SIG_FMT_HDMI_1440X576I_50HZ = 0x40e, + TVIN_SIG_FMT_HDMI_1440X288P_50HZ = 0x40f, + TVIN_SIG_FMT_HDMI_2880X576I_50HZ = 0x410, + TVIN_SIG_FMT_HDMI_2880X288P_50HZ = 0x411, + TVIN_SIG_FMT_HDMI_1440X576P_50HZ = 0x412, + TVIN_SIG_FMT_HDMI_1920X1080P_50HZ = 0x413, + TVIN_SIG_FMT_HDMI_1920X1080P_24HZ = 0x414, + TVIN_SIG_FMT_HDMI_1920X1080P_25HZ = 0x415, + TVIN_SIG_FMT_HDMI_1920X1080P_30HZ = 0x416, + TVIN_SIG_FMT_HDMI_2880X480P_60HZ = 0x417, + TVIN_SIG_FMT_HDMI_2880X576P_60HZ = 0x418, + TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_B = 0x419, + TVIN_SIG_FMT_HDMI_1920X1080I_100HZ = 0x41a, + TVIN_SIG_FMT_HDMI_1280X720P_100HZ = 0x41b, + TVIN_SIG_FMT_HDMI_720X576P_100HZ = 0x41c, + TVIN_SIG_FMT_HDMI_1440X576I_100HZ = 0x41d, + TVIN_SIG_FMT_HDMI_1920X1080I_120HZ = 0x41e, + TVIN_SIG_FMT_HDMI_1280X720P_120HZ = 0x41f, + TVIN_SIG_FMT_HDMI_720X480P_120HZ = 0x420, + TVIN_SIG_FMT_HDMI_1440X480I_120HZ = 0x421, + TVIN_SIG_FMT_HDMI_720X576P_200HZ = 0x422, + TVIN_SIG_FMT_HDMI_1440X576I_200HZ = 0x423, + TVIN_SIG_FMT_HDMI_720X480P_240HZ = 0x424, + TVIN_SIG_FMT_HDMI_1440X480I_240HZ = 0x425, + TVIN_SIG_FMT_HDMI_1280X720P_24HZ = 0x426, + TVIN_SIG_FMT_HDMI_1280X720P_25HZ = 0x427, + TVIN_SIG_FMT_HDMI_1280X720P_30HZ = 0x428, + TVIN_SIG_FMT_HDMI_1920X1080P_120HZ = 0x429, + TVIN_SIG_FMT_HDMI_1920X1080P_100HZ = 0x42a, + TVIN_SIG_FMT_HDMI_1280X720P_60HZ_FRAME_PACKING = 0x42b, + TVIN_SIG_FMT_HDMI_1280X720P_50HZ_FRAME_PACKING = 0x42c, + TVIN_SIG_FMT_HDMI_1280X720P_24HZ_FRAME_PACKING = 0x42d, + TVIN_SIG_FMT_HDMI_1280X720P_30HZ_FRAME_PACKING = 0x42e, + TVIN_SIG_FMT_HDMI_1920X1080I_60HZ_FRAME_PACKING = 0x42f, + TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_FRAME_PACKING = 0x430, + TVIN_SIG_FMT_HDMI_1920X1080P_24HZ_FRAME_PACKING = 0x431, + TVIN_SIG_FMT_HDMI_1920X1080P_30HZ_FRAME_PACKING = 0x432, + TVIN_SIG_FMT_HDMI_800X600_00HZ = 0x433, + TVIN_SIG_FMT_HDMI_1024X768_00HZ = 0x434, + TVIN_SIG_FMT_HDMI_720X400_00HZ = 0x435, + TVIN_SIG_FMT_HDMI_1280X768_00HZ = 0x436, + TVIN_SIG_FMT_HDMI_1280X800_00HZ = 0x437, + TVIN_SIG_FMT_HDMI_1280X960_00HZ = 0x438, + TVIN_SIG_FMT_HDMI_1280X1024_00HZ = 0x439, + TVIN_SIG_FMT_HDMI_1360X768_00HZ = 0x43a, + TVIN_SIG_FMT_HDMI_1366X768_00HZ = 0x43b, + TVIN_SIG_FMT_HDMI_1600X1200_00HZ = 0x43c, + TVIN_SIG_FMT_HDMI_1920X1200_00HZ = 0x43d, + TVIN_SIG_FMT_HDMI_1440X900_00HZ = 0x43e, + TVIN_SIG_FMT_HDMI_1400X1050_00HZ = 0x43f, + TVIN_SIG_FMT_HDMI_1680X1050_00HZ = 0x440, + /* for alternative and 4k2k */ + TVIN_SIG_FMT_HDMI_1920X1080I_60HZ_ALTERNATIVE = 0x441, + TVIN_SIG_FMT_HDMI_1920X1080I_50HZ_ALTERNATIVE = 0x442, + TVIN_SIG_FMT_HDMI_1920X1080P_24HZ_ALTERNATIVE = 0x443, + TVIN_SIG_FMT_HDMI_1920X1080P_30HZ_ALTERNATIVE = 0x444, + TVIN_SIG_FMT_HDMI_3840_2160_00HZ = 0x445, + TVIN_SIG_FMT_HDMI_4096_2160_00HZ = 0x446, + TVIN_SIG_FMT_HDMI_RESERVE7 = 0x447, + TVIN_SIG_FMT_HDMI_RESERVE8 = 0x448, + TVIN_SIG_FMT_HDMI_RESERVE9 = 0x449, + TVIN_SIG_FMT_HDMI_RESERVE10 = 0x44a, + TVIN_SIG_FMT_HDMI_RESERVE11 = 0x44b, + TVIN_SIG_FMT_HDMI_720X480P_60HZ_FRAME_PACKING = 0x44c, + TVIN_SIG_FMT_HDMI_720X576P_50HZ_FRAME_PACKING = 0x44d, + TVIN_SIG_FMT_HDMI_MAX = 0x44e, + TVIN_SIG_FMT_HDMI_THRESHOLD = 0x600, + //Video Formats + TVIN_SIG_FMT_CVBS_NTSC_M = 0x601, + TVIN_SIG_FMT_CVBS_NTSC_443 = 0x602, + TVIN_SIG_FMT_CVBS_PAL_I = 0x603, + TVIN_SIG_FMT_CVBS_PAL_M = 0x604, + TVIN_SIG_FMT_CVBS_PAL_60 = 0x605, + TVIN_SIG_FMT_CVBS_PAL_CN = 0x606, + TVIN_SIG_FMT_CVBS_SECAM = 0x607, + TVIN_SIG_FMT_CVBS_MAX = 0x608, + TVIN_SIG_FMT_CVBS_THRESHOLD = 0x800, + //656 Formats + TVIN_SIG_FMT_BT656IN_576I_50HZ = 0x801, + TVIN_SIG_FMT_BT656IN_480I_60HZ = 0x802, + //601 Formats + TVIN_SIG_FMT_BT601IN_576I_50HZ = 0x803, + TVIN_SIG_FMT_BT601IN_480I_60HZ = 0x804, + //Camera Formats + TVIN_SIG_FMT_CAMERA_640X480P_30HZ = 0x805, + TVIN_SIG_FMT_CAMERA_800X600P_30HZ = 0x806, + TVIN_SIG_FMT_CAMERA_1024X768P_30HZ = 0x807, + TVIN_SIG_FMT_CAMERA_1920X1080P_30HZ = 0x808, + TVIN_SIG_FMT_CAMERA_1280X720P_30HZ = 0x809, + TVIN_SIG_FMT_BT601_MAX = 0x80a, + TVIN_SIG_FMT_BT601_THRESHOLD = 0xa00, + TVIN_SIG_FMT_MAX, } tvin_sig_fmt_t; //tvin signal status typedef enum tvin_sig_status_e { - TVIN_SIG_STATUS_NULL = 0, // processing status from init to the finding of the 1st confirmed status - TVIN_SIG_STATUS_NOSIG, // no signal - physically no signal - TVIN_SIG_STATUS_UNSTABLE, // unstable - physically bad signal - TVIN_SIG_STATUS_NOTSUP, // not supported - physically good signal & not supported - TVIN_SIG_STATUS_STABLE, // stable - physically good signal & supported + TVIN_SIG_STATUS_NULL = 0, // processing status from init to the finding of the 1st confirmed status + TVIN_SIG_STATUS_NOSIG, // no signal - physically no signal + TVIN_SIG_STATUS_UNSTABLE, // unstable - physically bad signal + TVIN_SIG_STATUS_NOTSUP, // not supported - physically good signal & not supported + TVIN_SIG_STATUS_STABLE, // stable - physically good signal & supported } tvin_sig_status_t; const char *tvin_sig_status_str(enum tvin_sig_status_e status); @@ -412,97 +412,97 @@ const char *tvin_sig_status_str(enum tvin_sig_status_e status); #define TVIN_PARM_FLAG_2D_TO_3D 0x00000004 //tvin_parm_t.flag[ 2]: 1/enable or 0/disable 2D->3D mode typedef enum tvin_trans_fmt { - TVIN_TFMT_2D = 0, - TVIN_TFMT_3D_LRH_OLOR, // 1 Primary: Side-by-Side(Half) Odd/Left picture, Odd/Right p - TVIN_TFMT_3D_LRH_OLER, // 2 Primary: Side-by-Side(Half) Odd/Left picture, Even/Right picture - TVIN_TFMT_3D_LRH_ELOR, // 3 Primary: Side-by-Side(Half) Even/Left picture, Odd/Right picture - TVIN_TFMT_3D_LRH_ELER, // 4 Primary: Side-by-Side(Half) Even/Left picture, Even/Right picture - TVIN_TFMT_3D_TB, // 5 Primary: Top-and-Bottom - TVIN_TFMT_3D_FP, // 6 Primary: Frame Packing - TVIN_TFMT_3D_FA, // 7 Secondary: Field Alternative - TVIN_TFMT_3D_LA, // 8 Secondary: Line Alternative - TVIN_TFMT_3D_LRF, // 9 Secondary: Side-by-Side(Full) - TVIN_TFMT_3D_LD, // 10 Secondary: L+depth - TVIN_TFMT_3D_LDGD, // 11 Secondary: L+depth+Graphics+Graphics-depth - /* normal 3D format */ - TVIN_TFMT_3D_DET_TB,// 12 - TVIN_TFMT_3D_DET_LR,// 13 - TVIN_TFMT_3D_DET_INTERLACE,// 14 - TVIN_TFMT_3D_DET_CHESSBOARD,// 15 - TVIN_TFMT_3D_MAX, + TVIN_TFMT_2D = 0, + TVIN_TFMT_3D_LRH_OLOR, // 1 Primary: Side-by-Side(Half) Odd/Left picture, Odd/Right p + TVIN_TFMT_3D_LRH_OLER, // 2 Primary: Side-by-Side(Half) Odd/Left picture, Even/Right picture + TVIN_TFMT_3D_LRH_ELOR, // 3 Primary: Side-by-Side(Half) Even/Left picture, Odd/Right picture + TVIN_TFMT_3D_LRH_ELER, // 4 Primary: Side-by-Side(Half) Even/Left picture, Even/Right picture + TVIN_TFMT_3D_TB, // 5 Primary: Top-and-Bottom + TVIN_TFMT_3D_FP, // 6 Primary: Frame Packing + TVIN_TFMT_3D_FA, // 7 Secondary: Field Alternative + TVIN_TFMT_3D_LA, // 8 Secondary: Line Alternative + TVIN_TFMT_3D_LRF, // 9 Secondary: Side-by-Side(Full) + TVIN_TFMT_3D_LD, // 10 Secondary: L+depth + TVIN_TFMT_3D_LDGD, // 11 Secondary: L+depth+Graphics+Graphics-depth + /* normal 3D format */ + TVIN_TFMT_3D_DET_TB,// 12 + TVIN_TFMT_3D_DET_LR,// 13 + TVIN_TFMT_3D_DET_INTERLACE,// 14 + TVIN_TFMT_3D_DET_CHESSBOARD,// 15 + TVIN_TFMT_3D_MAX, } tvin_trans_fmt_t; const char *tvin_trans_fmt_str(enum tvin_trans_fmt trans_fmt); typedef enum tvin_color_fmt_e { - TVIN_RGB444 = 0, - TVIN_YUV422, // 1 - TVIN_YUV444, // 2 - TVIN_YUYV422,// 3 - TVIN_YVYU422,// 4 - TVIN_UYVY422,// 5 - TVIN_VYUY422,// 6 - TVIN_NV12, // 7 - TVIN_NV21, // 8 - TVIN_BGGR, // 9 raw data - TVIN_RGGB, // 10 raw data - TVIN_GBRG, // 11 raw data - TVIN_GRBG, // 12 raw data - TVIN_COLOR_FMT_MAX, + TVIN_RGB444 = 0, + TVIN_YUV422, // 1 + TVIN_YUV444, // 2 + TVIN_YUYV422,// 3 + TVIN_YVYU422,// 4 + TVIN_UYVY422,// 5 + TVIN_VYUY422,// 6 + TVIN_NV12, // 7 + TVIN_NV21, // 8 + TVIN_BGGR, // 9 raw data + TVIN_RGGB, // 10 raw data + TVIN_GBRG, // 11 raw data + TVIN_GRBG, // 12 raw data + TVIN_COLOR_FMT_MAX, } tvin_color_fmt_t; const char *tvin_color_fmt_str(enum tvin_color_fmt_e color_fmt); typedef enum tvin_scan_mode_e { - TVIN_SCAN_MODE_NULL = 0, - TVIN_SCAN_MODE_PROGRESSIVE, - TVIN_SCAN_MODE_INTERLACED, + TVIN_SCAN_MODE_NULL = 0, + TVIN_SCAN_MODE_PROGRESSIVE, + TVIN_SCAN_MODE_INTERLACED, } tvin_scan_mode_t; typedef struct tvin_info_s { - enum tvin_trans_fmt trans_fmt; - enum tvin_sig_fmt_e fmt; - volatile enum tvin_sig_status_e status; - enum tvin_color_fmt_e cfmt; - unsigned int fps; - unsigned int reserved; + enum tvin_trans_fmt trans_fmt; + enum tvin_sig_fmt_e fmt; + volatile enum tvin_sig_status_e status; + enum tvin_color_fmt_e cfmt; + unsigned int fps; + unsigned int reserved; } tvin_info_t; typedef struct tvin_buf_info_s { - unsigned int vf_size; - unsigned int buf_count; - unsigned int buf_width; - unsigned int buf_height; - unsigned int buf_size; - unsigned int wr_list_size; + unsigned int vf_size; + unsigned int buf_count; + unsigned int buf_width; + unsigned int buf_height; + unsigned int buf_size; + unsigned int wr_list_size; } tvin_buf_info_t; typedef struct tvin_video_buf_s { - unsigned int index; - unsigned int reserved; + unsigned int index; + unsigned int reserved; } tvin_video_buf_t; // hs=he=vs=ve=0 is to disable Cut Window typedef struct tvin_cutwin_s { - unsigned short hs; - unsigned short he; - unsigned short vs; - unsigned short ve; + unsigned short hs; + unsigned short he; + unsigned short vs; + unsigned short ve; } tvin_cutwin_t; typedef struct tvin_parm_s { - int index; // index of frontend for vdin - enum tvin_port_e port; // must set port in IOCTL - struct tvin_info_s info; - unsigned int hist_pow; - unsigned int luma_sum; - unsigned int pixel_sum; - unsigned short histgram[64]; - unsigned int flag; - unsigned short dest_width;//for vdin horizontal scale down - unsigned short dest_height;//for vdin vertical scale down - bool h_reverse;//for vdin horizontal reverse - bool v_reverse;//for vdin vertical reverse - unsigned int reserved; + int index; // index of frontend for vdin + enum tvin_port_e port; // must set port in IOCTL + struct tvin_info_s info; + unsigned int hist_pow; + unsigned int luma_sum; + unsigned int pixel_sum; + unsigned short histgram[64]; + unsigned int flag; + unsigned short dest_width;//for vdin horizontal scale down + unsigned short dest_height;//for vdin vertical scale down + bool h_reverse;//for vdin horizontal reverse + bool v_reverse;//for vdin vertical reverse + unsigned int reserved; } tvin_parm_t; @@ -512,292 +512,292 @@ typedef struct tvin_parm_s { // *************************************************************************** typedef enum tvafe_cmd_status_e { - TVAFE_CMD_STATUS_IDLE = 0, // idle, be ready for TVIN_IOC_S_AFE_VGA_AUTO command - TVAFE_CMD_STATUS_PROCESSING, // TVIN_IOC_S_AFE_VGA_AUTO command is in process - TVAFE_CMD_STATUS_SUCCESSFUL, // TVIN_IOC_S_AFE_VGA_AUTO command is done with success - TVAFE_CMD_STATUS_FAILED, // TVIN_IOC_S_AFE_VGA_AUTO command is done with failure - TVAFE_CMD_STATUS_TERMINATED, // TVIN_IOC_S_AFE_VGA_AUTO command is terminated by others related + TVAFE_CMD_STATUS_IDLE = 0, // idle, be ready for TVIN_IOC_S_AFE_VGA_AUTO command + TVAFE_CMD_STATUS_PROCESSING, // TVIN_IOC_S_AFE_VGA_AUTO command is in process + TVAFE_CMD_STATUS_SUCCESSFUL, // TVIN_IOC_S_AFE_VGA_AUTO command is done with success + TVAFE_CMD_STATUS_FAILED, // TVIN_IOC_S_AFE_VGA_AUTO command is done with failure + TVAFE_CMD_STATUS_TERMINATED, // TVIN_IOC_S_AFE_VGA_AUTO command is terminated by others related } tvafe_cmd_status_t; typedef struct tvafe_vga_edid_s { - unsigned char value[256]; //256 byte EDID + unsigned char value[256]; //256 byte EDID } tvafe_vga_edid_t; typedef struct tvafe_comp_wss_s { - unsigned int wss1[5]; - unsigned int wss2[5]; + unsigned int wss1[5]; + unsigned int wss2[5]; } tvafe_comp_wss_t; typedef struct tvafe_vga_parm_s { - signed short clk_step; // clock < 0, tune down clock freq - // clock > 0, tune up clock freq - unsigned short phase; // phase is 0~31, it is absolute value - signed short hpos_step; // hpos_step < 0, shift display to left - // hpos_step > 0, shift display to right - signed short vpos_step; // vpos_step < 0, shift display to top - // vpos_step > 0, shift display to bottom - unsigned int vga_in_clean; // flage for vga clean screen + signed short clk_step; // clock < 0, tune down clock freq + // clock > 0, tune up clock freq + unsigned short phase; // phase is 0~31, it is absolute value + signed short hpos_step; // hpos_step < 0, shift display to left + // hpos_step > 0, shift display to right + signed short vpos_step; // vpos_step < 0, shift display to top + // vpos_step > 0, shift display to bottom + unsigned int vga_in_clean; // flage for vga clean screen } tvafe_vga_parm_t; #define TVAFE_ADC_CAL_VALID 0x00000001 typedef struct tvafe_adc_cal_s { - // ADC A - unsigned short a_analog_clamp; // 0x00~0x7f - unsigned short a_analog_gain; // 0x00~0xff, means 0dB~6dB - unsigned short a_digital_offset1; // offset for fine-tuning - // s11.0: signed value, 11 integer bits, 0 fraction bits - unsigned short a_digital_gain; // 0~3.999 - // u2.10: unsigned value, 2 integer bits, 10 fraction bits - unsigned short a_digital_offset2; // offset for format - // s11.0: signed value, 11 integer bits, 0 fraction bits - // ADC B - unsigned short b_analog_clamp; // ditto to ADC A - unsigned short b_analog_gain; - unsigned short b_digital_offset1; - unsigned short b_digital_gain; - unsigned short b_digital_offset2; - // ADC C - unsigned short c_analog_clamp; // ditto to ADC A - unsigned short c_analog_gain; - unsigned short c_digital_offset1; - unsigned short c_digital_gain; - unsigned short c_digital_offset2; - // ADC D - unsigned short d_analog_clamp; // ditto to ADC A - unsigned short d_analog_gain; - unsigned short d_digital_offset1; - unsigned short d_digital_gain; - unsigned short d_digital_offset2; - unsigned int reserved; // bit[ 0]: TVAFE_ADC_CAL_VALID + // ADC A + unsigned short a_analog_clamp; // 0x00~0x7f + unsigned short a_analog_gain; // 0x00~0xff, means 0dB~6dB + unsigned short a_digital_offset1; // offset for fine-tuning + // s11.0: signed value, 11 integer bits, 0 fraction bits + unsigned short a_digital_gain; // 0~3.999 + // u2.10: unsigned value, 2 integer bits, 10 fraction bits + unsigned short a_digital_offset2; // offset for format + // s11.0: signed value, 11 integer bits, 0 fraction bits + // ADC B + unsigned short b_analog_clamp; // ditto to ADC A + unsigned short b_analog_gain; + unsigned short b_digital_offset1; + unsigned short b_digital_gain; + unsigned short b_digital_offset2; + // ADC C + unsigned short c_analog_clamp; // ditto to ADC A + unsigned short c_analog_gain; + unsigned short c_digital_offset1; + unsigned short c_digital_gain; + unsigned short c_digital_offset2; + // ADC D + unsigned short d_analog_clamp; // ditto to ADC A + unsigned short d_analog_gain; + unsigned short d_digital_offset1; + unsigned short d_digital_gain; + unsigned short d_digital_offset2; + unsigned int reserved; // bit[ 0]: TVAFE_ADC_CAL_VALID } tvafe_adc_cal_t; typedef struct tvafe_adc_cal_clamp_s { - short a_analog_clamp_diff; - short b_analog_clamp_diff; - short c_analog_clamp_diff; + short a_analog_clamp_diff; + short b_analog_clamp_diff; + short c_analog_clamp_diff; } tvafe_adc_cal_clamp_t; typedef struct tvafe_adc_comp_cal_s { - struct tvafe_adc_cal_s comp_cal_val[3]; + struct tvafe_adc_cal_s comp_cal_val[3]; } tvafe_adc_comp_cal_t; typedef enum tvafe_cvbs_video_e { - TVAFE_CVBS_VIDEO_HV_UNLOCKED = 0, - TVAFE_CVBS_VIDEO_H_LOCKED, - TVAFE_CVBS_VIDEO_V_LOCKED, - TVAFE_CVBS_VIDEO_HV_LOCKED, + TVAFE_CVBS_VIDEO_HV_UNLOCKED = 0, + TVAFE_CVBS_VIDEO_H_LOCKED, + TVAFE_CVBS_VIDEO_V_LOCKED, + TVAFE_CVBS_VIDEO_HV_LOCKED, } tvafe_cvbs_video_t; // for pin selection typedef enum tvafe_adc_pin_e { - TVAFE_ADC_PIN_NULL = 0, + TVAFE_ADC_PIN_NULL = 0, #if (MESON_CPU_TYPE == MESON_CPU_TYPE_MESONG9TV) - TVAFE_CVBS_IN0 = 1, - TVAFE_CVBS_IN1 = 2, - TVAFE_CVBS_IN2 = 3, - TVAFE_CVBS_IN3 = 4,//as atvdemod to tvafe + TVAFE_CVBS_IN0 = 1, + TVAFE_CVBS_IN1 = 2, + TVAFE_CVBS_IN2 = 3, + TVAFE_CVBS_IN3 = 4,//as atvdemod to tvafe #else - TVAFE_ADC_PIN_A_PGA_0 = 1, - TVAFE_ADC_PIN_A_PGA_1 = 2, - TVAFE_ADC_PIN_A_PGA_2 = 3, - TVAFE_ADC_PIN_A_PGA_3 = 4, - TVAFE_ADC_PIN_A_PGA_4 = 5, - TVAFE_ADC_PIN_A_PGA_5 = 6, - TVAFE_ADC_PIN_A_PGA_6 = 7, - TVAFE_ADC_PIN_A_PGA_7 = 8, - TVAFE_ADC_PIN_A_0 = 9, - TVAFE_ADC_PIN_A_1 = 10, - TVAFE_ADC_PIN_A_2 = 11, - TVAFE_ADC_PIN_A_3 = 12, - TVAFE_ADC_PIN_A_4 = 13, - TVAFE_ADC_PIN_A_5 = 14, - TVAFE_ADC_PIN_A_6 = 15, - TVAFE_ADC_PIN_A_7 = 16, - TVAFE_ADC_PIN_B_0 = 17, - TVAFE_ADC_PIN_B_1 = 18, - TVAFE_ADC_PIN_B_2 = 19, - TVAFE_ADC_PIN_B_3 = 20, - TVAFE_ADC_PIN_B_4 = 21, - TVAFE_ADC_PIN_B_5 = 22, - TVAFE_ADC_PIN_B_6 = 23, - TVAFE_ADC_PIN_B_7 = 24, - TVAFE_ADC_PIN_C_0 = 25, - TVAFE_ADC_PIN_C_1 = 26, - TVAFE_ADC_PIN_C_2 = 27, - TVAFE_ADC_PIN_C_3 = 28, - TVAFE_ADC_PIN_C_4 = 29, - TVAFE_ADC_PIN_C_5 = 30, - TVAFE_ADC_PIN_C_6 = 31, - TVAFE_ADC_PIN_C_7 = 32, - TVAFE_ADC_PIN_D_0 = 33, - TVAFE_ADC_PIN_D_1 = 34, - TVAFE_ADC_PIN_D_2 = 35, - TVAFE_ADC_PIN_D_3 = 36, - TVAFE_ADC_PIN_D_4 = 37, - TVAFE_ADC_PIN_D_5 = 38, - TVAFE_ADC_PIN_D_6 = 39, - TVAFE_ADC_PIN_D_7 = 40, - TVAFE_ADC_PIN_SOG_0 = 41, - TVAFE_ADC_PIN_SOG_1 = 42, - TVAFE_ADC_PIN_SOG_2 = 43, - TVAFE_ADC_PIN_SOG_3 = 44, - TVAFE_ADC_PIN_SOG_4 = 45, - TVAFE_ADC_PIN_SOG_5 = 46, - TVAFE_ADC_PIN_SOG_6 = 47, - TVAFE_ADC_PIN_SOG_7 = 48, + TVAFE_ADC_PIN_A_PGA_0 = 1, + TVAFE_ADC_PIN_A_PGA_1 = 2, + TVAFE_ADC_PIN_A_PGA_2 = 3, + TVAFE_ADC_PIN_A_PGA_3 = 4, + TVAFE_ADC_PIN_A_PGA_4 = 5, + TVAFE_ADC_PIN_A_PGA_5 = 6, + TVAFE_ADC_PIN_A_PGA_6 = 7, + TVAFE_ADC_PIN_A_PGA_7 = 8, + TVAFE_ADC_PIN_A_0 = 9, + TVAFE_ADC_PIN_A_1 = 10, + TVAFE_ADC_PIN_A_2 = 11, + TVAFE_ADC_PIN_A_3 = 12, + TVAFE_ADC_PIN_A_4 = 13, + TVAFE_ADC_PIN_A_5 = 14, + TVAFE_ADC_PIN_A_6 = 15, + TVAFE_ADC_PIN_A_7 = 16, + TVAFE_ADC_PIN_B_0 = 17, + TVAFE_ADC_PIN_B_1 = 18, + TVAFE_ADC_PIN_B_2 = 19, + TVAFE_ADC_PIN_B_3 = 20, + TVAFE_ADC_PIN_B_4 = 21, + TVAFE_ADC_PIN_B_5 = 22, + TVAFE_ADC_PIN_B_6 = 23, + TVAFE_ADC_PIN_B_7 = 24, + TVAFE_ADC_PIN_C_0 = 25, + TVAFE_ADC_PIN_C_1 = 26, + TVAFE_ADC_PIN_C_2 = 27, + TVAFE_ADC_PIN_C_3 = 28, + TVAFE_ADC_PIN_C_4 = 29, + TVAFE_ADC_PIN_C_5 = 30, + TVAFE_ADC_PIN_C_6 = 31, + TVAFE_ADC_PIN_C_7 = 32, + TVAFE_ADC_PIN_D_0 = 33, + TVAFE_ADC_PIN_D_1 = 34, + TVAFE_ADC_PIN_D_2 = 35, + TVAFE_ADC_PIN_D_3 = 36, + TVAFE_ADC_PIN_D_4 = 37, + TVAFE_ADC_PIN_D_5 = 38, + TVAFE_ADC_PIN_D_6 = 39, + TVAFE_ADC_PIN_D_7 = 40, + TVAFE_ADC_PIN_SOG_0 = 41, + TVAFE_ADC_PIN_SOG_1 = 42, + TVAFE_ADC_PIN_SOG_2 = 43, + TVAFE_ADC_PIN_SOG_3 = 44, + TVAFE_ADC_PIN_SOG_4 = 45, + TVAFE_ADC_PIN_SOG_5 = 46, + TVAFE_ADC_PIN_SOG_6 = 47, + TVAFE_ADC_PIN_SOG_7 = 48, #endif - TVAFE_ADC_PIN_MAX, + TVAFE_ADC_PIN_MAX, } tvafe_adc_pin_t; typedef enum tvafe_src_sig_e { #if (MESON_CPU_TYPE == MESON_CPU_TYPE_MESONG9TV) - CVBS_IN0 = 0, - CVBS_IN1, - CVBS_IN2, - CVBS_IN3, + CVBS_IN0 = 0, + CVBS_IN1, + CVBS_IN2, + CVBS_IN3, #else - CVBS0_Y = 0, - CVBS0_SOG, - CVBS1_Y, - CVBS1_SOG, - CVBS2_Y, - CVBS2_SOG, - CVBS3_Y, - CVBS3_SOG, - CVBS4_Y, - CVBS4_SOG, - CVBS5_Y, - CVBS5_SOG, - CVBS6_Y, - CVBS6_SOG, - CVBS7_Y, - CVBS7_SOG, - S_VIDEO0_Y, - S_VIDEO0_C, - S_VIDEO0_SOG, - S_VIDEO1_Y, - S_VIDEO1_C, - S_VIDEO1_SOG, - S_VIDEO2_Y, - S_VIDEO2_C, - S_VIDEO2_SOG, - S_VIDEO3_Y, - S_VIDEO3_C, - S_VIDEO3_SOG, - S_VIDEO4_Y, - S_VIDEO4_C, - S_VIDEO4_SOG, - S_VIDEO5_Y, - S_VIDEO5_C, - S_VIDEO5_SOG, - S_VIDEO6_Y, - S_VIDEO6_C, - S_VIDEO6_SOG, - S_VIDEO7_Y, - S_VIDEO7_C, - S_VIDEO7_SOG, - VGA0_G, - VGA0_B, - VGA0_R, - VGA0_SOG, - VGA1_G, - VGA1_B, - VGA1_R, - VGA1_SOG, - VGA2_G, - VGA2_B, - VGA2_R, - VGA2_SOG, - VGA3_G, - VGA3_B, - VGA3_R, - VGA3_SOG, - VGA4_G, - VGA4_B, - VGA4_R, - VGA4_SOG, - VGA5_G, - VGA5_B, - VGA5_R, - VGA5_SOG, - VGA6_G, - VGA6_B, - VGA6_R, - VGA6_SOG, - VGA7_G, - VGA7_B, - VGA7_R, - VGA7_SOG, - COMP0_Y, - COMP0_PB, - COMP0_PR, - COMP0_SOG, - COMP1_Y, - COMP1_PB, - COMP1_PR, - COMP1_SOG, - COMP2_Y, - COMP2_PB, - COMP2_PR, - COMP2_SOG, - COMP3_Y, - COMP3_PB, - COMP3_PR, - COMP3_SOG, - COMP4_Y, - COMP4_PB, - COMP4_PR, - COMP4_SOG, - COMP5_Y, - COMP5_PB, - COMP5_PR, - COMP5_SOG, - COMP6_Y, - COMP6_PB, - COMP6_PR, - COMP6_SOG, - COMP7_Y, - COMP7_PB, - COMP7_PR, - COMP7_SOG, - SCART0_G, - SCART0_B, - SCART0_R, - SCART0_CVBS, - SCART1_G, - SCART1_B, - SCART1_R, - SCART1_CVBS, - SCART2_G, - SCART2_B, - SCART2_R, - SCART2_CVBS, - SCART3_G, - SCART3_B, - SCART3_R, - SCART3_CVBS, - SCART4_G, - SCART4_B, - SCART4_R, - SCART4_CVBS, - SCART5_G, - SCART5_B, - SCART5_R, - SCART5_CVBS, - SCART6_G, - SCART6_B, - SCART6_R, - SCART6_CVBS, - SCART7_G, - SCART7_B, - SCART7_R, - SCART7_CVBS, + CVBS0_Y = 0, + CVBS0_SOG, + CVBS1_Y, + CVBS1_SOG, + CVBS2_Y, + CVBS2_SOG, + CVBS3_Y, + CVBS3_SOG, + CVBS4_Y, + CVBS4_SOG, + CVBS5_Y, + CVBS5_SOG, + CVBS6_Y, + CVBS6_SOG, + CVBS7_Y, + CVBS7_SOG, + S_VIDEO0_Y, + S_VIDEO0_C, + S_VIDEO0_SOG, + S_VIDEO1_Y, + S_VIDEO1_C, + S_VIDEO1_SOG, + S_VIDEO2_Y, + S_VIDEO2_C, + S_VIDEO2_SOG, + S_VIDEO3_Y, + S_VIDEO3_C, + S_VIDEO3_SOG, + S_VIDEO4_Y, + S_VIDEO4_C, + S_VIDEO4_SOG, + S_VIDEO5_Y, + S_VIDEO5_C, + S_VIDEO5_SOG, + S_VIDEO6_Y, + S_VIDEO6_C, + S_VIDEO6_SOG, + S_VIDEO7_Y, + S_VIDEO7_C, + S_VIDEO7_SOG, + VGA0_G, + VGA0_B, + VGA0_R, + VGA0_SOG, + VGA1_G, + VGA1_B, + VGA1_R, + VGA1_SOG, + VGA2_G, + VGA2_B, + VGA2_R, + VGA2_SOG, + VGA3_G, + VGA3_B, + VGA3_R, + VGA3_SOG, + VGA4_G, + VGA4_B, + VGA4_R, + VGA4_SOG, + VGA5_G, + VGA5_B, + VGA5_R, + VGA5_SOG, + VGA6_G, + VGA6_B, + VGA6_R, + VGA6_SOG, + VGA7_G, + VGA7_B, + VGA7_R, + VGA7_SOG, + COMP0_Y, + COMP0_PB, + COMP0_PR, + COMP0_SOG, + COMP1_Y, + COMP1_PB, + COMP1_PR, + COMP1_SOG, + COMP2_Y, + COMP2_PB, + COMP2_PR, + COMP2_SOG, + COMP3_Y, + COMP3_PB, + COMP3_PR, + COMP3_SOG, + COMP4_Y, + COMP4_PB, + COMP4_PR, + COMP4_SOG, + COMP5_Y, + COMP5_PB, + COMP5_PR, + COMP5_SOG, + COMP6_Y, + COMP6_PB, + COMP6_PR, + COMP6_SOG, + COMP7_Y, + COMP7_PB, + COMP7_PR, + COMP7_SOG, + SCART0_G, + SCART0_B, + SCART0_R, + SCART0_CVBS, + SCART1_G, + SCART1_B, + SCART1_R, + SCART1_CVBS, + SCART2_G, + SCART2_B, + SCART2_R, + SCART2_CVBS, + SCART3_G, + SCART3_B, + SCART3_R, + SCART3_CVBS, + SCART4_G, + SCART4_B, + SCART4_R, + SCART4_CVBS, + SCART5_G, + SCART5_B, + SCART5_R, + SCART5_CVBS, + SCART6_G, + SCART6_B, + SCART6_R, + SCART6_CVBS, + SCART7_G, + SCART7_B, + SCART7_R, + SCART7_CVBS, #endif - TVAFE_SRC_SIG_MAX_NUM, + TVAFE_SRC_SIG_MAX_NUM, } tvafe_src_sig_t; typedef struct tvafe_pin_mux_s { - enum tvafe_adc_pin_e pin[TVAFE_SRC_SIG_MAX_NUM]; + enum tvafe_adc_pin_e pin[TVAFE_SRC_SIG_MAX_NUM]; } tvafe_pin_mux_t; @@ -854,17 +854,17 @@ typedef struct tvafe_pin_mux_s { // *************************************************************************** typedef enum tvin_path_id_e { - TV_PATH_VDIN_AMVIDEO, - TV_PATH_VDIN_DEINTERLACE_AMVIDEO, - TV_PATH_VDIN_3D_AMVIDEO, - TV_PATH_VDIN_NEW3D_AMVIDEO, - TV_PATH_VDIN_NEW3D_WITHOUTPPMGR_AMVIDEO, - TV_PATH_VDIN_FREESCALE_AMVIDEO, - TV_PATH_DECODER_3D_AMVIDEO, - TV_PATH_DECODER_AMVIDEO, - TV_PATH_DECODER_NEW3D_AMVIDEO, - TV_PATH_DECODER_NEW3D_WITHOUTPPMGR_AMVIDEO, - TV_PATH_MAX, + TV_PATH_VDIN_AMVIDEO, + TV_PATH_VDIN_DEINTERLACE_AMVIDEO, + TV_PATH_VDIN_3D_AMVIDEO, + TV_PATH_VDIN_NEW3D_AMVIDEO, + TV_PATH_VDIN_NEW3D_WITHOUTPPMGR_AMVIDEO, + TV_PATH_VDIN_FREESCALE_AMVIDEO, + TV_PATH_DECODER_3D_AMVIDEO, + TV_PATH_DECODER_AMVIDEO, + TV_PATH_DECODER_NEW3D_AMVIDEO, + TV_PATH_DECODER_NEW3D_WITHOUTPPMGR_AMVIDEO, + TV_PATH_MAX, } tvin_path_id_t; #define CAMERA_IOC_MAGIC 'C' @@ -878,101 +878,101 @@ typedef enum tvin_path_id_e { /*******************************extend define*******************************/ typedef enum tv_source_input_e { - SOURCE_INVALID = -1, - SOURCE_TV = 0, - SOURCE_AV1, - SOURCE_AV2, - SOURCE_YPBPR1, - SOURCE_YPBPR2, - SOURCE_HDMI1, - SOURCE_HDMI2, - SOURCE_HDMI3, - SOURCE_VGA, - SOURCE_MPEG, - SOURCE_DTV, - SOURCE_SVIDEO, - SOURCE_IPTV, - SOURCE_DUMMY, - SOURCE_MAX, + SOURCE_INVALID = -1, + SOURCE_TV = 0, + SOURCE_AV1, + SOURCE_AV2, + SOURCE_YPBPR1, + SOURCE_YPBPR2, + SOURCE_HDMI1, + SOURCE_HDMI2, + SOURCE_HDMI3, + SOURCE_VGA, + SOURCE_MPEG, + SOURCE_DTV, + SOURCE_SVIDEO, + SOURCE_IPTV, + SOURCE_DUMMY, + SOURCE_MAX, } tv_source_input_t; typedef enum tv_source_input_type_e { - SOURCE_TYPE_TV, - SOURCE_TYPE_AV, - SOURCE_TYPE_COMPONENT, - SOURCE_TYPE_HDMI, - SOURCE_TYPE_VGA, - SOURCE_TYPE_MPEG, - SOURCE_TYPE_DTV, - SOURCE_TYPE_SVIDEO, - SOURCE_TYPE_IPTV, - SOURCE_TYPE_MAX, + SOURCE_TYPE_TV, + SOURCE_TYPE_AV, + SOURCE_TYPE_COMPONENT, + SOURCE_TYPE_HDMI, + SOURCE_TYPE_VGA, + SOURCE_TYPE_MPEG, + SOURCE_TYPE_DTV, + SOURCE_TYPE_SVIDEO, + SOURCE_TYPE_IPTV, + SOURCE_TYPE_MAX, } tv_source_input_type_t; typedef enum adc_cal_type_e { - CAL_YPBPR = 0, - CAL_VGA, - CAL_CVBS, + CAL_YPBPR = 0, + CAL_VGA, + CAL_CVBS, } adc_cal_type_t; typedef enum signal_range_e { - RANGE100 = 0, - RANGE75, + RANGE100 = 0, + RANGE75, } signal_range_t; typedef struct adc_cal_s { - unsigned int rcr_max; - unsigned int rcr_min; - unsigned int g_y_max; - unsigned int g_y_min; - unsigned int bcb_max; - unsigned int bcb_min; - unsigned int cr_white; - unsigned int cb_white; - unsigned int cr_black; - unsigned int cb_black; + unsigned int rcr_max; + unsigned int rcr_min; + unsigned int g_y_max; + unsigned int g_y_min; + unsigned int bcb_max; + unsigned int bcb_min; + unsigned int cr_white; + unsigned int cb_white; + unsigned int cr_black; + unsigned int cb_black; } adc_cal_t; typedef struct tvin_window_pos_s { - int x1; - int y1; - int x2; - int y2; + int x1; + int y1; + int x2; + int y2; } tvin_window_pos_t; typedef enum tv_path_type_e { - TV_PATH_TYPE_DEFAULT, - TV_PATH_TYPE_TVIN, - TV_PATH_TYPE_TVIN_PREVIEW, - TV_PATH_TYPE_MAX, + TV_PATH_TYPE_DEFAULT, + TV_PATH_TYPE_TVIN, + TV_PATH_TYPE_TVIN_PREVIEW, + TV_PATH_TYPE_MAX, } tv_path_type_t; typedef enum tv_path_status_e { - TV_PATH_STATUS_NO_DEV = -2, - TV_PATH_STATUS_ERROR = -1, - TV_PATH_STATUS_INACTIVE = 0, - TV_PATH_STATUS_ACTIVE = 1, - TV_PATH_STATUS_MAX, + TV_PATH_STATUS_NO_DEV = -2, + TV_PATH_STATUS_ERROR = -1, + TV_PATH_STATUS_INACTIVE = 0, + TV_PATH_STATUS_ACTIVE = 1, + TV_PATH_STATUS_MAX, } tv_path_status_t; typedef enum tv_audio_channel_e { - TV_AUDIO_LINE_IN_0, - TV_AUDIO_LINE_IN_1, - TV_AUDIO_LINE_IN_2, - TV_AUDIO_LINE_IN_3, - TV_AUDIO_LINE_IN_4, - TV_AUDIO_LINE_IN_5, - TV_AUDIO_LINE_IN_6, - TV_AUDIO_LINE_IN_7, - TV_AUDIO_LINE_IN_MAX, + TV_AUDIO_LINE_IN_0, + TV_AUDIO_LINE_IN_1, + TV_AUDIO_LINE_IN_2, + TV_AUDIO_LINE_IN_3, + TV_AUDIO_LINE_IN_4, + TV_AUDIO_LINE_IN_5, + TV_AUDIO_LINE_IN_6, + TV_AUDIO_LINE_IN_7, + TV_AUDIO_LINE_IN_MAX, } tv_audio_channel_t; typedef enum tv_audio_in_source_type_e { - TV_AUDIO_IN_SOURCE_TYPE_LINEIN, - TV_AUDIO_IN_SOURCE_TYPE_ATV, - TV_AUDIO_IN_SOURCE_TYPE_HDMI, - TV_AUDIO_IN_SOURCE_TYPE_MAX, + TV_AUDIO_IN_SOURCE_TYPE_LINEIN, + TV_AUDIO_IN_SOURCE_TYPE_ATV, + TV_AUDIO_IN_SOURCE_TYPE_HDMI, + TV_AUDIO_IN_SOURCE_TYPE_MAX, } tv_audio_in_source_type_t; #define CC_RESOLUTION_1366X768_W (1366) @@ -983,30 +983,30 @@ typedef enum tv_audio_in_source_type_e { #define CC_RESOLUTION_3840X2160_H (2160) typedef enum tv_source_connect_detect_status_e { - CC_SOURCE_PLUG_OUT = 0, - CC_SOURCE_PLUG_IN = 1, + CC_SOURCE_PLUG_OUT = 0, + CC_SOURCE_PLUG_IN = 1, } tv_source_connect_detect_status_t; //HDMI rx cec typedef struct tagHDMIRxRequestReplyItem { - CCondition WaitReplyCondition; - int WaitCmd; - int WaitLogicAddr; - int WaitTimeOut; - int WaitFlag; - int DataFlag; - struct _cec_msg msg; + CCondition WaitReplyCondition; + int WaitCmd; + int WaitLogicAddr; + int WaitTimeOut; + int WaitFlag; + int DataFlag; + struct _cec_msg msg; } HDMIRxRequestReplyItem; typedef struct _hdcp_ksv { - int bksv0; - int bksv1; + int bksv0; + int bksv1; } _hdcp_ksv; typedef struct am_phase_s { - unsigned int length; // Length of total - unsigned int phase[TVIN_SIG_FMT_COMP_MAX - TVIN_SIG_FMT_VGA_THRESHOLD]; + unsigned int length; // Length of total + unsigned int phase[TVIN_SIG_FMT_COMP_MAX - TVIN_SIG_FMT_VGA_THRESHOLD]; } am_phase_t; @@ -1016,307 +1016,307 @@ typedef struct am_phase_s { class CTvin { public: - CTvin(); - ~CTvin(); - int OpenTvin(); - int init_vdin(); - int uninit_vdin ( void ); - int Tv_init_afe ( void ); - int Tv_uninit_afe ( void ); - int Tvin_AddPath ( tvin_path_id_t pathid ); - int Tvin_RemovePath ( tv_path_type_t pathtype ); - int Tvin_CheckPathActive ( tv_path_type_t path_type, int isCheckD2D3 ); - int setMpeg2Vdin(int enable); - //pre apis - int AFE_DeviceIOCtl ( int request, ... ); - void TvinApi_CloseAFEModule ( void ); - int TvinApi_SetVdinHVScale ( int vdinx, int hscale, int vscale ); - int TvinApi_SetCompPhase ( am_phase_t &am_phase ); - int TvinApi_SetStartDropFrameCn ( int count ); - int TvinApi_SetCompPhaseEnable ( int enable ); - tvin_trans_fmt TvinApi_Get3DDectMode(); - int TvinApi_GetHDMIAudioStatus ( void ); - int TvinApi_LoadPLLValues ( am_regs_t regs ); - int TvinApi_LoadCVD2Values ( am_regs_t regs ); - int TvinApi_GetFbSize ( unsigned int *fb_width, unsigned int *fb_height ); - int Tvin_StartDecoder ( tvin_info_t &info ); - int Tvin_StopDecoder(); - int get_hdmi_sampling_rate(); - int get_hdmi_ksv_info(int source_input, int data_buf[]); - int SwitchPort (tvin_port_t source_port ); - // - void Tvin_SetDepthOf2Dto3D ( int value ); - int set3D_FL_Frame(int value); - int setLatchFlag(int value); - // - int IsFileExist ( const char *file_name ); - char *DelSub ( char *str, char *sub ); - char *VDIN_CheckVideoPath ( const char *videopath ); - int VDIN_AddPath ( const char *videopath ); - int VDIN_RmDefPath ( void ); - int VDIN_RmTvPath ( void ); - int VDIN_AddVideoPath ( int selPath ); - int VDIN_RmPreviewPath ( void ); - int VDIN_GetVdinFd(); - - int VDIN_OpenModule(); - int VDIN_CloseModule(); - int VDIN_DeviceIOCtl ( int request, ... ); - int VDIN_GetDeviceFileHandle(); - int VDIN_OpenPort ( tvin_port_t port ); - int VDIN_ClosePort(); - int VDIN_StartDec ( const struct tvin_parm_s *vdinParam ); - int VDIN_StopDec(); - int VDIN_GetSignalInfo ( struct tvin_info_s *SignalInfo ); - int VDIN_SetVdinParam ( const struct tvin_parm_s *vdinParam ); - int VDIN_GetVdinParam ( const struct tvin_parm_s *vdinParam ); - int VDIN_OnoffVScaler ( int isOn ); - int VDIN_GetDisplayVFreq ( void ); - int VDIN_SetDisplayVFreq ( int freq, int display_resolution , bool isFbc); - - int VDIN_Set2D3DDepth ( int count ); - - int VDIN_Set2Dto3D ( int on_off ); - int VDIN_Set3DCmd ( int cmd ); - - int VDIN_Get_avg_luma(void); - int VDIN_GetHistgram ( int *hisgram ); - int VDIN_SetMVCViewMode ( int mode ); - int VDIN_GetMVCViewMode ( void ); - int VDIN_SetDIBuffMgrMode ( int mgr_mode ); - int VDIN_SetDICFG ( int cfg ); - int VDIN_SetDI3DDetc ( int enable ); - int VDIN_Get3DDetc ( void ); - int VDIN_GetVscalerStatus ( void ); - int VDIN_TurnOnBlackBarDetect ( int isEnable ); - int VDIN_LoadHdcpKey ( unsigned char *hdcpkey_buff ); - int VDIN_KeepLastFrame ( int enable ); - int VDIN_SetVideoFreeze ( int enable ); - int VDIN_SetDIBypasshd ( int enable ); - int VDIN_SetDIBypassAll ( int enable ); - int VDIN_SetDIBypass_Get_Buf_Threshold ( int enable ); - int VDIN_SetDIBypassProg ( int enable ); - int VDIN_SetDIBypassDynamic ( int flag ); - int VDIN_SetDIDet3DMode ( int value ); - int VDIN_SetDIBypass3D ( int enable ); - int VDIN_SetDIBypassPost ( int enable ); - int VDIN_SetDIProg_Proc_Config ( int value ); - int VDIN_SetDIInput2Pre ( int value ); - int VDIN_SetVdinFlag ( int flag ); - int VDIN_EnableRDMA ( int enable ); - int VDIN_GetHdmiHdcpKeyKsvInfo(struct _hdcp_ksv *msg); - int AFE_OpenModule ( void ); - void AFE_CloseModule ( void ); - int AFE_GetDeviceFileHandle(); - int AFE_SetCVBSStd ( tvin_sig_fmt_t cvbs_fmt ); - int AFE_SetVGAEdid ( const unsigned char *ediddata ); - int AFE_GetVGAEdid ( unsigned char *ediddata ); - int AFE_SetADCTimingAdjust ( const struct tvafe_vga_parm_s *timingadj ); - int AFE_GetADCCurrentTimingAdjust ( struct tvafe_vga_parm_s *timingadj ); - int AFE_VGAAutoAdjust ( struct tvafe_vga_parm_s *timingadj ); - int AFE_SetVGAAutoAjust ( void ); - int AFE_GetVGAAutoAdjustCMDStatus ( tvafe_cmd_status_t *Status ); - int AFE_GetAdcCal ( struct tvafe_adc_cal_s *adccalvalue ); - int AFE_SetAdcCal ( struct tvafe_adc_cal_s *adccalvalue ); - int AFE_GetAdcCompCal ( struct tvafe_adc_comp_cal_s *adccalvalue ); - int AFE_SetAdcCompCal ( struct tvafe_adc_comp_cal_s *adccalvalue ); - int AFE_GetYPbPrWSSinfo ( struct tvafe_comp_wss_s *wssinfo ); - unsigned int data_limit ( float data ); - void matrix_convert_yuv709_to_rgb ( unsigned int y, unsigned int u, unsigned int v, unsigned int *r, unsigned int *g, unsigned int *b ); - void re_order ( unsigned int *a, unsigned int *b ); - char *get_cap_addr ( enum adc_cal_type_e calType ); - inline unsigned char get_mem_data ( char *dp, unsigned int addr ); - int get_frame_average ( enum adc_cal_type_e calType, struct adc_cal_s *mem_data ); - struct adc_cal_s get_n_frame_average ( enum adc_cal_type_e calType ) ; - int AFE_GetMemData ( int typeSel, struct adc_cal_s *mem_data ); - int AFE_GetCVBSLockStatus ( enum tvafe_cvbs_video_e *cvbs_lock_status ); - static int CvbsFtmToColorStdEnum(tvin_sig_fmt_t fmt); - int VDIN_GetPortConnect ( int port ); - int VDIN_OpenHDMIPinMuxOn ( bool flag ); - int TVAFE_EnablePlugInDetect ( bool flag ); - int GetITContent(); - /*******************************************extend funs*********************/ - static tv_source_input_type_t Tvin_SourcePortToSourceInputType ( tvin_port_t source_port ); - static tv_source_input_type_t Tvin_SourceInputToSourceInputType ( tv_source_input_t source_input ); - static tvin_port_t Tvin_GetSourcePortBySourceType ( tv_source_input_type_t source_type ); - static tvin_port_t Tvin_GetSourcePortBySourceInput ( tv_source_input_t source_input ); - static unsigned int Tvin_TransPortStringToValue(const char *port_str); - static void Tvin_LoadSourceInputToPortMap(); - static int Tvin_GetSourcePortByCECPhysicalAddress(int physical_addr); - static tv_audio_channel_t Tvin_GetInputSourceAudioChannelIndex ( tv_source_input_t source_input ); - static tv_audio_in_source_type_t Tvin_GetAudioInSourceType ( tv_source_input_t source_input ); - static tv_source_input_t Tvin_PortToSourceInput ( tvin_port_t port ); - static int isVgaFmtInHdmi ( tvin_sig_fmt_t fmt ); - static int isSDFmtInHdmi ( tvin_sig_fmt_t fmt ); - static bool Tvin_is50HzFrameRateFmt ( tvin_sig_fmt_t fmt ); - static bool Tvin_IsDeinterlaceFmt ( tvin_sig_fmt_t fmt ); - static v4l2_std_id CvbsFtmToV4l2ColorStd(tvin_sig_fmt_t fmt); + CTvin(); + ~CTvin(); + int OpenTvin(); + int init_vdin(); + int uninit_vdin ( void ); + int Tv_init_afe ( void ); + int Tv_uninit_afe ( void ); + int Tvin_AddPath ( tvin_path_id_t pathid ); + int Tvin_RemovePath ( tv_path_type_t pathtype ); + int Tvin_CheckPathActive ( tv_path_type_t path_type, int isCheckD2D3 ); + int setMpeg2Vdin(int enable); + //pre apis + int AFE_DeviceIOCtl ( int request, ... ); + void TvinApi_CloseAFEModule ( void ); + int TvinApi_SetVdinHVScale ( int vdinx, int hscale, int vscale ); + int TvinApi_SetCompPhase ( am_phase_t &am_phase ); + int TvinApi_SetStartDropFrameCn ( int count ); + int TvinApi_SetCompPhaseEnable ( int enable ); + tvin_trans_fmt TvinApi_Get3DDectMode(); + int TvinApi_GetHDMIAudioStatus ( void ); + int TvinApi_LoadPLLValues ( am_regs_t regs ); + int TvinApi_LoadCVD2Values ( am_regs_t regs ); + int TvinApi_GetFbSize ( unsigned int *fb_width, unsigned int *fb_height ); + int Tvin_StartDecoder ( tvin_info_t &info ); + int Tvin_StopDecoder(); + int get_hdmi_sampling_rate(); + int get_hdmi_ksv_info(int source_input, int data_buf[]); + int SwitchPort (tvin_port_t source_port ); + // + void Tvin_SetDepthOf2Dto3D ( int value ); + int set3D_FL_Frame(int value); + int setLatchFlag(int value); + // + int IsFileExist ( const char *file_name ); + char *DelSub ( char *str, char *sub ); + char *VDIN_CheckVideoPath ( const char *videopath ); + int VDIN_AddPath ( const char *videopath ); + int VDIN_RmDefPath ( void ); + int VDIN_RmTvPath ( void ); + int VDIN_AddVideoPath ( int selPath ); + int VDIN_RmPreviewPath ( void ); + int VDIN_GetVdinFd(); + + int VDIN_OpenModule(); + int VDIN_CloseModule(); + int VDIN_DeviceIOCtl ( int request, ... ); + int VDIN_GetDeviceFileHandle(); + int VDIN_OpenPort ( tvin_port_t port ); + int VDIN_ClosePort(); + int VDIN_StartDec ( const struct tvin_parm_s *vdinParam ); + int VDIN_StopDec(); + int VDIN_GetSignalInfo ( struct tvin_info_s *SignalInfo ); + int VDIN_SetVdinParam ( const struct tvin_parm_s *vdinParam ); + int VDIN_GetVdinParam ( const struct tvin_parm_s *vdinParam ); + int VDIN_OnoffVScaler ( int isOn ); + int VDIN_GetDisplayVFreq ( void ); + int VDIN_SetDisplayVFreq ( int freq, int display_resolution , bool isFbc); + + int VDIN_Set2D3DDepth ( int count ); + + int VDIN_Set2Dto3D ( int on_off ); + int VDIN_Set3DCmd ( int cmd ); + + int VDIN_Get_avg_luma(void); + int VDIN_GetHistgram ( int *hisgram ); + int VDIN_SetMVCViewMode ( int mode ); + int VDIN_GetMVCViewMode ( void ); + int VDIN_SetDIBuffMgrMode ( int mgr_mode ); + int VDIN_SetDICFG ( int cfg ); + int VDIN_SetDI3DDetc ( int enable ); + int VDIN_Get3DDetc ( void ); + int VDIN_GetVscalerStatus ( void ); + int VDIN_TurnOnBlackBarDetect ( int isEnable ); + int VDIN_LoadHdcpKey ( unsigned char *hdcpkey_buff ); + int VDIN_KeepLastFrame ( int enable ); + int VDIN_SetVideoFreeze ( int enable ); + int VDIN_SetDIBypasshd ( int enable ); + int VDIN_SetDIBypassAll ( int enable ); + int VDIN_SetDIBypass_Get_Buf_Threshold ( int enable ); + int VDIN_SetDIBypassProg ( int enable ); + int VDIN_SetDIBypassDynamic ( int flag ); + int VDIN_SetDIDet3DMode ( int value ); + int VDIN_SetDIBypass3D ( int enable ); + int VDIN_SetDIBypassPost ( int enable ); + int VDIN_SetDIProg_Proc_Config ( int value ); + int VDIN_SetDIInput2Pre ( int value ); + int VDIN_SetVdinFlag ( int flag ); + int VDIN_EnableRDMA ( int enable ); + int VDIN_GetHdmiHdcpKeyKsvInfo(struct _hdcp_ksv *msg); + int AFE_OpenModule ( void ); + void AFE_CloseModule ( void ); + int AFE_GetDeviceFileHandle(); + int AFE_SetCVBSStd ( tvin_sig_fmt_t cvbs_fmt ); + int AFE_SetVGAEdid ( const unsigned char *ediddata ); + int AFE_GetVGAEdid ( unsigned char *ediddata ); + int AFE_SetADCTimingAdjust ( const struct tvafe_vga_parm_s *timingadj ); + int AFE_GetADCCurrentTimingAdjust ( struct tvafe_vga_parm_s *timingadj ); + int AFE_VGAAutoAdjust ( struct tvafe_vga_parm_s *timingadj ); + int AFE_SetVGAAutoAjust ( void ); + int AFE_GetVGAAutoAdjustCMDStatus ( tvafe_cmd_status_t *Status ); + int AFE_GetAdcCal ( struct tvafe_adc_cal_s *adccalvalue ); + int AFE_SetAdcCal ( struct tvafe_adc_cal_s *adccalvalue ); + int AFE_GetAdcCompCal ( struct tvafe_adc_comp_cal_s *adccalvalue ); + int AFE_SetAdcCompCal ( struct tvafe_adc_comp_cal_s *adccalvalue ); + int AFE_GetYPbPrWSSinfo ( struct tvafe_comp_wss_s *wssinfo ); + unsigned int data_limit ( float data ); + void matrix_convert_yuv709_to_rgb ( unsigned int y, unsigned int u, unsigned int v, unsigned int *r, unsigned int *g, unsigned int *b ); + void re_order ( unsigned int *a, unsigned int *b ); + char *get_cap_addr ( enum adc_cal_type_e calType ); + inline unsigned char get_mem_data ( char *dp, unsigned int addr ); + int get_frame_average ( enum adc_cal_type_e calType, struct adc_cal_s *mem_data ); + struct adc_cal_s get_n_frame_average ( enum adc_cal_type_e calType ) ; + int AFE_GetMemData ( int typeSel, struct adc_cal_s *mem_data ); + int AFE_GetCVBSLockStatus ( enum tvafe_cvbs_video_e *cvbs_lock_status ); + static int CvbsFtmToColorStdEnum(tvin_sig_fmt_t fmt); + int VDIN_GetPortConnect ( int port ); + int VDIN_OpenHDMIPinMuxOn ( bool flag ); + int TVAFE_EnablePlugInDetect ( bool flag ); + int GetITContent(); + /*******************************************extend funs*********************/ + static tv_source_input_type_t Tvin_SourcePortToSourceInputType ( tvin_port_t source_port ); + static tv_source_input_type_t Tvin_SourceInputToSourceInputType ( tv_source_input_t source_input ); + static tvin_port_t Tvin_GetSourcePortBySourceType ( tv_source_input_type_t source_type ); + static tvin_port_t Tvin_GetSourcePortBySourceInput ( tv_source_input_t source_input ); + static unsigned int Tvin_TransPortStringToValue(const char *port_str); + static void Tvin_LoadSourceInputToPortMap(); + static int Tvin_GetSourcePortByCECPhysicalAddress(int physical_addr); + static tv_audio_channel_t Tvin_GetInputSourceAudioChannelIndex ( tv_source_input_t source_input ); + static tv_audio_in_source_type_t Tvin_GetAudioInSourceType ( tv_source_input_t source_input ); + static tv_source_input_t Tvin_PortToSourceInput ( tvin_port_t port ); + static int isVgaFmtInHdmi ( tvin_sig_fmt_t fmt ); + static int isSDFmtInHdmi ( tvin_sig_fmt_t fmt ); + static bool Tvin_is50HzFrameRateFmt ( tvin_sig_fmt_t fmt ); + static bool Tvin_IsDeinterlaceFmt ( tvin_sig_fmt_t fmt ); + static v4l2_std_id CvbsFtmToV4l2ColorStd(tvin_sig_fmt_t fmt); public: - class CTvinSigDetect: public CThread { - public: - static const int VDIN_NOSIG_DEFAULT_CHECK_TIMES = 1; - CTvinSigDetect ( CTvin *pTvin ); - ~CTvinSigDetect(); - int startDetect(bool bPause = true); - int stopDetect(); - int pauseDetect(); - int resumeDetect(int later = 0); - int initSigState(); - void setVdinNoSigCheckKeepTimes(int times, bool isOnce);//times is time, ms - int requestAndWaitPauseDetect(); - //first pause detect? ok - tvin_info_t &getCurSigInfo() - { - return m_cur_sig_info; - } - class ISigDetectObserver { - public: - ISigDetectObserver() - {}; - virtual ~ISigDetectObserver() - {}; - virtual void onSigToStable() - {}; - virtual void onSigStableToUnstable() {}; - virtual void onSigStableToUnSupport() {}; - virtual void onSigStableToNoSig() {}; - virtual void onSigUnStableToUnSupport() {}; - virtual void onSigUnStableToNoSig() {}; - virtual void onSigNullToNoSig() {}; - virtual void onSigNoSigToUnstable() {}; - - virtual void onSigStillStable() {}; - virtual void onSigStillUnstable() {}; - virtual void onSigStillNosig() {}; - virtual void onSigStillNoSupport() {}; - virtual void onSigStillNull() {}; - virtual void onStableSigFmtChange() {}; - virtual void onStableTransFmtChange() {}; - - virtual void onSigDetectEnter() {}; - virtual void onSigDetectLoop() {}; - }; - void setObserver ( ISigDetectObserver *pOb ) - { - mpObserver = pOb; - }; - private: - bool threadLoop(); - int Tv_TvinSigDetect ( int &args ); - - //member - tvin_info_t m_cur_sig_info; - tvin_info_t m_pre_sig_info; - int mKeepNosigTime; - bool m_is_nosig_checktimes_once_valid; - CTvin *mpTvin; - mutable CMutex mLock; - CCondition mDetectPauseCondition; - CCondition mRequestPauseCondition; - volatile int m_sig_detect_status; - volatile bool m_request_pause_detect; - enum DetectState { - STATE_STOPED = 0, - STATE_RUNNING, - STATE_PAUSE - }; - int mDetectState; - int mResumeLaterTime; - ISigDetectObserver *mpObserver; - };// - - - - class CHDMIRxCEC: public CThread { - public: - CHDMIRxCEC(CTvin *pTvin); - ~CHDMIRxCEC(); - - class IHDMIRxCECObserver { - public: - IHDMIRxCECObserver() {}; - virtual ~IHDMIRxCECObserver() {}; - virtual void onHDMIRxCECMessage(int msg_len, unsigned char msg_buf[]) {}; - }; - void setObserver ( IHDMIRxCECObserver *pOb ) - { - mpObserver = pOb; - }; - - int start(); - int stop(); - int pause(); - int resume(); - int ClearRxMessageBuffer(); - int processRefreshSrcDevice(int source_input); - int SendCustomMessage(int source_input, unsigned char data_buf[]); - int SendCustomMessageAndWaitReply(int source_input, unsigned char data_buf[], unsigned char reply_buf[], int WaitCmd, int timeout); - int SendBoradcastStandbyMessage(int source_input); - int SendGiveCECVersionMessage(int source_input, unsigned char data_buf[]); - int SendGiveDeviceVendorIDMessage(int source_input, unsigned char data_buf[]); - int SendGiveOSDNameMessage(int source_input, unsigned char data_buf[]); - int SendGivePhysicalAddressMessage(int source_input, int logic_addr, int *physical_addr); - int SendSetMenuLanguageMessage(int source_input, unsigned char data_buf[]); - int SendVendorRemoteKeyDownMessage(int source_input, unsigned char key_val); - int SendVendorRemoteKeyUpMessage(int source_input); - - - private: - int mModuleEnableFlag; - int mRequestPause; - int mState; - IHDMIRxCECObserver *mpObserver; - CTvin *mpTvin; - - bool threadLoop(); - int processData(int msg_cnt); - - int isAllowOperate(int source_input); - int GetModuleEnableFlag(); - int GetDeviceLogicAddr(int source_input); - int SendMessage(struct _cec_msg *msg); - int sendMessageAndWaitReply(struct _cec_msg *msg, struct _cec_msg *reply_msg, int WaitCmd, int timeout); - int GetMessage(struct _cec_msg *msg_list); - int rmFromRequestList(int index); - int addToRequestList(HDMIRxRequestReplyItem *reply_item); - int PrintMessage(const char *func_name, int data_type, struct _cec_msg *msg); - int ClrReplyListItem(HDMIRxRequestReplyItem *reply_item); - int CopyMessageData(unsigned char data_buf[], unsigned char msg_data[], int msg_len); - - int mSourceDevLogicAddrBuf[CC_SOURCE_DEV_REFRESH_CNT]; - int mSourceDevRefreshBuf[CC_SOURCE_DEV_REFRESH_CNT]; - - CCondition mPauseCondition; - mutable CMutex mLock; - mutable CMutex mListLock; - mutable CMutex mReplyLock[CC_REQUEST_LIST_SIZE]; - HDMIRxRequestReplyItem mReplyList[CC_REQUEST_LIST_SIZE]; - struct _cec_msg mMsgBuf[CC_REQUEST_LIST_SIZE]; - - enum RefreshState { - STATE_STOPED = 0, - STATE_RUNNING, - STATE_PAUSE, - STATE_FINISHED, - }; - }; + class CTvinSigDetect: public CThread { + public: + static const int VDIN_NOSIG_DEFAULT_CHECK_TIMES = 1; + CTvinSigDetect ( CTvin *pTvin ); + ~CTvinSigDetect(); + int startDetect(bool bPause = true); + int stopDetect(); + int pauseDetect(); + int resumeDetect(int later = 0); + int initSigState(); + void setVdinNoSigCheckKeepTimes(int times, bool isOnce);//times is time, ms + int requestAndWaitPauseDetect(); + //first pause detect? ok + tvin_info_t &getCurSigInfo() + { + return m_cur_sig_info; + } + class ISigDetectObserver { + public: + ISigDetectObserver() + {}; + virtual ~ISigDetectObserver() + {}; + virtual void onSigToStable() + {}; + virtual void onSigStableToUnstable() {}; + virtual void onSigStableToUnSupport() {}; + virtual void onSigStableToNoSig() {}; + virtual void onSigUnStableToUnSupport() {}; + virtual void onSigUnStableToNoSig() {}; + virtual void onSigNullToNoSig() {}; + virtual void onSigNoSigToUnstable() {}; + + virtual void onSigStillStable() {}; + virtual void onSigStillUnstable() {}; + virtual void onSigStillNosig() {}; + virtual void onSigStillNoSupport() {}; + virtual void onSigStillNull() {}; + virtual void onStableSigFmtChange() {}; + virtual void onStableTransFmtChange() {}; + + virtual void onSigDetectEnter() {}; + virtual void onSigDetectLoop() {}; + }; + void setObserver ( ISigDetectObserver *pOb ) + { + mpObserver = pOb; + }; + private: + bool threadLoop(); + int Tv_TvinSigDetect ( int &args ); + + //member + tvin_info_t m_cur_sig_info; + tvin_info_t m_pre_sig_info; + int mKeepNosigTime; + bool m_is_nosig_checktimes_once_valid; + CTvin *mpTvin; + mutable CMutex mLock; + CCondition mDetectPauseCondition; + CCondition mRequestPauseCondition; + volatile int m_sig_detect_status; + volatile bool m_request_pause_detect; + enum DetectState { + STATE_STOPED = 0, + STATE_RUNNING, + STATE_PAUSE + }; + int mDetectState; + int mResumeLaterTime; + ISigDetectObserver *mpObserver; + };// + + + + class CHDMIRxCEC: public CThread { + public: + CHDMIRxCEC(CTvin *pTvin); + ~CHDMIRxCEC(); + + class IHDMIRxCECObserver { + public: + IHDMIRxCECObserver() {}; + virtual ~IHDMIRxCECObserver() {}; + virtual void onHDMIRxCECMessage(int msg_len, unsigned char msg_buf[]) {}; + }; + void setObserver ( IHDMIRxCECObserver *pOb ) + { + mpObserver = pOb; + }; + + int start(); + int stop(); + int pause(); + int resume(); + int ClearRxMessageBuffer(); + int processRefreshSrcDevice(int source_input); + int SendCustomMessage(int source_input, unsigned char data_buf[]); + int SendCustomMessageAndWaitReply(int source_input, unsigned char data_buf[], unsigned char reply_buf[], int WaitCmd, int timeout); + int SendBoradcastStandbyMessage(int source_input); + int SendGiveCECVersionMessage(int source_input, unsigned char data_buf[]); + int SendGiveDeviceVendorIDMessage(int source_input, unsigned char data_buf[]); + int SendGiveOSDNameMessage(int source_input, unsigned char data_buf[]); + int SendGivePhysicalAddressMessage(int source_input, int logic_addr, int *physical_addr); + int SendSetMenuLanguageMessage(int source_input, unsigned char data_buf[]); + int SendVendorRemoteKeyDownMessage(int source_input, unsigned char key_val); + int SendVendorRemoteKeyUpMessage(int source_input); + + + private: + int mModuleEnableFlag; + int mRequestPause; + int mState; + IHDMIRxCECObserver *mpObserver; + CTvin *mpTvin; + + bool threadLoop(); + int processData(int msg_cnt); + + int isAllowOperate(int source_input); + int GetModuleEnableFlag(); + int GetDeviceLogicAddr(int source_input); + int SendMessage(struct _cec_msg *msg); + int sendMessageAndWaitReply(struct _cec_msg *msg, struct _cec_msg *reply_msg, int WaitCmd, int timeout); + int GetMessage(struct _cec_msg *msg_list); + int rmFromRequestList(int index); + int addToRequestList(HDMIRxRequestReplyItem *reply_item); + int PrintMessage(const char *func_name, int data_type, struct _cec_msg *msg); + int ClrReplyListItem(HDMIRxRequestReplyItem *reply_item); + int CopyMessageData(unsigned char data_buf[], unsigned char msg_data[], int msg_len); + + int mSourceDevLogicAddrBuf[CC_SOURCE_DEV_REFRESH_CNT]; + int mSourceDevRefreshBuf[CC_SOURCE_DEV_REFRESH_CNT]; + + CCondition mPauseCondition; + mutable CMutex mLock; + mutable CMutex mListLock; + mutable CMutex mReplyLock[CC_REQUEST_LIST_SIZE]; + HDMIRxRequestReplyItem mReplyList[CC_REQUEST_LIST_SIZE]; + struct _cec_msg mMsgBuf[CC_REQUEST_LIST_SIZE]; + + enum RefreshState { + STATE_STOPED = 0, + STATE_RUNNING, + STATE_PAUSE, + STATE_FINISHED, + }; + }; private: - int m_vdin_dev_fd; - int afe_dev_fd; - tvin_parm_t m_tvin_param; - tvin_parm_t gTvinVDINParam; - tvin_info_t gTvinVDINSignalInfo; - tvin_parm_t gTvinAFEParam; - tvin_info_t gTvinAFESignalInfo; - static int mSourceInputToPortMap[SOURCE_MAX]; - int gExistD2D3; - char gVideoPath[256]; - int m_is_decoder_start; - - enum tvin_path_id_e m_pathid; - char config_tv_path[64]; - char config_default_path[64]; + int m_vdin_dev_fd; + int afe_dev_fd; + tvin_parm_t m_tvin_param; + tvin_parm_t gTvinVDINParam; + tvin_info_t gTvinVDINSignalInfo; + tvin_parm_t gTvinAFEParam; + tvin_info_t gTvinAFESignalInfo; + static int mSourceInputToPortMap[SOURCE_MAX]; + int gExistD2D3; + char gVideoPath[256]; + int m_is_decoder_start; + + enum tvin_path_id_e m_pathid; + char config_tv_path[64]; + char config_default_path[64]; }; #endif diff --git a/tvapi/libtv/tvsetting/CBlobDevice.cpp b/tvapi/libtv/tvsetting/CBlobDevice.cpp index fa1fb9f..8974fbf 100644 --- a/tvapi/libtv/tvsetting/CBlobDevice.cpp +++ b/tvapi/libtv/tvsetting/CBlobDevice.cpp @@ -12,7 +12,7 @@ CBlobDevice::CBlobDevice() { - m_dev_path[0] = '\0'; + m_dev_path[0] = '\0'; } CBlobDevice::~CBlobDevice() @@ -21,7 +21,7 @@ CBlobDevice::~CBlobDevice() int CBlobDevice::IsFileExist(const char *file_name) { - struct stat tmp_st; + struct stat tmp_st; - return stat(file_name, &tmp_st); + return stat(file_name, &tmp_st); } diff --git a/tvapi/libtv/tvsetting/CBlobDevice.h b/tvapi/libtv/tvsetting/CBlobDevice.h index 135ae7e..b8259a7 100644 --- a/tvapi/libtv/tvsetting/CBlobDevice.h +++ b/tvapi/libtv/tvsetting/CBlobDevice.h @@ -4,46 +4,46 @@ class CBlobDevice { public: - static const int CC_MAX_FILE_PATH = 256; - static const int CC_ERR_FILE_HANDLE = -1; - static const int CC_INIT_BYTE_VAL = 0xFF; - static const int CC_SSM_PROTECT_ON = 0; - static const int CC_SSM_PROTECT_OFF = 1; - - static const int CC_DEVICE_E2PROM = (0); - static const int CC_DEVICE_SPI = (1); - static const int CC_DEVICE_FILE = (2); - static const int CC_DEVICE_RAM = (3); - - CBlobDevice(); - virtual ~CBlobDevice(); - - virtual int WriteBytes(int offset, int size, unsigned char *buf) = 0; - virtual int ReadBytes(int offset, int size, unsigned char *buf) = 0; - virtual int EraseAllData() = 0; - virtual int InitCheck() = 0; - virtual int OpenDevice() = 0; - virtual int CloseDevice() = 0; - int WriteOneByte(int offset, unsigned char val) - { - return WriteBytes(offset, 1, &val); - } - int ReadOneByte(int offset, unsigned char *ptrVal) - { - return ReadBytes(offset, 1, ptrVal); - } - - int m_dev_type; //device type - int m_dev_total_size; //device total size(Byte) - - char m_dev_path[CC_MAX_FILE_PATH]; //device path - int m_dev_fd; + static const int CC_MAX_FILE_PATH = 256; + static const int CC_ERR_FILE_HANDLE = -1; + static const int CC_INIT_BYTE_VAL = 0xFF; + static const int CC_SSM_PROTECT_ON = 0; + static const int CC_SSM_PROTECT_OFF = 1; + + static const int CC_DEVICE_E2PROM = (0); + static const int CC_DEVICE_SPI = (1); + static const int CC_DEVICE_FILE = (2); + static const int CC_DEVICE_RAM = (3); + + CBlobDevice(); + virtual ~CBlobDevice(); + + virtual int WriteBytes(int offset, int size, unsigned char *buf) = 0; + virtual int ReadBytes(int offset, int size, unsigned char *buf) = 0; + virtual int EraseAllData() = 0; + virtual int InitCheck() = 0; + virtual int OpenDevice() = 0; + virtual int CloseDevice() = 0; + int WriteOneByte(int offset, unsigned char val) + { + return WriteBytes(offset, 1, &val); + } + int ReadOneByte(int offset, unsigned char *ptrVal) + { + return ReadBytes(offset, 1, ptrVal); + } + + int m_dev_type; //device type + int m_dev_total_size; //device total size(Byte) + + char m_dev_path[CC_MAX_FILE_PATH]; //device path + int m_dev_fd; protected: - unsigned char *mDataBuf; + unsigned char *mDataBuf; private: - int IsFileExist(const char *file_name); + int IsFileExist(const char *file_name); }; diff --git a/tvapi/libtv/tvsetting/CBlobDeviceE2prom.cpp b/tvapi/libtv/tvsetting/CBlobDeviceE2prom.cpp index 246f2ad..10411bd 100644 --- a/tvapi/libtv/tvsetting/CBlobDeviceE2prom.cpp +++ b/tvapi/libtv/tvsetting/CBlobDeviceE2prom.cpp @@ -24,27 +24,27 @@ CBlobDeviceE2prom::~CBlobDeviceE2prom() int CBlobDeviceE2prom::WriteBytes(int offset, int size, unsigned char *buf) { - return 0; + return 0; } int CBlobDeviceE2prom::ReadBytes(int offset, int size, unsigned char *buf) { - return 0; + return 0; } int CBlobDeviceE2prom::EraseAllData() { - return 0; + return 0; } int CBlobDeviceE2prom::InitCheck() { - return 0; + return 0; } int CBlobDeviceE2prom::OpenDevice() { - return 0; + return 0; } int CBlobDeviceE2prom::CloseDevice() { - return 0; + return 0; } //int CBlobDeviceE2prom::InitCheck() { diff --git a/tvapi/libtv/tvsetting/CBlobDeviceE2prom.h b/tvapi/libtv/tvsetting/CBlobDeviceE2prom.h index d237488..159c8c1 100644 --- a/tvapi/libtv/tvsetting/CBlobDeviceE2prom.h +++ b/tvapi/libtv/tvsetting/CBlobDeviceE2prom.h @@ -21,8 +21,8 @@ #define I2C_SMBUS 0x0720 /* SMBus transfer */ struct i2c_msg { - unsigned short addr; /* slave address */ - unsigned short flags; + unsigned short addr; /* slave address */ + unsigned short flags; #define I2C_M_TEN 0x0010 /* this is a ten bit chip address */ #define I2C_M_WR 0x0000 /* write data, from master to slave */ #define I2C_M_RD 0x0001 /* read data, from slave to master */ @@ -32,13 +32,13 @@ struct i2c_msg { #define I2C_M_NO_RD_ACK 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */ #define I2C_M_RECV_LEN 0x0400 /* length will be first received byte */ - unsigned short len; /* msg length */ - unsigned char *buf; /* pointer to msg data */ + unsigned short len; /* msg length */ + unsigned char *buf; /* pointer to msg data */ }; struct i2c_rdwr_ioctl_data { - struct i2c_msg *msgs; - unsigned int nmsgs; + struct i2c_msg *msgs; + unsigned int nmsgs; }; // 24C64 eeprom @@ -47,29 +47,29 @@ struct i2c_rdwr_ioctl_data { class CBlobDeviceE2prom: public CBlobDevice { public: - CBlobDeviceE2prom(); - virtual ~CBlobDeviceE2prom(); + CBlobDeviceE2prom(); + virtual ~CBlobDeviceE2prom(); - virtual int WriteBytes(int offset, int size, unsigned char *buf); - virtual int ReadBytes(int offset, int size, unsigned char *buf); - virtual int EraseAllData(); - virtual int InitCheck(); - virtual int OpenDevice(); - virtual int CloseDevice(); + virtual int WriteBytes(int offset, int size, unsigned char *buf); + virtual int ReadBytes(int offset, int size, unsigned char *buf); + virtual int EraseAllData(); + virtual int InitCheck(); + virtual int OpenDevice(); + virtual int CloseDevice(); private: private: - /*int E2P_DEV_TOTAL_SIZE; - int E2P_DEV_RW_START_OFFSET; - int E2P_DEV_RW_END_OFFSET; - int E2P_DEV_W_PAGE_SIZE; - int E2P_DEV_R_PAGE_SIZE; - int E2P_DEV_SLAVE_ADDR; - int E2P_DEV_RW_TEST_OFFSET; - int device_use_buffer; - unsigned char *device_buf; - char gFilePathBuf[CC_MAX_FILE_PATH];*/ + /*int E2P_DEV_TOTAL_SIZE; + int E2P_DEV_RW_START_OFFSET; + int E2P_DEV_RW_END_OFFSET; + int E2P_DEV_W_PAGE_SIZE; + int E2P_DEV_R_PAGE_SIZE; + int E2P_DEV_SLAVE_ADDR; + int E2P_DEV_RW_TEST_OFFSET; + int device_use_buffer; + unsigned char *device_buf; + char gFilePathBuf[CC_MAX_FILE_PATH];*/ }; diff --git a/tvapi/libtv/tvsetting/CBlobDeviceFile.cpp b/tvapi/libtv/tvsetting/CBlobDeviceFile.cpp index 822265b..cd6f10a 100644 --- a/tvapi/libtv/tvsetting/CBlobDeviceFile.cpp +++ b/tvapi/libtv/tvsetting/CBlobDeviceFile.cpp @@ -14,67 +14,67 @@ CBlobDeviceFile::CBlobDeviceFile() { - m_dev_total_size = 4 * 1024; - m_dev_fd = -1; - mDataBuf = new unsigned char[m_dev_total_size]; + m_dev_total_size = 4 * 1024; + m_dev_fd = -1; + mDataBuf = new unsigned char[m_dev_total_size]; - const char *device_path = config_get_str(CFG_SECTION_SETTING, "device_path", "/param/default_data"); - const char *device_size = config_get_str(CFG_SECTION_SETTING, "device_size", "0x1000"); - strcpy(m_dev_path, device_path); + const char *device_path = config_get_str(CFG_SECTION_SETTING, "device_path", "/param/default_data"); + const char *device_size = config_get_str(CFG_SECTION_SETTING, "device_size", "0x1000"); + strcpy(m_dev_path, device_path); } CBlobDeviceFile::~CBlobDeviceFile() { - if (mDataBuf != NULL) { - delete mDataBuf; - mDataBuf = NULL; - } - CloseDevice(); + if (mDataBuf != NULL) { + delete mDataBuf; + mDataBuf = NULL; + } + CloseDevice(); } int CBlobDeviceFile::WriteBytes(int offset, int size, unsigned char *buf) { - lseek(m_dev_fd, offset, SEEK_SET); - write(m_dev_fd, buf, size); - //not need - //fsync(device_fd); - return 0; + lseek(m_dev_fd, offset, SEEK_SET); + write(m_dev_fd, buf, size); + //not need + //fsync(device_fd); + return 0; } int CBlobDeviceFile::ReadBytes(int offset, int size, unsigned char *buf) { - lseek(m_dev_fd, offset, SEEK_SET); - read(m_dev_fd, buf, size); - return 0; + lseek(m_dev_fd, offset, SEEK_SET); + read(m_dev_fd, buf, size); + return 0; } int CBlobDeviceFile::EraseAllData() { - return 0; + return 0; } int CBlobDeviceFile::InitCheck() { - return 0; + return 0; } int CBlobDeviceFile::OpenDevice() { - if (strlen(m_dev_path) <= 0) return -1; + if (strlen(m_dev_path) <= 0) return -1; - m_dev_fd = open(m_dev_path, O_RDWR | O_SYNC | O_CREAT, S_IRUSR | S_IWUSR); + m_dev_fd = open(m_dev_path, O_RDWR | O_SYNC | O_CREAT, S_IRUSR | S_IWUSR); - if (m_dev_fd < 0) { - LOGE("%s, Open device file \"%s\" error: %s.\n", "TV", m_dev_path, strerror(errno)); - return -1; - } + if (m_dev_fd < 0) { + LOGE("%s, Open device file \"%s\" error: %s.\n", "TV", m_dev_path, strerror(errno)); + return -1; + } - return 0; + return 0; } int CBlobDeviceFile::CloseDevice() { - if (m_dev_fd >= 0) { - close(m_dev_fd); - m_dev_fd = -1; - } - return 0; + if (m_dev_fd >= 0) { + close(m_dev_fd); + m_dev_fd = -1; + } + return 0; } diff --git a/tvapi/libtv/tvsetting/CBlobDeviceFile.h b/tvapi/libtv/tvsetting/CBlobDeviceFile.h index 7b63784..28357d0 100644 --- a/tvapi/libtv/tvsetting/CBlobDeviceFile.h +++ b/tvapi/libtv/tvsetting/CBlobDeviceFile.h @@ -5,19 +5,19 @@ class CBlobDeviceFile: public CBlobDevice { public: - CBlobDeviceFile(); - virtual ~CBlobDeviceFile(); + CBlobDeviceFile(); + virtual ~CBlobDeviceFile(); - virtual int WriteBytes(int offset, int size, unsigned char *buf); - virtual int ReadBytes(int offset, int size, unsigned char *buf); - virtual int EraseAllData(); - virtual int InitCheck(); - virtual int OpenDevice(); - virtual int CloseDevice(); + virtual int WriteBytes(int offset, int size, unsigned char *buf); + virtual int ReadBytes(int offset, int size, unsigned char *buf); + virtual int EraseAllData(); + virtual int InitCheck(); + virtual int OpenDevice(); + virtual int CloseDevice(); private: - int ValidOperateCheck(); - int CreateNewFile(const char *file_name); + int ValidOperateCheck(); + int CreateNewFile(const char *file_name); private: diff --git a/tvapi/libtv/tvsetting/CBlobDeviceRam.cpp b/tvapi/libtv/tvsetting/CBlobDeviceRam.cpp index 4705486..c938be7 100644 --- a/tvapi/libtv/tvsetting/CBlobDeviceRam.cpp +++ b/tvapi/libtv/tvsetting/CBlobDeviceRam.cpp @@ -10,16 +10,16 @@ CTvSettingDeviceRam::CTvSettingDeviceRam() { - RAM_DEV_TOTAL_SIZE = 4 * 1024; - RAM_DEV_RW_START_OFFSET = 0; - RAM_DEV_RW_END_OFFSET = RAM_DEV_TOTAL_SIZE - 1; - RAM_DEV_W_PAGE_SIZE = 32; - RAM_DEV_R_PAGE_SIZE = 32; - RAM_DEV_SLAVE_ADDR = (0xA0 >> 1); - RAM_DEV_RW_TEST_OFFSET = -1; - device_use_buffer = 0; - device_buf = NULL; - gFilePathBuf[0] = '\0'; + RAM_DEV_TOTAL_SIZE = 4 * 1024; + RAM_DEV_RW_START_OFFSET = 0; + RAM_DEV_RW_END_OFFSET = RAM_DEV_TOTAL_SIZE - 1; + RAM_DEV_W_PAGE_SIZE = 32; + RAM_DEV_R_PAGE_SIZE = 32; + RAM_DEV_SLAVE_ADDR = (0xA0 >> 1); + RAM_DEV_RW_TEST_OFFSET = -1; + device_use_buffer = 0; + device_buf = NULL; + gFilePathBuf[0] = '\0'; } CTvSettingDeviceRam::~CTvSettingDeviceRam() @@ -28,102 +28,102 @@ CTvSettingDeviceRam::~CTvSettingDeviceRam() int CTvSettingDeviceRam::GetDeviceTotalSize() { - return 0; + return 0; } int CTvSettingDeviceRam::InitCheck() { - int tmp_dev_total_size = 0; + int tmp_dev_total_size = 0; - if (device_buf == NULL) { - tmp_dev_total_size = GetDeviceTotalSize(); - if (tmp_dev_total_size <= 0) { - LOGE("%s, Device file size must be more than 0.\n", "TV"); - return -1; - } + if (device_buf == NULL) { + tmp_dev_total_size = GetDeviceTotalSize(); + if (tmp_dev_total_size <= 0) { + LOGE("%s, Device file size must be more than 0.\n", "TV"); + return -1; + } - device_buf = new unsigned char[tmp_dev_total_size]; - if (device_buf == NULL) { - return -1; - } + device_buf = new unsigned char[tmp_dev_total_size]; + if (device_buf == NULL) { + return -1; + } - memset((void *) device_buf, CC_INIT_BYTE_VAL, tmp_dev_total_size); - } + memset((void *) device_buf, CC_INIT_BYTE_VAL, tmp_dev_total_size); + } - return 0; + return 0; } int CTvSettingDeviceRam::OpenDevice() { - return 0; + return 0; } int CTvSettingDeviceRam::CloseDevice(int *device_fd) { - return 0; + return 0; } int CTvSettingDeviceRam::CheckDeviceWrAvaliable(int offset, int len) { - /*int tmp_dev_start_offset = 0; - int tmp_dev_end_offset = 0; - - GetDeviceRWStartOffset(&tmp_dev_start_offset); - if (tmp_dev_start_offset < 0) { - LOGE("%s, Device file r/w start offset must be greater than or euqal to 0.\n", "TV"); - return -1; - } - - GetDeviceRWEndOffset(&tmp_dev_end_offset); - if (tmp_dev_end_offset < 0) { - LOGE("%s, Device file r/w end offset must be more than 0.\n", "TV"); - return -1; - } - - if (len <= 0) { - LOGE("%s, The w/r length should be more than 0.\n", "TV"); - return -1; - } - - if ((len + tmp_dev_start_offset + offset) > tmp_dev_end_offset + 1) { - LOGE("%s, w/r would be overflow!!! len = %d, start offset = %d, offset = %d, end offset = %d.\n", "TV", len, tmp_dev_start_offset, offset, tmp_dev_end_offset); - return -1; - } - - if (ValidOperateCheck() < 0) { - return -1; - }*/ - - return 0; + /*int tmp_dev_start_offset = 0; + int tmp_dev_end_offset = 0; + + GetDeviceRWStartOffset(&tmp_dev_start_offset); + if (tmp_dev_start_offset < 0) { + LOGE("%s, Device file r/w start offset must be greater than or euqal to 0.\n", "TV"); + return -1; + } + + GetDeviceRWEndOffset(&tmp_dev_end_offset); + if (tmp_dev_end_offset < 0) { + LOGE("%s, Device file r/w end offset must be more than 0.\n", "TV"); + return -1; + } + + if (len <= 0) { + LOGE("%s, The w/r length should be more than 0.\n", "TV"); + return -1; + } + + if ((len + tmp_dev_start_offset + offset) > tmp_dev_end_offset + 1) { + LOGE("%s, w/r would be overflow!!! len = %d, start offset = %d, offset = %d, end offset = %d.\n", "TV", len, tmp_dev_start_offset, offset, tmp_dev_end_offset); + return -1; + } + + if (ValidOperateCheck() < 0) { + return -1; + }*/ + + return 0; } int CTvSettingDeviceRam::WriteSpecialBytes(int offset, int len, unsigned char data_buf[]) { - int tmp_dev_w_page_size = 0; + int tmp_dev_w_page_size = 0; - //GetDeviceWritePageSize(&tmp_dev_w_page_size); - //if (len > tmp_dev_w_page_size) { - // LOGE("%s, The write length should be less than page size(%d).\n", "TV", tmp_dev_w_page_size); - // return -1; - // } + //GetDeviceWritePageSize(&tmp_dev_w_page_size); + //if (len > tmp_dev_w_page_size) { + // LOGE("%s, The write length should be less than page size(%d).\n", "TV", tmp_dev_w_page_size); + // return -1; + // } - if (CheckDeviceWrAvaliable(offset, len) < 0) { - return -1; - } + if (CheckDeviceWrAvaliable(offset, len) < 0) { + return -1; + } - memcpy((void *) (device_buf + offset), (void *) data_buf, len); + memcpy((void *) (device_buf + offset), (void *) data_buf, len); - return 0; + return 0; } int CTvSettingDeviceRam::ReadSpecialBytes(int offset, int len, unsigned char data_buf[]) { - if (CheckDeviceWrAvaliable(offset, len) < 0) { - return -1; - } + if (CheckDeviceWrAvaliable(offset, len) < 0) { + return -1; + } - memcpy((void *) data_buf, (void *) (device_buf + offset), len); + memcpy((void *) data_buf, (void *) (device_buf + offset), len); - return 0; + return 0; } diff --git a/tvapi/libtv/tvsetting/CBlobDeviceRam.h b/tvapi/libtv/tvsetting/CBlobDeviceRam.h index b499dd2..49f98b0 100644 --- a/tvapi/libtv/tvsetting/CBlobDeviceRam.h +++ b/tvapi/libtv/tvsetting/CBlobDeviceRam.h @@ -6,32 +6,32 @@ class CTvSettingDeviceRam: public CTvSettingBaseDevice { public: - CTvSettingDeviceRam(); - virtual ~CTvSettingDeviceRam(); + CTvSettingDeviceRam(); + virtual ~CTvSettingDeviceRam(); - virtual int InitCheck(); - virtual int OpenDevice(); - virtual int CloseDevice(int *device_fd); - virtual int GetDeviceTotalSize(); + virtual int InitCheck(); + virtual int OpenDevice(); + virtual int CloseDevice(int *device_fd); + virtual int GetDeviceTotalSize(); - virtual int CheckDeviceWrAvaliable(int offset, int len); - virtual int WriteSpecialBytes(int offset, int len, unsigned char data_buf[]); - virtual int ReadSpecialBytes(int offset, int len, unsigned char data_buf[]); + virtual int CheckDeviceWrAvaliable(int offset, int len); + virtual int WriteSpecialBytes(int offset, int len, unsigned char data_buf[]); + virtual int ReadSpecialBytes(int offset, int len, unsigned char data_buf[]); private: - int ValidOperateCheck(); + int ValidOperateCheck(); private: - int RAM_DEV_TOTAL_SIZE; - int RAM_DEV_RW_START_OFFSET; - int RAM_DEV_RW_END_OFFSET; - int RAM_DEV_W_PAGE_SIZE; - int RAM_DEV_R_PAGE_SIZE; - int RAM_DEV_SLAVE_ADDR; - int RAM_DEV_RW_TEST_OFFSET; - int device_use_buffer; - unsigned char *device_buf; - char gFilePathBuf[CC_MAX_FILE_PATH]; + int RAM_DEV_TOTAL_SIZE; + int RAM_DEV_RW_START_OFFSET; + int RAM_DEV_RW_END_OFFSET; + int RAM_DEV_W_PAGE_SIZE; + int RAM_DEV_R_PAGE_SIZE; + int RAM_DEV_SLAVE_ADDR; + int RAM_DEV_RW_TEST_OFFSET; + int device_use_buffer; + unsigned char *device_buf; + char gFilePathBuf[CC_MAX_FILE_PATH]; }; #endif // ANDROID_SSM_RAM_H diff --git a/tvapi/libtv/tvsetting/CTvSetting.cpp b/tvapi/libtv/tvsetting/CTvSetting.cpp index feb94cc..b81b865 100644 --- a/tvapi/libtv/tvsetting/CTvSetting.cpp +++ b/tvapi/libtv/tvsetting/CTvSetting.cpp @@ -31,1374 +31,1374 @@ CBlobDevice *mpCurDevice = NULL; bool CTvSettingLoad() { - mpSettingDeviceFactory = new CTvSettingDeviceFactory(); - mpCurDevice = mpSettingDeviceFactory->getSaveDeviceFromConfigFile(); - if (mpCurDevice == NULL) { - LOGD("%s, CTvSettingLoad = NULL", CFG_SECTION_TV); - return false; - } else { - mpCurDevice->OpenDevice(); - } - return true; + mpSettingDeviceFactory = new CTvSettingDeviceFactory(); + mpCurDevice = mpSettingDeviceFactory->getSaveDeviceFromConfigFile(); + if (mpCurDevice == NULL) { + LOGD("%s, CTvSettingLoad = NULL", CFG_SECTION_TV); + return false; + } else { + mpCurDevice->OpenDevice(); + } + return true; } bool CTvSettingunLoad() { - if (mpSettingDeviceFactory != NULL) { - delete mpSettingDeviceFactory; - mpSettingDeviceFactory = NULL; - } - return true; + if (mpSettingDeviceFactory != NULL) { + delete mpSettingDeviceFactory; + mpSettingDeviceFactory = NULL; + } + return true; } int CTvSettingdoSuspend() { - return mpCurDevice->CloseDevice(); + return mpCurDevice->CloseDevice(); } int CTvSettingdoResume() { - return mpCurDevice->OpenDevice(); + return mpCurDevice->OpenDevice(); } template<typename T> static int SSMWriteNTypes(int offset, int data_len, T *data_buf) { - pthread_mutex_lock(&ssm_r_w_op_mutex); + pthread_mutex_lock(&ssm_r_w_op_mutex); - if (data_buf == NULL) { - LOGE("%s, data_buf is NULL.\n", CFG_SECTION_TV); + if (data_buf == NULL) { + LOGE("%s, data_buf is NULL.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - if (mpCurDevice == NULL) { - LOGE("%s, ssm_device is NULL.\n", CFG_SECTION_TV); + if (mpCurDevice == NULL) { + LOGE("%s, ssm_device is NULL.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - if (mpCurDevice->WriteBytes(offset, data_len * sizeof(T), - (unsigned char *) data_buf) < 0) { - LOGE("%s, device WriteNBytes error.\n", CFG_SECTION_TV); + if (mpCurDevice->WriteBytes(offset, data_len * sizeof(T), + (unsigned char *) data_buf) < 0) { + LOGE("%s, device WriteNBytes error.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return 0; + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return 0; } template<typename T> static int SSMReadNTypes(int offset, int data_len, T *data_buf) { - pthread_mutex_lock(&ssm_r_w_op_mutex); + pthread_mutex_lock(&ssm_r_w_op_mutex); - if (data_buf == NULL) { - LOGE("%s, data_buf is NULL.\n", CFG_SECTION_TV); + if (data_buf == NULL) { + LOGE("%s, data_buf is NULL.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - if (mpCurDevice == NULL) { - LOGE("%s, ssm_device is NULL.\n", CFG_SECTION_TV); + if (mpCurDevice == NULL) { + LOGE("%s, ssm_device is NULL.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - if (mpCurDevice->ReadBytes(offset, data_len * sizeof(T), - (unsigned char *) data_buf) < 0) { - LOGE("%s, device ReadNBytes error.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + if (mpCurDevice->ReadBytes(offset, data_len * sizeof(T), + (unsigned char *) data_buf) < 0) { + LOGE("%s, device ReadNBytes error.\n", CFG_SECTION_TV); + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return 0; + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return 0; } int SSMSaveFlash_One_N310_N311(int offset, int rw_val) { - unsigned char tmp_val = rw_val; - LOGD ( "~~~ SSMSaveFlash_One ~~~##offset %d##rw_val %d##" , offset, rw_val); + unsigned char tmp_val = rw_val; + LOGD ( "~~~ SSMSaveFlash_One ~~~##offset %d##rw_val %d##" , offset, rw_val); - return SSMWriteNTypes(offset, 1, &tmp_val); + return SSMWriteNTypes(offset, 1, &tmp_val); } int SSMReadFlash_One_N310_N311(int offset) { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(offset, 1, &tmp_val) < 0) { - return -1; - } - LOGD ( "~~~ SSMReadFlash_One ~~~##offset %d##rw_val %d##" , offset, tmp_val); + if (SSMReadNTypes(offset, 1, &tmp_val) < 0) { + return -1; + } + LOGD ( "~~~ SSMReadFlash_One ~~~##offset %d##rw_val %d##" , offset, tmp_val); - return tmp_val; + return tmp_val; } int SSMSaveFlash_N_N310_N311(int offset, int data_len, int *data_buf) { - int i = 0; - unsigned char *ptr = NULL; + int i = 0; + unsigned char *ptr = NULL; - ptr = new unsigned char[data_len]; + ptr = new unsigned char[data_len]; - if (ptr != NULL) { - for (i = 0; i < data_len; i++) { - ptr[i] = data_buf[i]; - } - } else { - delete ptr; - ptr = NULL; + if (ptr != NULL) { + for (i = 0; i < data_len; i++) { + ptr[i] = data_buf[i]; + } + } else { + delete ptr; + ptr = NULL; - return -1; - } + return -1; + } - if (SSMWriteNTypes(offset, data_len, ptr) < 0) { - delete ptr; - ptr = NULL; + if (SSMWriteNTypes(offset, data_len, ptr) < 0) { + delete ptr; + ptr = NULL; - return -1; - } + return -1; + } - delete ptr; - ptr = NULL; + delete ptr; + ptr = NULL; - return 0; + return 0; } int SSMReadFlash_N_N310_N311(int offset, int data_len, int *data_buf) { - int i = 0; - unsigned char *ptr = NULL; + int i = 0; + unsigned char *ptr = NULL; - ptr = new unsigned char[data_len]; + ptr = new unsigned char[data_len]; - if (ptr != NULL) { - if (SSMReadNTypes(offset, data_len, ptr) < 0) { - delete ptr; - ptr = NULL; + if (ptr != NULL) { + if (SSMReadNTypes(offset, data_len, ptr) < 0) { + delete ptr; + ptr = NULL; - return -1; - } - } else { - delete ptr; - ptr = NULL; + return -1; + } + } else { + delete ptr; + ptr = NULL; - return -1; - } + return -1; + } - for (i = 0; i < data_len; i++) { - data_buf[i] = ptr[i]; - } + for (i = 0; i < data_len; i++) { + data_buf[i] = ptr[i]; + } - delete ptr; - ptr = NULL; + delete ptr; + ptr = NULL; - return 0; + return 0; } int EEPWriteOneByte(int offset, unsigned char *data_buf) { - int fd = 0; - const char *device_path = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.path", "/sys/devices/i2c-2/2-0050/eeprom"); - pthread_mutex_lock(&ssm_r_w_op_mutex); + int fd = 0; + const char *device_path = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.path", "/sys/devices/i2c-2/2-0050/eeprom"); + pthread_mutex_lock(&ssm_r_w_op_mutex); - LOGD ( "~~~EEPWriteOneByte~~~##offset %d##rw_val %s##" , offset, data_buf); + LOGD ( "~~~EEPWriteOneByte~~~##offset %d##rw_val %s##" , offset, data_buf); - if (data_buf == NULL) { - LOGE("%s, data_buf is NULL.\n", CFG_SECTION_TV); + if (data_buf == NULL) { + LOGE("%s, data_buf is NULL.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - fd = open(device_path, O_RDWR); + fd = open(device_path, O_RDWR); - if (fd < 0) { - LOGE("%s, ####i2c test device open failed####.\n", CFG_SECTION_TV); + if (fd < 0) { + LOGE("%s, ####i2c test device open failed####.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - lseek(fd, offset, SEEK_SET); + lseek(fd, offset, SEEK_SET); - if (write(fd, data_buf, 1) < 0) { - LOGE("%s, device WriteOneBytes error.\n", CFG_SECTION_TV); + if (write(fd, data_buf, 1) < 0) { + LOGE("%s, device WriteOneBytes error.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - close(fd); + close(fd); - LOGE("%s, device WriteOneBytes OK.\n", CFG_SECTION_TV); + LOGE("%s, device WriteOneBytes OK.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return 0; + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return 0; } int EEPReadOneByte(int offset , unsigned char *data_buf) { - int fd = 0; - //const char* device_type = config_get_str(CFG_SECTION_SETTING, "peripheral.eeprom.device", "disable"); - const char *device_path = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.path", "/sys/devices/i2c-2/2-0050/eeprom"); + int fd = 0; + //const char* device_type = config_get_str(CFG_SECTION_SETTING, "peripheral.eeprom.device", "disable"); + const char *device_path = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.path", "/sys/devices/i2c-2/2-0050/eeprom"); - pthread_mutex_lock(&ssm_r_w_op_mutex); + pthread_mutex_lock(&ssm_r_w_op_mutex); - if (data_buf == NULL) { - LOGE("%s, data_buf is NULL.\n", CFG_SECTION_TV); + if (data_buf == NULL) { + LOGE("%s, data_buf is NULL.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - fd = open(device_path, O_RDWR); + fd = open(device_path, O_RDWR); - if (fd < 0) { - LOGE("%s, ssm_device is NULL.\n", CFG_SECTION_TV); + if (fd < 0) { + LOGE("%s, ssm_device is NULL.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } - lseek(fd, offset, SEEK_SET); + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } + lseek(fd, offset, SEEK_SET); - if (read(fd, data_buf, 1) < 0) { - LOGE("%s, device ReadOneBytes error.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + if (read(fd, data_buf, 1) < 0) { + LOGE("%s, device ReadOneBytes error.\n", CFG_SECTION_TV); + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - close(fd); + close(fd); - LOGD ( "~~~EEPReadOneByte~~~##offset %d##rw_val %d##" , offset, data_buf); + LOGD ( "~~~EEPReadOneByte~~~##offset %d##rw_val %d##" , offset, data_buf); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return 0; + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return 0; } int EEPWriteNByte(int offset, int data_len, unsigned char *data_buf) { - int fd = 0; - const char *device_path = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.path", "/sys/devices/i2c-2/2-0050/eeprom"); - pthread_mutex_lock(&ssm_r_w_op_mutex); + int fd = 0; + const char *device_path = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.path", "/sys/devices/i2c-2/2-0050/eeprom"); + pthread_mutex_lock(&ssm_r_w_op_mutex); - LOGD ( "~~~EEPWriteNByte~~~##offset %d##data_len %d##" , offset, data_len); + LOGD ( "~~~EEPWriteNByte~~~##offset %d##data_len %d##" , offset, data_len); - if (data_buf == NULL) { - LOGE("%s, data_buf is NULL.\n", CFG_SECTION_TV); + if (data_buf == NULL) { + LOGE("%s, data_buf is NULL.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - fd = open(device_path, O_RDWR); + fd = open(device_path, O_RDWR); - if (fd < 0) { - LOGE("%s, ####i2c test device open failed####.\n", CFG_SECTION_TV); + if (fd < 0) { + LOGE("%s, ####i2c test device open failed####.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - lseek(fd, offset, SEEK_SET); + lseek(fd, offset, SEEK_SET); - if (write(fd, data_buf, data_len) < 0) { - LOGE("%s, device WriteNBytes error.\n", CFG_SECTION_TV); + if (write(fd, data_buf, data_len) < 0) { + LOGE("%s, device WriteNBytes error.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - close(fd); + close(fd); - LOGE("%s, device WriteNBytes OK.\n", CFG_SECTION_TV); + LOGE("%s, device WriteNBytes OK.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return 0; + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return 0; } int EEPReadNByte(int offset, int data_len, unsigned char *data_buf) { - int fd = 0; - const char *device_path = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.path", "/sys/devices/i2c-2/2-0050/eeprom"); - pthread_mutex_lock(&ssm_r_w_op_mutex); + int fd = 0; + const char *device_path = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.path", "/sys/devices/i2c-2/2-0050/eeprom"); + pthread_mutex_lock(&ssm_r_w_op_mutex); - if (data_buf == NULL) { - LOGE("%s, data_buf is NULL.\n", CFG_SECTION_TV); + if (data_buf == NULL) { + LOGE("%s, data_buf is NULL.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - fd = open(device_path, O_RDWR); + fd = open(device_path, O_RDWR); - if (fd < 0) { - LOGE("%s, ssm_device is NULL.\n", CFG_SECTION_TV); + if (fd < 0) { + LOGE("%s, ssm_device is NULL.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } - lseek(fd, offset, SEEK_SET); + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } + lseek(fd, offset, SEEK_SET); - if (read(fd, data_buf, data_len) < 0) { - LOGE("%s, device ReadNBytes error.\n", CFG_SECTION_TV); + if (read(fd, data_buf, data_len) < 0) { + LOGE("%s, device ReadNBytes error.\n", CFG_SECTION_TV); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return -1; - } + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return -1; + } - close(fd); + close(fd); - LOGD ( "~~~EEPReadNByte~~~##offset %d##data_len %d##" , offset, data_len); + LOGD ( "~~~EEPReadNByte~~~##offset %d##data_len %d##" , offset, data_len); - pthread_mutex_unlock(&ssm_r_w_op_mutex); - return 0; + pthread_mutex_unlock(&ssm_r_w_op_mutex); + return 0; } int SSMSaveEEP_One_N310_N311(int offset, int rw_val) { - unsigned char tmp_val = rw_val; - const char *device_config = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.device", "disable"); + unsigned char tmp_val = rw_val; + const char *device_config = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.device", "disable"); - if (strcmp(device_config, "enable") != 0) { - LOGD ( "~~~ SSMSaveEEP_One ~~~##peripheral.eeprom.device error##"); - return -1; - } - LOGD ( "~~~SSMSaveEEP_One~~~##offset %d##rw_val %d##" , offset, rw_val); + if (strcmp(device_config, "enable") != 0) { + LOGD ( "~~~ SSMSaveEEP_One ~~~##peripheral.eeprom.device error##"); + return -1; + } + LOGD ( "~~~SSMSaveEEP_One~~~##offset %d##rw_val %d##" , offset, rw_val); - return EEPWriteOneByte(offset, &tmp_val); + return EEPWriteOneByte(offset, &tmp_val); } int SSMReadEEP_One_N310_N311(int offset) { - unsigned char tmp_val = 0; - const char *device_config = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.device", "disable"); + unsigned char tmp_val = 0; + const char *device_config = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.device", "disable"); - if (strcmp(device_config, "enable") != 0) { - LOGD ( "~~~ SSMReadEEP_One ~~~##peripheral.eeprom.device error##"); - return -1; - } + if (strcmp(device_config, "enable") != 0) { + LOGD ( "~~~ SSMReadEEP_One ~~~##peripheral.eeprom.device error##"); + return -1; + } - if (EEPReadOneByte(offset, &tmp_val) < 0) { - return -1; - } - LOGD ( "~~~SSMReadEEP_One~~~##offset %d##rw_val %d##" , offset, tmp_val); + if (EEPReadOneByte(offset, &tmp_val) < 0) { + return -1; + } + LOGD ( "~~~SSMReadEEP_One~~~##offset %d##rw_val %d##" , offset, tmp_val); - return tmp_val; + return tmp_val; } int SSMSaveEEP_N_N310_N311(int offset, int data_len, int *data_buf) { - int i = 0; - unsigned char *ptr = NULL; - const char *device_config = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.device", "disable"); + int i = 0; + unsigned char *ptr = NULL; + const char *device_config = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.device", "disable"); - if (strcmp(device_config, "enable") != 0) { - LOGD ( "~~~ SSMSaveEEP_N ~~~##peripheral.eeprom.device error##"); - return -1; - } + if (strcmp(device_config, "enable") != 0) { + LOGD ( "~~~ SSMSaveEEP_N ~~~##peripheral.eeprom.device error##"); + return -1; + } - ptr = new unsigned char[data_len]; + ptr = new unsigned char[data_len]; - if (ptr != NULL) { - for (i = 0; i < data_len; i++) { - ptr[i] = data_buf[i]; - } - } else { - delete ptr; - ptr = NULL; + if (ptr != NULL) { + for (i = 0; i < data_len; i++) { + ptr[i] = data_buf[i]; + } + } else { + delete ptr; + ptr = NULL; - return -1; - } + return -1; + } - if (EEPWriteNByte(offset, data_len, ptr) < 0) { - delete ptr; - ptr = NULL; + if (EEPWriteNByte(offset, data_len, ptr) < 0) { + delete ptr; + ptr = NULL; - return -1; - } + return -1; + } - delete ptr; - ptr = NULL; + delete ptr; + ptr = NULL; - return 0; + return 0; } int SSMReadEEP_N_N310_N311(int offset, int data_len, int *data_buf) { - int i = 0; - unsigned char *ptr = NULL; - const char *device_config = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.device", "disable"); + int i = 0; + unsigned char *ptr = NULL; + const char *device_config = config_get_str(CFG_SECTION_TV, "peripheral.eeprom.device", "disable"); - if (strcmp(device_config, "enable") != 0) { - LOGD ( "~~~ SSMReadEEP_N ~~~##peripheral.eeprom.device error##"); - return -1; - } - ptr = new unsigned char[data_len]; + if (strcmp(device_config, "enable") != 0) { + LOGD ( "~~~ SSMReadEEP_N ~~~##peripheral.eeprom.device error##"); + return -1; + } + ptr = new unsigned char[data_len]; - if (ptr != NULL) { - if (EEPReadNByte(offset, data_len, ptr) < 0) { - delete ptr; - ptr = NULL; + if (ptr != NULL) { + if (EEPReadNByte(offset, data_len, ptr) < 0) { + delete ptr; + ptr = NULL; - return -1; - } - } else { - delete ptr; - ptr = NULL; + return -1; + } + } else { + delete ptr; + ptr = NULL; - return -1; - } + return -1; + } - for (i = 0; i < data_len; i++) { - data_buf[i] = ptr[i]; - } + for (i = 0; i < data_len; i++) { + data_buf[i] = ptr[i]; + } - delete ptr; - ptr = NULL; + delete ptr; + ptr = NULL; - return 0; + return 0; } /************************ Start APIs For UI ************************/ int MiscSSMRestoreDefault() { - SSMSaveFactoryBurnMode(0); - SSMSavePowerOnOffChannel(1); - SSMSaveSystemLanguage(0); - SSMSaveAgingMode(0); - SSMSavePanelType(0); - SSMSavePowerOnMusicSwitch(0); - SSMSavePowerOnMusicVolume(20); - SSMSaveSystemSleepTimer(0xFFFFFFFF); - SSMSaveInputSourceParentalControl(0, 0); - SSMSaveParentalControlSwitch(0); - SSMSaveSerialCMDSwitchValue(0); - SSMSaveBlackoutEnable(0); - return 0; + SSMSaveFactoryBurnMode(0); + SSMSavePowerOnOffChannel(1); + SSMSaveSystemLanguage(0); + SSMSaveAgingMode(0); + SSMSavePanelType(0); + SSMSavePowerOnMusicSwitch(0); + SSMSavePowerOnMusicVolume(20); + SSMSaveSystemSleepTimer(0xFFFFFFFF); + SSMSaveInputSourceParentalControl(0, 0); + SSMSaveParentalControlSwitch(0); + SSMSaveSerialCMDSwitchValue(0); + SSMSaveBlackoutEnable(0); + return 0; } int MiscSSMFacRestoreDefault() { - SSMSaveSystemLanguage(0); - SSMSavePowerOnMusicSwitch(1); - SSMSavePowerOnMusicVolume(20); - SSMSaveSystemSleepTimer(0xFFFFFFFF); - SSMSaveInputSourceParentalControl(0, 0); - SSMSaveParentalControlSwitch(0); - SSMSaveSearchNavigateFlag(1); - SSMSaveInputNumLimit(2); - SSMSaveLocalDimingOnOffFlg(0); + SSMSaveSystemLanguage(0); + SSMSavePowerOnMusicSwitch(1); + SSMSavePowerOnMusicVolume(20); + SSMSaveSystemSleepTimer(0xFFFFFFFF); + SSMSaveInputSourceParentalControl(0, 0); + SSMSaveParentalControlSwitch(0); + SSMSaveSearchNavigateFlag(1); + SSMSaveInputNumLimit(2); + SSMSaveLocalDimingOnOffFlg(0); - return 0; + return 0; } int ReservedSSMRestoreDefault() { - SSMSaveBurnWriteCharaterChar(CC_DEF_CHARACTER_CHAR_VAL); + SSMSaveBurnWriteCharaterChar(CC_DEF_CHARACTER_CHAR_VAL); - return 0; + return 0; } int SSMSaveBurnWriteCharaterChar(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RSV_W_CHARACTER_CHAR_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RSV_W_CHARACTER_CHAR_START, 1, &tmp_val); } int SSMReadBurnWriteCharaterChar() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RSV_W_CHARACTER_CHAR_START, 1, &tmp_val) < 0) { - return -1; - } + if (SSMReadNTypes(SSM_RSV_W_CHARACTER_CHAR_START, 1, &tmp_val) < 0) { + return -1; + } - return tmp_val; + return tmp_val; } int SSMSaveFactoryBurnMode(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_FBMF_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_FBMF_START, 1, &tmp_val); } int SSMReadFactoryBurnMode() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_FBMF_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_FBMF_START, 1, &tmp_val) < 0) { + return 0; + } - if (tmp_val != 0) { - return 1; - } + if (tmp_val != 0) { + return 1; + } - return 0; + return 0; } int SSMSavePowerOnOffChannel(int rw_val) { - unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_POWER_CHANNEL_START, 1, &tmp_val); + unsigned char tmp_val = rw_val; + return SSMWriteNTypes(SSM_RW_POWER_CHANNEL_START, 1, &tmp_val); } int SSMReadPowerOnOffChannel() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_POWER_CHANNEL_START, 1, &tmp_val) < 0) { - return 0; - } - return tmp_val; + if (SSMReadNTypes(SSM_RW_POWER_CHANNEL_START, 1, &tmp_val) < 0) { + return 0; + } + return tmp_val; } int SSMSaveLastSelectSourceInput(int rw_val) { - unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_LAST_SOURCE_INPUT_START, 1, &tmp_val); + unsigned char tmp_val = rw_val; + return SSMWriteNTypes(SSM_RW_LAST_SOURCE_INPUT_START, 1, &tmp_val); } int SSMReadLastSelectSourceInput() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_LAST_SOURCE_INPUT_START, 1, &tmp_val) < 0) { - return 0; - } - if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { - tmp_val = 0; - } + if (SSMReadNTypes(SSM_RW_LAST_SOURCE_INPUT_START, 1, &tmp_val) < 0) { + return 0; + } + if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { + tmp_val = 0; + } - return tmp_val; + return tmp_val; } int SSMSaveSystemLanguage(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_SYS_LANGUAGE_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_SYS_LANGUAGE_START, 1, &tmp_val); } int SSMReadSystemLanguage() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_SYS_LANGUAGE_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_SYS_LANGUAGE_START, 1, &tmp_val) < 0) { + return 0; + } - if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { - tmp_val = 0; - } + if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { + tmp_val = 0; + } - return tmp_val; + return tmp_val; } int SSMSaveAgingMode(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_AGING_MODE_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_AGING_MODE_START, 1, &tmp_val); } int SSMReadAgingMode() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_AGING_MODE_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_AGING_MODE_START, 1, &tmp_val) < 0) { + return 0; + } - if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { - tmp_val = 0; - } + if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { + tmp_val = 0; + } - return tmp_val; + return tmp_val; } int SSMSavePanelType(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_PANEL_TYPE_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_PANEL_TYPE_START, 1, &tmp_val); } int SSMReadPanelType() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_PANEL_TYPE_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_PANEL_TYPE_START, 1, &tmp_val) < 0) { + return 0; + } - if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { - tmp_val = 0; - } + if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { + tmp_val = 0; + } - return tmp_val; + return tmp_val; } int SSMSavePowerOnMusicSwitch(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_POWER_ON_MUSIC_SWITCH_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_POWER_ON_MUSIC_SWITCH_START, 1, &tmp_val); } int SSMReadPowerOnMusicSwitch() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_POWER_ON_MUSIC_SWITCH_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_POWER_ON_MUSIC_SWITCH_START, 1, &tmp_val) < 0) { + return 0; + } - if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { - tmp_val = 0; - } + if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { + tmp_val = 0; + } - return tmp_val; + return tmp_val; } int SSMSavePowerOnMusicVolume(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_POWER_ON_MUSIC_VOL_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_POWER_ON_MUSIC_VOL_START, 1, &tmp_val); } int SSMReadPowerOnMusicVolume() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_POWER_ON_MUSIC_VOL_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_POWER_ON_MUSIC_VOL_START, 1, &tmp_val) < 0) { + return 0; + } - if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { - tmp_val = 0; - } + if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { + tmp_val = 0; + } - return tmp_val; + return tmp_val; } int SSMSaveSystemSleepTimer(int rw_val) { - return SSMWriteNTypes(SSM_RW_SYS_SLEEP_TIMER_START, 1, &rw_val); + return SSMWriteNTypes(SSM_RW_SYS_SLEEP_TIMER_START, 1, &rw_val); } int SSMReadSystemSleepTimer() { - int tmp_val = 0; + int tmp_val = 0; - if (SSMReadNTypes(SSM_RW_SYS_SLEEP_TIMER_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_SYS_SLEEP_TIMER_START, 1, &tmp_val) < 0) { + return 0; + } - if (tmp_val < 0) { - tmp_val = 0; - } + if (tmp_val < 0) { + tmp_val = 0; + } - return tmp_val; + return tmp_val; } int SSMSaveInputSourceParentalControl(int source_index, - unsigned char ctl_flag) + unsigned char ctl_flag) { - int tmp_val = 0; + int tmp_val = 0; - if (source_index < 0 || source_index > 31) { - return -1; - } + if (source_index < 0 || source_index > 31) { + return -1; + } - if (ctl_flag != 0 && ctl_flag != 1) { - return -1; - } + if (ctl_flag != 0 && ctl_flag != 1) { + return -1; + } - if (SSMReadNTypes(SSM_RW_INPUT_SRC_PARENTAL_CTL_START, 4, - (unsigned char *) &tmp_val) < 0) { - return -1; - } + if (SSMReadNTypes(SSM_RW_INPUT_SRC_PARENTAL_CTL_START, 4, + (unsigned char *) &tmp_val) < 0) { + return -1; + } - tmp_val = (tmp_val & (~(1 << source_index))) | (ctl_flag << source_index); + tmp_val = (tmp_val & (~(1 << source_index))) | (ctl_flag << source_index); - return SSMWriteNTypes(SSM_RW_INPUT_SRC_PARENTAL_CTL_START, 4, - (unsigned char *) &tmp_val); + return SSMWriteNTypes(SSM_RW_INPUT_SRC_PARENTAL_CTL_START, 4, + (unsigned char *) &tmp_val); } int SSMReadInputSourceParentalControl(int source_index) { - int tmp_val = 0; + int tmp_val = 0; - if (SSMReadParentalControlSwitch() == 0) { - return 0; - } + if (SSMReadParentalControlSwitch() == 0) { + return 0; + } - if (SSMReadNTypes(SSM_RW_INPUT_SRC_PARENTAL_CTL_START, 4, - (unsigned char *) &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_INPUT_SRC_PARENTAL_CTL_START, 4, + (unsigned char *) &tmp_val) < 0) { + return 0; + } - if (tmp_val & (1 << source_index)) { - return 1; - } + if (tmp_val & (1 << source_index)) { + return 1; + } - return 0; + return 0; } int SSMSaveParentalControlSwitch(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_PARENTAL_CTL_SWITCH_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_PARENTAL_CTL_SWITCH_START, 1, &tmp_val); } int SSMReadParentalControlSwitch() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_PARENTAL_CTL_SWITCH_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_PARENTAL_CTL_SWITCH_START, 1, &tmp_val) < 0) { + return 0; + } - if (tmp_val != 0) { - tmp_val = 1; - } + if (tmp_val != 0) { + tmp_val = 1; + } - return tmp_val; + return tmp_val; } int SSMGetCustomerDataStart() { - return SSM_RW_CUSTOMER_DATA_START; + return SSM_RW_CUSTOMER_DATA_START; } int SSMGetCustomerDataLen() { - return SSM_RW_CUSTOMER_DATA_LEN; + return SSM_RW_CUSTOMER_DATA_LEN; } int SSMGetATVDataStart() { - return SSM_RW_ATV_START; + return SSM_RW_ATV_START; } int SSMGetATVDataLen() { - return SSM_RW_ATV_LEN; + return SSM_RW_ATV_LEN; } int SSMGetVPPDataStart() { - return SSM_RW_VPP_START; + return SSM_RW_VPP_START; } int SSMGetVPPDataLen() { - return SSM_RW_VPP_LEN; + return SSM_RW_VPP_LEN; } int SSMSaveSearchNavigateFlag(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_SEARCH_NAVIGATE_FLAG_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_SEARCH_NAVIGATE_FLAG_START, 1, &tmp_val); } int SSMReadSearchNavigateFlag() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_SEARCH_NAVIGATE_FLAG_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_SEARCH_NAVIGATE_FLAG_START, 1, &tmp_val) < 0) { + return 0; + } - return tmp_val; + return tmp_val; } int SSMSaveInputNumLimit(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_INPUT_NUMBER_LIMIT_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_INPUT_NUMBER_LIMIT_START, 1, &tmp_val); } int SSMReadInputNumLimit() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_INPUT_NUMBER_LIMIT_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_INPUT_NUMBER_LIMIT_START, 1, &tmp_val) < 0) { + return 0; + } - return tmp_val; + return tmp_val; } int SSMSaveLocalDimingOnOffFlg(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_LOCAL_DIMING_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_LOCAL_DIMING_START, 1, &tmp_val); } int SSMReadLocalDimingOnOffFlg() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_LOCAL_DIMING_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_LOCAL_DIMING_START, 1, &tmp_val) < 0) { + return 0; + } - return tmp_val; + return tmp_val; } int SSMSaveVDac2DValue(unsigned short rw_val) { - return SSMWriteNTypes(SSM_RW_VDAC_2D_START, 1, &rw_val); + return SSMWriteNTypes(SSM_RW_VDAC_2D_START, 1, &rw_val); } int SSMReadVDac2DValue() { - unsigned short tmp_val = 0; + unsigned short tmp_val = 0; - if (SSMReadNTypes(SSM_RW_VDAC_2D_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_VDAC_2D_START, 1, &tmp_val) < 0) { + return 0; + } - return tmp_val; + return tmp_val; } int SSMSaveVDac3DValue(unsigned short rw_val) { - return SSMWriteNTypes(SSM_RW_VDAC_3D_START, 1, &rw_val); + return SSMWriteNTypes(SSM_RW_VDAC_3D_START, 1, &rw_val); } int SSMReadVDac3DValue() { - unsigned short tmp_val = 0; + unsigned short tmp_val = 0; - if (SSMReadNTypes(SSM_RW_VDAC_3D_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_VDAC_3D_START, 1, &tmp_val) < 0) { + return 0; + } - return tmp_val; + return tmp_val; } int SSMSaveChromaStatus(int mode) { - int fd = -1, ret = -1; - char value[20] = ""; + int fd = -1, ret = -1; + char value[20] = ""; - sprintf(value, "%d", mode); + sprintf(value, "%d", mode); - fd = open("/sys/class/tvafe/tvafe0/cvd_reg8a", O_RDWR); + fd = open("/sys/class/tvafe/tvafe0/cvd_reg8a", O_RDWR); - if (fd < 0) { - LOGE("open /sys/class/tvafe/tvafe0/cvd_reg8a ERROR(%s)!!\n", - strerror(errno)); - return -1; - } + if (fd < 0) { + LOGE("open /sys/class/tvafe/tvafe0/cvd_reg8a ERROR(%s)!!\n", + strerror(errno)); + return -1; + } - ret = write(fd, value, strlen(value)); + ret = write(fd, value, strlen(value)); - close(fd); + close(fd); - return ret; + return ret; } int SSMSaveNonStandardValue(unsigned short rw_val) { - int i = 0, tmp_ret = 0; - unsigned char data[] = { 0, 0 }; + int i = 0, tmp_ret = 0; + unsigned char data[] = { 0, 0 }; - { - data[0] = (unsigned char) rw_val; - rw_val >>= 8; - data[1] = (unsigned char) rw_val; - } + { + data[0] = (unsigned char) rw_val; + rw_val >>= 8; + data[1] = (unsigned char) rw_val; + } - LOGD("%s, save NonStandard_value = %d", CFG_SECTION_TV, rw_val); + LOGD("%s, save NonStandard_value = %d", CFG_SECTION_TV, rw_val); - return SSMWriteNTypes(SSM_RW_NON_STANDARD_START, 2, data); + return SSMWriteNTypes(SSM_RW_NON_STANDARD_START, 2, data); } int SSMReadNonStandardValue(void) { - int i = 0, value = 0; - int data[] = { 0, 0 }; + int i = 0, value = 0; + int data[] = { 0, 0 }; - if (SSMReadNTypes(SSM_RW_NON_STANDARD_START, 2, data) < 0) { - LOGE("%s, read NonStandard_value error.", CFG_SECTION_TV); - return 0; - } + if (SSMReadNTypes(SSM_RW_NON_STANDARD_START, 2, data) < 0) { + LOGE("%s, read NonStandard_value error.", CFG_SECTION_TV); + return 0; + } - { - value += data[1]; - value <<= 8; - value += data[0]; - } + { + value += data[1]; + value <<= 8; + value += data[0]; + } - LOGD("%s, read NonStandard_value = %d.", CFG_SECTION_TV, value); + LOGD("%s, read NonStandard_value = %d.", CFG_SECTION_TV, value); - return value; + return value; } int SSMSaveAdbSwitchValue(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_ADB_SWITCH_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_ADB_SWITCH_START, 1, &tmp_val); } int SSMReadAdbSwitchValue(void) { - unsigned char switch_val = 0; + unsigned char switch_val = 0; - if (SSMReadNTypes(SSM_RW_ADB_SWITCH_START, 1, &switch_val) < 0) { - LOGD("%s, read switch value error", CFG_SECTION_TV); - return -1; - } + if (SSMReadNTypes(SSM_RW_ADB_SWITCH_START, 1, &switch_val) < 0) { + LOGD("%s, read switch value error", CFG_SECTION_TV); + return -1; + } - LOGD("%s, read switch value = %d", CFG_SECTION_TV, switch_val); + LOGD("%s, read switch value = %d", CFG_SECTION_TV, switch_val); - return switch_val; + return switch_val; } int SSMSaveSerialCMDSwitchValue(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_SERIAL_CMD_SWITCH_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_SERIAL_CMD_SWITCH_START, 1, &tmp_val); } int SSMReadSerialCMDSwitchValue(void) { - unsigned char switch_val = 0; + unsigned char switch_val = 0; - if (SSMReadNTypes(SSM_RW_SERIAL_CMD_SWITCH_START, 1, &switch_val) < 0) { - LOGD("%s, read switch value error", CFG_SECTION_TV); - return -1; - } + if (SSMReadNTypes(SSM_RW_SERIAL_CMD_SWITCH_START, 1, &switch_val) < 0) { + LOGD("%s, read switch value error", CFG_SECTION_TV); + return -1; + } - LOGD("%s, read switch value = %d", CFG_SECTION_TV, switch_val); + LOGD("%s, read switch value = %d", CFG_SECTION_TV, switch_val); - return switch_val; + return switch_val; } int SSMSaveNoiseGateThresholdValue(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_NOISE_GATE_THRESHOLD_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_NOISE_GATE_THRESHOLD_START, 1, &tmp_val); } int SSMReadNoiseGateThresholdValue(void) { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_NOISE_GATE_THRESHOLD_START, 1, &tmp_val) < 0) { - LOGD("%s, read NoiseGateThreshold error", CFG_SECTION_TV); - return -1; - } + if (SSMReadNTypes(SSM_RW_NOISE_GATE_THRESHOLD_START, 1, &tmp_val) < 0) { + LOGD("%s, read NoiseGateThreshold error", CFG_SECTION_TV); + return -1; + } - LOGD("%s, read NoiseGateThreshold = %d", CFG_SECTION_TV, tmp_val); + LOGD("%s, read NoiseGateThreshold = %d", CFG_SECTION_TV, tmp_val); - return tmp_val; + return tmp_val; } int SSMSaveGraphyBacklight(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - if (rw_val < 0 || rw_val > 100) { - return -1; - } + if (rw_val < 0 || rw_val > 100) { + return -1; + } - return SSMWriteNTypes(SSM_RW_UI_GRHPHY_BACKLIGHT_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_UI_GRHPHY_BACKLIGHT_START, 1, &tmp_val); } int SSMReadGraphyBacklight(void) { - unsigned char value = 0; + unsigned char value = 0; - if (SSMReadNTypes(SSM_RW_UI_GRHPHY_BACKLIGHT_START, 1, &value) < 0) { - LOGD("%s, read graphybacklight error.\n", CFG_SECTION_TV); - return -1; - } + if (SSMReadNTypes(SSM_RW_UI_GRHPHY_BACKLIGHT_START, 1, &value) < 0) { + LOGD("%s, read graphybacklight error.\n", CFG_SECTION_TV); + return -1; + } - if (/*value < 0 || */value > 100) { - LOGD("%s, range of graphybacklight (%d) is not between 0-100.\n", - CFG_SECTION_TV, value); - return -1; - } + if (/*value < 0 || */value > 100) { + LOGD("%s, range of graphybacklight (%d) is not between 0-100.\n", + CFG_SECTION_TV, value); + return -1; + } - return value; + return value; } int SSMSaveFastSuspendFlag(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_FASTSUSPEND_FLAG_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_FASTSUSPEND_FLAG_START, 1, &tmp_val); } int SSMReadFastSuspendFlag(void) { - unsigned char value = 0; + unsigned char value = 0; - if (SSMReadNTypes(SSM_RW_FASTSUSPEND_FLAG_START, 1, &value) < 0) { - LOGD("%s, read FastSuspendFlag error.\n", CFG_SECTION_TV); - return -1; - } + if (SSMReadNTypes(SSM_RW_FASTSUSPEND_FLAG_START, 1, &value) < 0) { + LOGD("%s, read FastSuspendFlag error.\n", CFG_SECTION_TV); + return -1; + } - return value; + return value; } int SSMSaveCABufferSizeValue(unsigned short rw_val) { - int i = 0, tmp_ret = 0; - unsigned char data[] = { 0, 0 }; + int i = 0, tmp_ret = 0; + unsigned char data[] = { 0, 0 }; - { - data[0] = (unsigned char) rw_val; - rw_val >>= 8; - data[1] = (unsigned char) rw_val; - } + { + data[0] = (unsigned char) rw_val; + rw_val >>= 8; + data[1] = (unsigned char) rw_val; + } - return SSMWriteNTypes(SSM_RW_CA_BUFFER_SIZE_START, 2, data); + return SSMWriteNTypes(SSM_RW_CA_BUFFER_SIZE_START, 2, data); } int SSMReadCABufferSizeValue(void) { - int i = 0, value = 0; - unsigned char data[] = { 0, 0 }; + int i = 0, value = 0; + unsigned char data[] = { 0, 0 }; - if (SSMReadNTypes(SSM_RW_CA_BUFFER_SIZE_START, 2, data) < 0) { - LOGE("%s, read ca_buffer_size error", CFG_SECTION_TV); - return 0; - } + if (SSMReadNTypes(SSM_RW_CA_BUFFER_SIZE_START, 2, data) < 0) { + LOGE("%s, read ca_buffer_size error", CFG_SECTION_TV); + return 0; + } - { - value += data[1]; - value <<= 8; - value += data[0]; - } + { + value += data[1]; + value <<= 8; + value += data[0]; + } - return value; + return value; } int SSMSaveStandbyMode(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_STANDBY_MODE_FLAG_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_STANDBY_MODE_FLAG_START, 1, &tmp_val); } int SSMReadStandbyMode() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_STANDBY_MODE_FLAG_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_STANDBY_MODE_FLAG_START, 1, &tmp_val) < 0) { + return 0; + } - return tmp_val; + return tmp_val; } int SSMSaveHDMIEQMode(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_HDMIEQ_MODE_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_HDMIEQ_MODE_START, 1, &tmp_val); } int SSMReadHDMIEQMode() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_HDMIEQ_MODE_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_HDMIEQ_MODE_START, 1, &tmp_val) < 0) { + return 0; + } - return tmp_val; + return tmp_val; } int SSMSaveLogoOnOffFlag(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_LOGO_ON_OFF_FLAG_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_LOGO_ON_OFF_FLAG_START, 1, &tmp_val); } int SSMReadLogoOnOffFlag() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_LOGO_ON_OFF_FLAG_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_LOGO_ON_OFF_FLAG_START, 1, &tmp_val) < 0) { + return 0; + } - return tmp_val; + return tmp_val; } int SSMSaveHDMIInternalMode(unsigned int rw_val) { - int i = 0, tmp_ret = 0; - unsigned char data[] = { 0, 0, 0, 0 }; + int i = 0, tmp_ret = 0; + unsigned char data[] = { 0, 0, 0, 0 }; - for (i = 3; i >= 0; i--) { - data[i] = (unsigned char) rw_val; - rw_val >>= 8; - } + for (i = 3; i >= 0; i--) { + data[i] = (unsigned char) rw_val; + rw_val >>= 8; + } - return SSMWriteNTypes(SSM_RW_HDMIINTERNAL_MODE_START, 4, data); + return SSMWriteNTypes(SSM_RW_HDMIINTERNAL_MODE_START, 4, data); } int SSMReadHDMIInternalMode() { - int i = 0, value = 0; - int data[] = { 0, 0, 0, 0 }; + int i = 0, value = 0; + int data[] = { 0, 0, 0, 0 }; - if (SSMReadNTypes(SSM_RW_HDMIINTERNAL_MODE_START, 4, data) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_HDMIINTERNAL_MODE_START, 4, data) < 0) { + return 0; + } - for (i = 0; i < 4; i++) { - value <<= 8; - value += data[i]; - } + for (i = 0; i < 4; i++) { + value <<= 8; + value += data[i]; + } - return value; + return value; } int SSMSaveParentalControlPassWord(unsigned char *password, int size) { - return SSMWriteNTypes(SSM_RW_PARENTAL_CTL_PASSWORD_START, size, password); + return SSMWriteNTypes(SSM_RW_PARENTAL_CTL_PASSWORD_START, size, password); } int SSMReadParentalControlPassWord(unsigned short *password) { - if (SSMReadNTypes(SSM_RW_PARENTAL_CTL_PASSWORD_START, - SSM_RW_PARENTAL_CTL_PASSWORD_LEN, (unsigned char *) password) - < 0) { - return -1; - } - return 0; + if (SSMReadNTypes(SSM_RW_PARENTAL_CTL_PASSWORD_START, + SSM_RW_PARENTAL_CTL_PASSWORD_LEN, (unsigned char *) password) + < 0) { + return -1; + } + return 0; } int SSMSaveDisable3D(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_DISABLE_3D_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_DISABLE_3D_START, 1, &tmp_val); } int SSMReadDisable3D() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_DISABLE_3D_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_DISABLE_3D_START, 1, &tmp_val) < 0) { + return 0; + } - if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { - tmp_val = 0; - } + if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { + tmp_val = 0; + } - return tmp_val; + return tmp_val; } int SSMSaveGlobalOgoEnable(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_GLOBAL_OGO_ENABLE_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_GLOBAL_OGO_ENABLE_START, 1, &tmp_val); } int SSMReadGlobalOgoEnable() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(SSM_RW_GLOBAL_OGO_ENABLE_START, 1, &tmp_val) < 0) { - return 0; - } + if (SSMReadNTypes(SSM_RW_GLOBAL_OGO_ENABLE_START, 1, &tmp_val) < 0) { + return 0; + } - if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { - tmp_val = 0; - } + if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { + tmp_val = 0; + } - return tmp_val; + return tmp_val; } int SSMDeviceMarkCheck() { - int i = 0, failed_count = 0; - int mark_offset[3] = { 0, 0, 0 }; - unsigned char mark_values[3] = { 0, 0, 0 }; - unsigned char tmp_ch = 0; + int i = 0, failed_count = 0; + int mark_offset[3] = { 0, 0, 0 }; + unsigned char mark_values[3] = { 0, 0, 0 }; + unsigned char tmp_ch = 0; - //read temp one byte - SSMReadNTypes(0, 1, &tmp_ch); + //read temp one byte + SSMReadNTypes(0, 1, &tmp_ch); - mark_offset[0] = SSM_MARK_01_START; - mark_offset[1] = SSM_MARK_02_START; - mark_offset[2] = SSM_MARK_03_START; + mark_offset[0] = SSM_MARK_01_START; + mark_offset[1] = SSM_MARK_02_START; + mark_offset[2] = SSM_MARK_03_START; - mark_values[0] = SSM_MARK_01_VALUE; - mark_values[1] = SSM_MARK_02_VALUE; - mark_values[2] = SSM_MARK_03_VALUE; + mark_values[0] = SSM_MARK_01_VALUE; + mark_values[1] = SSM_MARK_02_VALUE; + mark_values[2] = SSM_MARK_03_VALUE; - if (SSMReadBurnWriteCharaterChar() != CC_DEF_CHARACTER_CHAR_VAL) { - SSMSaveBurnWriteCharaterChar(CC_DEF_CHARACTER_CHAR_VAL); - } + if (SSMReadBurnWriteCharaterChar() != CC_DEF_CHARACTER_CHAR_VAL) { + SSMSaveBurnWriteCharaterChar(CC_DEF_CHARACTER_CHAR_VAL); + } - failed_count = 0; - for (i = 0; i < 3; i++) { - tmp_ch = 0; - if (SSMReadNTypes(mark_offset[i], 1, &tmp_ch) < 0) { - LOGE("%s, SSMDeviceMarkCheck Read Mark failed!!!\n", CFG_SECTION_TV); - break; - } + failed_count = 0; + for (i = 0; i < 3; i++) { + tmp_ch = 0; + if (SSMReadNTypes(mark_offset[i], 1, &tmp_ch) < 0) { + LOGE("%s, SSMDeviceMarkCheck Read Mark failed!!!\n", CFG_SECTION_TV); + break; + } - if (tmp_ch != mark_values[i]) { - failed_count += 1; - LOGE( - "%s, SSMDeviceMarkCheck Mark[%d]'s offset = %d, Mark[%d]'s Value = %d, read value = %d.\n", - CFG_SECTION_TV, i, mark_offset[i], i, mark_values[i], tmp_ch); - } - } + if (tmp_ch != mark_values[i]) { + failed_count += 1; + LOGE( + "%s, SSMDeviceMarkCheck Mark[%d]'s offset = %d, Mark[%d]'s Value = %d, read value = %d.\n", + CFG_SECTION_TV, i, mark_offset[i], i, mark_values[i], tmp_ch); + } + } - if (failed_count >= 3) { - return -1; - } + if (failed_count >= 3) { + return -1; + } - return 0; + return 0; } int SSMRestoreDeviceMarkValues() { - int i; - int mark_offset[3] = { - (int) SSM_MARK_01_START, // - (int) SSM_MARK_02_START, // - (int) SSM_MARK_03_START, // - }; + int i; + int mark_offset[3] = { + (int) SSM_MARK_01_START, // + (int) SSM_MARK_02_START, // + (int) SSM_MARK_03_START, // + }; - unsigned char mark_values[3] = { - // - (unsigned char) SSM_MARK_01_VALUE, (unsigned char) SSM_MARK_02_VALUE, - (unsigned char) SSM_MARK_03_VALUE, // - }; + unsigned char mark_values[3] = { + // + (unsigned char) SSM_MARK_01_VALUE, (unsigned char) SSM_MARK_02_VALUE, + (unsigned char) SSM_MARK_03_VALUE, // + }; - for (i = 0; i < 3; i++) { - if (SSMWriteNTypes(mark_offset[i], 1, &(mark_values[i])) < 0) { - LOGD("SSMRestoreDeviceMarkValues Write Mark failed.\n"); - break; - } - } + for (i = 0; i < 3; i++) { + if (SSMWriteNTypes(mark_offset[i], 1, &(mark_values[i])) < 0) { + LOGD("SSMRestoreDeviceMarkValues Write Mark failed.\n"); + break; + } + } - if (i < 3) { - return -1; - } + if (i < 3) { + return -1; + } - return 0; + return 0; } static int SSMGetPreCopyingEnableCfg() { - const char *prop_value; + const char *prop_value; - prop_value = config_get_str(CFG_SECTION_TV, "ssm.precopying.en", "null"); - if (strcmp(prop_value, "null") == 0 || strcmp(prop_value, "0") == 0 - || strcmp(prop_value, "disable") == 0) { - return 0; - } + prop_value = config_get_str(CFG_SECTION_TV, "ssm.precopying.en", "null"); + if (strcmp(prop_value, "null") == 0 || strcmp(prop_value, "0") == 0 + || strcmp(prop_value, "disable") == 0) { + return 0; + } - return 1; + return 1; } static int SSMGetPreCopyingDevicePathCfg(char dev_path[]) { - const char *prop_value; + const char *prop_value; - if (dev_path == NULL) { - return -1; - } + if (dev_path == NULL) { + return -1; + } - prop_value = config_get_str(CFG_SECTION_TV, "ssm.precopying.devpath", "null"); - if (strcmp(prop_value, "null") == 0) { - return 1; - } + prop_value = config_get_str(CFG_SECTION_TV, "ssm.precopying.devpath", "null"); + if (strcmp(prop_value, "null") == 0) { + return 1; + } - strcpy(dev_path, prop_value); + strcpy(dev_path, prop_value); - return 0; + return 0; } static unsigned char gTempDataBuf[4096] = { 0 }; int SSMHandlePreCopying() { - int device_fd = -1; - int i = 0, tmp_size = 0; - unsigned char tmp_ch = 0; - char tmpPreCopyingDevicePath[256] = { '\0' }; + int device_fd = -1; + int i = 0, tmp_size = 0; + unsigned char tmp_ch = 0; + char tmpPreCopyingDevicePath[256] = { '\0' }; - if (SSMGetPreCopyingEnableCfg() == 0) { - LOGD("%s, Pre copying is disable now.\n", CFG_SECTION_TV); - return 0; - } + if (SSMGetPreCopyingEnableCfg() == 0) { + LOGD("%s, Pre copying is disable now.\n", CFG_SECTION_TV); + return 0; + } - //read temp one byte - SSMReadNTypes(0, 1, &tmp_ch); + //read temp one byte + SSMReadNTypes(0, 1, &tmp_ch); - SSMGetPreCopyingDevicePathCfg(tmpPreCopyingDevicePath); + SSMGetPreCopyingDevicePathCfg(tmpPreCopyingDevicePath); - device_fd = open(tmpPreCopyingDevicePath, O_RDONLY); - if (device_fd < 0) { - LOGE("%s, Open device file \"%s\" error: %s.\n", CFG_SECTION_TV, - tmpPreCopyingDevicePath, strerror(errno)); - return -1; - } + device_fd = open(tmpPreCopyingDevicePath, O_RDONLY); + if (device_fd < 0) { + LOGE("%s, Open device file \"%s\" error: %s.\n", CFG_SECTION_TV, + tmpPreCopyingDevicePath, strerror(errno)); + return -1; + } - tmp_size = lseek(device_fd, 0, SEEK_END); - if (tmp_size == 4096) { - lseek(device_fd, 0, SEEK_SET); - read(device_fd, gTempDataBuf, tmp_size); + tmp_size = lseek(device_fd, 0, SEEK_END); + if (tmp_size == 4096) { + lseek(device_fd, 0, SEEK_SET); + read(device_fd, gTempDataBuf, tmp_size); - SSMWriteNTypes(0, tmp_size, gTempDataBuf); - } + SSMWriteNTypes(0, tmp_size, gTempDataBuf); + } - close(device_fd); + close(device_fd); - remove(tmpPreCopyingDevicePath); + remove(tmpPreCopyingDevicePath); - return 0; + return 0; } int SSMSaveDTVType(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_DTV_TYPE_START, 1, &tmp_val); + return SSMWriteNTypes(SSM_RW_DTV_TYPE_START, 1, &tmp_val); } int SSMReadDTVType(int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(SSM_RW_DTV_TYPE_START, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(SSM_RW_DTV_TYPE_START, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } #ifndef NELEM @@ -1409,1038 +1409,1038 @@ int SSMReadDTVType(int *rw_val) // other api int GetSSMCfgBufferData(const char *key_str, int *buf_item_count, int radix, - unsigned char data_buf[]) + unsigned char data_buf[]) { - int cfg_item_count = 0; - char *token = NULL; - const char *strDelimit = ","; - const char *config_value; - char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; + int cfg_item_count = 0; + char *token = NULL; + const char *strDelimit = ","; + const char *config_value; + char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; - config_value = config_get_str(CFG_SECTION_TV, key_str, "null"); - if (strcasecmp(config_value, "null") == 0) { - LOGE("%s, can't get config \"%s\"!!!\n", CFG_SECTION_TV, key_str); - return -1; - } + config_value = config_get_str(CFG_SECTION_TV, key_str, "null"); + if (strcasecmp(config_value, "null") == 0) { + LOGE("%s, can't get config \"%s\"!!!\n", CFG_SECTION_TV, key_str); + return -1; + } - cfg_item_count = 0; + cfg_item_count = 0; - memset((void *)data_str, 0, sizeof(data_str)); - strncpy(data_str, config_value, sizeof(data_str) - 1); + memset((void *)data_str, 0, sizeof(data_str)); + strncpy(data_str, config_value, sizeof(data_str) - 1); - char *pSave; - token = strtok_r(data_str, strDelimit, &pSave); - while (token != NULL) { - if (cfg_item_count < *buf_item_count) { - data_buf[cfg_item_count] = strtol(token, NULL, radix); + char *pSave; + token = strtok_r(data_str, strDelimit, &pSave); + while (token != NULL) { + if (cfg_item_count < *buf_item_count) { + data_buf[cfg_item_count] = strtol(token, NULL, radix); - token = strtok_r(NULL, strDelimit, &pSave); - cfg_item_count += 1; - } else { - LOGE("%s, we get data count more than desire count (%d)!!!\n", - CFG_SECTION_TV, *buf_item_count); - return -1; - } - } + token = strtok_r(NULL, strDelimit, &pSave); + cfg_item_count += 1; + } else { + LOGE("%s, we get data count more than desire count (%d)!!!\n", + CFG_SECTION_TV, *buf_item_count); + return -1; + } + } - *buf_item_count = cfg_item_count; + *buf_item_count = cfg_item_count; - return 0; + return 0; } int SSMSaveSourceInput(unsigned char rw_val) { - return SSMWriteNTypes(TVIN_DATA_POS_SOURCE_INPUT_START, 1, &rw_val); + return SSMWriteNTypes(TVIN_DATA_POS_SOURCE_INPUT_START, 1, &rw_val); } int SSMReadSourceInput() { - unsigned char tmp_val = 0; + unsigned char tmp_val = 0; - if (SSMReadNTypes(TVIN_DATA_POS_SOURCE_INPUT_START, 1, &tmp_val) < 0) { - return 0; - } - if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { - tmp_val = 0; - } + if (SSMReadNTypes(TVIN_DATA_POS_SOURCE_INPUT_START, 1, &tmp_val) < 0) { + return 0; + } + if (tmp_val == CBlobDevice::CC_INIT_BYTE_VAL) { + tmp_val = 0; + } - return tmp_val; + return tmp_val; } int SSMSaveCVBSStd(unsigned char rw_val) { - return SSMWriteNTypes(TVIN_DATA_CVBS_STD_START, 1, &rw_val); + return SSMWriteNTypes(TVIN_DATA_CVBS_STD_START, 1, &rw_val); } int SSMReadCVBSStd(unsigned char *rw_val) { - return SSMReadNTypes(TVIN_DATA_CVBS_STD_START, 1, rw_val); + return SSMReadNTypes(TVIN_DATA_CVBS_STD_START, 1, rw_val); } int SSMSave3DMode(unsigned char rw_val) { - return SSMWriteNTypes(TVIN_DATA_POS_3D_MODE_START, 1, &rw_val); + return SSMWriteNTypes(TVIN_DATA_POS_3D_MODE_START, 1, &rw_val); } int SSMRead3DMode(unsigned char *rw_val) { - return SSMReadNTypes(TVIN_DATA_POS_3D_MODE_START, 1, rw_val); + return SSMReadNTypes(TVIN_DATA_POS_3D_MODE_START, 1, rw_val); } int SSMSave3DLRSwitch(unsigned char rw_val) { - return SSMWriteNTypes(TVIN_DATA_POS_3D_LRSWITCH_START, 1, &rw_val); + return SSMWriteNTypes(TVIN_DATA_POS_3D_LRSWITCH_START, 1, &rw_val); } int SSMRead3DLRSwitch(unsigned char *rw_val) { - return SSMReadNTypes(TVIN_DATA_POS_3D_LRSWITCH_START, 1, rw_val); + return SSMReadNTypes(TVIN_DATA_POS_3D_LRSWITCH_START, 1, rw_val); } int SSMSave3DDepth(unsigned char rw_val) { - return SSMWriteNTypes(TVIN_DATA_POS_3D_DEPTH_START, 1, &rw_val); + return SSMWriteNTypes(TVIN_DATA_POS_3D_DEPTH_START, 1, &rw_val); } int SSMRead3DDepth(unsigned char *rw_val) { - return SSMReadNTypes(TVIN_DATA_POS_3D_DEPTH_START, 1, rw_val); + return SSMReadNTypes(TVIN_DATA_POS_3D_DEPTH_START, 1, rw_val); } int SSMSave3DTO2D(unsigned char rw_val) { - return SSMWriteNTypes(TVIN_DATA_POS_3D_TO2D_START, 1, &rw_val); + return SSMWriteNTypes(TVIN_DATA_POS_3D_TO2D_START, 1, &rw_val); } int SSMRead3DTO2D(unsigned char *rw_val) { - return SSMReadNTypes(TVIN_DATA_POS_3D_TO2D_START, 1, rw_val); + return SSMReadNTypes(TVIN_DATA_POS_3D_TO2D_START, 1, rw_val); } int SSMSaveBrightness(int offset, int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_BRIGHTNESS_START + offset, 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_BRIGHTNESS_START + offset, 1, &tmp_val); } int SSMReadBrightness(int offset, int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_BRIGHTNESS_START + offset, 1, - &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_BRIGHTNESS_START + offset, 1, + &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveContrast(int offset, int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_CONTRAST_START + offset, 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_CONTRAST_START + offset, 1, &tmp_val); } int SSMReadContrast(int offset, int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_CONTRAST_START + offset, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_CONTRAST_START + offset, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveSaturation(int offset, int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_SATURATION_START + offset, 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_SATURATION_START + offset, 1, &tmp_val); } int SSMReadSaturation(int offset, int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_SATURATION_START + offset, 1, - &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_SATURATION_START + offset, 1, + &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveHue(int offset, int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_HUE_START + offset, 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_HUE_START + offset, 1, &tmp_val); } int SSMReadHue(int offset, int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_HUE_START + offset, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_HUE_START + offset, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveSharpness(int offset, int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_SHARPNESS_START + offset, 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_SHARPNESS_START + offset, 1, &tmp_val); } int SSMReadSharpness(int offset, int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_SHARPNESS_START + offset, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_SHARPNESS_START + offset, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveSceneMode(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_SCENE_MODE_START, 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_SCENE_MODE_START, 1, &tmp_val); } int SSMReadSceneMode(int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_SCENE_MODE_START, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_SCENE_MODE_START, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSavePictureMode(int offset, int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_PICTURE_MODE_START + offset, 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_PICTURE_MODE_START + offset, 1, &tmp_val); } int SSMReadPictureMode(int offset, int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_PICTURE_MODE_START + offset, 1, - &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_PICTURE_MODE_START + offset, 1, + &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveColorTemperature(int offset, int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_COLOR_TEMP_START + offset, 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_COLOR_TEMP_START + offset, 1, &tmp_val); } int SSMReadColorTemperature(int offset, int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_COLOR_TEMP_START + offset, 1, - &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_COLOR_TEMP_START + offset, 1, + &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveNoiseReduction(int offset, int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_NOISE_REDUCTION_START + offset, 1, - &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_NOISE_REDUCTION_START + offset, 1, + &tmp_val); } int SSMReadNoiseReduction(int offset, int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_NOISE_REDUCTION_START + offset, 1, - &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_NOISE_REDUCTION_START + offset, 1, + &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveDisplayMode(int offset, int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_DISPLAY_MODE_START + offset, 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_DISPLAY_MODE_START + offset, 1, &tmp_val); } int SSMReadDisplayMode(int offset, int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_DISPLAY_MODE_START + offset, 1, - &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_DISPLAY_MODE_START + offset, 1, + &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveBackLightVal(int offset, int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_BACKLIGHT_START + offset, 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_BACKLIGHT_START + offset, 1, &tmp_val); } int SSMReadBackLightVal(int offset, int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_BACKLIGHT_START + offset, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_BACKLIGHT_START + offset, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveFBCN360BackLightVal(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_FBC_BACKLIGHT_START , 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_FBC_BACKLIGHT_START , 1, &tmp_val); } int SSMReadFBCN360BackLightVal(int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_BACKLIGHT_START, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_BACKLIGHT_START, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveFBCN360ColorTempVal(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_FBC_COLORTEMP_START , 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_FBC_COLORTEMP_START , 1, &tmp_val); } int SSMReadFBCN360ColorTempVal(int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_COLORTEMP_START, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_COLORTEMP_START, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveFBCELECmodeVal(int rw_val) { - unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_FBC_ELECMODE_START , 1, &tmp_val); + unsigned char tmp_val = rw_val; + return SSMWriteNTypes(VPP_DATA_POS_FBC_ELECMODE_START , 1, &tmp_val); } int SSMReadFBCELECmodeVal(int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_ELECMODE_START, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_ELECMODE_START, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveColorDemoMode(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_COLOR_DEMO_MODE_START, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_COLOR_DEMO_MODE_START, 1, &rw_val); } int SSMReadColorDemoMode(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_COLOR_DEMO_MODE_START, 1, rw_val); + return SSMReadNTypes(VPP_DATA_POS_COLOR_DEMO_MODE_START, 1, rw_val); } int SSMSaveColorBaseMode(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_COLOR_BASE_MODE_START, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_COLOR_BASE_MODE_START, 1, &rw_val); } int SSMReadColorBaseMode(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_COLOR_BASE_MODE_START, 1, rw_val); + return SSMReadNTypes(VPP_DATA_POS_COLOR_BASE_MODE_START, 1, rw_val); } int SSMSaveRGBGainRStart(int offset, unsigned int rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_RGB_GAIN_R_START + offset, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_RGB_GAIN_R_START + offset, 1, &rw_val); } int SSMReadRGBGainRStart(int offset, unsigned int *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_RGB_GAIN_R_START + offset, 1, rw_val); + return SSMReadNTypes(VPP_DATA_POS_RGB_GAIN_R_START + offset, 1, rw_val); } int SSMSaveRGBGainGStart(int offset, unsigned int rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_RGB_GAIN_G_START + offset, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_RGB_GAIN_G_START + offset, 1, &rw_val); } int SSMReadRGBGainGStart(int offset, unsigned int *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_RGB_GAIN_G_START + offset, 1, rw_val); + return SSMReadNTypes(VPP_DATA_POS_RGB_GAIN_G_START + offset, 1, rw_val); } int SSMSaveRGBGainBStart(int offset, unsigned int rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_RGB_GAIN_B_START + offset, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_RGB_GAIN_B_START + offset, 1, &rw_val); } int SSMReadRGBGainBStart(int offset, unsigned int *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_RGB_GAIN_B_START + offset, 1, rw_val); + return SSMReadNTypes(VPP_DATA_POS_RGB_GAIN_B_START + offset, 1, rw_val); } int SSMSaveRGBPostOffsetRStart(int offset, int rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_RGB_POST_OFFSET_R_START + offset, 1, - &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_RGB_POST_OFFSET_R_START + offset, 1, + &rw_val); } int SSMReadRGBPostOffsetRStart(int offset, int *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_RGB_POST_OFFSET_R_START + offset, 1, - rw_val); + return SSMReadNTypes(VPP_DATA_POS_RGB_POST_OFFSET_R_START + offset, 1, + rw_val); } int SSMSaveRGBPostOffsetGStart(int offset, int rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_RGB_POST_OFFSET_G_START + offset, 1, - &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_RGB_POST_OFFSET_G_START + offset, 1, + &rw_val); } int SSMReadRGBPostOffsetGStart(int offset, int *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_RGB_POST_OFFSET_G_START + offset, 1, - rw_val); + return SSMReadNTypes(VPP_DATA_POS_RGB_POST_OFFSET_G_START + offset, 1, + rw_val); } int SSMSaveRGBPostOffsetBStart(int offset, int rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_RGB_POST_OFFSET_B_START + offset, 1, - &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_RGB_POST_OFFSET_B_START + offset, 1, + &rw_val); } int SSMReadRGBPostOffsetBStart(int offset, int *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_RGB_POST_OFFSET_B_START + offset, 1, - rw_val); + return SSMReadNTypes(VPP_DATA_POS_RGB_POST_OFFSET_B_START + offset, 1, + rw_val); } int SSMSaveRGBValueStart(int offset, int8_t rw_val) { - return SSMWriteNTypes(VPP_DATA_RGB_START + offset, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_RGB_START + offset, 1, &rw_val); } int SSMReadRGBValueStart(int offset, int8_t *rw_val) { - return SSMReadNTypes(VPP_DATA_RGB_START + offset, 1, &rw_val); + return SSMReadNTypes(VPP_DATA_RGB_START + offset, 1, &rw_val); } int SSMSaveDBCStart(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_DBC_START, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_DBC_START, 1, &rw_val); } int SSMReadDBCStart(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_DBC_START, 1, rw_val); + return SSMReadNTypes(VPP_DATA_POS_DBC_START, 1, rw_val); } int SSMSaveColorSpaceStart(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_COLOR_SPACE_START, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_COLOR_SPACE_START, 1, &rw_val); } int SSMReadColorSpaceStart(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_COLOR_SPACE_START, 1, rw_val); + return SSMReadNTypes(VPP_DATA_COLOR_SPACE_START, 1, rw_val); } int SSMSaveDnlpStart(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_DNLP_START, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_DNLP_START, 1, &rw_val); } int SSMReadDnlpStart(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_DNLP_START, 1, rw_val); + return SSMReadNTypes(VPP_DATA_POS_DNLP_START, 1, rw_val); } int SSMSavePanoramaStart(int offset, unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_PANORAMA_START + offset, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_PANORAMA_START + offset, 1, &rw_val); } int SSMReadPanoramaStart(int offset, unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_PANORAMA_START + offset, 1, rw_val); + return SSMReadNTypes(VPP_DATA_POS_PANORAMA_START + offset, 1, rw_val); } int SSMSaveTestPattern(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_TEST_PATTERN_START, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_TEST_PATTERN_START, 1, &rw_val); } int SSMReadTestPattern(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_TEST_PATTERN_START, 1, rw_val); + return SSMReadNTypes(VPP_DATA_POS_TEST_PATTERN_START, 1, rw_val); } int SSMSaveAPL(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_APL_START, VPP_DATA_APL_SIZE, &rw_val); + return SSMWriteNTypes(VPP_DATA_APL_START, VPP_DATA_APL_SIZE, &rw_val); } int SSMReadAPL(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_APL_START, VPP_DATA_APL_SIZE, rw_val); + return SSMReadNTypes(VPP_DATA_APL_START, VPP_DATA_APL_SIZE, rw_val); } int SSMSaveAPL2(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_APL2_START, VPP_DATA_APL2_SIZE, &rw_val); + return SSMWriteNTypes(VPP_DATA_APL2_START, VPP_DATA_APL2_SIZE, &rw_val); } int SSMReadAPL2(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_APL2_START, VPP_DATA_APL2_SIZE, rw_val); + return SSMReadNTypes(VPP_DATA_APL2_START, VPP_DATA_APL2_SIZE, rw_val); } int SSMSaveBD(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_BD_START, VPP_DATA_BD_SIZE, &rw_val); + return SSMWriteNTypes(VPP_DATA_BD_START, VPP_DATA_BD_SIZE, &rw_val); } int SSMReadBD(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_BD_START, VPP_DATA_BD_SIZE, rw_val); + return SSMReadNTypes(VPP_DATA_BD_START, VPP_DATA_BD_SIZE, rw_val); } int SSMSaveBP(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_BP_START, VPP_DATA_BP_SIZE, &rw_val); + return SSMWriteNTypes(VPP_DATA_BP_START, VPP_DATA_BP_SIZE, &rw_val); } int SSMReadBP(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_BP_START, VPP_DATA_BP_SIZE, rw_val); + return SSMReadNTypes(VPP_DATA_BP_START, VPP_DATA_BP_SIZE, rw_val); } int SSMSaveDDRSSC(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_DDR_SSC_START, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_DDR_SSC_START, 1, &rw_val); } int SSMReadDDRSSC(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_DDR_SSC_START, 1, rw_val); + return SSMReadNTypes(VPP_DATA_POS_DDR_SSC_START, 1, rw_val); } int SSMSaveLVDSSSC(unsigned char *rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_LVDS_SSC_START, 2, rw_val); + return SSMWriteNTypes(VPP_DATA_POS_LVDS_SSC_START, 2, rw_val); } int SSMReadLVDSSSC(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_LVDS_SSC_START, 2, rw_val); + return SSMReadNTypes(VPP_DATA_POS_LVDS_SSC_START, 2, rw_val); } int SSMSaveDreamPanel(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_DREAM_PANEL_START, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_DREAM_PANEL_START, 1, &rw_val); } int SSMReadDreamPanel(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_DREAM_PANEL_START, 1, rw_val); + return SSMReadNTypes(VPP_DATA_POS_DREAM_PANEL_START, 1, rw_val); } int SSMSaveUserNatureLightSwitch(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_USER_NATURE_SWITCH_START, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_USER_NATURE_SWITCH_START, 1, &rw_val); } int SSMReadUserNatureLightSwitch(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_USER_NATURE_SWITCH_START, 1, rw_val); + return SSMReadNTypes(VPP_DATA_USER_NATURE_SWITCH_START, 1, rw_val); } int SSMSaveDBCBacklightEnable(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_DBC_BACKLIGHT_START, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_DBC_BACKLIGHT_START, 1, &rw_val); } int SSMReadDBCBacklightEnable(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_DBC_BACKLIGHT_START, 1, rw_val); + return SSMReadNTypes(VPP_DATA_DBC_BACKLIGHT_START, 1, rw_val); } int SSMSaveDBCBacklightStd(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_DBC_STANDARD_START, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_DBC_STANDARD_START, 1, &rw_val); } int SSMReadDBCBacklightStd(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_DBC_STANDARD_START, 1, rw_val); + return SSMReadNTypes(VPP_DATA_DBC_STANDARD_START, 1, rw_val); } int SSMSaveDBCEnable(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_DBC_ENABLE_START, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_DBC_ENABLE_START, 1, &rw_val); } int SSMReadDBCEnable(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_DBC_ENABLE_START, 1, rw_val); + return SSMReadNTypes(VPP_DATA_DBC_ENABLE_START, 1, rw_val); } int SSMSaveGammaValue(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_GAMMA_VALUE_START, 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_GAMMA_VALUE_START, 1, &tmp_val); } int SSMReadGammaValue(int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_GAMMA_VALUE_START, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_GAMMA_VALUE_START, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveBackLightReverse(unsigned char rw_val) { - return SSMWriteNTypes(VPP_DATA_POS_BACKLIGHT_REVERSE_START, 1, &rw_val); + return SSMWriteNTypes(VPP_DATA_POS_BACKLIGHT_REVERSE_START, 1, &rw_val); } int SSMReadBackLightReverse(unsigned char *rw_val) { - return SSMReadNTypes(VPP_DATA_POS_BACKLIGHT_REVERSE_START, 1, rw_val); + return SSMReadNTypes(VPP_DATA_POS_BACKLIGHT_REVERSE_START, 1, rw_val); } int SSMSaveAudioMasterVolume(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_MASTR_VOLUME_VAL, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_MASTR_VOLUME_VAL, 1, &rw_val); } int SSMReadAudioMasterVolume(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_MASTR_VOLUME_VAL, 1, rw_val); + return SSMReadNTypes(SSM_AUD_MASTR_VOLUME_VAL, 1, rw_val); } int SSMSaveAudioBalanceVal(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_BALANCE_VAL, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_BALANCE_VAL, 1, &rw_val); } int SSMReadAudioBalanceVal(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_BALANCE_VAL, 1, rw_val); + return SSMReadNTypes(SSM_AUD_BALANCE_VAL, 1, rw_val); } int SSMSaveAudioSupperBassVolume(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_SUPPERBASS_VOLUME_VAL, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_SUPPERBASS_VOLUME_VAL, 1, &rw_val); } int SSMReadAudioSupperBassVolume(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_SUPPERBASS_VOLUME_VAL, 1, rw_val); + return SSMReadNTypes(SSM_AUD_SUPPERBASS_VOLUME_VAL, 1, rw_val); } int SSMSaveAudioSupperBassSwitch(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_SUPPERBASS_SWITCH, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_SUPPERBASS_SWITCH, 1, &rw_val); } int SSMReadAudioSupperBassSwitch(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_SUPPERBASS_SWITCH, 1, rw_val); + return SSMReadNTypes(SSM_AUD_SUPPERBASS_SWITCH, 1, rw_val); } int SSMSaveAudioSRSSurroundSwitch(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_SRS_SURROUND_SWITCH, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_SRS_SURROUND_SWITCH, 1, &rw_val); } int SSMReadAudioSRSSurroundSwitch(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_SRS_SURROUND_SWITCH, 1, rw_val); + return SSMReadNTypes(SSM_AUD_SRS_SURROUND_SWITCH, 1, rw_val); } int SSMSaveAudioSRSDialogClaritySwitch(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_SRS_DIALOG_CLARITY_SWITCH, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_SRS_DIALOG_CLARITY_SWITCH, 1, &rw_val); } int SSMSaveAudioDbxTvValue(int son_value, int vol_value, int sur_value) { - int8_t rw_val = son_value; - SSMWriteNTypes(SSM_AUD_DBX_TV_SON, 1, &rw_val); - rw_val = vol_value; - SSMWriteNTypes(SSM_AUD_DBX_TV_VAL, 1, &rw_val); - rw_val = sur_value; - SSMWriteNTypes(SSM_AUD_DBX_TV_SUR, 1, &rw_val); - return 0; + int8_t rw_val = son_value; + SSMWriteNTypes(SSM_AUD_DBX_TV_SON, 1, &rw_val); + rw_val = vol_value; + SSMWriteNTypes(SSM_AUD_DBX_TV_VAL, 1, &rw_val); + rw_val = sur_value; + SSMWriteNTypes(SSM_AUD_DBX_TV_SUR, 1, &rw_val); + return 0; } int SSMReadAudioDbxTvValue(int *son_value, int *vol_value, int *sur_value) { - unsigned char rw_val; - SSMReadNTypes(SSM_AUD_DBX_TV_SON, 1, &rw_val); - *son_value = rw_val; - SSMReadNTypes(SSM_AUD_DBX_TV_VAL, 1, &rw_val); - *vol_value = rw_val; - SSMReadNTypes(SSM_AUD_DBX_TV_SUR, 1, &rw_val); - *sur_value = rw_val; - return 0; + unsigned char rw_val; + SSMReadNTypes(SSM_AUD_DBX_TV_SON, 1, &rw_val); + *son_value = rw_val; + SSMReadNTypes(SSM_AUD_DBX_TV_VAL, 1, &rw_val); + *vol_value = rw_val; + SSMReadNTypes(SSM_AUD_DBX_TV_SUR, 1, &rw_val); + *sur_value = rw_val; + return 0; } int SSMReadAudioSRSDialogClaritySwitch(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_SRS_DIALOG_CLARITY_SWITCH, 1, rw_val); + return SSMReadNTypes(SSM_AUD_SRS_DIALOG_CLARITY_SWITCH, 1, rw_val); } int SSMSaveAudioSRSTruBassSwitch(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_SRS_TRUEBASS_SWITCH, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_SRS_TRUEBASS_SWITCH, 1, &rw_val); } int SSMReadAudioSRSTruBassSwitch(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_SRS_TRUEBASS_SWITCH, 1, rw_val); + return SSMReadNTypes(SSM_AUD_SRS_TRUEBASS_SWITCH, 1, rw_val); } int SSMSaveAudioBassVolume(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_BASS_VOLUME_VAL, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_BASS_VOLUME_VAL, 1, &rw_val); } int SSMReadAudioBassVolume(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_BASS_VOLUME_VAL, 1, rw_val); + return SSMReadNTypes(SSM_AUD_BASS_VOLUME_VAL, 1, rw_val); } int SSMSaveAudioTrebleVolume(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_TREBLE_VOLUME_VAL, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_TREBLE_VOLUME_VAL, 1, &rw_val); } int SSMReadAudioTrebleVolume(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_TREBLE_VOLUME_VAL, 1, rw_val); + return SSMReadNTypes(SSM_AUD_TREBLE_VOLUME_VAL, 1, rw_val); } int SSMSaveAudioSoundModeVal(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_SOUND_MODE_VAL, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_SOUND_MODE_VAL, 1, &rw_val); } int SSMReadAudioSoundModeVal(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_SOUND_MODE_VAL, 1, rw_val); + return SSMReadNTypes(SSM_AUD_SOUND_MODE_VAL, 1, rw_val); } int SSMSaveAudioWallEffectSwitch(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_WALL_EFFCT_SWITCH, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_WALL_EFFCT_SWITCH, 1, &rw_val); } int SSMReadAudioWallEffectSwitch(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_WALL_EFFCT_SWITCH, 1, rw_val); + return SSMReadNTypes(SSM_AUD_WALL_EFFCT_SWITCH, 1, rw_val); } int SSMSaveAudioSPDIFSwitchVal(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_SPDIF_SWITCH, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_SPDIF_SWITCH, 1, &rw_val); } int SSMReadAudioSPDIFSwitchVal(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_SPDIF_SWITCH, 1, rw_val); + return SSMReadNTypes(SSM_AUD_SPDIF_SWITCH, 1, rw_val); } int SSMSaveAudioSPDIFModeVal(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_SPDIF_MODE_VAL, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_SPDIF_MODE_VAL, 1, &rw_val); } int SSMReadAudioSPDIFModeVal(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_SPDIF_MODE_VAL, 1, rw_val); + return SSMReadNTypes(SSM_AUD_SPDIF_MODE_VAL, 1, rw_val); } int SSMSaveAudioEQModeVal(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_EQ_MODE_VAL, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_EQ_MODE_VAL, 1, &rw_val); } int SSMReadAudioEQModeVal(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_EQ_MODE_VAL, 1, rw_val); + return SSMReadNTypes(SSM_AUD_EQ_MODE_VAL, 1, rw_val); } int SSMSaveAudioEQGain(int offset, int size, int8_t tmp_buf[]) { - return SSMWriteNTypes(SSM_AUD_EQ_GAIN + offset, size, tmp_buf); + return SSMWriteNTypes(SSM_AUD_EQ_GAIN + offset, size, tmp_buf); } int SSMReadAudioEQGain(int offset, int size, int8_t tmp_buf[]) { - return SSMReadNTypes(SSM_AUD_EQ_GAIN, size, tmp_buf); + return SSMReadNTypes(SSM_AUD_EQ_GAIN, size, tmp_buf); } int SSMSaveAudioAVOutMuteVal(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_AVOUT_MUTE, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_AVOUT_MUTE, 1, &rw_val); } int SSMReadAudioAVOutMuteVal(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_AVOUT_MUTE, 1, rw_val); + return SSMReadNTypes(SSM_AUD_AVOUT_MUTE, 1, rw_val); } int SSMSaveAudioSPIDFMuteVal(int8_t rw_val) { - return SSMWriteNTypes(SSM_AUD_SPIDF_MUTE, 1, &rw_val); + return SSMWriteNTypes(SSM_AUD_SPIDF_MUTE, 1, &rw_val); } int SSMReadAudioSPIDFMuteVal(int8_t *rw_val) { - return SSMReadNTypes(SSM_AUD_SPIDF_MUTE, 1, rw_val); + return SSMReadNTypes(SSM_AUD_SPIDF_MUTE, 1, rw_val); } int SSMSaveBlackoutEnable(int8_t enable) { - return SSMWriteNTypes(SSM_RW_BLACKOUT_ENABLE_START, 1, &enable); + return SSMWriteNTypes(SSM_RW_BLACKOUT_ENABLE_START, 1, &enable); } int SSMReadBlackoutEnable(int8_t *enable) { - return SSMReadNTypes(SSM_RW_BLACKOUT_ENABLE_START, 1, enable); + return SSMReadNTypes(SSM_RW_BLACKOUT_ENABLE_START, 1, enable); } int SSMSaveFBCN310BackLightVal(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_FBC_N310_BACKLIGHT_START , 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_FBC_N310_BACKLIGHT_START , 1, &tmp_val); } int SSMReadFBCN310BackLightVal(int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_N310_BACKLIGHT_START, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_N310_BACKLIGHT_START, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveFBCN310ColorTempVal(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_FBC_N310_COLORTEMP_START , 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_FBC_N310_COLORTEMP_START , 1, &tmp_val); } int SSMReadFBCN310ColorTempVal(int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_N310_COLORTEMP_START, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_N310_COLORTEMP_START, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveFBCN310LightsensorVal(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_FBC_N310_LIGHTSENSOR_START , 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_FBC_N310_LIGHTSENSOR_START , 1, &tmp_val); } int SSMReadFBCN310LightsensorVal(int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_N310_LIGHTSENSOR_START, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_N310_LIGHTSENSOR_START, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveFBCN310Dream_PanelVal(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_FBC_N310_DREAMPANEL_START , 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_FBC_N310_DREAMPANEL_START , 1, &tmp_val); } int SSMReadFBCN310Dream_PanelVal(int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_N310_DREAMPANEL_START, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_N310_DREAMPANEL_START, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveFBCN310MULT_PQVal(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_FBC_N310_MULTI_PQ_START , 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_FBC_N310_MULTI_PQ_START , 1, &tmp_val); } int SSMReadFBCN310MULT_PQVal(int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_N310_MULTI_PQ_START, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_N310_MULTI_PQ_START, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveFBCN310MEMCVal(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_FBC_N310_MEMC_START , 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_FBC_N310_MEMC_START , 1, &tmp_val); } int SSMReadFBCN310MEMCVal(int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_N310_MEMC_START, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_FBC_N310_MEMC_START, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveN311_VbyOne_Spread_Spectrum_Val(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_N311_VBYONE_SPREAD_SPECTRUM_START , 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_N311_VBYONE_SPREAD_SPECTRUM_START , 1, &tmp_val); } int SSMReadN311_VbyOne_Spread_Spectrum_Val(int *rw_val) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_N311_VBYONE_SPREAD_SPECTRUM_START, 1, &tmp_val); - *rw_val = tmp_val; + tmp_ret = SSMReadNTypes(VPP_DATA_POS_N311_VBYONE_SPREAD_SPECTRUM_START, 1, &tmp_val); + *rw_val = tmp_val; - return tmp_ret; + return tmp_ret; } int SSMSaveN311_Bluetooth_Vol(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(VPP_DATA_POS_N311_BLUETOOTH_VAL_START , 1, &tmp_val); + return SSMWriteNTypes(VPP_DATA_POS_N311_BLUETOOTH_VAL_START , 1, &tmp_val); } int SSMReadN311_Bluetooth_Vol(void) { - int tmp_ret = 0; - unsigned char tmp_val = 0; + int tmp_ret = 0; + unsigned char tmp_val = 0; - tmp_ret = SSMReadNTypes(VPP_DATA_POS_N311_BLUETOOTH_VAL_START, 1, &tmp_val); + tmp_ret = SSMReadNTypes(VPP_DATA_POS_N311_BLUETOOTH_VAL_START, 1, &tmp_val); - if (tmp_ret < 0) { - return 0; - } + if (tmp_ret < 0) { + return 0; + } - return tmp_val; + return tmp_val; } int SSMSave_DRC_ONOFF_Val(int rw_val) { - unsigned char tmp_val = rw_val; + unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_AUD_DRC_ONOFF , 1, &tmp_val); + return SSMWriteNTypes(SSM_AUD_DRC_ONOFF , 1, &tmp_val); } int SSMRead_DRC_ONOFF_Val(void) { - unsigned char tmp_val = 0; - int tmp_ret = 0; + unsigned char tmp_val = 0; + int tmp_ret = 0; - tmp_ret = SSMReadNTypes(SSM_AUD_DRC_ONOFF, 1, &tmp_val); + tmp_ret = SSMReadNTypes(SSM_AUD_DRC_ONOFF, 1, &tmp_val); - if (tmp_ret < 0) { - return 0; - } + if (tmp_ret < 0) { + return 0; + } - return tmp_val; + return tmp_val; } int SSMSave_PANEL_ID_Val(int rw_val) { - unsigned char tmp_val = rw_val; - return SSMWriteNTypes(SSM_RW_PANEL_ID_START , 1, &tmp_val); + unsigned char tmp_val = rw_val; + return SSMWriteNTypes(SSM_RW_PANEL_ID_START , 1, &tmp_val); } int SSMRead_PANEL_ID_Val(void) { - unsigned char tmp_val = 0; - int tmp_ret = 0; - tmp_ret = SSMReadNTypes(SSM_RW_PANEL_ID_START, 1, &tmp_val); - if (tmp_ret < 0) { - return 0; - } - return tmp_val; + unsigned char tmp_val = 0; + int tmp_ret = 0; + tmp_ret = SSMReadNTypes(SSM_RW_PANEL_ID_START, 1, &tmp_val); + if (tmp_ret < 0) { + return 0; + } + return tmp_val; } diff --git a/tvapi/libtv/tvsetting/CTvSettingDeviceFactory.cpp b/tvapi/libtv/tvsetting/CTvSettingDeviceFactory.cpp index 15fb708..d24cc2d 100644 --- a/tvapi/libtv/tvsetting/CTvSettingDeviceFactory.cpp +++ b/tvapi/libtv/tvsetting/CTvSettingDeviceFactory.cpp @@ -12,16 +12,16 @@ CTvSettingDeviceFactory::CTvSettingDeviceFactory() { - mpCurDevice = NULL; + mpCurDevice = NULL; } CTvSettingDeviceFactory::~CTvSettingDeviceFactory() { - if (mpCurDevice != NULL) { - delete mpCurDevice; - mpCurDevice = NULL; - } + if (mpCurDevice != NULL) { + delete mpCurDevice; + mpCurDevice = NULL; + } } @@ -169,19 +169,19 @@ CTvSettingDeviceFactory::~CTvSettingDeviceFactory() CBlobDevice *CTvSettingDeviceFactory::getSaveDeviceFromConfigFile() { - const char *device_type = config_get_str(CFG_SECTION_SETTING, "store.device.type", "file"); - const char *device_path = config_get_str(CFG_SECTION_SETTING, "device_path", "/param/default_data"); - const char *device_size = config_get_str(CFG_SECTION_SETTING, "device_size", "0x1000"); - LOGD("getSaveDeviceFromConfigFile type=%s path=%s size=%s", device_type, device_path, device_size); - - // - if (mpCurDevice != NULL) delete mpCurDevice; - - if (strcmp(device_type, "file") == 0) { - mpCurDevice = new CBlobDeviceFile(); - } else if (strcmp(device_type, "e2prom") == 0) { - } else if (strcmp(device_type, "ram") == 0) { - } + const char *device_type = config_get_str(CFG_SECTION_SETTING, "store.device.type", "file"); + const char *device_path = config_get_str(CFG_SECTION_SETTING, "device_path", "/param/default_data"); + const char *device_size = config_get_str(CFG_SECTION_SETTING, "device_size", "0x1000"); + LOGD("getSaveDeviceFromConfigFile type=%s path=%s size=%s", device_type, device_path, device_size); + + // + if (mpCurDevice != NULL) delete mpCurDevice; + + if (strcmp(device_type, "file") == 0) { + mpCurDevice = new CBlobDeviceFile(); + } else if (strcmp(device_type, "e2prom") == 0) { + } else if (strcmp(device_type, "ram") == 0) { + } - return mpCurDevice; + return mpCurDevice; } diff --git a/tvapi/libtv/tvsetting/CTvSettingDeviceFactory.h b/tvapi/libtv/tvsetting/CTvSettingDeviceFactory.h index 81b593c..ecba8ac 100644 --- a/tvapi/libtv/tvsetting/CTvSettingDeviceFactory.h +++ b/tvapi/libtv/tvsetting/CTvSettingDeviceFactory.h @@ -13,10 +13,10 @@ class CTvSettingDeviceFactory { public: - CTvSettingDeviceFactory(); - ~CTvSettingDeviceFactory(); - CBlobDevice *getSaveDeviceFromConfigFile(); + CTvSettingDeviceFactory(); + ~CTvSettingDeviceFactory(); + CBlobDevice *getSaveDeviceFromConfigFile(); private: - CBlobDevice *mpCurDevice; + CBlobDevice *mpCurDevice; }; #endif diff --git a/tvapi/libtv/tvsetting/TvKeyData.cpp b/tvapi/libtv/tvsetting/TvKeyData.cpp index 747b527..846ea85 100644 --- a/tvapi/libtv/tvsetting/TvKeyData.cpp +++ b/tvapi/libtv/tvsetting/TvKeyData.cpp @@ -20,469 +20,469 @@ static unsigned char mHDCPKeyDefHeaderBuf[CC_HDCP_KEY_HEAD_SIZE] = { - //40 bytes - 0x53, 0x4B, 0x59, 0x01, 0x00, 0x10, 0x0D, 0x15, 0x3A, 0x8E, // 000~009 - 0x99, 0xEE, 0x2A, 0x55, 0x58, 0xEE, 0xED, 0x4B, 0xBE, 0x00, // 010~019 - 0x74, 0xA9, 0x00, 0x10, 0x0A, 0x21, 0xE3, 0x30, 0x66, 0x34, // 020~029 - 0xCE, 0x9C, 0xC7, 0x8B, 0x51, 0x27, 0xF9, 0x0B, 0xAD, 0x09, // 030~039 + //40 bytes + 0x53, 0x4B, 0x59, 0x01, 0x00, 0x10, 0x0D, 0x15, 0x3A, 0x8E, // 000~009 + 0x99, 0xEE, 0x2A, 0x55, 0x58, 0xEE, 0xED, 0x4B, 0xBE, 0x00, // 010~019 + 0x74, 0xA9, 0x00, 0x10, 0x0A, 0x21, 0xE3, 0x30, 0x66, 0x34, // 020~029 + 0xCE, 0x9C, 0xC7, 0x8B, 0x51, 0x27, 0xF9, 0x0B, 0xAD, 0x09, // 030~039 }; static unsigned char mDefHDCPKeyContentBuf[CC_HDCP_KEY_CONTENT_SIZE] = { - //328 bytes - 0x5F, 0x4D, 0xC2, 0xCA, 0xA2, 0x13, 0x06, 0x18, 0x8D, 0x34, // 000~009 - 0x82, 0x46, 0x2D, 0xC9, 0x4B, 0xB0, 0x1C, 0xDE, 0x3D, 0x49, // 010~019 - 0x39, 0x58, 0xEF, 0x2B, 0x68, 0x39, 0x71, 0xC9, 0x4D, 0x25, // 020~029 - 0xE9, 0x75, 0x4D, 0xAC, 0x62, 0xF5, 0xF5, 0x87, 0xA0, 0xB2, // 030~039 - 0x4A, 0x60, 0xD3, 0xF1, 0x09, 0x3A, 0xB2, 0x3E, 0x19, 0x4F, // 040~049 - 0x3B, 0x1B, 0x2F, 0x85, 0x14, 0x28, 0x44, 0xFC, 0x69, 0x6F, // 050~059 - 0x50, 0x42, 0x81, 0xBF, 0x7C, 0x2B, 0x3A, 0x17, 0x2C, 0x15, // 060~069 - 0xE4, 0x93, 0x77, 0x74, 0xE8, 0x1F, 0x1C, 0x38, 0x54, 0x49, // 070~079 - 0x10, 0x64, 0x5B, 0x7D, 0x90, 0x3D, 0xA0, 0xE1, 0x8B, 0x67, // 080~089 - 0x5C, 0x19, 0xE6, 0xCA, 0x9D, 0xE9, 0x68, 0x5A, 0xB5, 0x62, // 090~099 - 0xDF, 0xA1, 0x28, 0xBC, 0x68, 0x82, 0x9A, 0x22, 0xC4, 0xDC, // 100~109 - 0x48, 0x85, 0x0F, 0xF1, 0x3E, 0x05, 0xDD, 0x1B, 0x2D, 0xF5, // 120~119 - 0x49, 0x3A, 0x15, 0x29, 0xE7, 0xB6, 0x0B, 0x2A, 0x40, 0xE3, // 120~129 - 0xB0, 0x89, 0xD5, 0x75, 0x84, 0x2E, 0x76, 0xE7, 0xBC, 0x63, // 130~139 - 0x67, 0xE3, 0x57, 0x67, 0x86, 0x81, 0xF4, 0xD7, 0xEA, 0x4D, // 140~149 - 0x89, 0x8E, 0x37, 0x95, 0x59, 0x1C, 0x8A, 0xCD, 0x79, 0xF8, // 150~159 - 0x4F, 0x82, 0xF2, 0x6C, 0x7E, 0x7F, 0x79, 0x8A, 0x6B, 0x90, // 160~169 - 0xC0, 0xAF, 0x4C, 0x8D, 0x43, 0x47, 0x1F, 0x9A, 0xF1, 0xBB, // 170~179 - 0x88, 0x64, 0x49, 0x14, 0x50, 0xD1, 0xC3, 0xDF, 0xA6, 0x87, // 180~189 - 0xA0, 0x15, 0x98, 0x51, 0x81, 0xF5, 0x97, 0x55, 0x10, 0x4A, // 190~199 - 0x99, 0x30, 0x54, 0xA4, 0xFC, 0xDA, 0x0E, 0xAC, 0x6A, 0xFA, // 200~209 - 0x90, 0xEE, 0x12, 0x70, 0x69, 0x74, 0x63, 0x46, 0x63, 0xFB, // 210~219 - 0xE6, 0x1F, 0x72, 0xEC, 0x43, 0x5D, 0x50, 0xFF, 0x03, 0x4F, // 220~229 - 0x05, 0x33, 0x88, 0x36, 0x93, 0xE4, 0x72, 0xD5, 0xCC, 0x34, // 230~239 - 0x52, 0x96, 0x15, 0xCE, 0xD0, 0x32, 0x52, 0x41, 0x4F, 0xBC, // 240~249 - 0x2D, 0xDF, 0xC5, 0xD6, 0x7F, 0xD5, 0x74, 0xCE, 0x51, 0xDC, // 250~259 - 0x10, 0x5E, 0xF7, 0xAA, 0x4A, 0x2D, 0x20, 0x9A, 0x17, 0xDD, // 260~269 - 0x30, 0x89, 0x71, 0x82, 0x36, 0x50, 0x09, 0x1F, 0x7C, 0xF3, // 270~279 - 0x12, 0xE9, 0x43, 0x10, 0x5F, 0x51, 0xBF, 0xB8, 0x45, 0xA8, // 280~289 - 0x5A, 0x8D, 0x3F, 0x77, 0xE5, 0x96, 0x73, 0x68, 0xAB, 0x73, // 290~299 - 0xE5, 0x4C, 0xFB, 0xE5, 0x98, 0xB9, 0xAE, 0x74, 0xEB, 0x51, // 300~309 - 0xDB, 0x91, 0x07, 0x7B, 0x66, 0x02, 0x9B, 0x79, 0x03, 0xC5, // 310~319 - 0x34, 0x1C, 0x58, 0x13, 0x31, 0xD2, 0x4A, 0xEC, // 320~327 + //328 bytes + 0x5F, 0x4D, 0xC2, 0xCA, 0xA2, 0x13, 0x06, 0x18, 0x8D, 0x34, // 000~009 + 0x82, 0x46, 0x2D, 0xC9, 0x4B, 0xB0, 0x1C, 0xDE, 0x3D, 0x49, // 010~019 + 0x39, 0x58, 0xEF, 0x2B, 0x68, 0x39, 0x71, 0xC9, 0x4D, 0x25, // 020~029 + 0xE9, 0x75, 0x4D, 0xAC, 0x62, 0xF5, 0xF5, 0x87, 0xA0, 0xB2, // 030~039 + 0x4A, 0x60, 0xD3, 0xF1, 0x09, 0x3A, 0xB2, 0x3E, 0x19, 0x4F, // 040~049 + 0x3B, 0x1B, 0x2F, 0x85, 0x14, 0x28, 0x44, 0xFC, 0x69, 0x6F, // 050~059 + 0x50, 0x42, 0x81, 0xBF, 0x7C, 0x2B, 0x3A, 0x17, 0x2C, 0x15, // 060~069 + 0xE4, 0x93, 0x77, 0x74, 0xE8, 0x1F, 0x1C, 0x38, 0x54, 0x49, // 070~079 + 0x10, 0x64, 0x5B, 0x7D, 0x90, 0x3D, 0xA0, 0xE1, 0x8B, 0x67, // 080~089 + 0x5C, 0x19, 0xE6, 0xCA, 0x9D, 0xE9, 0x68, 0x5A, 0xB5, 0x62, // 090~099 + 0xDF, 0xA1, 0x28, 0xBC, 0x68, 0x82, 0x9A, 0x22, 0xC4, 0xDC, // 100~109 + 0x48, 0x85, 0x0F, 0xF1, 0x3E, 0x05, 0xDD, 0x1B, 0x2D, 0xF5, // 120~119 + 0x49, 0x3A, 0x15, 0x29, 0xE7, 0xB6, 0x0B, 0x2A, 0x40, 0xE3, // 120~129 + 0xB0, 0x89, 0xD5, 0x75, 0x84, 0x2E, 0x76, 0xE7, 0xBC, 0x63, // 130~139 + 0x67, 0xE3, 0x57, 0x67, 0x86, 0x81, 0xF4, 0xD7, 0xEA, 0x4D, // 140~149 + 0x89, 0x8E, 0x37, 0x95, 0x59, 0x1C, 0x8A, 0xCD, 0x79, 0xF8, // 150~159 + 0x4F, 0x82, 0xF2, 0x6C, 0x7E, 0x7F, 0x79, 0x8A, 0x6B, 0x90, // 160~169 + 0xC0, 0xAF, 0x4C, 0x8D, 0x43, 0x47, 0x1F, 0x9A, 0xF1, 0xBB, // 170~179 + 0x88, 0x64, 0x49, 0x14, 0x50, 0xD1, 0xC3, 0xDF, 0xA6, 0x87, // 180~189 + 0xA0, 0x15, 0x98, 0x51, 0x81, 0xF5, 0x97, 0x55, 0x10, 0x4A, // 190~199 + 0x99, 0x30, 0x54, 0xA4, 0xFC, 0xDA, 0x0E, 0xAC, 0x6A, 0xFA, // 200~209 + 0x90, 0xEE, 0x12, 0x70, 0x69, 0x74, 0x63, 0x46, 0x63, 0xFB, // 210~219 + 0xE6, 0x1F, 0x72, 0xEC, 0x43, 0x5D, 0x50, 0xFF, 0x03, 0x4F, // 220~229 + 0x05, 0x33, 0x88, 0x36, 0x93, 0xE4, 0x72, 0xD5, 0xCC, 0x34, // 230~239 + 0x52, 0x96, 0x15, 0xCE, 0xD0, 0x32, 0x52, 0x41, 0x4F, 0xBC, // 240~249 + 0x2D, 0xDF, 0xC5, 0xD6, 0x7F, 0xD5, 0x74, 0xCE, 0x51, 0xDC, // 250~259 + 0x10, 0x5E, 0xF7, 0xAA, 0x4A, 0x2D, 0x20, 0x9A, 0x17, 0xDD, // 260~269 + 0x30, 0x89, 0x71, 0x82, 0x36, 0x50, 0x09, 0x1F, 0x7C, 0xF3, // 270~279 + 0x12, 0xE9, 0x43, 0x10, 0x5F, 0x51, 0xBF, 0xB8, 0x45, 0xA8, // 280~289 + 0x5A, 0x8D, 0x3F, 0x77, 0xE5, 0x96, 0x73, 0x68, 0xAB, 0x73, // 290~299 + 0xE5, 0x4C, 0xFB, 0xE5, 0x98, 0xB9, 0xAE, 0x74, 0xEB, 0x51, // 300~309 + 0xDB, 0x91, 0x07, 0x7B, 0x66, 0x02, 0x9B, 0x79, 0x03, 0xC5, // 310~319 + 0x34, 0x1C, 0x58, 0x13, 0x31, 0xD2, 0x4A, 0xEC, // 320~327 }; static int TransStringToHex(int data_cnt, char data_buf[], - unsigned char hex_buf[]) + unsigned char hex_buf[]) { - int i = 0, j = 0, tmp_val = 0; - char tmp_buf[3] = { 0, 0, 0 }; - - while (i < data_cnt) { - tmp_val = 0; - tmp_buf[0] = data_buf[i]; - tmp_buf[1] = data_buf[i + 1]; - tmp_val = strtoul(tmp_buf, NULL, 16); - hex_buf[j] = tmp_val; - //LOGD("%s, hex_buf[%d] = 0x%x\n", __FUNCTION__, j, hex_buf[j]); - i += 2; - j += 1; - } - - return j; + int i = 0, j = 0, tmp_val = 0; + char tmp_buf[3] = { 0, 0, 0 }; + + while (i < data_cnt) { + tmp_val = 0; + tmp_buf[0] = data_buf[i]; + tmp_buf[1] = data_buf[i + 1]; + tmp_val = strtoul(tmp_buf, NULL, 16); + hex_buf[j] = tmp_val; + //LOGD("%s, hex_buf[%d] = 0x%x\n", __FUNCTION__, j, hex_buf[j]); + i += 2; + j += 1; + } + + return j; } static int TransToHexString(int hex_cnt, char data_buf[], - unsigned char hex_buf[]) + unsigned char hex_buf[]) { - int i = 0, j = 0; - char tmp_buf[17] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + int i = 0, j = 0; + char tmp_buf[17] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - data_buf[0] = 0; - for (i = 0; i < hex_cnt; i++) { - sprintf(tmp_buf, "%02X", (unsigned char) hex_buf[i]); - strcat(data_buf, tmp_buf); - } + data_buf[0] = 0; + for (i = 0; i < hex_cnt; i++) { + sprintf(tmp_buf, "%02X", (unsigned char) hex_buf[i]); + strcat(data_buf, tmp_buf); + } - return 2 * hex_cnt; + return 2 * hex_cnt; } int ReadKeyData(const char *key_name, unsigned char data_buf[]) { - FILE *dev_fp = NULL; - int i = 0, rd_cnt = 0; + FILE *dev_fp = NULL; + int i = 0, rd_cnt = 0; - dev_fp = fopen(CS_KEY_DATA_NAME_DEV_PATH, "w"); - if (dev_fp == NULL) { - LOGE("%s, open %s ERROR(%s)!!\n", __FUNCTION__, - CS_KEY_DATA_NAME_DEV_PATH, strerror(errno)); - return -1; - } + dev_fp = fopen(CS_KEY_DATA_NAME_DEV_PATH, "w"); + if (dev_fp == NULL) { + LOGE("%s, open %s ERROR(%s)!!\n", __FUNCTION__, + CS_KEY_DATA_NAME_DEV_PATH, strerror(errno)); + return -1; + } - fprintf(dev_fp, "%s", key_name); + fprintf(dev_fp, "%s", key_name); - fclose(dev_fp); - dev_fp = NULL; + fclose(dev_fp); + dev_fp = NULL; - dev_fp = fopen(CS_KEY_DATA_READ_DEV_PATH, "r"); - if (dev_fp == NULL) { - LOGE("%s, open %s ERROR(%s)!!\n", __FUNCTION__, - CS_KEY_DATA_READ_DEV_PATH, strerror(errno)); - return -1; - } + dev_fp = fopen(CS_KEY_DATA_READ_DEV_PATH, "r"); + if (dev_fp == NULL) { + LOGE("%s, open %s ERROR(%s)!!\n", __FUNCTION__, + CS_KEY_DATA_READ_DEV_PATH, strerror(errno)); + return -1; + } - fscanf(dev_fp, "%s", data_buf); + fscanf(dev_fp, "%s", data_buf); - rd_cnt = strlen((char *)data_buf); + rd_cnt = strlen((char *)data_buf); - fclose(dev_fp); - dev_fp = NULL; + fclose(dev_fp); + dev_fp = NULL; - return rd_cnt; + return rd_cnt; } int WriteKeyData(const char *key_name, int wr_size, char data_buf[]) { - FILE *dev_fp = NULL; - int wr_cnt = 0; + FILE *dev_fp = NULL; + int wr_cnt = 0; - dev_fp = fopen(CS_KEY_DATA_NAME_DEV_PATH, "w"); - if (dev_fp == NULL) { - LOGE("%s, open %s ERROR(%s)!!\n", __FUNCTION__, - CS_KEY_DATA_NAME_DEV_PATH, strerror(errno)); - return -1; - } + dev_fp = fopen(CS_KEY_DATA_NAME_DEV_PATH, "w"); + if (dev_fp == NULL) { + LOGE("%s, open %s ERROR(%s)!!\n", __FUNCTION__, + CS_KEY_DATA_NAME_DEV_PATH, strerror(errno)); + return -1; + } - fprintf(dev_fp, "%s", key_name); + fprintf(dev_fp, "%s", key_name); - fclose(dev_fp); - dev_fp = NULL; + fclose(dev_fp); + dev_fp = NULL; - dev_fp = fopen(CS_KEY_DATA_WRITE_DEV_PATH, "w"); - if (dev_fp == NULL) { - LOGE("%s, open %s ERROR(%s)!!\n", __FUNCTION__, - CS_KEY_DATA_WRITE_DEV_PATH, strerror(errno)); - return -1; - } + dev_fp = fopen(CS_KEY_DATA_WRITE_DEV_PATH, "w"); + if (dev_fp == NULL) { + LOGE("%s, open %s ERROR(%s)!!\n", __FUNCTION__, + CS_KEY_DATA_WRITE_DEV_PATH, strerror(errno)); + return -1; + } - wr_cnt = fwrite(data_buf, 1, wr_size, dev_fp); + wr_cnt = fwrite(data_buf, 1, wr_size, dev_fp); - fclose(dev_fp); - dev_fp = NULL; + fclose(dev_fp); + dev_fp = NULL; - return wr_cnt; + return wr_cnt; } int KeyData_GetMacAddressDataLen() { - return CC_MAC_LEN; + return CC_MAC_LEN; } int KeyData_ReadMacAddress(unsigned char data_buf[]) { - int i = 0, rd_size = 0; - int data_i_buf[CC_MAC_LEN] = { 0, 0, 0, 0, 0, 0 }; - unsigned char rd_buf[128] = { 0 }; - unsigned char tmp_buf[128] = { 0 }; + int i = 0, rd_size = 0; + int data_i_buf[CC_MAC_LEN] = { 0, 0, 0, 0, 0, 0 }; + unsigned char rd_buf[128] = { 0 }; + unsigned char tmp_buf[128] = { 0 }; - memset((void *)rd_buf, 0 , 128); - rd_size = ReadKeyData(CS_MAC_KEY_NAME, rd_buf); - LOGD("%s, rd_size = %d\n", __FUNCTION__, rd_size); + memset((void *)rd_buf, 0 , 128); + rd_size = ReadKeyData(CS_MAC_KEY_NAME, rd_buf); + LOGD("%s, rd_size = %d\n", __FUNCTION__, rd_size); #if ANDROID_PLATFORM_SDK_VERSION == 19 - memcpy((void *)tmp_buf, (void *)rd_buf, 128); - rd_size = TransStringToHex(rd_size, (char *)rd_buf, tmp_buf); + memcpy((void *)tmp_buf, (void *)rd_buf, 128); + rd_size = TransStringToHex(rd_size, (char *)rd_buf, tmp_buf); #endif #if ANDROID_PLATFORM_SDK_VERSION >= 21 - memcpy((void *)tmp_buf, (void *)rd_buf, 128); + memcpy((void *)tmp_buf, (void *)rd_buf, 128); #endif - if (rd_size == 17) { - sscanf((char *) tmp_buf, "%02x:%02x:%02x:%02x:%02x:%02x", - &data_i_buf[0], &data_i_buf[1], &data_i_buf[2], &data_i_buf[3], - &data_i_buf[4], &data_i_buf[5]); - for (i = 0; i < CC_MAC_LEN; i++) { - data_buf[i] = data_i_buf[i] & 0xFF; - } + if (rd_size == 17) { + sscanf((char *) tmp_buf, "%02x:%02x:%02x:%02x:%02x:%02x", + &data_i_buf[0], &data_i_buf[1], &data_i_buf[2], &data_i_buf[3], + &data_i_buf[4], &data_i_buf[5]); + for (i = 0; i < CC_MAC_LEN; i++) { + data_buf[i] = data_i_buf[i] & 0xFF; + } - return KeyData_GetMacAddressDataLen(); - } + return KeyData_GetMacAddressDataLen(); + } - return 0; + return 0; } int KeyData_SaveMacAddress(unsigned char data_buf[]) { - int tmp_ret = 0, wr_size = 0; - unsigned char hex_buf[128] = { 0 }; - char tmp_buf[128] = { 0 }; + int tmp_ret = 0, wr_size = 0; + unsigned char hex_buf[128] = { 0 }; + char tmp_buf[128] = { 0 }; - sprintf((char *) hex_buf, "%02x:%02x:%02x:%02x:%02x:%02x", data_buf[0], - data_buf[1], data_buf[2], data_buf[3], data_buf[4], data_buf[5]); + sprintf((char *) hex_buf, "%02x:%02x:%02x:%02x:%02x:%02x", data_buf[0], + data_buf[1], data_buf[2], data_buf[3], data_buf[4], data_buf[5]); #if ANDROID_PLATFORM_SDK_VERSION == 19 - memset((void *)tmp_buf, 0, 128); - TransToHexString(strlen((char *) hex_buf), tmp_buf, hex_buf); + memset((void *)tmp_buf, 0, 128); + TransToHexString(strlen((char *) hex_buf), tmp_buf, hex_buf); #endif #if ANDROID_PLATFORM_SDK_VERSION >= 21 - memset((void *)tmp_buf, 0, 128); - memcpy(tmp_buf, (const char *)hex_buf, strlen((char *) hex_buf)); + memset((void *)tmp_buf, 0, 128); + memcpy(tmp_buf, (const char *)hex_buf, strlen((char *) hex_buf)); #endif - wr_size = strlen(tmp_buf); - tmp_ret = WriteKeyData(CS_MAC_KEY_NAME, wr_size, tmp_buf); - if (tmp_ret != wr_size) { - return -1; - } + wr_size = strlen(tmp_buf); + tmp_ret = WriteKeyData(CS_MAC_KEY_NAME, wr_size, tmp_buf); + if (tmp_ret != wr_size) { + return -1; + } - CreateMacAddressStartWorkThread(); + CreateMacAddressStartWorkThread(); - return 0; + return 0; } static int gSSMBarCodeLen = -1; int KeyData_GetBarCodeDataLen() { - const char *config_value; - - if (gSSMBarCodeLen <= 0) { - config_value = config_get_str(CFG_SECTION_TV, CS_BARCODE_LEN_CFG, "null"); - if (strcmp(config_value, "null") == 0) { - gSSMBarCodeLen = 32; - } else { - gSSMBarCodeLen = strtol(config_value, NULL, 10); - } - } - - return gSSMBarCodeLen; + const char *config_value; + + if (gSSMBarCodeLen <= 0) { + config_value = config_get_str(CFG_SECTION_TV, CS_BARCODE_LEN_CFG, "null"); + if (strcmp(config_value, "null") == 0) { + gSSMBarCodeLen = 32; + } else { + gSSMBarCodeLen = strtol(config_value, NULL, 10); + } + } + + return gSSMBarCodeLen; } int KeyData_ReadBarCode(unsigned char data_buf[]) { - int rd_size = 0, tmp_len = 0; - unsigned char rd_buf[CC_MAX_KEY_DATA_SIZE] = { 0 }; + int rd_size = 0, tmp_len = 0; + unsigned char rd_buf[CC_MAX_KEY_DATA_SIZE] = { 0 }; - tmp_len = KeyData_GetBarCodeDataLen(); - rd_size = ReadKeyData(CS_BARCODE_KEY_NAME, rd_buf); - LOGD("%s, rd_size = %d\n", __FUNCTION__, rd_size); + tmp_len = KeyData_GetBarCodeDataLen(); + rd_size = ReadKeyData(CS_BARCODE_KEY_NAME, rd_buf); + LOGD("%s, rd_size = %d\n", __FUNCTION__, rd_size); #if ANDROID_PLATFORM_SDK_VERSION == 19 - unsigned char tmp_buf[CC_MAX_KEY_DATA_SIZE] = { 0 }; + unsigned char tmp_buf[CC_MAX_KEY_DATA_SIZE] = { 0 }; - memcpy((void *)tmp_buf, (void *)rd_buf, CC_MAX_KEY_DATA_SIZE); - rd_size = TransStringToHex(rd_size, (char *)rd_buf, tmp_buf); + memcpy((void *)tmp_buf, (void *)rd_buf, CC_MAX_KEY_DATA_SIZE); + rd_size = TransStringToHex(rd_size, (char *)rd_buf, tmp_buf); - if (rd_size == tmp_len) { - memcpy(data_buf, tmp_buf, rd_size); - return rd_size; - } + if (rd_size == tmp_len) { + memcpy(data_buf, tmp_buf, rd_size); + return rd_size; + } #endif #if ANDROID_PLATFORM_SDK_VERSION >= 21 - if (rd_size == tmp_len) { - memcpy(data_buf, rd_buf, rd_size); - return rd_size; - } + if (rd_size == tmp_len) { + memcpy(data_buf, rd_buf, rd_size); + return rd_size; + } #endif - return 0; + return 0; } int KeyData_SaveBarCode(unsigned char data_buf[]) { - int tmp_len = 0, wr_size = 0; - char tmp_buf[CC_MAX_KEY_DATA_SIZE] = { 0 }; + int tmp_len = 0, wr_size = 0; + char tmp_buf[CC_MAX_KEY_DATA_SIZE] = { 0 }; - tmp_len = KeyData_GetBarCodeDataLen(); + tmp_len = KeyData_GetBarCodeDataLen(); #if ANDROID_PLATFORM_SDK_VERSION == 19 - memset((void *)tmp_buf, 0, CC_MAX_KEY_DATA_SIZE); - TransToHexString(tmp_len, tmp_buf, data_buf); + memset((void *)tmp_buf, 0, CC_MAX_KEY_DATA_SIZE); + TransToHexString(tmp_len, tmp_buf, data_buf); #endif #if ANDROID_PLATFORM_SDK_VERSION >= 21 - memset((void *)tmp_buf, 0, CC_MAX_KEY_DATA_SIZE); - memcpy(tmp_buf, (const char *)data_buf, strlen((char *) data_buf)); + memset((void *)tmp_buf, 0, CC_MAX_KEY_DATA_SIZE); + memcpy(tmp_buf, (const char *)data_buf, strlen((char *) data_buf)); #endif - wr_size = strlen(tmp_buf); - tmp_len = WriteKeyData(CS_BARCODE_KEY_NAME, wr_size, tmp_buf); - if (tmp_len != wr_size) { - return -1; - } + wr_size = strlen(tmp_buf); + tmp_len = WriteKeyData(CS_BARCODE_KEY_NAME, wr_size, tmp_buf); + if (tmp_len != wr_size) { + return -1; + } - return 0; + return 0; } int SSMReadHDCPKey(unsigned char hdcp_key_buf[]) { - int tmp_ret = 0, rd_size = 0; - unsigned char rd_buf[CC_MAX_KEY_DATA_SIZE] = { 0 }; - unsigned char tmp_buf[CC_MAX_KEY_DATA_SIZE] = { 0 }; + int tmp_ret = 0, rd_size = 0; + unsigned char rd_buf[CC_MAX_KEY_DATA_SIZE] = { 0 }; + unsigned char tmp_buf[CC_MAX_KEY_DATA_SIZE] = { 0 }; - tmp_ret = GetHDCPKeyFromFile(0, CC_HDCP_KEY_TOTAL_SIZE, hdcp_key_buf); - if (tmp_ret < 0) { - rd_size = ReadKeyData(CS_RX_HDCP_KEY_NAME, rd_buf); - LOGD("%s, rd_size = %d\n", __FUNCTION__, rd_size); + tmp_ret = GetHDCPKeyFromFile(0, CC_HDCP_KEY_TOTAL_SIZE, hdcp_key_buf); + if (tmp_ret < 0) { + rd_size = ReadKeyData(CS_RX_HDCP_KEY_NAME, rd_buf); + LOGD("%s, rd_size = %d\n", __FUNCTION__, rd_size); - memcpy((void *)tmp_buf, (void *)rd_buf, CC_MAX_KEY_DATA_SIZE); - rd_size = TransStringToHex(rd_size, (char *)rd_buf, tmp_buf); + memcpy((void *)tmp_buf, (void *)rd_buf, CC_MAX_KEY_DATA_SIZE); + rd_size = TransStringToHex(rd_size, (char *)rd_buf, tmp_buf); - if (rd_size == CC_HDCP_KEY_TOTAL_SIZE) { - memcpy(hdcp_key_buf, tmp_buf, CC_HDCP_KEY_TOTAL_SIZE); - return rd_size; - } + if (rd_size == CC_HDCP_KEY_TOTAL_SIZE) { + memcpy(hdcp_key_buf, tmp_buf, CC_HDCP_KEY_TOTAL_SIZE); + return rd_size; + } - return 0; - } + return 0; + } - return CC_HDCP_KEY_TOTAL_SIZE; + return CC_HDCP_KEY_TOTAL_SIZE; } int SSMSaveHDCPKey(unsigned char hdcp_key_buf[]) { - int tmp_ret = 0, wr_size = 0; - char tmp_buf[CC_MAX_KEY_DATA_SIZE] = { 0 }; - - tmp_ret = SaveHDCPKeyToFile(0, CC_HDCP_KEY_TOTAL_SIZE, hdcp_key_buf); - if (tmp_ret < 0) { - memset((void *)tmp_buf, 0, CC_MAX_KEY_DATA_SIZE); - TransToHexString(CC_HDCP_KEY_TOTAL_SIZE, tmp_buf, hdcp_key_buf); - - wr_size = strlen(tmp_buf); - tmp_ret = WriteKeyData(CS_RX_HDCP_KEY_NAME, wr_size, tmp_buf); - if (tmp_ret != wr_size) { - tmp_ret = -1; - } else { - tmp_ret = 0; - } - } - - return tmp_ret; + int tmp_ret = 0, wr_size = 0; + char tmp_buf[CC_MAX_KEY_DATA_SIZE] = { 0 }; + + tmp_ret = SaveHDCPKeyToFile(0, CC_HDCP_KEY_TOTAL_SIZE, hdcp_key_buf); + if (tmp_ret < 0) { + memset((void *)tmp_buf, 0, CC_MAX_KEY_DATA_SIZE); + TransToHexString(CC_HDCP_KEY_TOTAL_SIZE, tmp_buf, hdcp_key_buf); + + wr_size = strlen(tmp_buf); + tmp_ret = WriteKeyData(CS_RX_HDCP_KEY_NAME, wr_size, tmp_buf); + if (tmp_ret != wr_size) { + tmp_ret = -1; + } else { + tmp_ret = 0; + } + } + + return tmp_ret; } int SSMSetHDCPKey() { - int i = 0; - unsigned char hdcp_key_buf[CC_HDCP_KEY_TOTAL_SIZE]; - - if (GetSSMHandleHDCPKeyEnableCFG() == 1) { - if (GetSSMHandleHDCPKeyDemoEnableCFG() == 1) { - return SSMSetDefaultHDCPKey(hdcp_key_buf); - } else { - if (SSMReadHDCPKey(hdcp_key_buf) == CC_HDCP_KEY_TOTAL_SIZE) { - LOGD("%s, using ssm's hdcp key.\n", __FUNCTION__); - return RealHandleHDCPKey(hdcp_key_buf); - } - } - } - - return -1; + int i = 0; + unsigned char hdcp_key_buf[CC_HDCP_KEY_TOTAL_SIZE]; + + if (GetSSMHandleHDCPKeyEnableCFG() == 1) { + if (GetSSMHandleHDCPKeyDemoEnableCFG() == 1) { + return SSMSetDefaultHDCPKey(hdcp_key_buf); + } else { + if (SSMReadHDCPKey(hdcp_key_buf) == CC_HDCP_KEY_TOTAL_SIZE) { + LOGD("%s, using ssm's hdcp key.\n", __FUNCTION__); + return RealHandleHDCPKey(hdcp_key_buf); + } + } + } + + return -1; } int SSMRefreshHDCPKey() { - int ret = -1; - ret = SSMSetHDCPKey(); - system ( "/system/bin/dec" ); - return ret; + int ret = -1; + ret = SSMSetHDCPKey(); + system ( "/system/bin/dec" ); + return ret; } int SSMGetHDCPKeyDataLen() { - return CC_HDCP_KEY_TOTAL_SIZE; + return CC_HDCP_KEY_TOTAL_SIZE; } //hdmi edid int SSMSetHDMIEdid(int port) { - int i = 0; - unsigned char customer_hdmi_edid_buf[CC_CUSTOMER_HDMI_EDID_TOTAL_SIZE]; - unsigned char hdmi_edid_buf[SSM_HDMI_EDID_SIZE]; - - if (port < 1 && port > SSM_HDMI_PORT_MAX) { - LOGD("%s, hdmi port error.%d\n", __FUNCTION__, port); - return -1; - } - - if (GetSSMHandleHDMIEdidByCustomerEnableCFG() == 1) { - if (SSMReadHDMIEdid(port, hdmi_edid_buf) == 0) { - LOGD("%s, using ssm's hdmi edid.\n", __FUNCTION__); - LOGD("%s, begin to write hdmi edid:0x%x, 0x%x, 0x%x, 0x%x.\n", - __FUNCTION__, hdmi_edid_buf[8], hdmi_edid_buf[9], - hdmi_edid_buf[10], hdmi_edid_buf[255]); - if ( AppendEdidPrefixCode(customer_hdmi_edid_buf, hdmi_edid_buf) == 0 ) - return RealHandleHDMIEdid(customer_hdmi_edid_buf); - } - } - - return -1; + int i = 0; + unsigned char customer_hdmi_edid_buf[CC_CUSTOMER_HDMI_EDID_TOTAL_SIZE]; + unsigned char hdmi_edid_buf[SSM_HDMI_EDID_SIZE]; + + if (port < 1 && port > SSM_HDMI_PORT_MAX) { + LOGD("%s, hdmi port error.%d\n", __FUNCTION__, port); + return -1; + } + + if (GetSSMHandleHDMIEdidByCustomerEnableCFG() == 1) { + if (SSMReadHDMIEdid(port, hdmi_edid_buf) == 0) { + LOGD("%s, using ssm's hdmi edid.\n", __FUNCTION__); + LOGD("%s, begin to write hdmi edid:0x%x, 0x%x, 0x%x, 0x%x.\n", + __FUNCTION__, hdmi_edid_buf[8], hdmi_edid_buf[9], + hdmi_edid_buf[10], hdmi_edid_buf[255]); + if ( AppendEdidPrefixCode(customer_hdmi_edid_buf, hdmi_edid_buf) == 0 ) + return RealHandleHDMIEdid(customer_hdmi_edid_buf); + } + } + + return -1; } int SSMReadHDMIEdid(int port, unsigned char hdmi_edid_buf[]) { - int tmp_ret = 0; - LOGD("%s, read hdmi edid from bin file.\n", __FUNCTION__); - tmp_ret = GetHDMIEdidFromFile(0, SSM_HDMI_EDID_SIZE, port, hdmi_edid_buf); - if (tmp_ret < 0) { - LOGD("%s, read hdmi edid error.\n", __FUNCTION__); - } else { - LOGD("%s, 0x%x, 0x%x, 0x%x, 0x%x.\n", __FUNCTION__, hdmi_edid_buf[8], - hdmi_edid_buf[9], hdmi_edid_buf[10], hdmi_edid_buf[255]); - } - return tmp_ret; + int tmp_ret = 0; + LOGD("%s, read hdmi edid from bin file.\n", __FUNCTION__); + tmp_ret = GetHDMIEdidFromFile(0, SSM_HDMI_EDID_SIZE, port, hdmi_edid_buf); + if (tmp_ret < 0) { + LOGD("%s, read hdmi edid error.\n", __FUNCTION__); + } else { + LOGD("%s, 0x%x, 0x%x, 0x%x, 0x%x.\n", __FUNCTION__, hdmi_edid_buf[8], + hdmi_edid_buf[9], hdmi_edid_buf[10], hdmi_edid_buf[255]); + } + return tmp_ret; } int KeyData_SaveProjectID(int rw_val) { - int tmp_ret = 0, wr_size = 0; - char tmp_buf[64] = { 0 }; + int tmp_ret = 0, wr_size = 0; + char tmp_buf[64] = { 0 }; - sprintf(tmp_buf, "%08X", rw_val); + sprintf(tmp_buf, "%08X", rw_val); - wr_size = strlen(tmp_buf); - tmp_ret = WriteKeyData(CS_PROJECT_ID_KEY_NAME, wr_size, tmp_buf); - if (tmp_ret != wr_size) { - return -1; - } + wr_size = strlen(tmp_buf); + tmp_ret = WriteKeyData(CS_PROJECT_ID_KEY_NAME, wr_size, tmp_buf); + if (tmp_ret != wr_size) { + return -1; + } - return 0; + return 0; } int KeyData_ReadProjectID() { - int rd_size = 0, tmp_val = 0; - unsigned char tmp_buf[64] = { 0 }; - - rd_size = ReadKeyData(CS_PROJECT_ID_KEY_NAME, tmp_buf); - LOGD("%s, rd_size = %d\n", __FUNCTION__, rd_size); - if (rd_size == 4) { - tmp_val = 0; - tmp_val |= tmp_buf[0] << 24; - tmp_val |= tmp_buf[1] << 16; - tmp_val |= tmp_buf[2] << 8; - tmp_val |= tmp_buf[3] << 0; - } - - return tmp_val; + int rd_size = 0, tmp_val = 0; + unsigned char tmp_buf[64] = { 0 }; + + rd_size = ReadKeyData(CS_PROJECT_ID_KEY_NAME, tmp_buf); + LOGD("%s, rd_size = %d\n", __FUNCTION__, rd_size); + if (rd_size == 4) { + tmp_val = 0; + tmp_val |= tmp_buf[0] << 24; + tmp_val |= tmp_buf[1] << 16; + tmp_val |= tmp_buf[2] << 8; + tmp_val |= tmp_buf[3] << 0; + } + + return tmp_val; } int SSMSaveRGBOGOValue(int offset, int size, unsigned char data_buf[]) { - return SaveRGBOGOToFile(offset, size, data_buf); + return SaveRGBOGOToFile(offset, size, data_buf); } int SSMReadRGBOGOValue(int offset, int size, unsigned char data_buf[]) { - return GetRGBOGOFromFile(offset, size, data_buf); + return GetRGBOGOFromFile(offset, size, data_buf); } int SSMSaveAudioNoLinePoints(int offset, int size, unsigned char tmp_buf[]) { - return SaveAudioNoLinePointsDataToFile(offset, size, tmp_buf); + return SaveAudioNoLinePointsDataToFile(offset, size, tmp_buf); } int SSMReadAudioNoLinePoints(int offset, int size, unsigned char tmp_buf[]) { - return GetAudioNoLinePointsDataFromFile(offset, size, tmp_buf); + return GetAudioNoLinePointsDataFromFile(offset, size, tmp_buf); } /**************************** start mac address static functions ****************************/ @@ -502,374 +502,374 @@ static pthread_mutex_t mac_address_turnon_mutex = PTHREAD_MUTEX_INITIALIZER; static int GetSSMMacAddressStartWorkEnableCFG() { - const char *config_value; + const char *config_value; - config_value = config_get_str(CFG_SECTION_TV, CS_MAC_ADDRESS_STARTWRK_EN_CFG, "null"); - if (strcmp(config_value, "null") == 0) { - LOGD( - "%s, get config is \"%s\", return 0 to not enable mac address start work.\n", - __FUNCTION__, config_value); - return 0; - } + config_value = config_get_str(CFG_SECTION_TV, CS_MAC_ADDRESS_STARTWRK_EN_CFG, "null"); + if (strcmp(config_value, "null") == 0) { + LOGD( + "%s, get config is \"%s\", return 0 to not enable mac address start work.\n", + __FUNCTION__, config_value); + return 0; + } - return strtoul(config_value, NULL, 10); + return strtoul(config_value, NULL, 10); } static unsigned int SetMacAddressLow(unsigned int low_val) { - unsigned int tmp_val; + unsigned int tmp_val; - pthread_mutex_lock(&mac_address_low_mutex); + pthread_mutex_lock(&mac_address_low_mutex); - tmp_val = mMacAddressLow; + tmp_val = mMacAddressLow; - mMacAddressLow = low_val; + mMacAddressLow = low_val; - pthread_mutex_unlock(&mac_address_low_mutex); + pthread_mutex_unlock(&mac_address_low_mutex); - return tmp_val; + return tmp_val; } static unsigned int GetMacAddressLow() { - unsigned int tmp_val = 0; + unsigned int tmp_val = 0; - pthread_mutex_lock(&mac_address_low_mutex); + pthread_mutex_lock(&mac_address_low_mutex); - tmp_val = mMacAddressLow; + tmp_val = mMacAddressLow; - pthread_mutex_unlock(&mac_address_low_mutex); + pthread_mutex_unlock(&mac_address_low_mutex); - return tmp_val; + return tmp_val; } static unsigned int SetMacAddressHigh(unsigned int high_val) { - unsigned int tmp_val; + unsigned int tmp_val; - pthread_mutex_lock(&mac_address_high_mutex); + pthread_mutex_lock(&mac_address_high_mutex); - tmp_val = mMacAddressHigh; + tmp_val = mMacAddressHigh; - mMacAddressHigh = high_val; + mMacAddressHigh = high_val; - pthread_mutex_unlock(&mac_address_high_mutex); + pthread_mutex_unlock(&mac_address_high_mutex); - return tmp_val; + return tmp_val; } static unsigned int GetMacAddressHigh() { - int tmp_val = 0; + int tmp_val = 0; - pthread_mutex_lock(&mac_address_high_mutex); + pthread_mutex_lock(&mac_address_high_mutex); - tmp_val = mMacAddressHigh; + tmp_val = mMacAddressHigh; - pthread_mutex_unlock(&mac_address_high_mutex); + pthread_mutex_unlock(&mac_address_high_mutex); - return tmp_val; + return tmp_val; } static int SetMacAddressStartWorkThreadExecFlag(int tmp_flag) { - int tmp_val; + int tmp_val; - pthread_mutex_lock(&mac_address_exec_mutex); + pthread_mutex_lock(&mac_address_exec_mutex); - tmp_val = mMacAddressStartWorkThreadExecFlag; + tmp_val = mMacAddressStartWorkThreadExecFlag; - mMacAddressStartWorkThreadExecFlag = tmp_flag; + mMacAddressStartWorkThreadExecFlag = tmp_flag; - pthread_mutex_unlock(&mac_address_exec_mutex); + pthread_mutex_unlock(&mac_address_exec_mutex); - return tmp_val; + return tmp_val; } static int GetMacAddressStartWorkThreadExecFlag() { - int tmp_val = 0; + int tmp_val = 0; - pthread_mutex_lock(&mac_address_exec_mutex); + pthread_mutex_lock(&mac_address_exec_mutex); - tmp_val = mMacAddressStartWorkThreadExecFlag; + tmp_val = mMacAddressStartWorkThreadExecFlag; - pthread_mutex_unlock(&mac_address_exec_mutex); + pthread_mutex_unlock(&mac_address_exec_mutex); - return tmp_val; + return tmp_val; } static int SetMacAddressStartWorkThreadTurnOnFlag(int tmp_flag) { - int tmp_val; + int tmp_val; - pthread_mutex_lock(&mac_address_turnon_mutex); + pthread_mutex_lock(&mac_address_turnon_mutex); - tmp_val = mMacAddressStartWorkThreadTurnOnFlag; + tmp_val = mMacAddressStartWorkThreadTurnOnFlag; - mMacAddressStartWorkThreadTurnOnFlag = tmp_flag; + mMacAddressStartWorkThreadTurnOnFlag = tmp_flag; - pthread_mutex_unlock(&mac_address_turnon_mutex); + pthread_mutex_unlock(&mac_address_turnon_mutex); - return tmp_val; + return tmp_val; } static int GetMacAddressStartWorkThreadTurnOnFlag() { - int tmp_val = 0; + int tmp_val = 0; - pthread_mutex_lock(&mac_address_turnon_mutex); + pthread_mutex_lock(&mac_address_turnon_mutex); - tmp_val = mMacAddressStartWorkThreadTurnOnFlag; + tmp_val = mMacAddressStartWorkThreadTurnOnFlag; - pthread_mutex_unlock(&mac_address_turnon_mutex); + pthread_mutex_unlock(&mac_address_turnon_mutex); - return tmp_val; + return tmp_val; } static void *SSMMacAddressStartWorkMainApp(void *data) { - unsigned int curMacAddrLow = 0, curMacAddrHigh = 0; - int p_status; - char ssm_addr_str[128]; - const char *iname = "eth0"; - pid_t pid; - - LOGD("%s, entering...\n", __FUNCTION__); - - if (GetSSMMacAddressStartWorkEnableCFG() == 0) { - LOGE("%s, ssm mac address start work is not enable.\n", CFG_SECTION_TV); - return NULL; - } - - curMacAddrLow = GetMacAddressLow(); - curMacAddrHigh = GetMacAddressHigh(); - - while (GetMacAddressStartWorkThreadTurnOnFlag() == 1) { - pid = fork(); - if (pid == 0) { - if (execl("/system/bin/stop", "stop_eth_dhcpcd", "eth_dhcpcd", NULL) - < 0) { - _exit(-1); - } - _exit(0); - } - waitpid(pid, &p_status, 0); - - ifc_init(); - - ifc_down(iname); - - sprintf(ssm_addr_str, "%02x:%02x:%02x:%02x:%02x:%02x", - ((curMacAddrLow >> 0) & 0xFF), ((curMacAddrLow >> 8) & 0xFF), - ((curMacAddrLow >> 16) & 0xFF), ((curMacAddrLow >> 24) & 0xFF), - ((curMacAddrHigh >> 0) & 0xFF), ((curMacAddrHigh >> 8) & 0xFF)); - struct ether_addr *addr = ether_aton(ssm_addr_str); - if (addr) { - ifc_set_hwaddr(iname, addr->ether_addr_octet); - } - - ifc_up(iname); - - ifc_close(); - - if (curMacAddrLow == GetMacAddressLow() - && curMacAddrHigh == GetMacAddressHigh()) { - break; - } - - curMacAddrLow = GetMacAddressLow(); - curMacAddrHigh = GetMacAddressHigh(); - } - - return NULL; + unsigned int curMacAddrLow = 0, curMacAddrHigh = 0; + int p_status; + char ssm_addr_str[128]; + const char *iname = "eth0"; + pid_t pid; + + LOGD("%s, entering...\n", __FUNCTION__); + + if (GetSSMMacAddressStartWorkEnableCFG() == 0) { + LOGE("%s, ssm mac address start work is not enable.\n", CFG_SECTION_TV); + return NULL; + } + + curMacAddrLow = GetMacAddressLow(); + curMacAddrHigh = GetMacAddressHigh(); + + while (GetMacAddressStartWorkThreadTurnOnFlag() == 1) { + pid = fork(); + if (pid == 0) { + if (execl("/system/bin/stop", "stop_eth_dhcpcd", "eth_dhcpcd", NULL) + < 0) { + _exit(-1); + } + _exit(0); + } + waitpid(pid, &p_status, 0); + + ifc_init(); + + ifc_down(iname); + + sprintf(ssm_addr_str, "%02x:%02x:%02x:%02x:%02x:%02x", + ((curMacAddrLow >> 0) & 0xFF), ((curMacAddrLow >> 8) & 0xFF), + ((curMacAddrLow >> 16) & 0xFF), ((curMacAddrLow >> 24) & 0xFF), + ((curMacAddrHigh >> 0) & 0xFF), ((curMacAddrHigh >> 8) & 0xFF)); + struct ether_addr *addr = ether_aton(ssm_addr_str); + if (addr) { + ifc_set_hwaddr(iname, addr->ether_addr_octet); + } + + ifc_up(iname); + + ifc_close(); + + if (curMacAddrLow == GetMacAddressLow() + && curMacAddrHigh == GetMacAddressHigh()) { + break; + } + + curMacAddrLow = GetMacAddressLow(); + curMacAddrHigh = GetMacAddressHigh(); + } + + return NULL; } static void *SSMMacAddressStartWorkThreadMain(void *data) { - void *tmp_ret = NULL; + void *tmp_ret = NULL; - SetMacAddressStartWorkThreadExecFlag(1); + SetMacAddressStartWorkThreadExecFlag(1); - tmp_ret = SSMMacAddressStartWorkMainApp(NULL); + tmp_ret = SSMMacAddressStartWorkMainApp(NULL); - SetMacAddressStartWorkThreadExecFlag(0); + SetMacAddressStartWorkThreadExecFlag(0); - return tmp_ret; + return tmp_ret; } static int KillMacAddressStartWorkThread() { - int i = 0, tmp_timeout_count = 600; + int i = 0, tmp_timeout_count = 600; - SetMacAddressStartWorkThreadTurnOnFlag(0); - while (1) { - if (GetMacAddressStartWorkThreadExecFlag() == 0) { - break; - } + SetMacAddressStartWorkThreadTurnOnFlag(0); + while (1) { + if (GetMacAddressStartWorkThreadExecFlag() == 0) { + break; + } - if (i >= tmp_timeout_count) { - break; - } + if (i >= tmp_timeout_count) { + break; + } - i++; + i++; - usleep(100 * 1000); - } + usleep(100 * 1000); + } - if (i == tmp_timeout_count) { - LOGE( - "%s, we have try %d times, but the mac address start work thread's exec flag is still(%d)!!!\n", - CFG_SECTION_TV, tmp_timeout_count, - GetMacAddressStartWorkThreadExecFlag()); - return -1; - } + if (i == tmp_timeout_count) { + LOGE( + "%s, we have try %d times, but the mac address start work thread's exec flag is still(%d)!!!\n", + CFG_SECTION_TV, tmp_timeout_count, + GetMacAddressStartWorkThreadExecFlag()); + return -1; + } - pthread_join(mMacAddressStartWorkThreadID, NULL); - mMacAddressStartWorkThreadID = CC_ERR_THREAD_ID; + pthread_join(mMacAddressStartWorkThreadID, NULL); + mMacAddressStartWorkThreadID = CC_ERR_THREAD_ID; - LOGD("%s, kill the mac address start work thread sucess.\n", __FUNCTION__); + LOGD("%s, kill the mac address start work thread sucess.\n", __FUNCTION__); - return 0; + return 0; } int CreateMacAddressStartWorkThread() { - unsigned int macAddrLow = 0, macAddrHigh = 0; - pthread_attr_t attr; - struct sched_param param; - unsigned char ssm_addr_buf[16] = { 0, 0, 0, 0, 0, 0 }; - - if (KeyData_ReadMacAddress(ssm_addr_buf) < 0) { - return -1; - } - - macAddrLow = 0; - macAddrLow |= ((ssm_addr_buf[0] & 0xFF) << 0); - macAddrLow |= ((ssm_addr_buf[1] & 0xFF) << 8); - macAddrLow |= ((ssm_addr_buf[2] & 0xFF) << 16); - macAddrLow |= ((ssm_addr_buf[3] & 0xFF) << 24); - - macAddrHigh = 0; - macAddrHigh |= ((ssm_addr_buf[4] & 0xFF) << 0); - macAddrHigh |= ((ssm_addr_buf[5] & 0xFF) << 8); - - if (mMacAddressStartWorkThreadID != CC_ERR_THREAD_ID) { - if (GetMacAddressStartWorkThreadExecFlag() == 1) { - SetMacAddressLow(macAddrLow); - SetMacAddressHigh(macAddrHigh); - return 0; - } else { - KillMacAddressStartWorkThread(); - } - } - - SetMacAddressLow(macAddrLow); - SetMacAddressHigh(macAddrHigh); - SetMacAddressStartWorkThreadTurnOnFlag(1); - - pthread_attr_init(&attr); - pthread_attr_setschedpolicy(&attr, SCHED_RR); - param.sched_priority = 20; - pthread_attr_setschedparam(&attr, ¶m); - - if (pthread_create(&mMacAddressStartWorkThreadID, &attr, - SSMMacAddressStartWorkThreadMain, NULL) < 0) { - pthread_attr_destroy(&attr); - mMacAddressStartWorkThreadID = CC_ERR_THREAD_ID; - return -1; - } - - pthread_attr_destroy(&attr); - - LOGD("%s, create channel select thread sucess.\n", __FUNCTION__); - - return 0; + unsigned int macAddrLow = 0, macAddrHigh = 0; + pthread_attr_t attr; + struct sched_param param; + unsigned char ssm_addr_buf[16] = { 0, 0, 0, 0, 0, 0 }; + + if (KeyData_ReadMacAddress(ssm_addr_buf) < 0) { + return -1; + } + + macAddrLow = 0; + macAddrLow |= ((ssm_addr_buf[0] & 0xFF) << 0); + macAddrLow |= ((ssm_addr_buf[1] & 0xFF) << 8); + macAddrLow |= ((ssm_addr_buf[2] & 0xFF) << 16); + macAddrLow |= ((ssm_addr_buf[3] & 0xFF) << 24); + + macAddrHigh = 0; + macAddrHigh |= ((ssm_addr_buf[4] & 0xFF) << 0); + macAddrHigh |= ((ssm_addr_buf[5] & 0xFF) << 8); + + if (mMacAddressStartWorkThreadID != CC_ERR_THREAD_ID) { + if (GetMacAddressStartWorkThreadExecFlag() == 1) { + SetMacAddressLow(macAddrLow); + SetMacAddressHigh(macAddrHigh); + return 0; + } else { + KillMacAddressStartWorkThread(); + } + } + + SetMacAddressLow(macAddrLow); + SetMacAddressHigh(macAddrHigh); + SetMacAddressStartWorkThreadTurnOnFlag(1); + + pthread_attr_init(&attr); + pthread_attr_setschedpolicy(&attr, SCHED_RR); + param.sched_priority = 20; + pthread_attr_setschedparam(&attr, ¶m); + + if (pthread_create(&mMacAddressStartWorkThreadID, &attr, + SSMMacAddressStartWorkThreadMain, NULL) < 0) { + pthread_attr_destroy(&attr); + mMacAddressStartWorkThreadID = CC_ERR_THREAD_ID; + return -1; + } + + pthread_attr_destroy(&attr); + + LOGD("%s, create channel select thread sucess.\n", __FUNCTION__); + + return 0; } /**************************** end mac address static functions ****************************/ /**************************** start hdcp key static functions ****************************/ int GetSSMHandleHDCPKeyEnableCFG() { - const char *config_value; + const char *config_value; - config_value = config_get_str(CFG_SECTION_TV, CS_HDCP_KEY_EN_CFG, "null"); + config_value = config_get_str(CFG_SECTION_TV, CS_HDCP_KEY_EN_CFG, "null"); #if 0 - LOGD("%s, get \"%s\" is \"%s\".\n", __FUNCTION__, CS_HDCP_KEY_EN_CFG, - config_value); + LOGD("%s, get \"%s\" is \"%s\".\n", __FUNCTION__, CS_HDCP_KEY_EN_CFG, + config_value); #endif - if (strcmp(config_value, "null") == 0) { - LOGD( - "%s, get config \"%s\" is \"%s\", return 0 to not enable handle hdcp key.\n", - __FUNCTION__, CS_HDCP_KEY_EN_CFG, config_value); - return 0; - } - - return strtoul(config_value, NULL, 10); + if (strcmp(config_value, "null") == 0) { + LOGD( + "%s, get config \"%s\" is \"%s\", return 0 to not enable handle hdcp key.\n", + __FUNCTION__, CS_HDCP_KEY_EN_CFG, config_value); + return 0; + } + + return strtoul(config_value, NULL, 10); } int GetSSMHandleHDCPKeyDemoEnableCFG() { - const char *config_value; + const char *config_value; - config_value = config_get_str(CFG_SECTION_TV, CS_HDCP_KEY_DEMO_EN_CFG, "null"); + config_value = config_get_str(CFG_SECTION_TV, CS_HDCP_KEY_DEMO_EN_CFG, "null"); #if 0 - LOGD("%s, get \"%s\" is \"%s\".\n", __FUNCTION__, CS_HDCP_KEY_DEMO_EN_CFG, - config_value); + LOGD("%s, get \"%s\" is \"%s\".\n", __FUNCTION__, CS_HDCP_KEY_DEMO_EN_CFG, + config_value); #endif - if (strcmp(config_value, "null") == 0) { - LOGD( - "%s, get config \"%s\" is \"%s\", return 0 to not enable handle hdcp key demo.\n", - __FUNCTION__, CS_HDCP_KEY_DEMO_EN_CFG, config_value); - return 0; - } - - return strtoul(config_value, NULL, 10); + if (strcmp(config_value, "null") == 0) { + LOGD( + "%s, get config \"%s\" is \"%s\", return 0 to not enable handle hdcp key demo.\n", + __FUNCTION__, CS_HDCP_KEY_DEMO_EN_CFG, config_value); + return 0; + } + + return strtoul(config_value, NULL, 10); } int SSMSetDefaultHDCPKey(unsigned char hdcp_key_buf[]) { - int i = 0; + int i = 0; - for (i = 0; i < CC_HDCP_KEY_HEAD_SIZE; i++) { - hdcp_key_buf[i] = mHDCPKeyDefHeaderBuf[i]; - } + for (i = 0; i < CC_HDCP_KEY_HEAD_SIZE; i++) { + hdcp_key_buf[i] = mHDCPKeyDefHeaderBuf[i]; + } - for (i = 0; i < CC_HDCP_KEY_CONTENT_SIZE; i++) { - hdcp_key_buf[i + CC_HDCP_KEY_HEAD_SIZE] = mDefHDCPKeyContentBuf[i]; - } + for (i = 0; i < CC_HDCP_KEY_CONTENT_SIZE; i++) { + hdcp_key_buf[i + CC_HDCP_KEY_HEAD_SIZE] = mDefHDCPKeyContentBuf[i]; + } - LOGD("%s, using default hdcp key.\n", __FUNCTION__); + LOGD("%s, using default hdcp key.\n", __FUNCTION__); - return RealHandleHDCPKey(hdcp_key_buf); + return RealHandleHDCPKey(hdcp_key_buf); } int RealHandleHDCPKey(unsigned char hdcp_key_buf[]) { - int i = 0, dev_fd = -1; + int i = 0, dev_fd = -1; - if (hdcp_key_buf == NULL) { - return -1; - } + if (hdcp_key_buf == NULL) { + return -1; + } - dev_fd = open("/sys/class/hdmirx/hdmirx0/edid", O_RDWR); - if (dev_fd < 0) { - LOGE("%s, open edid file ERROR(%s)!!\n", CFG_SECTION_TV, strerror(errno)); - return -1; - } + dev_fd = open("/sys/class/hdmirx/hdmirx0/edid", O_RDWR); + if (dev_fd < 0) { + LOGE("%s, open edid file ERROR(%s)!!\n", CFG_SECTION_TV, strerror(errno)); + return -1; + } - if (write(dev_fd, hdcp_key_buf, CC_HDCP_KEY_TOTAL_SIZE) < 0) { - close(dev_fd); - dev_fd = -1; - LOGE("%s, write edid file ERROR(%s)!!\n", CFG_SECTION_TV, strerror(errno)); + if (write(dev_fd, hdcp_key_buf, CC_HDCP_KEY_TOTAL_SIZE) < 0) { + close(dev_fd); + dev_fd = -1; + LOGE("%s, write edid file ERROR(%s)!!\n", CFG_SECTION_TV, strerror(errno)); - return -1; - } + return -1; + } - close(dev_fd); - dev_fd = -1; - return 0; + close(dev_fd); + dev_fd = -1; + return 0; } /**************************** end hdcp key static functions ****************************/ @@ -877,81 +877,81 @@ int RealHandleHDCPKey(unsigned char hdcp_key_buf[]) /**************************** start hdmi edid static functions ****************************/ int GetSSMHandleHDMIEdidByCustomerEnableCFG() { - const char *config_value; + const char *config_value; - config_value = config_get_str(CFG_SECTION_TV, CS_HDMI_EDID_EN_CFG, "null"); + config_value = config_get_str(CFG_SECTION_TV, CS_HDMI_EDID_EN_CFG, "null"); #if 0 - LOGD("%s, get \"%s\" is \"%s\".\n", __FUNCTION__, CS_HDMI_EDID_EN_CFG, - config_value); + LOGD("%s, get \"%s\" is \"%s\".\n", __FUNCTION__, CS_HDMI_EDID_EN_CFG, + config_value); #endif - if (strcmp(config_value, "null") == 0) { - LOGD( - "%s, get config \"%s\" is \"%s\", return 0 to not enable handle hdmi edid by customer.\n", - __FUNCTION__, CS_HDMI_EDID_EN_CFG, config_value); - return 0; - } - - return strtoul(config_value, NULL, 10); + if (strcmp(config_value, "null") == 0) { + LOGD( + "%s, get config \"%s\" is \"%s\", return 0 to not enable handle hdmi edid by customer.\n", + __FUNCTION__, CS_HDMI_EDID_EN_CFG, config_value); + return 0; + } + + return strtoul(config_value, NULL, 10); } int RealHandleHDMIEdid(unsigned char customer_hdmi_edid_buf[]) { - int i = 0, dev_fd = -1; - - if (customer_hdmi_edid_buf == NULL) { - return -1; - } - - dev_fd = open("/sys/class/hdmirx/hdmirx0/edid", O_RDWR); - if (dev_fd < 0) { - LOGE("%s, open edid file ERROR(%s)!!\n", CFG_SECTION_TV, strerror(errno)); - return -1; - } - - if (write(dev_fd, customer_hdmi_edid_buf, CC_CUSTOMER_HDMI_EDID_TOTAL_SIZE) - < 0) { - close(dev_fd); - dev_fd = -1; - LOGE("%s, write edid file ERROR(%s)!!\n", CFG_SECTION_TV, strerror(errno)); - - return -1; - } - - close(dev_fd); - dev_fd = -1; - return 0; + int i = 0, dev_fd = -1; + + if (customer_hdmi_edid_buf == NULL) { + return -1; + } + + dev_fd = open("/sys/class/hdmirx/hdmirx0/edid", O_RDWR); + if (dev_fd < 0) { + LOGE("%s, open edid file ERROR(%s)!!\n", CFG_SECTION_TV, strerror(errno)); + return -1; + } + + if (write(dev_fd, customer_hdmi_edid_buf, CC_CUSTOMER_HDMI_EDID_TOTAL_SIZE) + < 0) { + close(dev_fd); + dev_fd = -1; + LOGE("%s, write edid file ERROR(%s)!!\n", CFG_SECTION_TV, strerror(errno)); + + return -1; + } + + close(dev_fd); + dev_fd = -1; + return 0; } int AppendEdidPrefixCode(unsigned char customer_hdmi_edid_buf[], - unsigned char hdmi_edid_buf[]) + unsigned char hdmi_edid_buf[]) { - if (customer_hdmi_edid_buf == NULL || hdmi_edid_buf == NULL) { - LOGE("%s, Append hdmi edid's prefixCode ERROR(%s)!!\n", CFG_SECTION_TV, - strerror(errno)); - return -1; - } - memset(customer_hdmi_edid_buf, 0, - sizeof(char) * CC_CUSTOMER_HDMI_EDID_TOTAL_SIZE); - customer_hdmi_edid_buf[0] = 'E'; - customer_hdmi_edid_buf[1] = 'D'; - customer_hdmi_edid_buf[2] = 'I'; - customer_hdmi_edid_buf[3] = 'D'; - memcpy(customer_hdmi_edid_buf + 4, hdmi_edid_buf, - CC_CUSTOMER_HDMI_EDID_TOTAL_SIZE - 4); - /* - LOGD("%s, customer_hdmi_edid_buf: %c,%c,%c,%c,%x,%x,%x,%x.\n", __FUNCTION__, - customer_hdmi_edid_buf[0],customer_hdmi_edid_buf[1],customer_hdmi_edid_buf[2],customer_hdmi_edid_buf[3], - customer_hdmi_edid_buf[12],customer_hdmi_edid_buf[13],customer_hdmi_edid_buf[14],customer_hdmi_edid_buf[15]);*/ - /* - LOGD("%s, customer_hdmi_edid_buf: \n", __FUNCTION__); - int i, j; - for (i = 0; i < 16; i++) { - LOGD("[%2d] ", i); - for (j = 0; j < 16; j++) { - LOGD("0x%02lx, ", customer_hdmi_edid_buf[4 + (i*16 + j)]); - } - LOGD("\n"); - }*/ - return 0; + if (customer_hdmi_edid_buf == NULL || hdmi_edid_buf == NULL) { + LOGE("%s, Append hdmi edid's prefixCode ERROR(%s)!!\n", CFG_SECTION_TV, + strerror(errno)); + return -1; + } + memset(customer_hdmi_edid_buf, 0, + sizeof(char) * CC_CUSTOMER_HDMI_EDID_TOTAL_SIZE); + customer_hdmi_edid_buf[0] = 'E'; + customer_hdmi_edid_buf[1] = 'D'; + customer_hdmi_edid_buf[2] = 'I'; + customer_hdmi_edid_buf[3] = 'D'; + memcpy(customer_hdmi_edid_buf + 4, hdmi_edid_buf, + CC_CUSTOMER_HDMI_EDID_TOTAL_SIZE - 4); + /* + LOGD("%s, customer_hdmi_edid_buf: %c,%c,%c,%c,%x,%x,%x,%x.\n", __FUNCTION__, + customer_hdmi_edid_buf[0],customer_hdmi_edid_buf[1],customer_hdmi_edid_buf[2],customer_hdmi_edid_buf[3], + customer_hdmi_edid_buf[12],customer_hdmi_edid_buf[13],customer_hdmi_edid_buf[14],customer_hdmi_edid_buf[15]);*/ + /* + LOGD("%s, customer_hdmi_edid_buf: \n", __FUNCTION__); + int i, j; + for (i = 0; i < 16; i++) { + LOGD("[%2d] ", i); + for (j = 0; j < 16; j++) { + LOGD("0x%02lx, ", customer_hdmi_edid_buf[4 + (i*16 + j)]); + } + LOGD("\n"); + }*/ + return 0; } /**************************** end hdmi edid static functions ****************************/ @@ -965,370 +965,370 @@ int AppendEdidPrefixCode(unsigned char customer_hdmi_edid_buf[], typedef int (*op_fun_ptr)(char *, int, int, unsigned char *); typedef struct tagRWDataInfo { - int op_type; - int data_type; - int max_size; - int rw_off; - int rw_size; - void *data_buf; - char *path_cfg_name; - char *off_cfg_name; - op_fun_ptr op_cb; + int op_type; + int data_type; + int max_size; + int rw_off; + int rw_size; + void *data_buf; + char *path_cfg_name; + char *off_cfg_name; + op_fun_ptr op_cb; } RWDataInfo; static int GetFilePathCFG(char *key_str, char path_buf[]) { - int tmp_ret = 0; - const char *cfg_value; + int tmp_ret = 0; + const char *cfg_value; - path_buf[0] = '\0'; - cfg_value = config_get_str(CFG_SECTION_TV, key_str, ""); - strcpy(path_buf, cfg_value); + path_buf[0] = '\0'; + cfg_value = config_get_str(CFG_SECTION_TV, key_str, ""); + strcpy(path_buf, cfg_value); #if 0 - LOGD("%s, get \"%s\" is \"%s\".\n", CFG_SECTION_TV, key_str, path_buf); + LOGD("%s, get \"%s\" is \"%s\".\n", CFG_SECTION_TV, key_str, path_buf); #endif - return tmp_ret; + return tmp_ret; } static int GetFileOffsetCFG(char *key_str) { - const char *cfg_value; + const char *cfg_value; - cfg_value = config_get_str(CFG_SECTION_TV, key_str, "null"); + cfg_value = config_get_str(CFG_SECTION_TV, key_str, "null"); #if 0 - LOGD("%s, get \"%s\" is \"%s\".\n", CFG_SECTION_TV, key_str, cfg_value); + LOGD("%s, get \"%s\" is \"%s\".\n", CFG_SECTION_TV, key_str, cfg_value); #endif - if (strcmp(cfg_value, "null") == 0) { - LOGD("%s, get config \"%s\" is \"%s\", return 0 for default.\n", CFG_SECTION_TV, - key_str, cfg_value); - return 0; - } + if (strcmp(cfg_value, "null") == 0) { + LOGD("%s, get config \"%s\" is \"%s\", return 0 for default.\n", CFG_SECTION_TV, + key_str, cfg_value); + return 0; + } - return strtol(cfg_value, NULL, 10); + return strtol(cfg_value, NULL, 10); } static int handleDataFilePath(char *file_name, int offset, int nsize, - char file_path[]) + char file_path[]) { - if (file_name == NULL) { - LOGE("%s, file_name is NULL!!!\n", CFG_SECTION_TV); - return -1; - } + if (file_name == NULL) { + LOGE("%s, file_name is NULL!!!\n", CFG_SECTION_TV); + return -1; + } - return 0; + return 0; } static int ReadDataFromFile(char *file_name, int offset, int nsize, - unsigned char data_buf[]) + unsigned char data_buf[]) { - int device_fd = -1; - int tmp_ret = 0; - char *tmp_ptr = NULL; - char file_path[512] = { '\0' }; - - if (data_buf == NULL) { - LOGE("%s, data_buf is NULL!!!\n", CFG_SECTION_TV); - return -1; - } - - tmp_ret = handleDataFilePath(file_name, offset, nsize, file_path); - if (tmp_ret < 0) { - tmp_ptr = NULL; - } else if (tmp_ret == 0) { - tmp_ptr = file_name; - } else if (tmp_ret == 1) { - tmp_ptr = file_path; - } - - if (tmp_ptr == NULL) { - return -1; - } - - device_fd = open(tmp_ptr, O_RDONLY); - if (device_fd < 0) { - LOGE("%s: open file \"%s\" error(%s).\n", CFG_SECTION_TV, file_name, - strerror(errno)); - return -1; - } - - lseek(device_fd, offset, SEEK_SET); - read(device_fd, data_buf, nsize); - - close(device_fd); - device_fd = -1; - - return 0; + int device_fd = -1; + int tmp_ret = 0; + char *tmp_ptr = NULL; + char file_path[512] = { '\0' }; + + if (data_buf == NULL) { + LOGE("%s, data_buf is NULL!!!\n", CFG_SECTION_TV); + return -1; + } + + tmp_ret = handleDataFilePath(file_name, offset, nsize, file_path); + if (tmp_ret < 0) { + tmp_ptr = NULL; + } else if (tmp_ret == 0) { + tmp_ptr = file_name; + } else if (tmp_ret == 1) { + tmp_ptr = file_path; + } + + if (tmp_ptr == NULL) { + return -1; + } + + device_fd = open(tmp_ptr, O_RDONLY); + if (device_fd < 0) { + LOGE("%s: open file \"%s\" error(%s).\n", CFG_SECTION_TV, file_name, + strerror(errno)); + return -1; + } + + lseek(device_fd, offset, SEEK_SET); + read(device_fd, data_buf, nsize); + + close(device_fd); + device_fd = -1; + + return 0; } static int SaveDataToFile(char *file_name, int offset, int nsize, - unsigned char data_buf[]) + unsigned char data_buf[]) { - int device_fd = -1; - int i = 0, tmp_ret = 0; - char *tmp_ptr = NULL; - char file_path[512] = { '\0' }; - - if (data_buf == NULL) { - LOGE("%s, data_buf is NULL!!!\n", CFG_SECTION_TV); - return -1; - } - - tmp_ret = handleDataFilePath(file_name, offset, nsize, file_path); - if (tmp_ret < 0) { - tmp_ptr = NULL; - } else if (tmp_ret == 0) { - tmp_ptr = file_name; - } else if (tmp_ret == 1) { - tmp_ptr = file_path; - } - - if (tmp_ptr == NULL) { - return -1; - } - - device_fd = open(tmp_ptr, O_RDWR | O_SYNC); - if (device_fd < 0) { - LOGE("%s: open file \"%s\" error(%s).\n", CFG_SECTION_TV, file_name, - strerror(errno)); - return -1; - } - - lseek(device_fd, offset, SEEK_SET); - write(device_fd, data_buf, nsize); - fsync(device_fd); - - close(device_fd); - device_fd = -1; - - return 0; + int device_fd = -1; + int i = 0, tmp_ret = 0; + char *tmp_ptr = NULL; + char file_path[512] = { '\0' }; + + if (data_buf == NULL) { + LOGE("%s, data_buf is NULL!!!\n", CFG_SECTION_TV); + return -1; + } + + tmp_ret = handleDataFilePath(file_name, offset, nsize, file_path); + if (tmp_ret < 0) { + tmp_ptr = NULL; + } else if (tmp_ret == 0) { + tmp_ptr = file_name; + } else if (tmp_ret == 1) { + tmp_ptr = file_path; + } + + if (tmp_ptr == NULL) { + return -1; + } + + device_fd = open(tmp_ptr, O_RDWR | O_SYNC); + if (device_fd < 0) { + LOGE("%s: open file \"%s\" error(%s).\n", CFG_SECTION_TV, file_name, + strerror(errno)); + return -1; + } + + lseek(device_fd, offset, SEEK_SET); + write(device_fd, data_buf, nsize); + fsync(device_fd); + + close(device_fd); + device_fd = -1; + + return 0; } static int RealRWData(RWDataInfo *data_info) { - int i = 0, file_off = 0; - char file_name[256] = { '\0' }; + int i = 0, file_off = 0; + char file_name[256] = { '\0' }; - memset(file_name, '\0', 256); - GetFilePathCFG(data_info->path_cfg_name, file_name); + memset(file_name, '\0', 256); + GetFilePathCFG(data_info->path_cfg_name, file_name); #if 0 - LOGD("%s, file_name is %s.\n", __FUNCTION__, file_name); + LOGD("%s, file_name is %s.\n", __FUNCTION__, file_name); #endif - if (strlen(file_name) == 0) { - LOGE("%s, length of file_name is 0!!!\n", CFG_SECTION_TV); - return -2; - } - - if (data_info->rw_off < 0) { - LOGE("%s, data_info->rw_off (%d) is less than 0!!!\n", CFG_SECTION_TV, - data_info->rw_off); - return -1; - } - - if (data_info->rw_off + data_info->rw_size > data_info->max_size) { - LOGE( - "%s, data_info->rw_off + data_info->rw_size (%d) is more than data_info->max_size(%d) !!!\n", - CFG_SECTION_TV, data_info->rw_off + data_info->rw_size, - data_info->max_size); - return -1; - } - - file_off = GetFileOffsetCFG(data_info->off_cfg_name); - if (file_off < 0) { - LOGE("%s, file_off (%d) is less than 0!!!\n", CFG_SECTION_TV, file_off); - return -1; - } - - file_off += data_info->rw_off; - - if (data_info->op_cb(file_name, file_off, data_info->rw_size, - (unsigned char *) data_info->data_buf) < 0) { - return -1; - } - - return 0; + if (strlen(file_name) == 0) { + LOGE("%s, length of file_name is 0!!!\n", CFG_SECTION_TV); + return -2; + } + + if (data_info->rw_off < 0) { + LOGE("%s, data_info->rw_off (%d) is less than 0!!!\n", CFG_SECTION_TV, + data_info->rw_off); + return -1; + } + + if (data_info->rw_off + data_info->rw_size > data_info->max_size) { + LOGE( + "%s, data_info->rw_off + data_info->rw_size (%d) is more than data_info->max_size(%d) !!!\n", + CFG_SECTION_TV, data_info->rw_off + data_info->rw_size, + data_info->max_size); + return -1; + } + + file_off = GetFileOffsetCFG(data_info->off_cfg_name); + if (file_off < 0) { + LOGE("%s, file_off (%d) is less than 0!!!\n", CFG_SECTION_TV, file_off); + return -1; + } + + file_off += data_info->rw_off; + + if (data_info->op_cb(file_name, file_off, data_info->rw_size, + (unsigned char *) data_info->data_buf) < 0) { + return -1; + } + + return 0; } static int HandleRWData(RWDataInfo *data_info) { - int i = 0, tmp_ret = 0; - int *tmp_iptr = NULL; - unsigned char *tmp_cptr = NULL; - RWDataInfo tmpInfo; - - if (data_info == NULL) { - return -1; - } - - tmpInfo = *data_info; - - if (data_info->data_type == CC_DATA_TYPE_INT) { - tmp_cptr = new unsigned char[data_info->rw_size]; - if (tmp_cptr != NULL) { - tmpInfo.data_buf = tmp_cptr; - - if (tmpInfo.op_type == CC_OP_TYPE_SAVE) { - tmp_iptr = (int *) data_info->data_buf; - for (i = 0; i < data_info->rw_size; i++) { - tmp_cptr[i] = tmp_iptr[i]; - } - - tmp_ret |= RealRWData(&tmpInfo); - } else { - tmp_ret |= RealRWData(&tmpInfo); - - tmp_iptr = (int *) data_info->data_buf; - for (i = 0; i < data_info->rw_size; i++) { - tmp_iptr[i] = tmp_cptr[i]; - } - } - - delete tmp_cptr; - tmp_cptr = NULL; - - return tmp_ret; - } - } - - return RealRWData(&tmpInfo); + int i = 0, tmp_ret = 0; + int *tmp_iptr = NULL; + unsigned char *tmp_cptr = NULL; + RWDataInfo tmpInfo; + + if (data_info == NULL) { + return -1; + } + + tmpInfo = *data_info; + + if (data_info->data_type == CC_DATA_TYPE_INT) { + tmp_cptr = new unsigned char[data_info->rw_size]; + if (tmp_cptr != NULL) { + tmpInfo.data_buf = tmp_cptr; + + if (tmpInfo.op_type == CC_OP_TYPE_SAVE) { + tmp_iptr = (int *) data_info->data_buf; + for (i = 0; i < data_info->rw_size; i++) { + tmp_cptr[i] = tmp_iptr[i]; + } + + tmp_ret |= RealRWData(&tmpInfo); + } else { + tmp_ret |= RealRWData(&tmpInfo); + + tmp_iptr = (int *) data_info->data_buf; + for (i = 0; i < data_info->rw_size; i++) { + tmp_iptr[i] = tmp_cptr[i]; + } + } + + delete tmp_cptr; + tmp_cptr = NULL; + + return tmp_ret; + } + } + + return RealRWData(&tmpInfo); } int GetRGBOGOFromFile(int rd_off, int rd_size, - unsigned char data_buf[]) + unsigned char data_buf[]) { - RWDataInfo tmpInfo; - - tmpInfo.op_type = CC_OP_TYPE_READ; - tmpInfo.data_type = CC_DATA_TYPE_CHAR; - tmpInfo.max_size = SSM_CR_RGBOGO_LEN + SSM_CR_RGBOGO_CHKSUM_LEN; - tmpInfo.rw_off = rd_off; - tmpInfo.rw_size = rd_size; - tmpInfo.data_buf = data_buf; - tmpInfo.path_cfg_name = (char *) CS_RGBOGO_FILE_PATH_CFG; - tmpInfo.off_cfg_name = (char *) CS_RGBOGO_FILE_OFFSET_CFG; - tmpInfo.op_cb = ReadDataFromFile; - - return HandleRWData(&tmpInfo); + RWDataInfo tmpInfo; + + tmpInfo.op_type = CC_OP_TYPE_READ; + tmpInfo.data_type = CC_DATA_TYPE_CHAR; + tmpInfo.max_size = SSM_CR_RGBOGO_LEN + SSM_CR_RGBOGO_CHKSUM_LEN; + tmpInfo.rw_off = rd_off; + tmpInfo.rw_size = rd_size; + tmpInfo.data_buf = data_buf; + tmpInfo.path_cfg_name = (char *) CS_RGBOGO_FILE_PATH_CFG; + tmpInfo.off_cfg_name = (char *) CS_RGBOGO_FILE_OFFSET_CFG; + tmpInfo.op_cb = ReadDataFromFile; + + return HandleRWData(&tmpInfo); } int SaveRGBOGOToFile(int wr_off, int wr_size, unsigned char data_buf[]) { - RWDataInfo tmpInfo; - - tmpInfo.op_type = CC_OP_TYPE_SAVE; - tmpInfo.data_type = CC_DATA_TYPE_CHAR; - tmpInfo.max_size = SSM_CR_RGBOGO_LEN + SSM_CR_RGBOGO_CHKSUM_LEN; - tmpInfo.rw_off = wr_off; - tmpInfo.rw_size = wr_size; - tmpInfo.data_buf = data_buf; - tmpInfo.path_cfg_name = (char *) CS_RGBOGO_FILE_PATH_CFG; - tmpInfo.off_cfg_name = (char *) CS_RGBOGO_FILE_OFFSET_CFG; - tmpInfo.op_cb = SaveDataToFile; - - return HandleRWData(&tmpInfo); + RWDataInfo tmpInfo; + + tmpInfo.op_type = CC_OP_TYPE_SAVE; + tmpInfo.data_type = CC_DATA_TYPE_CHAR; + tmpInfo.max_size = SSM_CR_RGBOGO_LEN + SSM_CR_RGBOGO_CHKSUM_LEN; + tmpInfo.rw_off = wr_off; + tmpInfo.rw_size = wr_size; + tmpInfo.data_buf = data_buf; + tmpInfo.path_cfg_name = (char *) CS_RGBOGO_FILE_PATH_CFG; + tmpInfo.off_cfg_name = (char *) CS_RGBOGO_FILE_OFFSET_CFG; + tmpInfo.op_cb = SaveDataToFile; + + return HandleRWData(&tmpInfo); } int GetAudioNoLinePointsDataFromFile(int rd_off, int rd_size, - unsigned char data_buf[]) + unsigned char data_buf[]) { - RWDataInfo tmpInfo; - - tmpInfo.op_type = CC_OP_TYPE_READ; - tmpInfo.data_type = CC_DATA_TYPE_CHAR; - tmpInfo.max_size = 256; - tmpInfo.rw_off = rd_off; - tmpInfo.rw_size = rd_size; - tmpInfo.data_buf = data_buf; - tmpInfo.path_cfg_name = (char *) CS_AUDIO_NOLINEPOINTS_FILE_PATH_CFG; - tmpInfo.off_cfg_name = (char *) CS_AUDIO_NOLINEPOINTS_FILE_OFFSET_CFG; - tmpInfo.op_cb = ReadDataFromFile; - - return HandleRWData(&tmpInfo); + RWDataInfo tmpInfo; + + tmpInfo.op_type = CC_OP_TYPE_READ; + tmpInfo.data_type = CC_DATA_TYPE_CHAR; + tmpInfo.max_size = 256; + tmpInfo.rw_off = rd_off; + tmpInfo.rw_size = rd_size; + tmpInfo.data_buf = data_buf; + tmpInfo.path_cfg_name = (char *) CS_AUDIO_NOLINEPOINTS_FILE_PATH_CFG; + tmpInfo.off_cfg_name = (char *) CS_AUDIO_NOLINEPOINTS_FILE_OFFSET_CFG; + tmpInfo.op_cb = ReadDataFromFile; + + return HandleRWData(&tmpInfo); } int SaveAudioNoLinePointsDataToFile(int wr_off, int wr_size, - unsigned char data_buf[]) + unsigned char data_buf[]) { - RWDataInfo tmpInfo; - - tmpInfo.op_type = CC_OP_TYPE_SAVE; - tmpInfo.data_type = CC_DATA_TYPE_CHAR; - tmpInfo.max_size = 256; - tmpInfo.rw_off = wr_off; - tmpInfo.rw_size = wr_size; - tmpInfo.data_buf = data_buf; - tmpInfo.path_cfg_name = (char *) CS_AUDIO_NOLINEPOINTS_FILE_PATH_CFG; - tmpInfo.off_cfg_name = (char *) CS_AUDIO_NOLINEPOINTS_FILE_OFFSET_CFG; - tmpInfo.op_cb = SaveDataToFile; - - return HandleRWData(&tmpInfo); + RWDataInfo tmpInfo; + + tmpInfo.op_type = CC_OP_TYPE_SAVE; + tmpInfo.data_type = CC_DATA_TYPE_CHAR; + tmpInfo.max_size = 256; + tmpInfo.rw_off = wr_off; + tmpInfo.rw_size = wr_size; + tmpInfo.data_buf = data_buf; + tmpInfo.path_cfg_name = (char *) CS_AUDIO_NOLINEPOINTS_FILE_PATH_CFG; + tmpInfo.off_cfg_name = (char *) CS_AUDIO_NOLINEPOINTS_FILE_OFFSET_CFG; + tmpInfo.op_cb = SaveDataToFile; + + return HandleRWData(&tmpInfo); } int GetHDCPKeyFromFile(int rd_off, int rd_size, - unsigned char data_buf[]) + unsigned char data_buf[]) { - RWDataInfo tmpInfo; - - tmpInfo.op_type = CC_OP_TYPE_READ; - tmpInfo.data_type = CC_DATA_TYPE_CHAR; - tmpInfo.max_size = CC_HDCP_KEY_TOTAL_SIZE; - tmpInfo.rw_off = rd_off; - tmpInfo.rw_size = rd_size; - tmpInfo.data_buf = data_buf; - tmpInfo.path_cfg_name = (char *) CS_HDCP_KEY_FILE_PATH_CFG; - tmpInfo.off_cfg_name = (char *) CS_HDCP_KEY_FILE_OFFSET_CFG; - tmpInfo.op_cb = ReadDataFromFile; - - return HandleRWData(&tmpInfo); + RWDataInfo tmpInfo; + + tmpInfo.op_type = CC_OP_TYPE_READ; + tmpInfo.data_type = CC_DATA_TYPE_CHAR; + tmpInfo.max_size = CC_HDCP_KEY_TOTAL_SIZE; + tmpInfo.rw_off = rd_off; + tmpInfo.rw_size = rd_size; + tmpInfo.data_buf = data_buf; + tmpInfo.path_cfg_name = (char *) CS_HDCP_KEY_FILE_PATH_CFG; + tmpInfo.off_cfg_name = (char *) CS_HDCP_KEY_FILE_OFFSET_CFG; + tmpInfo.op_cb = ReadDataFromFile; + + return HandleRWData(&tmpInfo); } int SaveHDCPKeyToFile(int wr_off, int wr_size, - unsigned char data_buf[]) + unsigned char data_buf[]) { - RWDataInfo tmpInfo; - - tmpInfo.op_type = CC_OP_TYPE_SAVE; - tmpInfo.data_type = CC_DATA_TYPE_CHAR; - tmpInfo.max_size = CC_HDCP_KEY_TOTAL_SIZE; - tmpInfo.rw_off = wr_off; - tmpInfo.rw_size = wr_size; - tmpInfo.data_buf = data_buf; - tmpInfo.path_cfg_name = (char *) CS_HDCP_KEY_FILE_PATH_CFG; - tmpInfo.off_cfg_name = (char *) CS_HDCP_KEY_FILE_OFFSET_CFG; - tmpInfo.op_cb = SaveDataToFile; - - return HandleRWData(&tmpInfo); + RWDataInfo tmpInfo; + + tmpInfo.op_type = CC_OP_TYPE_SAVE; + tmpInfo.data_type = CC_DATA_TYPE_CHAR; + tmpInfo.max_size = CC_HDCP_KEY_TOTAL_SIZE; + tmpInfo.rw_off = wr_off; + tmpInfo.rw_size = wr_size; + tmpInfo.data_buf = data_buf; + tmpInfo.path_cfg_name = (char *) CS_HDCP_KEY_FILE_PATH_CFG; + tmpInfo.off_cfg_name = (char *) CS_HDCP_KEY_FILE_OFFSET_CFG; + tmpInfo.op_cb = SaveDataToFile; + + return HandleRWData(&tmpInfo); } int GetHDMIEdidFromFile(int rd_off, int rd_size, int port, - unsigned char data_buf[]) + unsigned char data_buf[]) { - RWDataInfo tmpInfo; - - tmpInfo.op_type = CC_OP_TYPE_READ; - tmpInfo.data_type = CC_DATA_TYPE_CHAR; - tmpInfo.max_size = SSM_HDMI_EDID_SIZE; - tmpInfo.rw_off = rd_off; - tmpInfo.rw_size = rd_size; - tmpInfo.data_buf = data_buf; - switch (port) { - case 1: - tmpInfo.path_cfg_name = (char *) CS_HDMI_PORT1_EDID_FILE_PATH_CFG; - break; - case 2: - tmpInfo.path_cfg_name = (char *) CS_HDMI_PORT2_EDID_FILE_PATH_CFG; - break; - case 3: - tmpInfo.path_cfg_name = (char *) CS_HDMI_PORT3_EDID_FILE_PATH_CFG; - break; - default: - LOGE("%s, port is error, =%d\n", CFG_SECTION_TV, port); - tmpInfo.path_cfg_name = (char *) CS_HDMI_EDID_FILE_PATH_CFG; - break; - } - tmpInfo.off_cfg_name = (char *) CS_HDMI_EDID_FILE_OFFSET_CFG; - tmpInfo.op_cb = ReadDataFromFile; - - return HandleRWData(&tmpInfo); + RWDataInfo tmpInfo; + + tmpInfo.op_type = CC_OP_TYPE_READ; + tmpInfo.data_type = CC_DATA_TYPE_CHAR; + tmpInfo.max_size = SSM_HDMI_EDID_SIZE; + tmpInfo.rw_off = rd_off; + tmpInfo.rw_size = rd_size; + tmpInfo.data_buf = data_buf; + switch (port) { + case 1: + tmpInfo.path_cfg_name = (char *) CS_HDMI_PORT1_EDID_FILE_PATH_CFG; + break; + case 2: + tmpInfo.path_cfg_name = (char *) CS_HDMI_PORT2_EDID_FILE_PATH_CFG; + break; + case 3: + tmpInfo.path_cfg_name = (char *) CS_HDMI_PORT3_EDID_FILE_PATH_CFG; + break; + default: + LOGE("%s, port is error, =%d\n", CFG_SECTION_TV, port); + tmpInfo.path_cfg_name = (char *) CS_HDMI_EDID_FILE_PATH_CFG; + break; + } + tmpInfo.off_cfg_name = (char *) CS_HDMI_EDID_FILE_OFFSET_CFG; + tmpInfo.op_cb = ReadDataFromFile; + + return HandleRWData(&tmpInfo); } /**************************** end critical data op functions ****************************/ diff --git a/tvapi/libtv/tvsetting/audio_cfg.cpp b/tvapi/libtv/tvsetting/audio_cfg.cpp index 523db76..1eee1ce 100644 --- a/tvapi/libtv/tvsetting/audio_cfg.cpp +++ b/tvapi/libtv/tvsetting/audio_cfg.cpp @@ -12,133 +12,133 @@ #include "CTvLog.h" static const char AudioAmpMainVolLutBaseNameTable[CC_GET_TYPE_CNT][128] = {"audio.amp.mainvol.tv.lutbuf",//0 - "audio.amp.mainvol.av.lutbuf",//1 - "audio.amp.mainvol.comp.lutbuf",//2 - "audio.amp.mainvol.hdmi.lutbuf",//3 - "audio.amp.mainvol.vga.lutbuf",//4 - "audio.amp.mainvol.mpeg.lutbuf",//5 - "audio.amp.mainvol.hdmi4k2k.lutbuf",//6 - "audio.amp.mainvol.usb4k2k.lutbuf"//7 - }; + "audio.amp.mainvol.av.lutbuf",//1 + "audio.amp.mainvol.comp.lutbuf",//2 + "audio.amp.mainvol.hdmi.lutbuf",//3 + "audio.amp.mainvol.vga.lutbuf",//4 + "audio.amp.mainvol.mpeg.lutbuf",//5 + "audio.amp.mainvol.hdmi4k2k.lutbuf",//6 + "audio.amp.mainvol.usb4k2k.lutbuf"//7 + }; static const int Default_EQGain_Table[24] = { - // - 50, 50, 50, 50, 50, 50, // SM_STD - 70, 60, 50, 60, 70, 50, // SM_MUSIC - 25, 50, 70, 66, 25, 50, // SM_NEWS - 75, 65, 50, 65, 75, 50, // SM_THEATER + // + 50, 50, 50, 50, 50, 50, // SM_STD + 70, 60, 50, 60, 70, 50, // SM_MUSIC + 25, 50, 70, 66, 25, 50, // SM_NEWS + 75, 65, 50, 65, 75, 50, // SM_THEATER }; static const int Default_AVoutGain_Table[9] = { - //PGA_IN ADC_Capture DAC_Playback - 11, 92, 255, // CC_AUDIO_IN_SOURCE_LINEIN - 11, 92, 255, //CC_AUDIO_IN_SOURCE_HDMI - 11, 92, 255, //CC_AUDIO_IN_SOURCE_ATV + //PGA_IN ADC_Capture DAC_Playback + 11, 92, 255, // CC_AUDIO_IN_SOURCE_LINEIN + 11, 92, 255, //CC_AUDIO_IN_SOURCE_HDMI + 11, 92, 255, //CC_AUDIO_IN_SOURCE_ATV }; int GetAudioAmpMasterNolinePointData(int get_type, const char *value_buf, int data_buf[]) { - const char *config_value; - if (value_buf != NULL) { - config_value = config_get_str(CFG_SECTION_TV, value_buf, "null"); - } else { - switch (get_type) { - case CC_GET_LUT_TV: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.tv", "null"); - } - break; - case CC_GET_LUT_AV: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.av", "null"); - } - break; - case CC_GET_LUT_COMP: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.comp", "null"); - } - break; - case CC_GET_LUT_HDMI: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.hdmi", "null"); - } - break; - case CC_GET_LUT_VGA: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.vga", "null"); - } - break; - case CC_GET_LUT_MPEG: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.mpeg", "null"); - } - break; - case CC_GET_LUT_HDMI_4K2K: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.hdmi4k2k", "null"); - } - break; - case CC_GET_LUT_USB_4K2K: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.usb4k2k", "null"); - } - break; - default: { - config_value = "null"; - } - break; - } - } - if (strcasecmp(config_value, "null") == 0) { - //LOGE("%s, can't get config \"%s\"!!!\n", CFG_SECTION_TV, key_str); - return -1; - } - - char *pSave; - char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; - - memset((void *)data_str, 0, sizeof(data_str)); - strncpy(data_str, config_value, sizeof(data_str) - 1); - char *token = strtok_r(data_str, ",", &pSave); - int bufferDataIndex = 0; - while (token != NULL) { - data_buf[bufferDataIndex] = strtol(token, NULL, 10); - bufferDataIndex ++; - token = strtok_r(NULL, ",", &pSave); - } - - return 0; + const char *config_value; + if (value_buf != NULL) { + config_value = config_get_str(CFG_SECTION_TV, value_buf, "null"); + } else { + switch (get_type) { + case CC_GET_LUT_TV: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.tv", "null"); + } + break; + case CC_GET_LUT_AV: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.av", "null"); + } + break; + case CC_GET_LUT_COMP: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.comp", "null"); + } + break; + case CC_GET_LUT_HDMI: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.hdmi", "null"); + } + break; + case CC_GET_LUT_VGA: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.vga", "null"); + } + break; + case CC_GET_LUT_MPEG: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.mpeg", "null"); + } + break; + case CC_GET_LUT_HDMI_4K2K: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.hdmi4k2k", "null"); + } + break; + case CC_GET_LUT_USB_4K2K: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.data.usb4k2k", "null"); + } + break; + default: { + config_value = "null"; + } + break; + } + } + if (strcasecmp(config_value, "null") == 0) { + //LOGE("%s, can't get config \"%s\"!!!\n", CFG_SECTION_TV, key_str); + return -1; + } + + char *pSave; + char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; + + memset((void *)data_str, 0, sizeof(data_str)); + strncpy(data_str, config_value, sizeof(data_str) - 1); + char *token = strtok_r(data_str, ",", &pSave); + int bufferDataIndex = 0; + while (token != NULL) { + data_buf[bufferDataIndex] = strtol(token, NULL, 10); + bufferDataIndex ++; + token = strtok_r(NULL, ",", &pSave); + } + + return 0; } int GetDefault_EQGain_Table(int *EqTable) { - memcpy(EqTable, Default_EQGain_Table, sizeof(Default_EQGain_Table)); + memcpy(EqTable, Default_EQGain_Table, sizeof(Default_EQGain_Table)); - return 0; + return 0; } int GetAudioEQPresetBufferPtr(int *EqTable) { - int bufs_count = 0, buf_item_count = 0; - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.eq.presetbuf", "null"); - if (strcasecmp(config_value, "null") == 0) { - return -1; - } + int bufs_count = 0, buf_item_count = 0; + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.eq.presetbuf", "null"); + if (strcasecmp(config_value, "null") == 0) { + return -1; + } - char *pSave; - char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; + char *pSave; + char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; - memset((void *)data_str, 0, sizeof(data_str)); - strncpy(data_str, config_value, sizeof(data_str) - 1); - char *token = strtok_r(data_str, ",", &pSave); - int allIndex = 0, bufferDataIndex = 0; - while (token != NULL) { - if (allIndex == 0) { - bufs_count = strtol(token, NULL, 10); - } else if (allIndex == 1) { - buf_item_count = strtol(token, NULL, 10); - } else if (allIndex >= 2) { - EqTable[bufferDataIndex] = strtol(token, NULL, 10); - bufferDataIndex ++; - } + memset((void *)data_str, 0, sizeof(data_str)); + strncpy(data_str, config_value, sizeof(data_str) - 1); + char *token = strtok_r(data_str, ",", &pSave); + int allIndex = 0, bufferDataIndex = 0; + while (token != NULL) { + if (allIndex == 0) { + bufs_count = strtol(token, NULL, 10); + } else if (allIndex == 1) { + buf_item_count = strtol(token, NULL, 10); + } else if (allIndex >= 2) { + EqTable[bufferDataIndex] = strtol(token, NULL, 10); + bufferDataIndex ++; + } - token = strtok_r(NULL, ",", &pSave); - allIndex ++; - } + token = strtok_r(NULL, ",", &pSave); + allIndex ++; + } - return 0; + return 0; } /** @@ -147,38 +147,38 @@ int GetAudioEQPresetBufferPtr(int *EqTable) */ const char *GetAudioAmpMainvolTableBaseName(int get_type) { - return AudioAmpMainVolLutBaseNameTable[get_type]; + return AudioAmpMainVolLutBaseNameTable[get_type]; } int GetAudioAmpMainvolBuf(const char *TableKeyName, int data_buf[]) { - int bufs_count = 0, buf_item_count = 0; - const char *config_value; - - config_value = config_get_str(CFG_SECTION_TV, TableKeyName, "null"); - if (strcasecmp(config_value, "null") == 0) { - return -1; - } - char *pSave; - char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; - memset((void *)data_str, 0, sizeof(data_str)); - strncpy(data_str, config_value, sizeof(data_str) - 1); - char *token = strtok_r(data_str, ",", &pSave); - int allIndex = 0, bufferDataIndex = 0; - while (token != NULL) { - if (allIndex == 0) { - bufs_count = strtol(token, NULL, 10); - } else if (allIndex == 1) { - buf_item_count = strtol(token, NULL, 10); - } else if (allIndex >= 2) { - data_buf[bufferDataIndex] = strtol(token, NULL, 10); - bufferDataIndex ++; - } - token = strtok_r(NULL, ",", &pSave); - allIndex ++; - } - - return 0; + int bufs_count = 0, buf_item_count = 0; + const char *config_value; + + config_value = config_get_str(CFG_SECTION_TV, TableKeyName, "null"); + if (strcasecmp(config_value, "null") == 0) { + return -1; + } + char *pSave; + char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; + memset((void *)data_str, 0, sizeof(data_str)); + strncpy(data_str, config_value, sizeof(data_str) - 1); + char *token = strtok_r(data_str, ",", &pSave); + int allIndex = 0, bufferDataIndex = 0; + while (token != NULL) { + if (allIndex == 0) { + bufs_count = strtol(token, NULL, 10); + } else if (allIndex == 1) { + buf_item_count = strtol(token, NULL, 10); + } else if (allIndex >= 2) { + data_buf[bufferDataIndex] = strtol(token, NULL, 10); + bufferDataIndex ++; + } + token = strtok_r(NULL, ",", &pSave); + allIndex ++; + } + + return 0; } /** @@ -187,536 +187,536 @@ int GetAudioAmpMainvolBuf(const char *TableKeyName, int data_buf[]) */ int GetAudioAmpSupbassvolBuf(int get_type, int data_buf[]) { - int bufs_count = 0, buf_item_count = 0; - const char *config_value; - - switch (get_type) { - case CC_GET_LUT_TV: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.tv.lutbuf", "null"); - } - - break; - case CC_GET_LUT_AV: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.av.lutbuf", "null"); - } - break; - case CC_GET_LUT_COMP: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.comp.lutbuf", "null"); - } - break; - case CC_GET_LUT_HDMI: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.hdmi.lutbuf", "null"); - } - break; - case CC_GET_LUT_VGA: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.vga.lutbuf", "null"); - } - - break; - case CC_GET_LUT_MPEG: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.mpeg.lutbuf", "null"); - } - - break; - case CC_GET_LUT_HDMI_4K2K: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.hdmi4k2k.lb.name", "null"); - } - - break; - case CC_GET_LUT_USB_4K2K: { - config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.usb4k2k.lb.name", "null"); - } - - break; - default: { - config_value = "null"; - } - break; - } - - if (strcasecmp(config_value, "null") == 0) { - return -1; - } - char *pSave; - char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; - memset((void *)data_str, 0, sizeof(data_str)); - strncpy(data_str, config_value, sizeof(data_str) - 1); - char *token = strtok_r(data_str, ",", &pSave); - int allIndex = 0, bufferDataIndex = 0; - while (token != NULL) { - if (allIndex == 0) { - bufs_count = strtol(token, NULL, 10); - } else if (allIndex == 1) { - buf_item_count = strtol(token, NULL, 10); - } else if (allIndex >= 2) { - data_buf[bufferDataIndex] = strtol(token, NULL, 10); - bufferDataIndex ++; - } - token = strtok_r(NULL, ",", &pSave); - allIndex ++; - } - - return 0; + int bufs_count = 0, buf_item_count = 0; + const char *config_value; + + switch (get_type) { + case CC_GET_LUT_TV: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.tv.lutbuf", "null"); + } + + break; + case CC_GET_LUT_AV: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.av.lutbuf", "null"); + } + break; + case CC_GET_LUT_COMP: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.comp.lutbuf", "null"); + } + break; + case CC_GET_LUT_HDMI: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.hdmi.lutbuf", "null"); + } + break; + case CC_GET_LUT_VGA: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.vga.lutbuf", "null"); + } + + break; + case CC_GET_LUT_MPEG: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.mpeg.lutbuf", "null"); + } + + break; + case CC_GET_LUT_HDMI_4K2K: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.hdmi4k2k.lb.name", "null"); + } + + break; + case CC_GET_LUT_USB_4K2K: { + config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.usb4k2k.lb.name", "null"); + } + + break; + default: { + config_value = "null"; + } + break; + } + + if (strcasecmp(config_value, "null") == 0) { + return -1; + } + char *pSave; + char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; + memset((void *)data_str, 0, sizeof(data_str)); + strncpy(data_str, config_value, sizeof(data_str) - 1); + char *token = strtok_r(data_str, ",", &pSave); + int allIndex = 0, bufferDataIndex = 0; + while (token != NULL) { + if (allIndex == 0) { + bufs_count = strtol(token, NULL, 10); + } else if (allIndex == 1) { + buf_item_count = strtol(token, NULL, 10); + } else if (allIndex >= 2) { + data_buf[bufferDataIndex] = strtol(token, NULL, 10); + bufferDataIndex ++; + } + token = strtok_r(NULL, ",", &pSave); + allIndex ++; + } + + return 0; } int GetAudioAmplifierMasterNoLineSwitchFlag() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.switch", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.switch", "null"); - if (strcmp(config_value, "null") == 0) { - return 0; - } + if (strcmp(config_value, "null") == 0) { + return 0; + } - return strtol(config_value, NULL, 10); + return strtol(config_value, NULL, 10); } int GetAudioAmplifierSupperBassNoLineSwitchFlag() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supperbass.noline.switch", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supperbass.noline.switch", "null"); - if (strcmp(config_value, "null") == 0) { - return 0; - } + if (strcmp(config_value, "null") == 0) { + return 0; + } - return strtol(config_value, NULL, 10); + return strtol(config_value, NULL, 10); } int GetAudioAmplifierMasterNoLinePointsCount() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.cnt", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.noline.point.cnt", "null"); - if (strcmp(config_value, "null") == 0) { - return 11; - } + if (strcmp(config_value, "null") == 0) { + return 11; + } - return strtol(config_value, NULL, 10); + return strtol(config_value, NULL, 10); } int GetAudioAmplifierSupperBassNoLinePointsCount() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supperbass.noline.point.cnt", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supperbass.noline.point.cnt", "null"); - if (strcmp(config_value, "null") == 0) { - return 5; - } + if (strcmp(config_value, "null") == 0) { + return 5; + } - return strtol(config_value, NULL, 10); + return strtol(config_value, NULL, 10); } int GetAudioAmplifierBalanceExchangeCFG() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.balance.exchg", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.balance.exchg", "null"); - // if (data_buf[0] >= 0 && data_buf[0] <= 100) { - // LOGD("%s, we have get the index buffer.\n", CFG_SECTION_TV); - // return 0; - // } + // if (data_buf[0] >= 0 && data_buf[0] <= 100) { + // LOGD("%s, we have get the index buffer.\n", CFG_SECTION_TV); + // return 0; + // } - if (strcmp(config_value, "null") == 0) { - return 0; //return 0 to disable balance exchange - } + if (strcmp(config_value, "null") == 0) { + return 0; //return 0 to disable balance exchange + } - return strtol(config_value, NULL, 10); + return strtol(config_value, NULL, 10); } int GetAudioMainVolLutBufCFGIndexModifyEnable() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.cfgindex.mod.en", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.master.cfgindex.mod.en", "null"); - if (strcmp(config_value, "null") == 0) { - return 0; - } + if (strcmp(config_value, "null") == 0) { + return 0; + } - return strtoul(config_value, NULL, 10); + return strtoul(config_value, NULL, 10); } int GetAudioMainVolLutBufNameModifyUbootenvCFG() { - char config_value[PROPERTY_VALUE_MAX]; + char config_value[PROPERTY_VALUE_MAX]; - memset(config_value, '\0', 32); - property_get("ubootenv.var.ampindex", config_value, "null"); + memset(config_value, '\0', 32); + property_get("ubootenv.var.ampindex", config_value, "null"); - if (strcasecmp(config_value, "null") == 0) { - return 0; - } + if (strcasecmp(config_value, "null") == 0) { + return 0; + } - return strtoul(config_value, NULL, 10); + return strtoul(config_value, NULL, 10); } int GetAudioMainVolLutBufNameModifyEnableCFG() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.mainvol.lutbufname.mod.en", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.mainvol.lutbufname.mod.en", "null"); - if (strcmp(config_value, "null") == 0) { - return 0; - } + if (strcmp(config_value, "null") == 0) { + return 0; + } - return strtoul(config_value, NULL, 10); + return strtoul(config_value, NULL, 10); } int GetAudioSupperBassVolLutBufCFGIndexModifyEnable() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supperbass.cfgindex.mod.en", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supperbass.cfgindex.mod.en", "null"); - if (strcmp(config_value, "null") == 0) { - return 0; - } + if (strcmp(config_value, "null") == 0) { + return 0; + } - return strtoul(config_value, NULL, 10); + return strtoul(config_value, NULL, 10); } int GetAudioSupperBassVolLutBufNameModifyEnableCFG() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.lutbufname.mod.en", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.amp.supbassvol.lutbufname.mod.en", "null"); - if (strcmp(config_value, "null") == 0) { - return 0; - } + if (strcmp(config_value, "null") == 0) { + return 0; + } - return strtoul(config_value, NULL, 10); + return strtoul(config_value, NULL, 10); } int GetAudioDVISupportEnable() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.dvi.support.enable", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.dvi.support.enable", "null"); - if (strcmp(config_value, "null") == 0) { - return 0; - } + if (strcmp(config_value, "null") == 0) { + return 0; + } - return strtoul(config_value, NULL, 10); + return strtoul(config_value, NULL, 10); } int GetTvAudioCardName(char tv_card_name_buf[]) { - const char *value = config_get_str(CFG_SECTION_TV, "audio.tv.card.name", "null"); + const char *value = config_get_str(CFG_SECTION_TV, "audio.tv.card.name", "null"); - strcpy(tv_card_name_buf, value); - if (strcmp(value, "null") == 0) { - strcpy(tv_card_name_buf, "AMLSYNO9629"); - } + strcpy(tv_card_name_buf, value); + if (strcmp(value, "null") == 0) { + strcpy(tv_card_name_buf, "AMLSYNO9629"); + } - return 0; + return 0; } int GetTvAudioCardNeedSet() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.tv.card.needset", "null"); - if (strcmp(config_value, "null") == 0) { - return 0; - } + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.tv.card.needset", "null"); + if (strcmp(config_value, "null") == 0) { + return 0; + } - if (strtoul(config_value, NULL, 10) == 0) { - return 0; - } + if (strtoul(config_value, NULL, 10) == 0) { + return 0; + } - return 1; + return 1; } int GetAudioEffectAmplifierGainCfg(const char *cfg_name, int def_gain_val, int max_gain_val) { - int tmp_val; - const char *config_value = config_get_str(CFG_SECTION_TV, cfg_name, "null"); - if (strcmp(config_value, "null") == 0) { - tmp_val = def_gain_val; - } else { - tmp_val = strtoul(config_value, NULL, 10); - if (tmp_val < 0 || tmp_val > max_gain_val) { - tmp_val = def_gain_val; - } - } - LOGD("%s = %d\n", cfg_name, tmp_val); - return tmp_val; + int tmp_val; + const char *config_value = config_get_str(CFG_SECTION_TV, cfg_name, "null"); + if (strcmp(config_value, "null") == 0) { + tmp_val = def_gain_val; + } else { + tmp_val = strtoul(config_value, NULL, 10); + if (tmp_val < 0 || tmp_val > max_gain_val) { + tmp_val = def_gain_val; + } + } + LOGD("%s = %d\n", cfg_name, tmp_val); + return tmp_val; } int GetAudioSRSSourroundEnableCFG() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.srs.sourround.enable", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.srs.sourround.enable", "null"); - if (strcmp(config_value, "null") == 0) { - return 0; - } + if (strcmp(config_value, "null") == 0) { + return 0; + } - return strtoul(config_value, NULL, 10); + return strtoul(config_value, NULL, 10); } int GetAudioSRSGainCfg(const char *cfg_name, int def_gain_val) { - int tmp_val = 0; - const char *config_value = config_get_str(CFG_SECTION_TV, cfg_name, "null"); + int tmp_val = 0; + const char *config_value = config_get_str(CFG_SECTION_TV, cfg_name, "null"); - if (strcmp(config_value, "null") == 0) { - tmp_val = def_gain_val; - } else { - if (tmp_val < 0 || tmp_val > 100) { - tmp_val = def_gain_val; - LOGE("Error setting: %s = %d (0~100)\n", cfg_name, tmp_val); - } - tmp_val = strtoul(config_value, NULL, 10); - } - //LOGD(" %s = %d\n", cfg_name, tmp_val); - return tmp_val; + if (strcmp(config_value, "null") == 0) { + tmp_val = def_gain_val; + } else { + if (tmp_val < 0 || tmp_val > 100) { + tmp_val = def_gain_val; + LOGE("Error setting: %s = %d (0~100)\n", cfg_name, tmp_val); + } + tmp_val = strtoul(config_value, NULL, 10); + } + //LOGD(" %s = %d\n", cfg_name, tmp_val); + return tmp_val; } int GetAudioSRSSupperBassTrubassSpeakerSizeCfg() { - char cfg_name[128] = { 0 }; + char cfg_name[128] = { 0 }; - strcpy(cfg_name, "audio.srs.turbass.speakersize"); + strcpy(cfg_name, "audio.srs.turbass.speakersize"); - const char *config_value = config_get_str(CFG_SECTION_TV, cfg_name, "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, cfg_name, "null"); - if (strcmp(config_value, "null") == 0) { - return -1; - } + if (strcmp(config_value, "null") == 0) { + return -1; + } - int tmp_val = strtoul(config_value, NULL, 10); - if (tmp_val < 0 || tmp_val > 7) { - tmp_val = -1; - } + int tmp_val = strtoul(config_value, NULL, 10); + if (tmp_val < 0 || tmp_val > 7) { + tmp_val = -1; + } - return tmp_val; + return tmp_val; } int GetAudioDumpDataEnableFlagCfg() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.dump.data.en", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.dump.data.en", "null"); - if (strcmp(config_value, "null") == 0) { - return 0; - } + if (strcmp(config_value, "null") == 0) { + return 0; + } - return strtol(config_value, NULL, 10); + return strtol(config_value, NULL, 10); } int GetAudioSupperBassSwitchDisableCFG() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.supperbass.switch.disable", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.supperbass.switch.disable", "null"); - if (strcmp(config_value, "null") == 0) { - return 0; - } + if (strcmp(config_value, "null") == 0) { + return 0; + } - return strtoul(config_value, NULL, 10); + return strtoul(config_value, NULL, 10); } int GetAudioWallEffectTypeCfg() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.walleffect.type", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.walleffect.type", "null"); - if (strcmp(config_value, "null") == 0) { - return 0; - } + if (strcmp(config_value, "null") == 0) { + return 0; + } - return strtol(config_value, NULL, 10); + return strtol(config_value, NULL, 10); } int Get2d4gHeadsetEnable() { - const char *config_value = config_get_str ( CFG_SECTION_TV, "tvin.2d4G.headset.en", "null" ); - if (strcmp(config_value, "enable") == 1) { - return 1; - } + const char *config_value = config_get_str ( CFG_SECTION_TV, "tvin.2d4G.headset.en", "null" ); + if (strcmp(config_value, "enable") == 1) { + return 1; + } - return 0; + return 0; } const char *GetAudExtDacLibPath() { - return config_get_str(CFG_SECTION_TV, "audio.external.dac.libpath", "/system/lib/libdac.so"); + return config_get_str(CFG_SECTION_TV, "audio.external.dac.libpath", "/system/lib/libdac.so"); } int GetKaraokAvEnable() { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.switch.karaok.av.enable", "null"); - if (strtoul(config_value, NULL, 10) == 1) - return 1; + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.switch.karaok.av.enable", "null"); + if (strtoul(config_value, NULL, 10) == 1) + return 1; - return 0; + return 0; } int GetDefaultAvOutGainBuf(int *nAvoutTable) { - memcpy(nAvoutTable, Default_AVoutGain_Table, sizeof(Default_AVoutGain_Table)); + memcpy(nAvoutTable, Default_AVoutGain_Table, sizeof(Default_AVoutGain_Table)); - return 0; + return 0; } int GetAvOutGainBuf_Cfg(int *nAvoutTable) { - int bufs_count = 0, buf_item_count = 0; - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.avoutgain.presetbuf", "null"); - if (strcasecmp(config_value, "null") == 0) { - // LOGE("%s, can't get config \"%s\"!!!\n", CFG_SECTION_TV, key_str); - return -1; - } - - char *pSave; - char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; - - memset((void *)data_str, 0, sizeof(data_str)); - strncpy(data_str, config_value, sizeof(data_str) - 1); - char *token = strtok_r(data_str, ",", &pSave); - int allIndex = 0, bufferDataIndex = 0; - while (token != NULL) { - if (allIndex == 0) { - bufs_count = strtol(token, NULL, 10); - } else if (allIndex == 1) { - buf_item_count = strtol(token, NULL, 10); - } else if (allIndex >= 2) { - nAvoutTable[bufferDataIndex] = strtol(token, NULL, 10); - bufferDataIndex ++; - } - - token = strtok_r(NULL, ",", &pSave); - allIndex ++; - } - - return 0; + int bufs_count = 0, buf_item_count = 0; + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.avoutgain.presetbuf", "null"); + if (strcasecmp(config_value, "null") == 0) { + // LOGE("%s, can't get config \"%s\"!!!\n", CFG_SECTION_TV, key_str); + return -1; + } + + char *pSave; + char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; + + memset((void *)data_str, 0, sizeof(data_str)); + strncpy(data_str, config_value, sizeof(data_str) - 1); + char *token = strtok_r(data_str, ",", &pSave); + int allIndex = 0, bufferDataIndex = 0; + while (token != NULL) { + if (allIndex == 0) { + bufs_count = strtol(token, NULL, 10); + } else if (allIndex == 1) { + buf_item_count = strtol(token, NULL, 10); + } else if (allIndex >= 2) { + nAvoutTable[bufferDataIndex] = strtol(token, NULL, 10); + bufferDataIndex ++; + } + + token = strtok_r(NULL, ",", &pSave); + allIndex ++; + } + + return 0; } int GetADCDigitalCaptureVol_Cfg(void) { - int capture_vol = 0; - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.adc.digital.capture.vol", "null"); + int capture_vol = 0; + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.adc.digital.capture.vol", "null"); - if (strcmp(config_value, "null") == 0) { - return -1; - } + if (strcmp(config_value, "null") == 0) { + return -1; + } - return strtoul(config_value, NULL, 10); + return strtoul(config_value, NULL, 10); } int GetAudioInternalDacPGAInGain_Cfg(void) { - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.internal.dac.pga_in.gain", "null"); + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.internal.dac.pga_in.gain", "null"); - if (strcmp(config_value, "null") == 0) { - return 16; - } + if (strcmp(config_value, "null") == 0) { + return 16; + } - return strtol(config_value, NULL, 10); + return strtol(config_value, NULL, 10); } int GetAudioInternalDACDigitalPlayBackVolume_Cfg(int audio_src_in_type) { - const char *config_value = NULL; + const char *config_value = NULL; - if (audio_src_in_type == 2) { // CC_AUDIO_IN_SOURCE_HDMI - config_value = config_get_str(CFG_SECTION_TV, "audio.internal.dac.playback.volume_hdmi", "null"); - } else if (audio_src_in_type == 0) { // CC_AUDIO_IN_SOURCE_LINEIN - config_value = config_get_str(CFG_SECTION_TV, "audio.internal.dac.playback.volume_linein", "null"); - } else if (audio_src_in_type == 1) { // CC_AUDIO_IN_SOURCE_ATV - config_value = config_get_str(CFG_SECTION_TV, "audio.internal.dac.playback.volume_atv", "null"); - } + if (audio_src_in_type == 2) { // CC_AUDIO_IN_SOURCE_HDMI + config_value = config_get_str(CFG_SECTION_TV, "audio.internal.dac.playback.volume_hdmi", "null"); + } else if (audio_src_in_type == 0) { // CC_AUDIO_IN_SOURCE_LINEIN + config_value = config_get_str(CFG_SECTION_TV, "audio.internal.dac.playback.volume_linein", "null"); + } else if (audio_src_in_type == 1) { // CC_AUDIO_IN_SOURCE_ATV + config_value = config_get_str(CFG_SECTION_TV, "audio.internal.dac.playback.volume_atv", "null"); + } - if (strcmp(config_value, "null") == 0) { - return 255; - } + if (strcmp(config_value, "null") == 0) { + return 255; + } - return strtol(config_value, NULL, 10); + return strtol(config_value, NULL, 10); } int GetAudioOutputSwapStatus(tv_source_input_t source_input) { - int sw_status = 0; - const char *config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.enable", "null"); - if ( strcmp ( config_value, "enable" ) == 0 ) { - switch (source_input) { - case SOURCE_AV1: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.av1", "null"); - break; - case SOURCE_AV2: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.av2", "null"); - break; - case SOURCE_HDMI1: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.hdmi1", "null"); - break; - case SOURCE_HDMI2: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.hdmi2", "null"); - break; - case SOURCE_HDMI3: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.hdmi3", "null"); - break; - case SOURCE_TV: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.tv", "null"); - break; - case SOURCE_DTV: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.dtv", "null"); - break; - case SOURCE_MPEG: - config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.mpeg", "null"); - break; - default: - break; - } - - } - - sw_status = atoi ( config_value ); - return sw_status; + int sw_status = 0; + const char *config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.enable", "null"); + if ( strcmp ( config_value, "enable" ) == 0 ) { + switch (source_input) { + case SOURCE_AV1: + config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.av1", "null"); + break; + case SOURCE_AV2: + config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.av2", "null"); + break; + case SOURCE_HDMI1: + config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.hdmi1", "null"); + break; + case SOURCE_HDMI2: + config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.hdmi2", "null"); + break; + case SOURCE_HDMI3: + config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.hdmi3", "null"); + break; + case SOURCE_TV: + config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.tv", "null"); + break; + case SOURCE_DTV: + config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.dtv", "null"); + break; + case SOURCE_MPEG: + config_value = config_get_str(CFG_SECTION_TV, "audio.output.swap.mpeg", "null"); + break; + default: + break; + } + + } + + sw_status = atoi ( config_value ); + return sw_status; } int GetAudioArchitectureTypeCFG() { - static int architecture_type = -1; - const char *config_value = NULL; + static int architecture_type = -1; + const char *config_value = NULL; - config_value = config_get_str ( CFG_SECTION_TV, "audio.architecture.type", "null" ); - if (strcasecmp(config_value, "null") == 0) { - architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_OFF_BOARD_FBC; - } else if ((strcasecmp(config_value, "t866_external_dac_offboard_fbc") == 0) || (strcasecmp(config_value, "g9tv_external_dac_offboard_fbc") == 0)) { - architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_OFF_BOARD_FBC; - } else if ((strcasecmp(config_value, "t866_external_dac_offboard_customer_lib") == 0) || (strcasecmp(config_value, "g9tv_external_dac_customer_lib") == 0)) { - architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_CUSTOMER_LIB; - } else if ((strcasecmp(config_value, "t866_external_dac_offboard_digital") == 0) || (strcasecmp(config_value, "g9tv_external_dac_digital") == 0)) { - architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_DIGITAL; - } else if ((strcasecmp(config_value, "t866_external_dac_onboard") == 0) || (strcasecmp(config_value, "g9tv_external_dac_onboard") == 0)) { - architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_ON_BOARD; - } else if ((strcasecmp(config_value, "t866_iternal_dac") == 0) || (strcasecmp(config_value, "g9tv_iternal_dac") == 0)) { - architecture_type = CC_DAC_G9TV_INTERNAL_DAC; - } + config_value = config_get_str ( CFG_SECTION_TV, "audio.architecture.type", "null" ); + if (strcasecmp(config_value, "null") == 0) { + architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_OFF_BOARD_FBC; + } else if ((strcasecmp(config_value, "t866_external_dac_offboard_fbc") == 0) || (strcasecmp(config_value, "g9tv_external_dac_offboard_fbc") == 0)) { + architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_OFF_BOARD_FBC; + } else if ((strcasecmp(config_value, "t866_external_dac_offboard_customer_lib") == 0) || (strcasecmp(config_value, "g9tv_external_dac_customer_lib") == 0)) { + architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_CUSTOMER_LIB; + } else if ((strcasecmp(config_value, "t866_external_dac_offboard_digital") == 0) || (strcasecmp(config_value, "g9tv_external_dac_digital") == 0)) { + architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_DIGITAL; + } else if ((strcasecmp(config_value, "t866_external_dac_onboard") == 0) || (strcasecmp(config_value, "g9tv_external_dac_onboard") == 0)) { + architecture_type = CC_DAC_G9TV_EXTERNAL_DAC_ON_BOARD; + } else if ((strcasecmp(config_value, "t866_iternal_dac") == 0) || (strcasecmp(config_value, "g9tv_iternal_dac") == 0)) { + architecture_type = CC_DAC_G9TV_INTERNAL_DAC; + } - return architecture_type; + return architecture_type; } static int gAudioResampleType = -1; int GetAudioResampleTypeCFG() { - char *token = NULL; - const char *strDelimit = ","; - const char *config_value = NULL; - char cfg_buf[1024]; - - if (gAudioResampleType == -1) { - gAudioResampleType = 0; - - char *pSave; - config_value = config_get_str ( CFG_SECTION_TV, "audio.resample.type", "null" ); - strncpy(cfg_buf, config_value, sizeof(cfg_buf)); - if (strcmp(cfg_buf, "") != 0) { - token = strtok_r(cfg_buf, strDelimit, &pSave); - while (token != NULL) { - if (strcasecmp(token, "hw") == 0) { - gAudioResampleType |= CC_AUD_RESAMPLE_TYPE_HW; - } else if (strcasecmp(token, "sw") == 0) { - gAudioResampleType |= CC_AUD_RESAMPLE_TYPE_SW; - } - - token = strtok_r(NULL, strDelimit, &pSave); - } - } else { - gAudioResampleType = CC_AUD_RESAMPLE_TYPE_SW; //if can't find config string, allow sw resample - } - } - - return gAudioResampleType; + char *token = NULL; + const char *strDelimit = ","; + const char *config_value = NULL; + char cfg_buf[1024]; + + if (gAudioResampleType == -1) { + gAudioResampleType = 0; + + char *pSave; + config_value = config_get_str ( CFG_SECTION_TV, "audio.resample.type", "null" ); + strncpy(cfg_buf, config_value, sizeof(cfg_buf)); + if (strcmp(cfg_buf, "") != 0) { + token = strtok_r(cfg_buf, strDelimit, &pSave); + while (token != NULL) { + if (strcasecmp(token, "hw") == 0) { + gAudioResampleType |= CC_AUD_RESAMPLE_TYPE_HW; + } else if (strcasecmp(token, "sw") == 0) { + gAudioResampleType |= CC_AUD_RESAMPLE_TYPE_SW; + } + + token = strtok_r(NULL, strDelimit, &pSave); + } + } else { + gAudioResampleType = CC_AUD_RESAMPLE_TYPE_SW; //if can't find config string, allow sw resample + } + } + + return gAudioResampleType; } diff --git a/tvapi/libtv/tvutils/CCondition.h b/tvapi/libtv/tvutils/CCondition.h index 0505629..d4ed263 100644 --- a/tvapi/libtv/tvutils/CCondition.h +++ b/tvapi/libtv/tvutils/CCondition.h @@ -15,25 +15,25 @@ typedef long long nsecs_t; class CCondition { public: - enum { - PRIVATE = 0, - SHARED = 1 - }; + enum { + PRIVATE = 0, + SHARED = 1 + }; - CCondition(); - CCondition(int type); - ~CCondition(); - // Wait on the condition variable. Lock the mutex before calling. - int wait(CMutex &mutex); - // same with relative timeout - int waitRelative(CMutex &mutex, long sec); - // Signal the condition variable, allowing one thread to continue. - void signal(); - // Signal the condition variable, allowing all threads to continue. - void broadcast(); + CCondition(); + CCondition(int type); + ~CCondition(); + // Wait on the condition variable. Lock the mutex before calling. + int wait(CMutex &mutex); + // same with relative timeout + int waitRelative(CMutex &mutex, long sec); + // Signal the condition variable, allowing one thread to continue. + void signal(); + // Signal the condition variable, allowing all threads to continue. + void broadcast(); private: - pthread_cond_t mCond; + pthread_cond_t mCond; }; @@ -42,49 +42,49 @@ private: inline CCondition::CCondition() { - pthread_cond_init(&mCond, NULL); + pthread_cond_init(&mCond, NULL); } inline CCondition::CCondition(int type) { - if (type == SHARED) { - pthread_condattr_t attr; - pthread_condattr_init(&attr); - pthread_condattr_setpshared(&attr, PTHREAD_PROCESS_SHARED); - pthread_cond_init(&mCond, &attr); - pthread_condattr_destroy(&attr); - } else { - pthread_cond_init(&mCond, NULL); - } + if (type == SHARED) { + pthread_condattr_t attr; + pthread_condattr_init(&attr); + pthread_condattr_setpshared(&attr, PTHREAD_PROCESS_SHARED); + pthread_cond_init(&mCond, &attr); + pthread_condattr_destroy(&attr); + } else { + pthread_cond_init(&mCond, NULL); + } } inline CCondition::~CCondition() { - pthread_cond_destroy(&mCond); + pthread_cond_destroy(&mCond); } inline int CCondition::wait(CMutex &mutex) { - return -pthread_cond_wait(&mCond, &mutex.mMutex); + return -pthread_cond_wait(&mCond, &mutex.mMutex); } inline int CCondition::waitRelative(CMutex &mutex, long msec) { - struct timespec ts; - long _nanoSec = 1000000000; - int _sec = msec / 1000; - long _nsec = (msec - 1000 * _sec) * 1000000; - clock_gettime(CLOCK_REALTIME, &ts); - ts.tv_sec += _sec; - ts.tv_nsec += _nsec; - if (ts.tv_nsec > _nanoSec) { - ts.tv_nsec %= _nanoSec; - ts.tv_sec++; - } - return -pthread_cond_timedwait(&mCond, &mutex.mMutex, &ts); + struct timespec ts; + long _nanoSec = 1000000000; + int _sec = msec / 1000; + long _nsec = (msec - 1000 * _sec) * 1000000; + clock_gettime(CLOCK_REALTIME, &ts); + ts.tv_sec += _sec; + ts.tv_nsec += _nsec; + if (ts.tv_nsec > _nanoSec) { + ts.tv_nsec %= _nanoSec; + ts.tv_sec++; + } + return -pthread_cond_timedwait(&mCond, &mutex.mMutex, &ts); } inline void CCondition::signal() { - pthread_cond_signal(&mCond); + pthread_cond_signal(&mCond); } inline void CCondition::broadcast() { - pthread_cond_broadcast(&mCond); + pthread_cond_broadcast(&mCond); } #endif diff --git a/tvapi/libtv/tvutils/CFile.cpp b/tvapi/libtv/tvutils/CFile.cpp index 36a283f..a0b523a 100644 --- a/tvapi/libtv/tvutils/CFile.cpp +++ b/tvapi/libtv/tvutils/CFile.cpp @@ -9,190 +9,189 @@ CFile::CFile() { - mPath[0] = '\0'; - mFd = -1; + mPath[0] = '\0'; + mFd = -1; } CFile::~CFile() { - closeFile(); + closeFile(); } CFile::CFile(const char *path) { - strcpy(mPath, path); - mFd = -1; + strcpy(mPath, path); + mFd = -1; } int CFile::openFile(const char *path) { - LOGD("openFile = %s", path); - - if (mFd < 0) { - if (path == NULL) { - if (strlen(mPath) <= 0) - return -1; - - mFd = open(mPath, O_RDWR);//读写模å¼æ‰“å¼€ - if (mFd < 0) LOGD("open file(--%s) fail", mPath); - } else { - mFd = open(path, O_RDWR);//读写模å¼æ‰“å¼€ - LOGD("open file(%s fd=%d) ", path, mFd); - strcpy(mPath, path); - } - } - - return mFd; + LOGD("openFile = %s", path); + + if (mFd < 0) { + if (path == NULL) { + if (strlen(mPath) <= 0) + return -1; + + mFd = open(mPath, O_RDWR);//读写模å¼æ‰“å¼€ + if (mFd < 0) LOGD("open file(--%s) fail", mPath); + } else { + mFd = open(path, O_RDWR);//读写模å¼æ‰“å¼€ + LOGD("open file(%s fd=%d) ", path, mFd); + strcpy(mPath, path); + } + } + + return mFd; } int CFile::closeFile() { - if (mFd > 0) { - close(mFd); - mFd = -1; - } - return 0; + if (mFd > 0) { + close(mFd); + mFd = -1; + } + return 0; } int CFile::writeFile(const unsigned char *pData, int uLen) { - int ret = -1; - if (mFd > 0) - ret = write(mFd, pData, uLen); + int ret = -1; + if (mFd > 0) + ret = write(mFd, pData, uLen); - return ret; + return ret; } int CFile::readFile(void *pBuf, int uLen) { - int ret = 0; - if (mFd > 0) - { - ret = read(mFd, pBuf, uLen); - } - return ret; + int ret = 0; + if (mFd > 0) { + ret = read(mFd, pBuf, uLen); + } + return ret; } int CFile::copyTo(const char *dstPath) { - if (strlen(mPath) <= 0) - return -1; - int dstFd; - if (mFd == -1) { - if ((mFd = open(mPath, O_RDONLY)) == -1) { - LOGE("Open %s Error:%s/n", mPath, strerror(errno)); - return -1; - } - } - - if ((dstFd = open(dstPath, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR)) == -1) { - LOGE("Open %s Error:%s/n", dstPath, strerror(errno)); - } - - int bytes_read, bytes_write; - char buffer[BUFFER_SIZE]; - char *ptr; - int ret = 0; - while (bytes_read = read(mFd, buffer, BUFFER_SIZE)) { - /* 一个致命的错误å‘生了 */ - if ((bytes_read == -1) && (errno != EINTR)) { - ret = -1; - break; - } else if (bytes_read > 0) { - ptr = buffer; - while (bytes_write = write(dstFd, ptr, bytes_read)) { - /* 一个致命错误å‘生了 */ - if ((bytes_write == -1) && (errno != EINTR)) { - ret = -1; - break; - } - /* 写完了所有读的å—节 */ - else if (bytes_write == bytes_read) { - ret = 0; - break; - } - /* åªå†™äº†ä¸€éƒ¨åˆ†,继ç»å†™ */ - else if (bytes_write > 0) { - ptr += bytes_write; - bytes_read -= bytes_write; - } - } - /* 写的时候å‘生的致命错误 */ - if (bytes_write == -1) { - ret = -1; - break; - } - } - } - fsync(dstFd); - close(dstFd); - return ret; + if (strlen(mPath) <= 0) + return -1; + int dstFd; + if (mFd == -1) { + if ((mFd = open(mPath, O_RDONLY)) == -1) { + LOGE("Open %s Error:%s/n", mPath, strerror(errno)); + return -1; + } + } + + if ((dstFd = open(dstPath, O_WRONLY | O_CREAT, S_IRUSR | S_IWUSR)) == -1) { + LOGE("Open %s Error:%s/n", dstPath, strerror(errno)); + } + + int bytes_read, bytes_write; + char buffer[BUFFER_SIZE]; + char *ptr; + int ret = 0; + while (bytes_read = read(mFd, buffer, BUFFER_SIZE)) { + /* 一个致命的错误å‘生了 */ + if ((bytes_read == -1) && (errno != EINTR)) { + ret = -1; + break; + } else if (bytes_read > 0) { + ptr = buffer; + while (bytes_write = write(dstFd, ptr, bytes_read)) { + /* 一个致命错误å‘生了 */ + if ((bytes_write == -1) && (errno != EINTR)) { + ret = -1; + break; + } + /* 写完了所有读的å—节 */ + else if (bytes_write == bytes_read) { + ret = 0; + break; + } + /* åªå†™äº†ä¸€éƒ¨åˆ†,继ç»å†™ */ + else if (bytes_write > 0) { + ptr += bytes_write; + bytes_read -= bytes_write; + } + } + /* 写的时候å‘生的致命错误 */ + if (bytes_write == -1) { + ret = -1; + break; + } + } + } + fsync(dstFd); + close(dstFd); + return ret; } int CFile::delFile(const char *path) { - if (strlen(path) <= 0) return -1; - if (unlink(path) != 0) { - LOGD("delete file(%s) err=%s", path, strerror(errno)); - return -1; - } - return 0; + if (strlen(path) <= 0) return -1; + if (unlink(path) != 0) { + LOGD("delete file(%s) err=%s", path, strerror(errno)); + return -1; + } + return 0; } int CFile::delFile() { - if (strlen(mPath) <= 0) return -1; - if (unlink(mPath) != 0) { - LOGD("delete file(%s) err=%s", mPath, strerror(errno)); - return -1; - } - return 0; + if (strlen(mPath) <= 0) return -1; + if (unlink(mPath) != 0) { + LOGD("delete file(%s) err=%s", mPath, strerror(errno)); + return -1; + } + return 0; } int CFile::getFileAttrValue(const char *path) { - int value; - - int fd = open(path, O_RDONLY); - if (fd <= 0) { - LOGE("open (%s)ERROR!!error = -%s- \n", path, strerror ( errno )); - } - char s[8]; - read(fd, s, sizeof(s)); - close(fd); - value = atoi(s); - return value; + int value; + + int fd = open(path, O_RDONLY); + if (fd <= 0) { + LOGE("open (%s)ERROR!!error = -%s- \n", path, strerror ( errno )); + } + char s[8]; + read(fd, s, sizeof(s)); + close(fd); + value = atoi(s); + return value; } int CFile::setFileAttrValue(const char *path, int value) { - FILE *fp = fopen ( path, "w" ); - - if ( fp == NULL ) { - LOGW ( "Open %s error(%s)!\n", path, strerror ( errno ) ); - return -1; - } - fprintf ( fp, "%d", value ); - fclose ( fp ); - return 0; + FILE *fp = fopen ( path, "w" ); + + if ( fp == NULL ) { + LOGW ( "Open %s error(%s)!\n", path, strerror ( errno ) ); + return -1; + } + fprintf ( fp, "%d", value ); + fclose ( fp ); + return 0; } int CFile::getFileAttrStr(const char *path, char *str) { - return 0; + return 0; } int CFile::setFileAttrStr(const char *path, const char *str) { - FILE *fp = fopen ( path, "w" ); - - if ( fp == NULL ) { - LOGW ( "Open %s error(%s)!\n", path, strerror ( errno ) ); - return -1; - } - fprintf ( fp, "%s", str ); - fclose ( fp ); - return 0; + FILE *fp = fopen ( path, "w" ); + + if ( fp == NULL ) { + LOGW ( "Open %s error(%s)!\n", path, strerror ( errno ) ); + return -1; + } + fprintf ( fp, "%s", str ); + fclose ( fp ); + return 0; } diff --git a/tvapi/libtv/tvutils/CFile.h b/tvapi/libtv/tvutils/CFile.h index 65f845e..a19cb61 100644 --- a/tvapi/libtv/tvutils/CFile.h +++ b/tvapi/libtv/tvutils/CFile.h @@ -17,31 +17,31 @@ class CFile { public: - CFile(const char *path); - CFile(); - virtual ~CFile(); - virtual int openFile(const char *path); - virtual int closeFile(); - virtual int writeFile(const unsigned char *pData, int uLen); - virtual int readFile(void* pBuf, int uLen); - int copyTo(const char *dstPath); - static int delFile(const char *path); - static int getFileAttrValue(const char *path); - static int setFileAttrValue(const char *path, int value); - static int getFileAttrStr(const char *path, char *str); - static int setFileAttrStr(const char *path, const char *str); - int delFile(); - int flush(); - int seekTo(); - int seekToBegin(); - int seekToEnd(); - int getLength(); - int getFd() - { - return mFd; - }; + CFile(const char *path); + CFile(); + virtual ~CFile(); + virtual int openFile(const char *path); + virtual int closeFile(); + virtual int writeFile(const unsigned char *pData, int uLen); + virtual int readFile(void *pBuf, int uLen); + int copyTo(const char *dstPath); + static int delFile(const char *path); + static int getFileAttrValue(const char *path); + static int setFileAttrValue(const char *path, int value); + static int getFileAttrStr(const char *path, char *str); + static int setFileAttrStr(const char *path, const char *str); + int delFile(); + int flush(); + int seekTo(); + int seekToBegin(); + int seekToEnd(); + int getLength(); + int getFd() + { + return mFd; + }; protected: - char mPath[CC_MAX_FILE_PATH_LEN]; - int mFd; + char mPath[CC_MAX_FILE_PATH_LEN]; + int mFd; }; #endif diff --git a/tvapi/libtv/tvutils/CHdmiCecCmd.cpp b/tvapi/libtv/tvutils/CHdmiCecCmd.cpp index ac108de..c8b7149 100644 --- a/tvapi/libtv/tvutils/CHdmiCecCmd.cpp +++ b/tvapi/libtv/tvutils/CHdmiCecCmd.cpp @@ -9,7 +9,7 @@ CHdmiCec::~CHdmiCec() int CHdmiCec::readFile(unsigned char *pBuf, unsigned int uLen) { - int ret; - //ret = read(mFd, pBuf, uLen); - return ret; + int ret; + //ret = read(mFd, pBuf, uLen); + return ret; } diff --git a/tvapi/libtv/tvutils/CHdmiCecCmd.h b/tvapi/libtv/tvutils/CHdmiCecCmd.h index 290fddb..9c08a63 100644 --- a/tvapi/libtv/tvutils/CHdmiCecCmd.h +++ b/tvapi/libtv/tvutils/CHdmiCecCmd.h @@ -3,7 +3,7 @@ static const char *CEC_PATH = "/dev/aocec"; class CHdmiCec: public CFile { public: - CHdmiCec(); - ~CHdmiCec(); - int readFile(unsigned char *pBuf, unsigned int uLen); + CHdmiCec(); + ~CHdmiCec(); + int readFile(unsigned char *pBuf, unsigned int uLen); }; diff --git a/tvapi/libtv/tvutils/CMsgQueue.cpp b/tvapi/libtv/tvutils/CMsgQueue.cpp index 070c27d..81c9aec 100644 --- a/tvapi/libtv/tvutils/CMsgQueue.cpp +++ b/tvapi/libtv/tvutils/CMsgQueue.cpp @@ -6,8 +6,8 @@ CMessage::CMessage() { - mDelayMs = 0; - mWhenMs = 0; + mDelayMs = 0; + mWhenMs = 0; } CMessage::~CMessage() @@ -21,101 +21,101 @@ CMsgQueueThread::CMsgQueueThread() CMsgQueueThread::~CMsgQueueThread() { - //请求退出处ç†çº¿ç¨‹,并阻塞 - requestExitAndWait(); + //请求退出处ç†çº¿ç¨‹,并阻塞 + requestExitAndWait(); } nsecs_t CMsgQueueThread::getNowMs() { - return systemTime(SYSTEM_TIME_MONOTONIC) / 1000000; + return systemTime(SYSTEM_TIME_MONOTONIC) / 1000000; } void CMsgQueueThread::sendMsg(CMessage &msg) { - CMutex::Autolock _l(mLockQueue); - msg.mWhenMs = getNowMs() + msg.mDelayMs;// - int i = 0; - while (i < m_v_msg.size() && m_v_msg[i].mWhenMs <= msg.mWhenMs) i++; //find the index that will insert(i) - m_v_msg.insertAt(msg, i);//insert at index i - CMessage msg1 = m_v_msg[0]; - LOGD("sendmsg now = %lld msg[0] when = %lld", getNowMs(), msg1.mWhenMs); - // - //if(i == 0)// is empty or new whenMS is at index 0, low all ms in list. so ,need to wakeup loop, to get new delay time. - mGetMsgCondition.signal(); + CMutex::Autolock _l(mLockQueue); + msg.mWhenMs = getNowMs() + msg.mDelayMs;// + int i = 0; + while (i < m_v_msg.size() && m_v_msg[i].mWhenMs <= msg.mWhenMs) i++; //find the index that will insert(i) + m_v_msg.insertAt(msg, i);//insert at index i + CMessage msg1 = m_v_msg[0]; + LOGD("sendmsg now = %lld msg[0] when = %lld", getNowMs(), msg1.mWhenMs); + // + //if(i == 0)// is empty or new whenMS is at index 0, low all ms in list. so ,need to wakeup loop, to get new delay time. + mGetMsgCondition.signal(); } //有个缺陷,åªèƒ½æ ¹æ®æ¶ˆæ¯ç±»åž‹ç§»é™¤ï¼ŒåŒç±»åž‹æ¶ˆæ¯ä¼šå…¨éƒ¨ç§»é™¤,但足够用了 void CMsgQueueThread::removeMsg(CMessage &msg) { - CMutex::Autolock _l(mLockQueue); - int beforeSize = m_v_msg.size(); - for (int i = 0; i < m_v_msg.size(); i++) { - const CMessage &_msg = m_v_msg.itemAt(i); - if (_msg.mType == msg.mType) { - m_v_msg.removeAt(i); - } - } - //some msg removeed - if (beforeSize > m_v_msg.size()) - mGetMsgCondition.signal(); + CMutex::Autolock _l(mLockQueue); + int beforeSize = m_v_msg.size(); + for (int i = 0; i < m_v_msg.size(); i++) { + const CMessage &_msg = m_v_msg.itemAt(i); + if (_msg.mType == msg.mType) { + m_v_msg.removeAt(i); + } + } + //some msg removeed + if (beforeSize > m_v_msg.size()) + mGetMsgCondition.signal(); } void CMsgQueueThread::clearMsg() { - CMutex::Autolock _l(mLockQueue); - m_v_msg.clear(); + CMutex::Autolock _l(mLockQueue); + m_v_msg.clear(); } int CMsgQueueThread::startMsgQueue() { - CMutex::Autolock _l(mLockQueue); - this->run(); - return 0; + CMutex::Autolock _l(mLockQueue); + this->run(); + return 0; } bool CMsgQueueThread::threadLoop() { - int sleeptime = 100;//ms - while (!exitPending()) { //requietexit() or requietexitWait() not call - mLockQueue.lock(); - while (m_v_msg.size() == 0) { //msg queue is empty - mGetMsgCondition.wait(mLockQueue);//first unlock,when return,lock again,so need,call unlock - } - mLockQueue.unlock(); - //get delay time - CMessage msg; - nsecs_t delayMs = 0, nowMS = 0; - do { //wait ,until , the lowest time msg's whentime is low nowtime, to go on - if (m_v_msg.size() <= 0) { - LOGD("msg size is 0, break"); - break; - } - mLockQueue.lock();//get msg ,first lock. - msg = m_v_msg[0];//get first - mLockQueue.unlock(); + int sleeptime = 100;//ms + while (!exitPending()) { //requietexit() or requietexitWait() not call + mLockQueue.lock(); + while (m_v_msg.size() == 0) { //msg queue is empty + mGetMsgCondition.wait(mLockQueue);//first unlock,when return,lock again,so need,call unlock + } + mLockQueue.unlock(); + //get delay time + CMessage msg; + nsecs_t delayMs = 0, nowMS = 0; + do { //wait ,until , the lowest time msg's whentime is low nowtime, to go on + if (m_v_msg.size() <= 0) { + LOGD("msg size is 0, break"); + break; + } + mLockQueue.lock();//get msg ,first lock. + msg = m_v_msg[0];//get first + mLockQueue.unlock(); - delayMs = msg.mWhenMs - getNowMs(); - LOGD("threadLoop now = %lld mswhen = %lld delayMs = %lld msg type = %d", getNowMs(), msg.mWhenMs, delayMs, msg.mType); - if (delayMs > 0) { - mLockQueue.lock();//get msg ,first lock. - int ret = mGetMsgCondition.waitRelative(mLockQueue, delayMs); - mLockQueue.unlock(); - LOGD("msg queue wait ret = %d", ret); - } else { - break; - } - } while (true); //msg[0], timeout + delayMs = msg.mWhenMs - getNowMs(); + LOGD("threadLoop now = %lld mswhen = %lld delayMs = %lld msg type = %d", getNowMs(), msg.mWhenMs, delayMs, msg.mType); + if (delayMs > 0) { + mLockQueue.lock();//get msg ,first lock. + int ret = mGetMsgCondition.waitRelative(mLockQueue, delayMs); + mLockQueue.unlock(); + LOGD("msg queue wait ret = %d", ret); + } else { + break; + } + } while (true); //msg[0], timeout - if (m_v_msg.size() > 0) { - mLockQueue.lock();// - msg = m_v_msg[0]; - m_v_msg.removeAt(0); - mLockQueue.unlock();// - //handle it - handleMessage(msg); - } + if (m_v_msg.size() > 0) { + mLockQueue.lock();// + msg = m_v_msg[0]; + m_v_msg.removeAt(0); + mLockQueue.unlock();// + //handle it + handleMessage(msg); + } - //usleep(sleeptime * 1000); - } - //exit - //return true, run again, return false,not run. - return false; + //usleep(sleeptime * 1000); + } + //exit + //return true, run again, return false,not run. + return false; } diff --git a/tvapi/libtv/tvutils/CMsgQueue.h b/tvapi/libtv/tvutils/CMsgQueue.h index 1234c31..617145b 100644 --- a/tvapi/libtv/tvutils/CMsgQueue.h +++ b/tvapi/libtv/tvutils/CMsgQueue.h @@ -11,32 +11,32 @@ using namespace android; class CMessage { public: - CMessage(); - ~CMessage(); - nsecs_t mDelayMs;//delay times , MS - nsecs_t mWhenMs;//when, the msg will handle - int mType; - void *mpData; - unsigned char mpPara[3072]; + CMessage(); + ~CMessage(); + nsecs_t mDelayMs;//delay times , MS + nsecs_t mWhenMs;//when, the msg will handle + int mType; + void *mpData; + unsigned char mpPara[3072]; }; class CMsgQueueThread: public CThread { public: - CMsgQueueThread(); - virtual ~CMsgQueueThread(); - int startMsgQueue(); - void sendMsg(CMessage &msg); - void removeMsg(CMessage &msg); - void clearMsg(); + CMsgQueueThread(); + virtual ~CMsgQueueThread(); + int startMsgQueue(); + void sendMsg(CMessage &msg); + void removeMsg(CMessage &msg); + void clearMsg(); private: - bool threadLoop(); - nsecs_t getNowMs();//get system time , MS - virtual void handleMessage(CMessage &msg) = 0; + bool threadLoop(); + nsecs_t getNowMs();//get system time , MS + virtual void handleMessage(CMessage &msg) = 0; - // - Vector<CMessage> m_v_msg; - CCondition mGetMsgCondition; - CMutex mLockQueue; + // + Vector<CMessage> m_v_msg; + CCondition mGetMsgCondition; + CMutex mLockQueue; }; /*class CHandler diff --git a/tvapi/libtv/tvutils/CMutex.h b/tvapi/libtv/tvutils/CMutex.h index ec9d3e9..5c91c1a 100644 --- a/tvapi/libtv/tvutils/CMutex.h +++ b/tvapi/libtv/tvutils/CMutex.h @@ -20,51 +20,51 @@ class CCondition; */ class CMutex { public: - enum { - PRIVATE = 0, - SHARED = 1 - }; - - CMutex(); - CMutex(const char *name); - CMutex(int type, const char *name = NULL); - ~CMutex(); - - // lock or unlock the mutex - int lock(); - void unlock(); - - // lock if possible; returns 0 on success, error otherwise - int tryLock(); - - // Manages the mutex automatically. It'll be locked when Autolock is - // constructed and released when Autolock goes out of scope. - class Autolock { - public: - inline Autolock(CMutex &mutex) : mLock(mutex) - { - mLock.lock(); - } - inline Autolock(CMutex *mutex) : mLock(*mutex) - { - mLock.lock(); - } - inline ~Autolock() - { - mLock.unlock(); - } - private: - CMutex &mLock; - }; + enum { + PRIVATE = 0, + SHARED = 1 + }; + + CMutex(); + CMutex(const char *name); + CMutex(int type, const char *name = NULL); + ~CMutex(); + + // lock or unlock the mutex + int lock(); + void unlock(); + + // lock if possible; returns 0 on success, error otherwise + int tryLock(); + + // Manages the mutex automatically. It'll be locked when Autolock is + // constructed and released when Autolock goes out of scope. + class Autolock { + public: + inline Autolock(CMutex &mutex) : mLock(mutex) + { + mLock.lock(); + } + inline Autolock(CMutex *mutex) : mLock(*mutex) + { + mLock.lock(); + } + inline ~Autolock() + { + mLock.unlock(); + } + private: + CMutex &mLock; + }; private: - friend class CCondition; + friend class CCondition; - // A mutex cannot be copied - CMutex(const CMutex &); - CMutex &operator = (const CMutex &); + // A mutex cannot be copied + CMutex(const CMutex &); + CMutex &operator = (const CMutex &); - pthread_mutex_t mMutex; + pthread_mutex_t mMutex; }; @@ -73,39 +73,39 @@ private: inline CMutex::CMutex() { - pthread_mutex_init(&mMutex, NULL); + pthread_mutex_init(&mMutex, NULL); } inline CMutex::CMutex(const char *name) { - pthread_mutex_init(&mMutex, NULL); + pthread_mutex_init(&mMutex, NULL); } inline CMutex::CMutex(int type, const char *name) { - if (type == SHARED) { - pthread_mutexattr_t attr; - pthread_mutexattr_init(&attr); - pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED); - pthread_mutex_init(&mMutex, &attr); - pthread_mutexattr_destroy(&attr); - } else { - pthread_mutex_init(&mMutex, NULL); - } + if (type == SHARED) { + pthread_mutexattr_t attr; + pthread_mutexattr_init(&attr); + pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED); + pthread_mutex_init(&mMutex, &attr); + pthread_mutexattr_destroy(&attr); + } else { + pthread_mutex_init(&mMutex, NULL); + } } inline CMutex::~CMutex() { - pthread_mutex_destroy(&mMutex); + pthread_mutex_destroy(&mMutex); } inline int CMutex::lock() { - return -pthread_mutex_lock(&mMutex); + return -pthread_mutex_lock(&mMutex); } inline void CMutex::unlock() { - pthread_mutex_unlock(&mMutex); + pthread_mutex_unlock(&mMutex); } inline int CMutex::tryLock() { - return -pthread_mutex_trylock(&mMutex); + return -pthread_mutex_trylock(&mMutex); } diff --git a/tvapi/libtv/tvutils/CSerialCommunication.cpp b/tvapi/libtv/tvutils/CSerialCommunication.cpp index f510adf..b479aa7 100644 --- a/tvapi/libtv/tvutils/CSerialCommunication.cpp +++ b/tvapi/libtv/tvutils/CSerialCommunication.cpp @@ -17,110 +17,110 @@ CSerialCommunication::CSerialCommunication() { - int i = 0; + int i = 0; - mpObserver = NULL; - mState = STATE_STOPED; + mpObserver = NULL; + mState = STATE_STOPED; - mFileName[0] = 0; - for (i = 0; i < CC_MAX_SERIAL_RD_BUF_LEN; i++) { - mDataBuf[i] = 0; - } + mFileName[0] = 0; + for (i = 0; i < CC_MAX_SERIAL_RD_BUF_LEN; i++) { + mDataBuf[i] = 0; + } } CSerialCommunication::~CSerialCommunication() { - mSerialPort.CloseDevice(); + mSerialPort.CloseDevice(); } int CSerialCommunication::OpenModule(int serial_dev_id) { - int tmp_ret = 0; + int tmp_ret = 0; - if (mSerialPort.OpenDevice(serial_dev_id) < 0) { - return -1; - } + if (mSerialPort.OpenDevice(serial_dev_id) < 0) { + return -1; + } - return mSerialPort.setup_serial(); + return mSerialPort.setup_serial(); } int CSerialCommunication::CloseModule() { - stop(); - mSerialPort.CloseDevice(); - return 0; + stop(); + mSerialPort.CloseDevice(); + return 0; } int CSerialCommunication::start() { - if (mState == STATE_STOPED) { - this->run(); - } + if (mState == STATE_STOPED) { + this->run(); + } - return 0; + return 0; } int CSerialCommunication::stop() { - requestExit(); - mState = STATE_STOPED; + requestExit(); + mState = STATE_STOPED; - return 0; + return 0; } int CSerialCommunication::sendData(int data_len, unsigned char data_buf[]) { - mSerialPort.writeFile(data_buf, data_len); - return 0; + mSerialPort.writeFile(data_buf, data_len); + return 0; } bool CSerialCommunication::threadLoop() { - int rd_len = 0; - int thread_dly_tm = 100 * 1000; + int rd_len = 0; + int thread_dly_tm = 100 * 1000; - if (mpObserver == NULL) { - return false; - } + if (mpObserver == NULL) { + return false; + } - if (mSerialPort.getFd() < 0) { - return false; - } + if (mSerialPort.getFd() < 0) { + return false; + } - if (mSerialPort.getDevId() < 0) { - return false; - } + if (mSerialPort.getDevId() < 0) { + return false; + } - LOGD("%s, entering...\n", "TV"); + LOGD("%s, entering...\n", "TV"); - prctl(PR_SET_NAME, (unsigned long)"CSerialCommunication thread loop"); + prctl(PR_SET_NAME, (unsigned long)"CSerialCommunication thread loop"); - mState = STATE_RUNNING; + mState = STATE_RUNNING; - while (!exitPending()) { //requietexit() or requietexitWait() not call - memset(mDataBuf, 0, CC_MAX_SERIAL_RD_BUF_LEN); - rd_len = mSerialPort.readFile(mDataBuf, CC_MAX_SERIAL_RD_BUF_LEN); - if (rd_len <= 0) { - usleep(thread_dly_tm); - continue; - } + while (!exitPending()) { //requietexit() or requietexitWait() not call + memset(mDataBuf, 0, CC_MAX_SERIAL_RD_BUF_LEN); + rd_len = mSerialPort.readFile(mDataBuf, CC_MAX_SERIAL_RD_BUF_LEN); + if (rd_len <= 0) { + usleep(thread_dly_tm); + continue; + } - LOGD("%s, rd_len = %d.\n", __FUNCTION__, rd_len); + LOGD("%s, rd_len = %d.\n", __FUNCTION__, rd_len); - if (rd_len > CC_MAX_SERIAL_RD_BUF_LEN) { - rd_len = CC_MAX_SERIAL_RD_BUF_LEN; - } + if (rd_len > CC_MAX_SERIAL_RD_BUF_LEN) { + rd_len = CC_MAX_SERIAL_RD_BUF_LEN; + } - LOGD("%s, send data to java.", __FUNCTION__); - //send data to java - mpObserver->onSerialCommunication(mSerialPort.getDevId(), rd_len, mDataBuf); + LOGD("%s, send data to java.", __FUNCTION__); + //send data to java + mpObserver->onSerialCommunication(mSerialPort.getDevId(), rd_len, mDataBuf); - usleep(thread_dly_tm); - } + usleep(thread_dly_tm); + } - mState = STATE_STOPED; + mState = STATE_STOPED; - LOGD("%s, exiting...\n", "TV"); - //return true, run again, return false,not run. - return false; + LOGD("%s, exiting...\n", "TV"); + //return true, run again, return false,not run. + return false; } diff --git a/tvapi/libtv/tvutils/CSerialCommunication.h b/tvapi/libtv/tvutils/CSerialCommunication.h index d6d6722..bd963d3 100644 --- a/tvapi/libtv/tvutils/CSerialCommunication.h +++ b/tvapi/libtv/tvutils/CSerialCommunication.h @@ -8,41 +8,41 @@ class CSerialCommunication: public CThread { public: - CSerialCommunication(); - ~CSerialCommunication(); - - int start(); - int stop(); - int OpenModule(int serial_dev_id); - int CloseModule(); - int sendData(int data_len, unsigned char data_buf[]); - - class ISerialCommunicationObserver { - public: - ISerialCommunicationObserver() {}; - virtual ~ISerialCommunicationObserver() {}; - virtual void onSerialCommunication(int dev_id, int rd_len, unsigned char data_buf[]) {}; - }; - - void setObserver(ISerialCommunicationObserver *pOb) - { - mpObserver = pOb; - }; + CSerialCommunication(); + ~CSerialCommunication(); + + int start(); + int stop(); + int OpenModule(int serial_dev_id); + int CloseModule(); + int sendData(int data_len, unsigned char data_buf[]); + + class ISerialCommunicationObserver { + public: + ISerialCommunicationObserver() {}; + virtual ~ISerialCommunicationObserver() {}; + virtual void onSerialCommunication(int dev_id, int rd_len, unsigned char data_buf[]) {}; + }; + + void setObserver(ISerialCommunicationObserver *pOb) + { + mpObserver = pOb; + }; private: - bool threadLoop(); + bool threadLoop(); - int mState; - ISerialCommunicationObserver *mpObserver; - CSerialPort mSerialPort; + int mState; + ISerialCommunicationObserver *mpObserver; + CSerialPort mSerialPort; - char mFileName[CC_MAX_FILE_PATH_LEN]; - unsigned char mDataBuf[CC_MAX_SERIAL_RD_BUF_LEN]; + char mFileName[CC_MAX_FILE_PATH_LEN]; + unsigned char mDataBuf[CC_MAX_SERIAL_RD_BUF_LEN]; - enum SerialCommunicationState { - STATE_STOPED = 0, - STATE_RUNNING, - }; + enum SerialCommunicationState { + STATE_STOPED = 0, + STATE_RUNNING, + }; }; #endif //__TV_SERIAL_COMMUNICATION_H__ diff --git a/tvapi/libtv/tvutils/CSerialPort.cpp b/tvapi/libtv/tvutils/CSerialPort.cpp index f8e9a57..f634b04 100644 --- a/tvapi/libtv/tvutils/CSerialPort.cpp +++ b/tvapi/libtv/tvutils/CSerialPort.cpp @@ -15,7 +15,7 @@ CSerialPort::CSerialPort() { - mDevId = -1; + mDevId = -1; } //close it CSerialPort::~CSerialPort() @@ -24,334 +24,334 @@ CSerialPort::~CSerialPort() int CSerialPort::OpenDevice(int serial_dev_id) { - int tmp_ret = 0; - const char *dev_file_name = NULL; - - if (getFd() < 0) { - if (serial_dev_id == SERIAL_A) { - dev_file_name = DEV_PATH_S0; - } else if (serial_dev_id == SERIAL_B) { - dev_file_name = DEV_PATH_S1; - } else if (serial_dev_id == SERIAL_C) { - dev_file_name = DEV_PATH_S2; - } - - if (dev_file_name != NULL) { - mDevId = serial_dev_id; - tmp_ret = openFile(dev_file_name); - } - } - - return tmp_ret; + int tmp_ret = 0; + const char *dev_file_name = NULL; + + if (getFd() < 0) { + if (serial_dev_id == SERIAL_A) { + dev_file_name = DEV_PATH_S0; + } else if (serial_dev_id == SERIAL_B) { + dev_file_name = DEV_PATH_S1; + } else if (serial_dev_id == SERIAL_C) { + dev_file_name = DEV_PATH_S2; + } + + if (dev_file_name != NULL) { + mDevId = serial_dev_id; + tmp_ret = openFile(dev_file_name); + } + } + + return tmp_ret; } int CSerialPort::CloseDevice() { - mDevId = -1; - closeFile(); + mDevId = -1; + closeFile(); - return 0; + return 0; } void CSerialPort::set_speed (int fd, int speed) { - int i; - int status; - struct termios Opt; - tcgetattr (fd, &Opt); - for (i = 0; i < sizeof (speed_arr) / sizeof (int); i++) { - if (speed == name_arr[i]) { - tcflush (fd, TCIOFLUSH); - cfsetispeed (&Opt, speed_arr[i]); - cfsetospeed (&Opt, speed_arr[i]); - status = tcsetattr (fd, TCSANOW, &Opt); - if (status != 0) { - perror ("tcsetattr fd1"); - return; - } - tcflush (fd, TCIOFLUSH); - } - } + int i; + int status; + struct termios Opt; + tcgetattr (fd, &Opt); + for (i = 0; i < sizeof (speed_arr) / sizeof (int); i++) { + if (speed == name_arr[i]) { + tcflush (fd, TCIOFLUSH); + cfsetispeed (&Opt, speed_arr[i]); + cfsetospeed (&Opt, speed_arr[i]); + status = tcsetattr (fd, TCSANOW, &Opt); + if (status != 0) { + perror ("tcsetattr fd1"); + return; + } + tcflush (fd, TCIOFLUSH); + } + } } int CSerialPort::set_Parity (int fd, int databits, int stopbits, int parity) { - struct termios options; - if (tcgetattr (fd, &options) != 0) { - perror ("SetupSerial 1"); - return (0); - } - options.c_cflag &= ~CSIZE; - switch (databits) { - case 7: - options.c_cflag |= CS7; - break; - case 8: - options.c_cflag |= CS8; - break; - default: - fprintf (stderr, "Unsupported data size\n"); - return (0); - } - switch (parity) { - case 'n': - case 'N': - options.c_cflag &= ~PARENB; /* Clear parity enable */ - options.c_iflag &= ~INPCK; /* Enable parity checking */ - break; - case 'o': - case 'O': - options.c_cflag |= (PARODD | PARENB); - options.c_iflag |= INPCK; /* Disnable parity checking */ - break; - case 'e': - case 'E': - options.c_cflag |= PARENB; /* Enable parity */ - options.c_cflag &= ~PARODD; - options.c_iflag |= INPCK; /* Disnable parity checking */ - break; - case 'S': - case 's': /*as no parity */ - options.c_cflag &= ~PARENB; - options.c_cflag &= ~CSTOPB; - break; - default: - fprintf (stderr, "Unsupported parity\n"); - return (0); - } - - switch (stopbits) { - case 1: - options.c_cflag &= ~CSTOPB; - break; - case 2: - options.c_cflag |= CSTOPB; - break; - default: - fprintf (stderr, "Unsupported stop bits\n"); - return (0); - } - /* Set input parity option */ - if (parity != 'n') - options.c_iflag |= INPCK; - tcflush (fd, TCIFLUSH); - options.c_cc[VTIME] = 150; - options.c_cc[VMIN] = 0; /* Update the options and do it NOW */ - //qd to set raw mode, which is copied from web - options.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP - | INLCR | IGNCR | ICRNL | IXON); - options.c_oflag &= ~OPOST; - options.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN); - options.c_cflag &= ~(CSIZE | PARENB); - options.c_cflag |= CS8; - - if (tcsetattr (fd, TCSANOW, &options) != 0) { - perror ("SetupSerial 3"); - return (0); - } - return (1); + struct termios options; + if (tcgetattr (fd, &options) != 0) { + perror ("SetupSerial 1"); + return (0); + } + options.c_cflag &= ~CSIZE; + switch (databits) { + case 7: + options.c_cflag |= CS7; + break; + case 8: + options.c_cflag |= CS8; + break; + default: + fprintf (stderr, "Unsupported data size\n"); + return (0); + } + switch (parity) { + case 'n': + case 'N': + options.c_cflag &= ~PARENB; /* Clear parity enable */ + options.c_iflag &= ~INPCK; /* Enable parity checking */ + break; + case 'o': + case 'O': + options.c_cflag |= (PARODD | PARENB); + options.c_iflag |= INPCK; /* Disnable parity checking */ + break; + case 'e': + case 'E': + options.c_cflag |= PARENB; /* Enable parity */ + options.c_cflag &= ~PARODD; + options.c_iflag |= INPCK; /* Disnable parity checking */ + break; + case 'S': + case 's': /*as no parity */ + options.c_cflag &= ~PARENB; + options.c_cflag &= ~CSTOPB; + break; + default: + fprintf (stderr, "Unsupported parity\n"); + return (0); + } + + switch (stopbits) { + case 1: + options.c_cflag &= ~CSTOPB; + break; + case 2: + options.c_cflag |= CSTOPB; + break; + default: + fprintf (stderr, "Unsupported stop bits\n"); + return (0); + } + /* Set input parity option */ + if (parity != 'n') + options.c_iflag |= INPCK; + tcflush (fd, TCIFLUSH); + options.c_cc[VTIME] = 150; + options.c_cc[VMIN] = 0; /* Update the options and do it NOW */ + //qd to set raw mode, which is copied from web + options.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP + | INLCR | IGNCR | ICRNL | IXON); + options.c_oflag &= ~OPOST; + options.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN); + options.c_cflag &= ~(CSIZE | PARENB); + options.c_cflag |= CS8; + + if (tcsetattr (fd, TCSANOW, &options) != 0) { + perror ("SetupSerial 3"); + return (0); + } + return (1); } int CSerialPort::setup_serial() { - set_speed(mFd, 115200); - set_Parity(mFd, 8, 1, 'N'); - return 0; + set_speed(mFd, 115200); + set_Parity(mFd, 8, 1, 'N'); + return 0; } int CSerialPort::set_opt(int speed, int db, int sb, char pb, int overtime, bool raw_mode) { - int i = 0; - struct termios old_cfg, new_cfg; - if (mFd <= 0) { - LOGE("not open dev, when set opt"); - return -1; - } - //first get it - if (tcgetattr(mFd, &old_cfg) != 0) { - LOGE("get serial attr error mFd = %d(%s)!\n", mFd, strerror(errno)); - return -1; - } - - //set speed - for (i = 0; i < sizeof(speed_arr) / sizeof(int); i++) { - if (speed == name_arr[i]) { - cfsetispeed(&new_cfg, speed_arr[i]); - cfsetospeed(&new_cfg, speed_arr[i]); - break; - } - } - - setdatabits(&new_cfg, db); - setstopbits(&new_cfg, sb); - setparity(&new_cfg, pb); - - - if (overtime >= 0) { - new_cfg.c_cc[VTIME] = overtime / 100; /* 设置超时 seconds*/ - new_cfg.c_cc[VMIN] = 0; /* Update the options and do it NOW */ - } - - if (raw_mode) { - cfmakeraw(&new_cfg); - } - - //clear - tcflush(mFd, TCIOFLUSH); - if (tcsetattr(mFd, TCSANOW, &new_cfg) < 0) { - LOGE("%s, set serial attr error(%s)!\n", "TV", strerror(errno)); - return -1; - } - //clear,let be avail - tcflush(mFd, TCIOFLUSH); - - return 0; + int i = 0; + struct termios old_cfg, new_cfg; + if (mFd <= 0) { + LOGE("not open dev, when set opt"); + return -1; + } + //first get it + if (tcgetattr(mFd, &old_cfg) != 0) { + LOGE("get serial attr error mFd = %d(%s)!\n", mFd, strerror(errno)); + return -1; + } + + //set speed + for (i = 0; i < sizeof(speed_arr) / sizeof(int); i++) { + if (speed == name_arr[i]) { + cfsetispeed(&new_cfg, speed_arr[i]); + cfsetospeed(&new_cfg, speed_arr[i]); + break; + } + } + + setdatabits(&new_cfg, db); + setstopbits(&new_cfg, sb); + setparity(&new_cfg, pb); + + + if (overtime >= 0) { + new_cfg.c_cc[VTIME] = overtime / 100; /* 设置超时 seconds*/ + new_cfg.c_cc[VMIN] = 0; /* Update the options and do it NOW */ + } + + if (raw_mode) { + cfmakeraw(&new_cfg); + } + + //clear + tcflush(mFd, TCIOFLUSH); + if (tcsetattr(mFd, TCSANOW, &new_cfg) < 0) { + LOGE("%s, set serial attr error(%s)!\n", "TV", strerror(errno)); + return -1; + } + //clear,let be avail + tcflush(mFd, TCIOFLUSH); + + return 0; } int CSerialPort::writeFile(const unsigned char *pData, unsigned int uLen) { - unsigned int len; - len = write(mFd, pData, uLen); - if (len == uLen) { - return len; - } else { - tcflush(mFd, TCOFLUSH); - LOGE("write data failed and tcflush hComm\n"); - return -1; - } + unsigned int len; + len = write(mFd, pData, uLen); + if (len == uLen) { + return len; + } else { + tcflush(mFd, TCOFLUSH); + LOGE("write data failed and tcflush hComm\n"); + return -1; + } } static int com_read_data(int hComm, unsigned char *pData, unsigned int uLen) { - char inbuff[uLen]; - char buff[uLen]; - char tempbuff[uLen]; - int i = 0, j = 0; - - memset(inbuff, '\0', uLen); - memset(buff, '\0', uLen); - memset(tempbuff, '\0', uLen); - - if (hComm < 0) { - return -1; - } - - char *p = inbuff; - - fd_set readset; - struct timeval tv; - int MaxFd = 0; - - unsigned int c = 0; - int z, k; - - do { - FD_ZERO(&readset); - FD_SET(hComm, &readset); - MaxFd = hComm + 1; - tv.tv_sec = 0; - tv.tv_usec = 100000; - do { - z = select(MaxFd, &readset, 0, 0, &tv); - } while (z == -1 && errno == EINTR); - - if (z == -1) { - hComm = -1; - break; - } - - if (z == 0) { - hComm = -1; - break; - } - - if (FD_ISSET(hComm, &readset)) { - z = read(hComm, buff, uLen - c); + char inbuff[uLen]; + char buff[uLen]; + char tempbuff[uLen]; + int i = 0, j = 0; + + memset(inbuff, '\0', uLen); + memset(buff, '\0', uLen); + memset(tempbuff, '\0', uLen); + + if (hComm < 0) { + return -1; + } + + char *p = inbuff; + + fd_set readset; + struct timeval tv; + int MaxFd = 0; + + unsigned int c = 0; + int z, k; + + do { + FD_ZERO(&readset); + FD_SET(hComm, &readset); + MaxFd = hComm + 1; + tv.tv_sec = 0; + tv.tv_usec = 100000; + do { + z = select(MaxFd, &readset, 0, 0, &tv); + } while (z == -1 && errno == EINTR); + + if (z == -1) { + hComm = -1; + break; + } + + if (z == 0) { + hComm = -1; + break; + } + + if (FD_ISSET(hComm, &readset)) { + z = read(hComm, buff, uLen - c); #if 0 - for (k = 0; k < z; k++) { - LOGD("%s, inbuff[%d]:%02X", "TV", k, buff[k]); - } + for (k = 0; k < z; k++) { + LOGD("%s, inbuff[%d]:%02X", "TV", k, buff[k]); + } #endif - c += z; - - if (z > 0) { - if (z < (signed int) uLen) { - buff[z + 1] = '\0'; - memcpy(p, buff, z); - p += z; - } else { - memcpy(inbuff, buff, z); - } - - memset(buff, '\0', uLen); - } else { - hComm = -1; - } - - if (c >= uLen) { - hComm = -1; - break; - } - } - } while (hComm >= 0); - - memcpy(pData, inbuff, c); - p = NULL; - return c; + c += z; + + if (z > 0) { + if (z < (signed int) uLen) { + buff[z + 1] = '\0'; + memcpy(p, buff, z); + p += z; + } else { + memcpy(inbuff, buff, z); + } + + memset(buff, '\0', uLen); + } else { + hComm = -1; + } + + if (c >= uLen) { + hComm = -1; + break; + } + } + } while (hComm >= 0); + + memcpy(pData, inbuff, c); + p = NULL; + return c; } int CSerialPort::readFile(unsigned char *pBuf, unsigned int uLen) { - //using non-block mode - return com_read_data(mFd, pBuf, uLen); + //using non-block mode + return com_read_data(mFd, pBuf, uLen); } int CSerialPort::setdatabits(struct termios *s, int db) { - if (db == 5) { - s->c_cflag = (s->c_cflag & ~CSIZE) | (CS5 & CSIZE); - } else if (db == 6) { - s->c_cflag = (s->c_cflag & ~CSIZE) | (CS6 & CSIZE); - } else if (db == 7) { - s->c_cflag = (s->c_cflag & ~CSIZE) | (CS7 & CSIZE); - } else if (db == 8) { - s->c_cflag = (s->c_cflag & ~CSIZE) | (CS8 & CSIZE); - } else { - LOGE("Unsupported data size!\n"); - } - return 0; + if (db == 5) { + s->c_cflag = (s->c_cflag & ~CSIZE) | (CS5 & CSIZE); + } else if (db == 6) { + s->c_cflag = (s->c_cflag & ~CSIZE) | (CS6 & CSIZE); + } else if (db == 7) { + s->c_cflag = (s->c_cflag & ~CSIZE) | (CS7 & CSIZE); + } else if (db == 8) { + s->c_cflag = (s->c_cflag & ~CSIZE) | (CS8 & CSIZE); + } else { + LOGE("Unsupported data size!\n"); + } + return 0; } int CSerialPort::setstopbits(struct termios *s, int sb) { - if (sb == 1) { - s->c_cflag &= ~CSTOPB; - } else if (sb == 2) { - s->c_cflag |= CSTOPB; - } else { - LOGE("Unsupported stop bits!\n"); - } - return 0; + if (sb == 1) { + s->c_cflag &= ~CSTOPB; + } else if (sb == 2) { + s->c_cflag |= CSTOPB; + } else { + LOGE("Unsupported stop bits!\n"); + } + return 0; } int CSerialPort::setparity(struct termios *s, char pb) { - if (pb == 'n' || pb == 'N') { - s->c_cflag &= ~PARENB; /* Clear parity enable */ - s->c_cflag &= ~INPCK; /* Enable parity checking */ - } else if (pb == 'o' || pb == 'O') { - s->c_cflag |= (PARODD | PARENB); - s->c_cflag |= INPCK; /* Disable parity checking */ - } else if (pb == 'e' || pb == 'E') { - s->c_cflag |= PARENB; /* Enable parity */ - s->c_cflag &= ~PARODD; - s->c_iflag |= INPCK; /* Disable parity checking */ - } else if (pb == 's' || pb == 'S') { - s->c_cflag &= ~PARENB; - s->c_cflag &= ~CSTOPB; - s->c_cflag |= INPCK; /* Disable parity checking */ - } else { - LOGE("Unsupported parity!\n"); - } - return 0; + if (pb == 'n' || pb == 'N') { + s->c_cflag &= ~PARENB; /* Clear parity enable */ + s->c_cflag &= ~INPCK; /* Enable parity checking */ + } else if (pb == 'o' || pb == 'O') { + s->c_cflag |= (PARODD | PARENB); + s->c_cflag |= INPCK; /* Disable parity checking */ + } else if (pb == 'e' || pb == 'E') { + s->c_cflag |= PARENB; /* Enable parity */ + s->c_cflag &= ~PARODD; + s->c_iflag |= INPCK; /* Disable parity checking */ + } else if (pb == 's' || pb == 'S') { + s->c_cflag &= ~PARENB; + s->c_cflag &= ~CSTOPB; + s->c_cflag |= INPCK; /* Disable parity checking */ + } else { + LOGE("Unsupported parity!\n"); + } + return 0; } diff --git a/tvapi/libtv/tvutils/CSerialPort.h b/tvapi/libtv/tvutils/CSerialPort.h index b3c6c3b..af52a3c 100644 --- a/tvapi/libtv/tvutils/CSerialPort.h +++ b/tvapi/libtv/tvutils/CSerialPort.h @@ -20,35 +20,35 @@ static const char *DEV_PATH_S1 = "/dev/ttyS1"; static const char *DEV_PATH_S2 = "/dev/ttyS2"; enum SerialDeviceID { - SERIAL_A = 0, - SERIAL_B, - SERIAL_C, + SERIAL_A = 0, + SERIAL_B, + SERIAL_C, }; class CSerialPort: public CFile { public: - CSerialPort(); - ~CSerialPort(); + CSerialPort(); + ~CSerialPort(); - int OpenDevice(int serial_dev_id); - int CloseDevice(); + int OpenDevice(int serial_dev_id); + int CloseDevice(); - int writeFile(const unsigned char *pData, unsigned int uLen); - int readFile(unsigned char *pBuf, unsigned int uLen); - int set_opt(int speed, int db, int sb, char pb, int overtime, bool raw_mode); - int setup_serial(); - int getDevId() - { - return mDevId; - }; + int writeFile(const unsigned char *pData, unsigned int uLen); + int readFile(unsigned char *pBuf, unsigned int uLen); + int set_opt(int speed, int db, int sb, char pb, int overtime, bool raw_mode); + int setup_serial(); + int getDevId() + { + return mDevId; + }; private: - int setdatabits(struct termios *s, int db); - int setstopbits(struct termios *s, int sb); - int setparity(struct termios *s, char pb); - int set_Parity (int fd, int databits, int stopbits, int parity); - void set_speed (int fd, int speed); + int setdatabits(struct termios *s, int db); + int setstopbits(struct termios *s, int sb); + int setparity(struct termios *s, char pb); + int set_Parity (int fd, int databits, int stopbits, int parity); + void set_speed (int fd, int speed); - int mDevId; + int mDevId; }; #endif diff --git a/tvapi/libtv/tvutils/CSqlite.cpp b/tvapi/libtv/tvutils/CSqlite.cpp index 87a0015..f4e91fb 100644 --- a/tvapi/libtv/tvutils/CSqlite.cpp +++ b/tvapi/libtv/tvutils/CSqlite.cpp @@ -18,88 +18,88 @@ using namespace android; CSqlite::CSqlite() { - mHandle = NULL; + mHandle = NULL; } CSqlite::~CSqlite() { - if (mHandle > 0) { - sqlite3_close(mHandle); - mHandle = NULL; - } + if (mHandle > 0) { + sqlite3_close(mHandle); + mHandle = NULL; + } } //完整性检测,检测数æ®åº“是å¦è¢«ç ´å bool CSqlite::integrityCheck() { - char *err; - int rval = sqlite3_exec(mHandle, "PRAGMA integrity_check;", sqlite3_exec_callback, NULL, &err); - if (rval != SQLITE_OK) { - LOGD(" val = %d msg = %s!\n", rval, sqlite3_errmsg(mHandle)); - return false; - } else { - return true; - } - return true; + char *err; + int rval = sqlite3_exec(mHandle, "PRAGMA integrity_check;", sqlite3_exec_callback, NULL, &err); + if (rval != SQLITE_OK) { + LOGD(" val = %d msg = %s!\n", rval, sqlite3_errmsg(mHandle)); + return false; + } else { + return true; + } + return true; } int CSqlite::sqlite3_exec_callback(void *data, int nColumn, char **colValues, char **colNames) { - LOGD("sqlite3_exec_callback--- nums = %d", nColumn); - for (int i = 0; i < nColumn; i++) { - LOGD("%s\t", colValues[i]); - } - LOGD("\n"); + LOGD("sqlite3_exec_callback--- nums = %d", nColumn); + for (int i = 0; i < nColumn; i++) { + LOGD("%s\t", colValues[i]); + } + LOGD("\n"); - return 0; + return 0; } int CSqlite::openDb(const char *path) { - if (sqlite3_open(path, &mHandle) != SQLITE_OK) { - LOGD("open db(%s) error", path); - mHandle = NULL; - return -1; - } - return 0; + if (sqlite3_open(path, &mHandle) != SQLITE_OK) { + LOGD("open db(%s) error", path); + mHandle = NULL; + return -1; + } + return 0; } int CSqlite::closeDb() { - int rval = 0; - if (mHandle != NULL) { - rval = sqlite3_close(mHandle); - mHandle = NULL; - } - return rval; + int rval = 0; + if (mHandle != NULL) { + rval = sqlite3_close(mHandle); + mHandle = NULL; + } + return rval; } void CSqlite::setHandle(sqlite3 *h) { - mHandle = h; + mHandle = h; } sqlite3 *CSqlite::getHandle() { - return mHandle; + return mHandle; } int CSqlite::select(const char *sql, CSqlite::Cursor &c) { - int col, row; - char **pResult = NULL; - char *errmsg; - assert(mHandle && sql); + int col, row; + char **pResult = NULL; + char *errmsg; + assert(mHandle && sql); - if (strncmp(sql, "select", 6)) - return -1; - //LOGD("sql=%s", sql); - if (sqlite3_get_table(mHandle, sql, &pResult, &row, &col, &errmsg) != SQLITE_OK) { - LOGD("errmsg=%s", errmsg); - if (pResult != NULL) - sqlite3_free_table(pResult); - return -1; - } + if (strncmp(sql, "select", 6)) + return -1; + //LOGD("sql=%s", sql); + if (sqlite3_get_table(mHandle, sql, &pResult, &row, &col, &errmsg) != SQLITE_OK) { + LOGD("errmsg=%s", errmsg); + if (pResult != NULL) + sqlite3_free_table(pResult); + return -1; + } - //LOGD("row=%d, col=%d", row, col); - c.Init(pResult, row, col); - return 0; + //LOGD("row=%d, col=%d", row, col); + c.Init(pResult, row, col); + return 0; } void CSqlite::insert() @@ -109,31 +109,31 @@ void CSqlite::insert() bool CSqlite::exeSql(const char *sql) { - char *errmsg; - if (sql == NULL) return false; - if (sqlite3_exec(mHandle, sql, NULL, NULL, &errmsg) != SQLITE_OK) { - LOGD("exeSql=: %s error=%s", sql, errmsg ? errmsg : "Unknown"); - if (errmsg) - sqlite3_free(errmsg); - return false; - } - LOGD("sql=%s", sql); - return true; + char *errmsg; + if (sql == NULL) return false; + if (sqlite3_exec(mHandle, sql, NULL, NULL, &errmsg) != SQLITE_OK) { + LOGD("exeSql=: %s error=%s", sql, errmsg ? errmsg : "Unknown"); + if (errmsg) + sqlite3_free(errmsg); + return false; + } + LOGD("sql=%s", sql); + return true; } bool CSqlite::beginTransaction() { - return exeSql("begin;"); + return exeSql("begin;"); } bool CSqlite::commitTransaction() { - return exeSql("commit;"); + return exeSql("commit;"); } bool CSqlite::rollbackTransaction() { - return exeSql("rollback;"); + return exeSql("rollback;"); } void CSqlite::del() diff --git a/tvapi/libtv/tvutils/CSqlite.h b/tvapi/libtv/tvutils/CSqlite.h index 1ecbc47..049f250 100644 --- a/tvapi/libtv/tvutils/CSqlite.h +++ b/tvapi/libtv/tvutils/CSqlite.h @@ -20,165 +20,165 @@ using namespace android; class CSqlite { public: - class Cursor { - public: - void Init(char **data, int cow, int col) - { - mData = data; - mCurRowIndex = 0; - mRowNums = cow; - mColNums = col; - mIsClosed = false; - } - Cursor() - { - mData = NULL; - mCurRowIndex = 0; - mRowNums = 0; - mColNums = 0; - mIsClosed = false; - } + class Cursor { + public: + void Init(char **data, int cow, int col) + { + mData = data; + mCurRowIndex = 0; + mRowNums = cow; + mColNums = col; + mIsClosed = false; + } + Cursor() + { + mData = NULL; + mCurRowIndex = 0; + mRowNums = 0; + mColNums = 0; + mIsClosed = false; + } - /*Cursor(Cursor& c) - { - data = c.data; - mCurRowIndex = 0; - mRowNums = c.mRowNums; - mColNums = c.mColNums; - mIsClosed = false; - } + /*Cursor(Cursor& c) + { + data = c.data; + mCurRowIndex = 0; + mRowNums = c.mRowNums; + mColNums = c.mColNums; + mIsClosed = false; + } - Cursor& operator = (const Cursor& c) - { - data = c.data; - mCurRowIndex = 0; - mRowNums = c.mRowNums; - mColNums = c.mColNums; - mIsClosed = false; - return *this; - }*/ - ~Cursor() - { - close(); - } - //Row nums - int getCount() - { - return mRowNums; - } + Cursor& operator = (const Cursor& c) + { + data = c.data; + mCurRowIndex = 0; + mRowNums = c.mRowNums; + mColNums = c.mColNums; + mIsClosed = false; + return *this; + }*/ + ~Cursor() + { + close(); + } + //Row nums + int getCount() + { + return mRowNums; + } - int getPosition(); + int getPosition(); - bool move(int offset); + bool move(int offset); - bool moveToPosition(int position); + bool moveToPosition(int position); - bool moveToFirst() - { - //LOGD("moveToFirst mRowNums = %d", mRowNums); - if (mRowNums <= 0) return false; - mCurRowIndex = 0; - return true; - } + bool moveToFirst() + { + //LOGD("moveToFirst mRowNums = %d", mRowNums); + if (mRowNums <= 0) return false; + mCurRowIndex = 0; + return true; + } - bool moveToLast(); + bool moveToLast(); - bool moveToNext() - { - if (mCurRowIndex >= mRowNums - 1)return false; - mCurRowIndex++; - return true; - } + bool moveToNext() + { + if (mCurRowIndex >= mRowNums - 1)return false; + mCurRowIndex++; + return true; + } - bool moveToPrevious(); + bool moveToPrevious(); - int getColumnIndex(const char *columnName) - { - int index = 0; - for (int i = 0; i < mColNums; i++) { - if (strcmp(columnName, mData[i]) == 0) - return index; - index++; - } + int getColumnIndex(const char *columnName) + { + int index = 0; + for (int i = 0; i < mColNums; i++) { + if (strcmp(columnName, mData[i]) == 0) + return index; + index++; + } - return -1; - } + return -1; + } - //String getColumnName(int columnIndex); - //String[] getColumnNames(); - int getColumnCount(); - //å—符串长度问题,弃用 - int getString(char *str, int columnIndex) - { - if (columnIndex >= mColNums || str == NULL) return -1; - strcpy(str, mData[mColNums * (mCurRowIndex + 1) + columnIndex]); - return 0; - } - //ä¸é™é•¿åº¦,ä¾èµ–于String8 - String8 getString(int columnIndex) - { - if (columnIndex >= mColNums) return String8(""); - return String8(mData[mColNums * (mCurRowIndex + 1) + columnIndex]); - } + //String getColumnName(int columnIndex); + //String[] getColumnNames(); + int getColumnCount(); + //å—符串长度问题,弃用 + int getString(char *str, int columnIndex) + { + if (columnIndex >= mColNums || str == NULL) return -1; + strcpy(str, mData[mColNums * (mCurRowIndex + 1) + columnIndex]); + return 0; + } + //ä¸é™é•¿åº¦,ä¾èµ–于String8 + String8 getString(int columnIndex) + { + if (columnIndex >= mColNums) return String8(""); + return String8(mData[mColNums * (mCurRowIndex + 1) + columnIndex]); + } - int getInt(int columnIndex) - { - //if(columnIndex >= mColNums || str == NULL) return -1; - return atoi(mData[mColNums * (mCurRowIndex + 1) + columnIndex]); - } - unsigned long int getUInt(int columnIndex) - { - return strtoul(mData[mColNums * (mCurRowIndex + 1) + columnIndex], NULL, 10); - } - double getF(int columnIndex) - { - return atof(mData[mColNums * (mCurRowIndex + 1) + columnIndex]); - } - int getType(int columnIndex); - void close() - { - if (mData != NULL) - sqlite3_free_table(mData); + int getInt(int columnIndex) + { + //if(columnIndex >= mColNums || str == NULL) return -1; + return atoi(mData[mColNums * (mCurRowIndex + 1) + columnIndex]); + } + unsigned long int getUInt(int columnIndex) + { + return strtoul(mData[mColNums * (mCurRowIndex + 1) + columnIndex], NULL, 10); + } + double getF(int columnIndex) + { + return atof(mData[mColNums * (mCurRowIndex + 1) + columnIndex]); + } + int getType(int columnIndex); + void close() + { + if (mData != NULL) + sqlite3_free_table(mData); - mData = NULL; - mCurRowIndex = 0; - mRowNums = 0; - mIsClosed = true; - } - bool isClosed() - { - return mIsClosed; - } - private: - char **mData; - int mCurRowIndex; - int mRowNums; - int mColNums; - bool mIsClosed; - }; + mData = NULL; + mCurRowIndex = 0; + mRowNums = 0; + mIsClosed = true; + } + bool isClosed() + { + return mIsClosed; + } + private: + char **mData; + int mCurRowIndex; + int mRowNums; + int mColNums; + bool mIsClosed; + }; public: - CSqlite(); - virtual ~CSqlite(); - int openDb(const char *path); - int closeDb(); - void setHandle(sqlite3 *h); - sqlite3 *getHandle(); - bool integrityCheck(); - int select(const char *sql, Cursor &); - bool exeSql(const char *sql); - void insert(); - void del(); - void update(); - void xxtable(); - bool beginTransaction(); - bool commitTransaction(); - bool rollbackTransaction(); - void dbsync() - { - sync(); - }; + CSqlite(); + virtual ~CSqlite(); + int openDb(const char *path); + int closeDb(); + void setHandle(sqlite3 *h); + sqlite3 *getHandle(); + bool integrityCheck(); + int select(const char *sql, Cursor &); + bool exeSql(const char *sql); + void insert(); + void del(); + void update(); + void xxtable(); + bool beginTransaction(); + bool commitTransaction(); + bool rollbackTransaction(); + void dbsync() + { + sync(); + }; private: - static int sqlite3_exec_callback(void *data, int nColumn, char **colValues, char **colNames); - sqlite3 *mHandle; + static int sqlite3_exec_callback(void *data, int nColumn, char **colValues, char **colNames); + sqlite3 *mHandle; }; #endif //CSQLITE diff --git a/tvapi/libtv/tvutils/CThread.cpp b/tvapi/libtv/tvutils/CThread.cpp index 79326c8..16ebc30 100644 --- a/tvapi/libtv/tvutils/CThread.cpp +++ b/tvapi/libtv/tvutils/CThread.cpp @@ -19,9 +19,9 @@ reference android api, just linux pthread #include <sys/prctl.h> CThread::CThread() - : mThreadId(-1), - mLock("Thread::mLock"), - mExitPending(false), mRunning(false) + : mThreadId(-1), + mLock("Thread::mLock"), + mExitPending(false), mRunning(false) { } @@ -31,135 +31,135 @@ CThread::~CThread() int CThread::readyToRun() { - return 0; + return 0; } int CThread::run(const char *name, int priority, int stack) { - CMutex::Autolock _l(mLock); - - if (mRunning) { - // thread already started - return -1; - } - - mStatus = 0; - mExitPending = false; - mThreadId = -1; - mRunning = true; - - - pthread_attr_t attr; - pthread_attr_init(&attr); - pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); - - if (stack) { - pthread_attr_setstacksize(&attr, stack); - } - - int result = pthread_create(&mThreadId, &attr, - _threadLoop, this); - pthread_attr_destroy(&attr); - if (result != 0) { - LOGE("Thread create fail ret = %d (errno=%d)\n", - result, errno); - - mStatus = -1; // something happened! - mRunning = false; - mThreadId = -1; - return -1; - } - return 0; + CMutex::Autolock _l(mLock); + + if (mRunning) { + // thread already started + return -1; + } + + mStatus = 0; + mExitPending = false; + mThreadId = -1; + mRunning = true; + + + pthread_attr_t attr; + pthread_attr_init(&attr); + pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); + + if (stack) { + pthread_attr_setstacksize(&attr, stack); + } + + int result = pthread_create(&mThreadId, &attr, + _threadLoop, this); + pthread_attr_destroy(&attr); + if (result != 0) { + LOGE("Thread create fail ret = %d (errno=%d)\n", + result, errno); + + mStatus = -1; // something happened! + mRunning = false; + mThreadId = -1; + return -1; + } + return 0; } void *CThread::_threadLoop(void *user) { - CThread *const self = static_cast<CThread *>(user); - - bool first = true; - do { - bool result; - if (first) { - first = false; - self->mStatus = self->readyToRun(); - result = (self->mStatus == 0); - - if (result && !self->exitPending()) { - result = self->threadLoop(); - } - } else { - result = self->threadLoop(); - } - - - CMutex::Autolock _l(self->mLock); - if (result == false || self->mExitPending) { - self->mExitPending = true; - self->mRunning = false; - // clear thread ID so that requestExitAndWait() does not exit if - // called by a new thread using the same thread ID as this one. - self->mThreadId = -1; - // note that interested observers blocked in requestExitAndWait are - // awoken by broadcast, but blocked on mLock until break exits scope - self->mThreadExitedCondition.broadcast(); - break; - } - } while (true); - - return NULL; + CThread *const self = static_cast<CThread *>(user); + + bool first = true; + do { + bool result; + if (first) { + first = false; + self->mStatus = self->readyToRun(); + result = (self->mStatus == 0); + + if (result && !self->exitPending()) { + result = self->threadLoop(); + } + } else { + result = self->threadLoop(); + } + + + CMutex::Autolock _l(self->mLock); + if (result == false || self->mExitPending) { + self->mExitPending = true; + self->mRunning = false; + // clear thread ID so that requestExitAndWait() does not exit if + // called by a new thread using the same thread ID as this one. + self->mThreadId = -1; + // note that interested observers blocked in requestExitAndWait are + // awoken by broadcast, but blocked on mLock until break exits scope + self->mThreadExitedCondition.broadcast(); + break; + } + } while (true); + + return NULL; } void CThread::requestExit() { - CMutex::Autolock _l(mLock); - mExitPending = true; + CMutex::Autolock _l(mLock); + mExitPending = true; } int CThread::requestExitAndWait() { - CMutex::Autolock _l(mLock); - if (mThreadId == pthread_self()) { - ALOGW( - "Thread (this=%p): don't call waitForExit() from this " - "Thread object's thread. It's a guaranteed deadlock!", - this); - return -1; - } - - mExitPending = true; - - while (mRunning == true) { - mThreadExitedCondition.wait(mLock); - } - // This next line is probably not needed any more, but is being left for - // historical reference. Note that each interested party will clear flag. - mExitPending = false; - - return mStatus; + CMutex::Autolock _l(mLock); + if (mThreadId == pthread_self()) { + ALOGW( + "Thread (this=%p): don't call waitForExit() from this " + "Thread object's thread. It's a guaranteed deadlock!", + this); + return -1; + } + + mExitPending = true; + + while (mRunning == true) { + mThreadExitedCondition.wait(mLock); + } + // This next line is probably not needed any more, but is being left for + // historical reference. Note that each interested party will clear flag. + mExitPending = false; + + return mStatus; } int CThread::join() { - CMutex::Autolock _l(mLock); - if (mThreadId == pthread_self()) { - ALOGW( - "Thread (this=%p): don't call join() from this " - "Thread object's thread. It's a guaranteed deadlock!", - this); + CMutex::Autolock _l(mLock); + if (mThreadId == pthread_self()) { + ALOGW( + "Thread (this=%p): don't call join() from this " + "Thread object's thread. It's a guaranteed deadlock!", + this); - return -1; - } + return -1; + } - while (mRunning == true) { - mThreadExitedCondition.wait(mLock); - } + while (mRunning == true) { + mThreadExitedCondition.wait(mLock); + } - return mStatus; + return mStatus; } bool CThread::exitPending() const { - CMutex::Autolock _l(mLock); - return mExitPending; + CMutex::Autolock _l(mLock); + return mExitPending; } diff --git a/tvapi/libtv/tvutils/CThread.h b/tvapi/libtv/tvutils/CThread.h index 5910ee5..a660cc8 100644 --- a/tvapi/libtv/tvutils/CThread.h +++ b/tvapi/libtv/tvutils/CThread.h @@ -14,48 +14,48 @@ reference android api, just linux pthread class CThread { public: - CThread(); - virtual ~CThread(); - - // Start the thread in threadLoop() which needs to be implemented. - virtual int run(const char *name = 0, - int priority = 0, - int stack = 0); - //request thread object to exit, asynchronous to exit. - virtual void requestExit(); - - // Good place to do one-time initializations - virtual int readyToRun(); - - // Call requestExit() and wait until this object's thread exits. - // BE VERY CAREFUL of deadlocks. In particular, it would be silly to call - // this function from this object's thread. Will return WOULD_BLOCK in - // that case. - int requestExitAndWait(); - - // Wait until this object's thread exits. Returns immediately if not yet running. - // Do not call from this object's thread; will return WOULD_BLOCK in that case. - int join(); + CThread(); + virtual ~CThread(); + + // Start the thread in threadLoop() which needs to be implemented. + virtual int run(const char *name = 0, + int priority = 0, + int stack = 0); + //request thread object to exit, asynchronous to exit. + virtual void requestExit(); + + // Good place to do one-time initializations + virtual int readyToRun(); + + // Call requestExit() and wait until this object's thread exits. + // BE VERY CAREFUL of deadlocks. In particular, it would be silly to call + // this function from this object's thread. Will return WOULD_BLOCK in + // that case. + int requestExitAndWait(); + + // Wait until this object's thread exits. Returns immediately if not yet running. + // Do not call from this object's thread; will return WOULD_BLOCK in that case. + int join(); protected: - // exitPending() returns true if requestExit() has been called. - bool exitPending() const; + // exitPending() returns true if requestExit() has been called. + bool exitPending() const; private: - // Derived class must implement threadLoop(). The thread starts its life - // here. There are two ways of using the Thread object: - // 1) loop: if threadLoop() returns true, it will be called again if - // requestExit() wasn't called. - // 2) once: if threadLoop() returns false, the thread will exit upon return. - virtual bool threadLoop() = 0; + // Derived class must implement threadLoop(). The thread starts its life + // here. There are two ways of using the Thread object: + // 1) loop: if threadLoop() returns true, it will be called again if + // requestExit() wasn't called. + // 2) once: if threadLoop() returns false, the thread will exit upon return. + virtual bool threadLoop() = 0; private: - static void *_threadLoop(void *user); - pthread_t mThreadId; - mutable CMutex mLock; - CCondition mThreadExitedCondition; - int mStatus; - //note that all accesses of mExitPending and mRunning need to hold mLock - volatile bool mExitPending; - volatile bool mRunning; + static void *_threadLoop(void *user); + pthread_t mThreadId; + mutable CMutex mLock; + CCondition mThreadExitedCondition; + int mStatus; + //note that all accesses of mExitPending and mRunning need to hold mLock + volatile bool mExitPending; + volatile bool mRunning; }; #endif diff --git a/tvapi/libtv/tvutils/CTvInput.cpp b/tvapi/libtv/tvutils/CTvInput.cpp index 73cc265..87d7352 100644 --- a/tvapi/libtv/tvutils/CTvInput.cpp +++ b/tvapi/libtv/tvutils/CTvInput.cpp @@ -8,156 +8,156 @@ #define LOG_TAG "FBC" CTvInput::CTvInput() { - mKeyEventFd_IR = open(KEY_EVENT_0, O_RDWR); - mKeyEventFd = open(KEY_EVENT_1, O_RDWR); - if (mKeyEventFd < 0 || mKeyEventFd_IR < 0) { - LOGD( "could not open /dev/input/event1\n "); - return ; - } - mRepeatKeyCode = -1; - mRepeatKeydisTime = -1; - mWhenTimeRepeatKeyStartToSend = -1; - mTimeoutCount = 0; + mKeyEventFd_IR = open(KEY_EVENT_0, O_RDWR); + mKeyEventFd = open(KEY_EVENT_1, O_RDWR); + if (mKeyEventFd < 0 || mKeyEventFd_IR < 0) { + LOGD( "could not open /dev/input/event1\n "); + return ; + } + mRepeatKeyCode = -1; + mRepeatKeydisTime = -1; + mWhenTimeRepeatKeyStartToSend = -1; + mTimeoutCount = 0; } CTvInput::~CTvInput() { - close(mKeyEventFd); - close(mKeyEventFd_IR); + close(mKeyEventFd); + close(mKeyEventFd_IR); } void CTvInput::sendkeyEvent(const int &type, const int &code, const int &value) { - int ret; - struct input_event event; - - memset(&event, 0, sizeof(event)); - event.type = type; - event.code = code ; - event.value = value; - ret = write(mKeyEventFd, &event, sizeof(event)); - if (ret < sizeof(event)) { - LOGD("sendkeyEvent :write event failed, %s\n", strerror(errno)); - return ; - } + int ret; + struct input_event event; + + memset(&event, 0, sizeof(event)); + event.type = type; + event.code = code ; + event.value = value; + ret = write(mKeyEventFd, &event, sizeof(event)); + if (ret < sizeof(event)) { + LOGD("sendkeyEvent :write event failed, %s\n", strerror(errno)); + return ; + } } void CTvInput::sendIRkeyEvent(const int &type, const int &code, const int &value) { - int ret; - struct input_event event; - - memset(&event, 0, sizeof(event)); - event.type = type; - event.code = code ; - event.value = value; - ret = write(mKeyEventFd_IR, &event, sizeof(event)); - if (ret < sizeof(event)) { - LOGD("sendIRkeyEvent :write event failed, %s\n", strerror(errno)); - return ; - } + int ret; + struct input_event event; + + memset(&event, 0, sizeof(event)); + event.type = type; + event.code = code ; + event.value = value; + ret = write(mKeyEventFd_IR, &event, sizeof(event)); + if (ret < sizeof(event)) { + LOGD("sendIRkeyEvent :write event failed, %s\n", strerror(errno)); + return ; + } } void CTvInput::sendkeyCode(const int &code) { - sendkeyEvent(1 , code, 1); //down - sendkeyEvent(0, 0, 0); //clear - sendkeyEvent(1 , code, 0); //up - sendkeyEvent(0, 0, 0); //clear + sendkeyEvent(1 , code, 1); //down + sendkeyEvent(0, 0, 0); //clear + sendkeyEvent(1 , code, 0); //up + sendkeyEvent(0, 0, 0); //clear } void CTvInput::sendkeyCode_Up(const int &code) { - sendkeyEvent(1 , code, 0); //up - sendkeyEvent(0, 0, 0); //clear + sendkeyEvent(1 , code, 0); //up + sendkeyEvent(0, 0, 0); //clear } void CTvInput::sendkeyCode_Down(const int &code) { - sendkeyEvent(1 , code, 1); //down - sendkeyEvent(0, 0, 0); //clear + sendkeyEvent(1 , code, 1); //down + sendkeyEvent(0, 0, 0); //clear } void CTvInput::sendIRkeyCode(const int &code) { - sendIRkeyEvent(1 , code, 1); //down - sendIRkeyEvent(0, 0, 0); //clear - sendIRkeyEvent(1 , code, 0); //up - sendIRkeyEvent(0, 0, 0); //clear + sendIRkeyEvent(1 , code, 1); //down + sendIRkeyEvent(0, 0, 0); //clear + sendIRkeyEvent(1 , code, 0); //up + sendIRkeyEvent(0, 0, 0); //clear } void CTvInput::sendIRkeyCode_Up(const int &code) { - sendIRkeyEvent(1 , code, 0); //up - sendIRkeyEvent(0, 0, 0); //clear + sendIRkeyEvent(1 , code, 0); //up + sendIRkeyEvent(0, 0, 0); //clear } void CTvInput::sendIRkeyCode_Down(const int &code) { - sendIRkeyEvent(1 , code, 1); //down - sendIRkeyEvent(0, 0, 0); //clear + sendIRkeyEvent(1 , code, 1); //down + sendIRkeyEvent(0, 0, 0); //clear } nsecs_t CTvInput::getNowMs() { - return systemTime(SYSTEM_TIME_MONOTONIC) / 1000000; + return systemTime(SYSTEM_TIME_MONOTONIC) / 1000000; } void CTvInput::sendKeyRepeatStart(const int &code, int disTime, int repeatDisTime) { - CMutex::Autolock _l(mLock); - mTimeoutCount = 0; - mRepeatKeyCode = code; - mRepeatKeydisTime = disTime; - mWhenTimeRepeatKeyStartToSend = disTime + getNowMs(); - mRepeatKeyRepeateDisTime = repeatDisTime; - LOGD("sendKeyRepeatStart when = %lld", mWhenTimeRepeatKeyStartToSend); - mSendKeyCondition.signal(); + CMutex::Autolock _l(mLock); + mTimeoutCount = 0; + mRepeatKeyCode = code; + mRepeatKeydisTime = disTime; + mWhenTimeRepeatKeyStartToSend = disTime + getNowMs(); + mRepeatKeyRepeateDisTime = repeatDisTime; + LOGD("sendKeyRepeatStart when = %lld", mWhenTimeRepeatKeyStartToSend); + mSendKeyCondition.signal(); } void CTvInput::sendKeyRepeatStop() { - CMutex::Autolock _l(mLock); - mRepeatKeyCode = -1; - mRepeatKeydisTime = -1; + CMutex::Autolock _l(mLock); + mRepeatKeyCode = -1; + mRepeatKeydisTime = -1; } bool CTvInput::threadLoop() { - int sleeptime = 100;//ms - - while (!exitPending()) { //requietexit() or requietexitWait() not call - LOGD("threadLoop0 when = %lld", mWhenTimeRepeatKeyStartToSend); - while (mRepeatKeyCode < 0 || mRepeatKeydisTime < 0) { //msg queue is empty - mLock.lock(); - mSendKeyCondition.wait(mLock);//first unlock,when return,lock again,so need,call unlock - mLock.unlock(); - } - LOGD("threadLoop1 when = %lld", mWhenTimeRepeatKeyStartToSend); - int disToSend = -1; - do { - disToSend = mWhenTimeRepeatKeyStartToSend - getNowMs(); - LOGD("dis when = %lld", disToSend); - if (disToSend <= 0) break; - - mLock.lock(); - mSendKeyCondition.waitRelative(mLock, disToSend);//first unlock,when return,lock again,so need,call unlock - mLock.unlock(); - } while (disToSend > 0); // - LOGD("threadLoop2 when = %lld ", mWhenTimeRepeatKeyStartToSend); - if (mTimeoutCount < 30) { - LOGD("mTimeoutCount = %d \n", mTimeoutCount); - - mTimeoutCount++; - if (mRepeatKeyCode == 955) { - sendkeyCode_Down(mRepeatKeyCode); - } else { - sendkeyCode(mRepeatKeyCode); - } - } else { - LOGD("mTimeoutCount = %d,so stop sending long press msg.\n", mTimeoutCount); - } - usleep(mRepeatKeyRepeateDisTime * 1000); - } - //exit - //return true, run again, return false,not run. - return false; + int sleeptime = 100;//ms + + while (!exitPending()) { //requietexit() or requietexitWait() not call + LOGD("threadLoop0 when = %lld", mWhenTimeRepeatKeyStartToSend); + while (mRepeatKeyCode < 0 || mRepeatKeydisTime < 0) { //msg queue is empty + mLock.lock(); + mSendKeyCondition.wait(mLock);//first unlock,when return,lock again,so need,call unlock + mLock.unlock(); + } + LOGD("threadLoop1 when = %lld", mWhenTimeRepeatKeyStartToSend); + int disToSend = -1; + do { + disToSend = mWhenTimeRepeatKeyStartToSend - getNowMs(); + LOGD("dis when = %lld", disToSend); + if (disToSend <= 0) break; + + mLock.lock(); + mSendKeyCondition.waitRelative(mLock, disToSend);//first unlock,when return,lock again,so need,call unlock + mLock.unlock(); + } while (disToSend > 0); // + LOGD("threadLoop2 when = %lld ", mWhenTimeRepeatKeyStartToSend); + if (mTimeoutCount < 30) { + LOGD("mTimeoutCount = %d \n", mTimeoutCount); + + mTimeoutCount++; + if (mRepeatKeyCode == 955) { + sendkeyCode_Down(mRepeatKeyCode); + } else { + sendkeyCode(mRepeatKeyCode); + } + } else { + LOGD("mTimeoutCount = %d,so stop sending long press msg.\n", mTimeoutCount); + } + usleep(mRepeatKeyRepeateDisTime * 1000); + } + //exit + //return true, run again, return false,not run. + return false; }
\ No newline at end of file diff --git a/tvapi/libtv/tvutils/CTvInput.h b/tvapi/libtv/tvutils/CTvInput.h index c5f79ab..92c981c 100644 --- a/tvapi/libtv/tvutils/CTvInput.h +++ b/tvapi/libtv/tvutils/CTvInput.h @@ -12,31 +12,31 @@ static const char *KEY_EVENT_1 = "/dev/input/event1"; static const char *KEY_EVENT_2 = "/dev/input/event2"; class CTvInput: public CThread { public: - CTvInput(); - ~CTvInput(); - void sendkeyEvent(const int &type, const int &code, const int &value); - void sendIRkeyEvent(const int &type, const int &code, const int &value); - void sendkeyCode(const int &code); - void sendkeyCode_Up(const int &code); - void sendkeyCode_Down(const int &code); - void sendIRkeyCode(const int &code); - void sendIRkeyCode_Up(const int &code); - void sendIRkeyCode_Down(const int &code); - void sendKeyRepeatStart(const int &code, int disTime, int repeatDisTime);//ms - void sendKeyRepeatStop(); - nsecs_t getNowMs(); + CTvInput(); + ~CTvInput(); + void sendkeyEvent(const int &type, const int &code, const int &value); + void sendIRkeyEvent(const int &type, const int &code, const int &value); + void sendkeyCode(const int &code); + void sendkeyCode_Up(const int &code); + void sendkeyCode_Down(const int &code); + void sendIRkeyCode(const int &code); + void sendIRkeyCode_Up(const int &code); + void sendIRkeyCode_Down(const int &code); + void sendKeyRepeatStart(const int &code, int disTime, int repeatDisTime);//ms + void sendKeyRepeatStop(); + nsecs_t getNowMs(); private: - bool threadLoop(); + bool threadLoop(); - int mKeyEventFd; - int mKeyEventFd_IR; - CCondition mSendKeyCondition; - CMutex mLock; - int mRepeatKeyCode; - int mRepeatKeydisTime; - int mRepeatKeyRepeateDisTime; - int mTimeoutCount; - nsecs_t mWhenTimeRepeatKeyStartToSend; + int mKeyEventFd; + int mKeyEventFd_IR; + CCondition mSendKeyCondition; + CMutex mLock; + int mRepeatKeyCode; + int mRepeatKeydisTime; + int mRepeatKeyRepeateDisTime; + int mTimeoutCount; + nsecs_t mWhenTimeRepeatKeyStartToSend; }; #endif diff --git a/tvapi/libtv/tvutils/serial_base.cpp b/tvapi/libtv/tvutils/serial_base.cpp index e062c3b..8a5a98b 100644 --- a/tvapi/libtv/tvutils/serial_base.cpp +++ b/tvapi/libtv/tvutils/serial_base.cpp @@ -39,428 +39,428 @@ static int name_arr[] = { 115200, 38400, 19200, 9600, 4800, 2400, 1200, 300, 384 static int open_com_dev(int *dev_handle, char *dev_path) { - if (*dev_handle < 0) { - *dev_handle = open(dev_path, O_RDWR); - if (*dev_handle < 0) { - LOGE("%s, Can't Open Serial Port %s", "TV", dev_path); - } - } - - return *dev_handle; + if (*dev_handle < 0) { + *dev_handle = open(dev_path, O_RDWR); + if (*dev_handle < 0) { + LOGE("%s, Can't Open Serial Port %s", "TV", dev_path); + } + } + + return *dev_handle; } static int close_com_dev(int *dev_handle) { - if (*dev_handle >= 0) { - close(*dev_handle); - *dev_handle = -1; - } + if (*dev_handle >= 0) { + close(*dev_handle); + *dev_handle = -1; + } - return 0; + return 0; } static __inline__ int cfsetdatabits(struct termios *s, int db) { - if (db == 5) { - s->c_cflag = (s->c_cflag & ~CSIZE) | (CS5 & CSIZE); - } else if (db == 6) { - s->c_cflag = (s->c_cflag & ~CSIZE) | (CS6 & CSIZE); - } else if (db == 7) { - s->c_cflag = (s->c_cflag & ~CSIZE) | (CS7 & CSIZE); - } else if (db == 8) { - s->c_cflag = (s->c_cflag & ~CSIZE) | (CS8 & CSIZE); - } else { - LOGE("%s, Unsupported data size!\n", "TV"); - } - - return 0; + if (db == 5) { + s->c_cflag = (s->c_cflag & ~CSIZE) | (CS5 & CSIZE); + } else if (db == 6) { + s->c_cflag = (s->c_cflag & ~CSIZE) | (CS6 & CSIZE); + } else if (db == 7) { + s->c_cflag = (s->c_cflag & ~CSIZE) | (CS7 & CSIZE); + } else if (db == 8) { + s->c_cflag = (s->c_cflag & ~CSIZE) | (CS8 & CSIZE); + } else { + LOGE("%s, Unsupported data size!\n", "TV"); + } + + return 0; } static __inline__ int cfsetstopbits(struct termios *s, int sb) { - if (sb == 1) { - s->c_cflag &= ~CSTOPB; - } else if (sb == 2) { - s->c_cflag |= CSTOPB; - } else { - LOGE("%s, Unsupported stop bits!\n", "TV"); - } - - return 0; + if (sb == 1) { + s->c_cflag &= ~CSTOPB; + } else if (sb == 2) { + s->c_cflag |= CSTOPB; + } else { + LOGE("%s, Unsupported stop bits!\n", "TV"); + } + + return 0; } static __inline__ int cfsetparity(struct termios *s, int pb) { - if (pb == 'n' || pb == 'N') { - s->c_cflag &= ~PARENB; /* Clear parity enable */ - s->c_cflag &= ~INPCK; /* Enable parity checking */ - } else if (pb == 'o' || pb == 'O') { - s->c_cflag |= (PARODD | PARENB); - s->c_cflag |= INPCK; /* Disable parity checking */ - } else if (pb == 'e' || pb == 'E') { - s->c_cflag |= PARENB; /* Enable parity */ - s->c_cflag &= ~PARODD; - s->c_iflag |= INPCK; /* Disable parity checking */ - } else if (pb == 's' || pb == 'S') { - s->c_cflag &= ~PARENB; - s->c_cflag &= ~CSTOPB; - s->c_cflag |= INPCK; /* Disable parity checking */ - } else { - LOGE("%s, Unsupported parity!\n", "TV"); - } - - return 0; + if (pb == 'n' || pb == 'N') { + s->c_cflag &= ~PARENB; /* Clear parity enable */ + s->c_cflag &= ~INPCK; /* Enable parity checking */ + } else if (pb == 'o' || pb == 'O') { + s->c_cflag |= (PARODD | PARENB); + s->c_cflag |= INPCK; /* Disable parity checking */ + } else if (pb == 'e' || pb == 'E') { + s->c_cflag |= PARENB; /* Enable parity */ + s->c_cflag &= ~PARODD; + s->c_iflag |= INPCK; /* Disable parity checking */ + } else if (pb == 's' || pb == 'S') { + s->c_cflag &= ~PARENB; + s->c_cflag &= ~CSTOPB; + s->c_cflag |= INPCK; /* Disable parity checking */ + } else { + LOGE("%s, Unsupported parity!\n", "TV"); + } + + return 0; } static int gOriAttrGetFlag = 0; static struct termios gOriAttrValue; static __inline__ int com_get_attr(int fd, struct termios *s) { - if (gOriAttrGetFlag == 0) { - if (tcgetattr(fd, s) != 0) { - return -1; - } + if (gOriAttrGetFlag == 0) { + if (tcgetattr(fd, s) != 0) { + return -1; + } - gOriAttrGetFlag = 1; - gOriAttrValue = *s; - } + gOriAttrGetFlag = 1; + gOriAttrValue = *s; + } - *s = gOriAttrValue; + *s = gOriAttrValue; - return 0; + return 0; } static int com_set_opt(int hComm, int speed, int db, int sb, int pb, int to, int raw_mode) { - int i = 0; - struct termios tmpOpt; - - if (com_get_attr(hComm, &tmpOpt) != 0) { - LOGE("%s, get serial attr error(%s)!\n", "TV", strerror(errno)); - return -1; - } - - for (i = 0; i < sizeof(speed_arr) / sizeof(int); i++) { - if (speed == name_arr[i]) { - cfsetispeed(&tmpOpt, speed_arr[i]); - cfsetospeed(&tmpOpt, speed_arr[i]); - break; - } - } - - cfsetdatabits(&tmpOpt, db); - cfsetstopbits(&tmpOpt, sb); - cfsetparity(&tmpOpt, pb); - - if (to >= 0) { - tmpOpt.c_cc[VTIME] = to; /* 设置超时15 seconds*/ - tmpOpt.c_cc[VMIN] = 0; /* Update the options and do it NOW */ - } - - if (raw_mode == 1) { - cfmakeraw(&tmpOpt); - } - - tcflush(hComm, TCIOFLUSH); - if (tcsetattr(hComm, TCSANOW, &tmpOpt) < 0) { - LOGE("%s, set serial attr error(%s)!\n", "TV", strerror(errno)); - return -1; - } - tcflush(hComm, TCIOFLUSH); - - return 0; + int i = 0; + struct termios tmpOpt; + + if (com_get_attr(hComm, &tmpOpt) != 0) { + LOGE("%s, get serial attr error(%s)!\n", "TV", strerror(errno)); + return -1; + } + + for (i = 0; i < sizeof(speed_arr) / sizeof(int); i++) { + if (speed == name_arr[i]) { + cfsetispeed(&tmpOpt, speed_arr[i]); + cfsetospeed(&tmpOpt, speed_arr[i]); + break; + } + } + + cfsetdatabits(&tmpOpt, db); + cfsetstopbits(&tmpOpt, sb); + cfsetparity(&tmpOpt, pb); + + if (to >= 0) { + tmpOpt.c_cc[VTIME] = to; /* 设置超时15 seconds*/ + tmpOpt.c_cc[VMIN] = 0; /* Update the options and do it NOW */ + } + + if (raw_mode == 1) { + cfmakeraw(&tmpOpt); + } + + tcflush(hComm, TCIOFLUSH); + if (tcsetattr(hComm, TCSANOW, &tmpOpt) < 0) { + LOGE("%s, set serial attr error(%s)!\n", "TV", strerror(errno)); + return -1; + } + tcflush(hComm, TCIOFLUSH); + + return 0; } static int com_write_data(int hComm, const unsigned char *pData, unsigned int uLen) { - unsigned int len; - - if (hComm < 0) { - return -1; - } - - if (pData == NULL) { - return -1; - } - - LOGD("%s, write %d bytes\n", "TV", uLen); - - len = write(hComm, pData, uLen); - if (len == uLen) { - LOGD("%s, write data success\n", "TV"); - return len; - } else { - tcflush(hComm, TCOFLUSH); - LOGE("%s, write data failed and tcflush hComm\n", "TV"); - return -1; - } + unsigned int len; + + if (hComm < 0) { + return -1; + } + + if (pData == NULL) { + return -1; + } + + LOGD("%s, write %d bytes\n", "TV", uLen); + + len = write(hComm, pData, uLen); + if (len == uLen) { + LOGD("%s, write data success\n", "TV"); + return len; + } else { + tcflush(hComm, TCOFLUSH); + LOGE("%s, write data failed and tcflush hComm\n", "TV"); + return -1; + } } static int com_read_data(int hComm, char *pData, unsigned int uLen) { - char inbuff[uLen]; - char buff[uLen]; - char tempbuff[uLen]; - int i = 0, j = 0; - - memset(inbuff, '\0', uLen); - memset(buff, '\0', uLen); - memset(tempbuff, '\0', uLen); - - if (hComm < 0) { - return -1; - } - - char *p = inbuff; - - fd_set readset; - struct timeval tv; - int MaxFd = 0; - - unsigned int c = 0; - int z, k; - - do { - FD_ZERO(&readset); - FD_SET(hComm, &readset); - MaxFd = hComm + 1; - tv.tv_sec = 0; - tv.tv_usec = 100000; - do { - z = select(MaxFd, &readset, 0, 0, &tv); - } while (z == -1 && errno == EINTR); - - if (z == -1) { - hComm = -1; - break; - } - - if (z == 0) { - hComm = -1; - break; - } - - if (FD_ISSET(hComm, &readset)) { - z = read(hComm, buff, uLen - c); + char inbuff[uLen]; + char buff[uLen]; + char tempbuff[uLen]; + int i = 0, j = 0; + + memset(inbuff, '\0', uLen); + memset(buff, '\0', uLen); + memset(tempbuff, '\0', uLen); + + if (hComm < 0) { + return -1; + } + + char *p = inbuff; + + fd_set readset; + struct timeval tv; + int MaxFd = 0; + + unsigned int c = 0; + int z, k; + + do { + FD_ZERO(&readset); + FD_SET(hComm, &readset); + MaxFd = hComm + 1; + tv.tv_sec = 0; + tv.tv_usec = 100000; + do { + z = select(MaxFd, &readset, 0, 0, &tv); + } while (z == -1 && errno == EINTR); + + if (z == -1) { + hComm = -1; + break; + } + + if (z == 0) { + hComm = -1; + break; + } + + if (FD_ISSET(hComm, &readset)) { + z = read(hComm, buff, uLen - c); #if 0 - for (k = 0; k < z; k++) { - LOGD("%s, inbuff[%d]:%02X", "TV", k, buff[k]); - } + for (k = 0; k < z; k++) { + LOGD("%s, inbuff[%d]:%02X", "TV", k, buff[k]); + } #endif - c += z; - - if (z > 0) { - if (z < (signed int) uLen) { - buff[z + 1] = '\0'; - memcpy(p, buff, z); - p += z; - } else { - memcpy(inbuff, buff, z); - } - - memset(buff, '\0', uLen); - } else { - hComm = -1; - } - - if (c >= uLen) { - hComm = -1; - break; - } - } - } while (hComm >= 0); - - memcpy(pData, inbuff, c); - p = NULL; - return c; + c += z; + + if (z > 0) { + if (z < (signed int) uLen) { + buff[z + 1] = '\0'; + memcpy(p, buff, z); + p += z; + } else { + memcpy(inbuff, buff, z); + } + + memset(buff, '\0', uLen); + } else { + hComm = -1; + } + + if (c >= uLen) { + hComm = -1; + break; + } + } + } while (hComm >= 0); + + memcpy(pData, inbuff, c); + p = NULL; + return c; } int com_a_open_dev() { - int tmp_ret = 0; + int tmp_ret = 0; - pthread_mutex_lock(&serial_a_op_mutex); + pthread_mutex_lock(&serial_a_op_mutex); - tmp_ret = open_com_dev(&gSerialAHandle, CS_SERIAL_A_DEV_PATH); + tmp_ret = open_com_dev(&gSerialAHandle, CS_SERIAL_A_DEV_PATH); - pthread_mutex_unlock(&serial_a_op_mutex); + pthread_mutex_unlock(&serial_a_op_mutex); - return tmp_ret; + return tmp_ret; } int com_b_open_dev() { - int tmp_ret = 0; + int tmp_ret = 0; - pthread_mutex_lock(&serial_b_op_mutex); + pthread_mutex_lock(&serial_b_op_mutex); - tmp_ret = open_com_dev(&gSerialBHandle, CS_SERIAL_B_DEV_PATH); + tmp_ret = open_com_dev(&gSerialBHandle, CS_SERIAL_B_DEV_PATH); - pthread_mutex_unlock(&serial_b_op_mutex); + pthread_mutex_unlock(&serial_b_op_mutex); - return tmp_ret; + return tmp_ret; } int com_a_close_dev() { - int tmp_ret = 0; + int tmp_ret = 0; - pthread_mutex_lock(&serial_a_op_mutex); + pthread_mutex_lock(&serial_a_op_mutex); - tmp_ret = close_com_dev(&gSerialAHandle); + tmp_ret = close_com_dev(&gSerialAHandle); - pthread_mutex_unlock(&serial_a_op_mutex); + pthread_mutex_unlock(&serial_a_op_mutex); - return tmp_ret; + return tmp_ret; } int com_b_close_dev() { - int tmp_ret = 0; + int tmp_ret = 0; - pthread_mutex_lock(&serial_b_op_mutex); + pthread_mutex_lock(&serial_b_op_mutex); - tmp_ret = close_com_dev(&gSerialBHandle); + tmp_ret = close_com_dev(&gSerialBHandle); - pthread_mutex_unlock(&serial_b_op_mutex); + pthread_mutex_unlock(&serial_b_op_mutex); - return tmp_ret; + return tmp_ret; } int com_a_get_dev() { - int tmp_ret = 0; + int tmp_ret = 0; - pthread_mutex_lock(&serial_a_op_mutex); + pthread_mutex_lock(&serial_a_op_mutex); - tmp_ret = gSerialAHandle; + tmp_ret = gSerialAHandle; - pthread_mutex_unlock(&serial_a_op_mutex); + pthread_mutex_unlock(&serial_a_op_mutex); - return tmp_ret; + return tmp_ret; } int com_b_get_dev() { - int tmp_ret = 0; + int tmp_ret = 0; - pthread_mutex_lock(&serial_b_op_mutex); + pthread_mutex_lock(&serial_b_op_mutex); - tmp_ret = gSerialBHandle; + tmp_ret = gSerialBHandle; - pthread_mutex_unlock(&serial_b_op_mutex); + pthread_mutex_unlock(&serial_b_op_mutex); - return tmp_ret; + return tmp_ret; } int com_a_set_opt(int speed, int db, int sb, int pb, int to, int raw_mode) { - int tmp_ret = 0; + int tmp_ret = 0; - pthread_mutex_lock(&serial_a_parity_mutex); + pthread_mutex_lock(&serial_a_parity_mutex); - if (com_a_get_dev() < 0) { - pthread_mutex_unlock(&serial_a_parity_mutex); - return -1; - } + if (com_a_get_dev() < 0) { + pthread_mutex_unlock(&serial_a_parity_mutex); + return -1; + } - tmp_ret = com_set_opt(gSerialAHandle, speed, db, sb, pb, to, raw_mode); + tmp_ret = com_set_opt(gSerialAHandle, speed, db, sb, pb, to, raw_mode); - pthread_mutex_unlock(&serial_a_parity_mutex); + pthread_mutex_unlock(&serial_a_parity_mutex); - return tmp_ret; + return tmp_ret; } int com_b_set_opt(int speed, int db, int sb, int pb, int to, int raw_mode) { - int tmp_ret = 0; + int tmp_ret = 0; - pthread_mutex_lock(&serial_b_parity_mutex); + pthread_mutex_lock(&serial_b_parity_mutex); - if (com_b_get_dev() < 0) { - pthread_mutex_unlock(&serial_b_parity_mutex); - return -1; - } + if (com_b_get_dev() < 0) { + pthread_mutex_unlock(&serial_b_parity_mutex); + return -1; + } - tmp_ret = com_set_opt(gSerialBHandle, speed, db, sb, pb, to, raw_mode); + tmp_ret = com_set_opt(gSerialBHandle, speed, db, sb, pb, to, raw_mode); - pthread_mutex_unlock(&serial_b_parity_mutex); + pthread_mutex_unlock(&serial_b_parity_mutex); - return tmp_ret; + return tmp_ret; } int com_a_write_data(const unsigned char *pData, unsigned int uLen) { - int tmp_ret = 0; + int tmp_ret = 0; - pthread_mutex_lock(&serial_a_w_mutex); + pthread_mutex_lock(&serial_a_w_mutex); - if (com_a_get_dev() < 0) { - pthread_mutex_unlock(&serial_a_w_mutex); - return -1; - } + if (com_a_get_dev() < 0) { + pthread_mutex_unlock(&serial_a_w_mutex); + return -1; + } - LOGD("%s, write %d bytes\n", "TV", uLen); + LOGD("%s, write %d bytes\n", "TV", uLen); - tmp_ret = com_write_data(gSerialAHandle, pData, uLen); + tmp_ret = com_write_data(gSerialAHandle, pData, uLen); - pthread_mutex_unlock(&serial_a_w_mutex); + pthread_mutex_unlock(&serial_a_w_mutex); - return tmp_ret; + return tmp_ret; } int com_b_write_data(const unsigned char *pData, unsigned int uLen) { - int tmp_ret = 0; + int tmp_ret = 0; - pthread_mutex_lock(&serial_b_w_mutex); + pthread_mutex_lock(&serial_b_w_mutex); - if (com_b_get_dev() < 0) { - pthread_mutex_unlock(&serial_b_w_mutex); - return -1; - } + if (com_b_get_dev() < 0) { + pthread_mutex_unlock(&serial_b_w_mutex); + return -1; + } - LOGD("%s, write %d bytes\n", "TV", uLen); + LOGD("%s, write %d bytes\n", "TV", uLen); - tmp_ret = com_write_data(gSerialBHandle, pData, uLen); + tmp_ret = com_write_data(gSerialBHandle, pData, uLen); - pthread_mutex_unlock(&serial_b_w_mutex); + pthread_mutex_unlock(&serial_b_w_mutex); - return tmp_ret; + return tmp_ret; } int com_a_read_data(char *pData, unsigned int uLen) { - int tmp_ret = 0; + int tmp_ret = 0; - pthread_mutex_lock(&serial_a_r_mutex); + pthread_mutex_lock(&serial_a_r_mutex); - if (com_a_get_dev() < 0) { - pthread_mutex_unlock(&serial_a_r_mutex); - return -1; - } + if (com_a_get_dev() < 0) { + pthread_mutex_unlock(&serial_a_r_mutex); + return -1; + } - tmp_ret = com_read_data(gSerialAHandle, pData, uLen); + tmp_ret = com_read_data(gSerialAHandle, pData, uLen); - pthread_mutex_unlock(&serial_a_r_mutex); + pthread_mutex_unlock(&serial_a_r_mutex); - return tmp_ret; + return tmp_ret; } int com_b_read_data(char *pData, unsigned int uLen) { - int tmp_ret = 0; + int tmp_ret = 0; - pthread_mutex_lock(&serial_b_r_mutex); + pthread_mutex_lock(&serial_b_r_mutex); - if (com_b_get_dev() < 0) { - pthread_mutex_unlock(&serial_b_r_mutex); - return -1; - } + if (com_b_get_dev() < 0) { + pthread_mutex_unlock(&serial_b_r_mutex); + return -1; + } - tmp_ret = com_read_data(gSerialBHandle, pData, uLen); + tmp_ret = com_read_data(gSerialBHandle, pData, uLen); - pthread_mutex_unlock(&serial_b_r_mutex); + pthread_mutex_unlock(&serial_b_r_mutex); - return tmp_ret; + return tmp_ret; } diff --git a/tvapi/libtv/tvutils/serial_operate.cpp b/tvapi/libtv/tvutils/serial_operate.cpp index 109efdd..fba239b 100644 --- a/tvapi/libtv/tvutils/serial_operate.cpp +++ b/tvapi/libtv/tvutils/serial_operate.cpp @@ -51,179 +51,179 @@ CTv2d4GHeadSetDetect::~CTv2d4GHeadSetDetect() int CTv2d4GHeadSetDetect::startDetect() { - this->run(); + this->run(); - return 0; + return 0; } bool CTv2d4GHeadSetDetect::threadLoop() { - int i = 0, rd_len = 0; - int thread_cmd_dly_tm = 1000 * 1000; - int tvThermal_cnt = 0, fd = 0; - char data[10] = "0"; - - LOGD("%s, entering...\n", __FUNCTION__); - - //SetSerialBThreadExecFlag(1); - - //********************************* - int hidraw_fd; - unsigned char buf[32]; - char phybuf[256]; - struct hidraw_devinfo info; - int read_size = 0; - bool debug = true; - char device[68]; - int HeadsetConnectState = false; - - int curdeviceID = -1; - for (int deviceID = 0; deviceID < 5; deviceID++) { - sprintf(device, "/dev/hidraw%d", deviceID); - LOGD(" thread device =%s ", device ); - if ((hidraw_fd = open(device, O_RDWR)) < 0 ) { - LOGD("cann't open path:%s!!!\n", device); - continue; - } - memset(phybuf, 0x0, 256); - LOGD("AAAAAAAAAAAAAA:%s!!!\n", device); - if (ioctl(hidraw_fd, HIDIOCGRAWINFO, &info) >= 0 && - ioctl(hidraw_fd, HIDIOCGRAWPHYS(256), phybuf) >= 0) { - LOGD("\t %d, product id = 0x%04x \n", __LINE__, info.product); - LOGD("\t %d, vendor id = 0x%04x \n", __LINE__, info.vendor); - int len = strlen(phybuf); - if (phybuf[len - 1] - '0' == ENDPOINT) { - if (info.vendor == vendor_id) { - curdeviceID = deviceID; - LOGD("\t product id = 0x%04x \n", info.product); - LOGD("\t vendor id = 0x%04x\n", info.vendor); - break; - } - } - } - close(hidraw_fd); - } - if (curdeviceID == -1) - return 0; - - sprintf(device, "/dev/hidraw%d", curdeviceID); - LOGD(" thread device =%s ", device ); - if ( (hidraw_fd = open(device, O_RDWR | O_NONBLOCK) ) < 0 ) { - printf("cann't open path:%s!!!\n", device); - return 0; - } - int checkvalue[300] ; - int countcheck = 0; - int count = 0; - int ritemcounts = 15; - //**************************************** - - while ( !exitPending() ) { //requietexit() or requietexitWait() not call - //loop codes - //LOGD("while 2.4G %s ", __FUNCTION__); - - memset(buf, 0x0, 32); - for (int ritem = 0; ritem < ritemcounts ; ritem++ ) { - read_size = read(hidraw_fd, buf, 32); - //for (int i = 0; i < 32; i++) - //ALOGD("read_size %d ", read_size); - if (debug) { - count ++; - if (count == 3000) { - LOGD("%02x %02x %02x %02x %02x %02x ", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]); - count = 0; - } - } - if (read_size < 0 ) { - - } - - checkvalue[countcheck] = buf[4] & 0x1f; - if (countcheck == 299) { - int checkcountvalue = 0; - for (int icheck = 0; icheck < countcheck ; icheck++ ) - checkcountvalue += checkvalue[icheck]; - // LOGD("checkcountvalue = %d",checkcountvalue); - if (checkcountvalue <= 5 * 4) { - if (HeadsetConnectState == true) { - if (debug) { - LOGD("headset connect false"); - LOGD("headset connect false"); - } - - mpObserver->onHeadSetDetect(0, 0); - //usleep(1000 * 200); - } - HeadsetConnectState = false; - } else if (checkcountvalue >= 200 * 4) { - if (HeadsetConnectState == false) { - if (debug) { - LOGD("headset connect true"); - LOGD("headset connect true"); - } - mpObserver->onHeadSetDetect(1, 0); - //usleep(1000 * 200); - } - HeadsetConnectState = true; - } - countcheck = 0; - } - countcheck ++; - - // bit 0: headset mic in/off; bit 1:headset on/off; bit 2: headphone on/off; bit 3: soundbar on/off ;bit 4: subwoofer on/off - /* else if (buf[4] & 0x1f) - { - if (HeadsetConnectState == false) - { - if (debug) - { - ALOGD("headset connect true"); - ALOGD("headset connect true"); - } - android::TvService::getIntance()->SendDtvStats(1,0,0,0,0,0); - //usleep(1000 * 200); - } - HeadsetConnectState = true; - } - else - { - if (HeadsetConnectState == true) - { - if (debug) - { - ALOGD("headset connect false"); - ALOGD("headset connect false"); - } - android::TvService::getIntance()->SendDtvStats(2,0,0,0,0,0); - //usleep(1000 * 200); - } - HeadsetConnectState = false; - }*/ - } - { - //added for fbc thermal setting - tvThermal_cnt++; - if (tvThermal_cnt == 300) { //60 sec - tvThermal_cnt = 0; - fd = open("/sys/class/thermal/thermal_zone0/temp", O_RDONLY); - if (fd < 0) { - LOGE("ERROR: failed to open file error: %d\n", errno); - } else { - read(fd, data, sizeof(data)); - close(fd); - LOGD("thermal temp data = %s ~~~~~~\n", data); - int x = 0; - x = atoi(data); - mpObserver->onThermalDetect(x); - LOGD("int data :%d\n", x); - } - } - } - usleep(1000 * 200); - } - //exit - //return true, run again, return false,not run. - return false; + int i = 0, rd_len = 0; + int thread_cmd_dly_tm = 1000 * 1000; + int tvThermal_cnt = 0, fd = 0; + char data[10] = "0"; + + LOGD("%s, entering...\n", __FUNCTION__); + + //SetSerialBThreadExecFlag(1); + + //********************************* + int hidraw_fd; + unsigned char buf[32]; + char phybuf[256]; + struct hidraw_devinfo info; + int read_size = 0; + bool debug = true; + char device[68]; + int HeadsetConnectState = false; + + int curdeviceID = -1; + for (int deviceID = 0; deviceID < 5; deviceID++) { + sprintf(device, "/dev/hidraw%d", deviceID); + LOGD(" thread device =%s ", device ); + if ((hidraw_fd = open(device, O_RDWR)) < 0 ) { + LOGD("cann't open path:%s!!!\n", device); + continue; + } + memset(phybuf, 0x0, 256); + LOGD("AAAAAAAAAAAAAA:%s!!!\n", device); + if (ioctl(hidraw_fd, HIDIOCGRAWINFO, &info) >= 0 && + ioctl(hidraw_fd, HIDIOCGRAWPHYS(256), phybuf) >= 0) { + LOGD("\t %d, product id = 0x%04x \n", __LINE__, info.product); + LOGD("\t %d, vendor id = 0x%04x \n", __LINE__, info.vendor); + int len = strlen(phybuf); + if (phybuf[len - 1] - '0' == ENDPOINT) { + if (info.vendor == vendor_id) { + curdeviceID = deviceID; + LOGD("\t product id = 0x%04x \n", info.product); + LOGD("\t vendor id = 0x%04x\n", info.vendor); + break; + } + } + } + close(hidraw_fd); + } + if (curdeviceID == -1) + return 0; + + sprintf(device, "/dev/hidraw%d", curdeviceID); + LOGD(" thread device =%s ", device ); + if ( (hidraw_fd = open(device, O_RDWR | O_NONBLOCK) ) < 0 ) { + printf("cann't open path:%s!!!\n", device); + return 0; + } + int checkvalue[300] ; + int countcheck = 0; + int count = 0; + int ritemcounts = 15; + //**************************************** + + while ( !exitPending() ) { //requietexit() or requietexitWait() not call + //loop codes + //LOGD("while 2.4G %s ", __FUNCTION__); + + memset(buf, 0x0, 32); + for (int ritem = 0; ritem < ritemcounts ; ritem++ ) { + read_size = read(hidraw_fd, buf, 32); + //for (int i = 0; i < 32; i++) + //ALOGD("read_size %d ", read_size); + if (debug) { + count ++; + if (count == 3000) { + LOGD("%02x %02x %02x %02x %02x %02x ", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]); + count = 0; + } + } + if (read_size < 0 ) { + + } + + checkvalue[countcheck] = buf[4] & 0x1f; + if (countcheck == 299) { + int checkcountvalue = 0; + for (int icheck = 0; icheck < countcheck ; icheck++ ) + checkcountvalue += checkvalue[icheck]; + // LOGD("checkcountvalue = %d",checkcountvalue); + if (checkcountvalue <= 5 * 4) { + if (HeadsetConnectState == true) { + if (debug) { + LOGD("headset connect false"); + LOGD("headset connect false"); + } + + mpObserver->onHeadSetDetect(0, 0); + //usleep(1000 * 200); + } + HeadsetConnectState = false; + } else if (checkcountvalue >= 200 * 4) { + if (HeadsetConnectState == false) { + if (debug) { + LOGD("headset connect true"); + LOGD("headset connect true"); + } + mpObserver->onHeadSetDetect(1, 0); + //usleep(1000 * 200); + } + HeadsetConnectState = true; + } + countcheck = 0; + } + countcheck ++; + + // bit 0: headset mic in/off; bit 1:headset on/off; bit 2: headphone on/off; bit 3: soundbar on/off ;bit 4: subwoofer on/off + /* else if (buf[4] & 0x1f) + { + if (HeadsetConnectState == false) + { + if (debug) + { + ALOGD("headset connect true"); + ALOGD("headset connect true"); + } + android::TvService::getIntance()->SendDtvStats(1,0,0,0,0,0); + //usleep(1000 * 200); + } + HeadsetConnectState = true; + } + else + { + if (HeadsetConnectState == true) + { + if (debug) + { + ALOGD("headset connect false"); + ALOGD("headset connect false"); + } + android::TvService::getIntance()->SendDtvStats(2,0,0,0,0,0); + //usleep(1000 * 200); + } + HeadsetConnectState = false; + }*/ + } + { + //added for fbc thermal setting + tvThermal_cnt++; + if (tvThermal_cnt == 300) { //60 sec + tvThermal_cnt = 0; + fd = open("/sys/class/thermal/thermal_zone0/temp", O_RDONLY); + if (fd < 0) { + LOGE("ERROR: failed to open file error: %d\n", errno); + } else { + read(fd, data, sizeof(data)); + close(fd); + LOGD("thermal temp data = %s ~~~~~~\n", data); + int x = 0; + x = atoi(data); + mpObserver->onThermalDetect(x); + LOGD("int data :%d\n", x); + } + } + } + usleep(1000 * 200); + } + //exit + //return true, run again, return false,not run. + return false; } diff --git a/tvapi/libtv/tvutils/serial_operate.h b/tvapi/libtv/tvutils/serial_operate.h index feb1c9a..a2d0e9a 100644 --- a/tvapi/libtv/tvutils/serial_operate.h +++ b/tvapi/libtv/tvutils/serial_operate.h @@ -5,29 +5,29 @@ class CTv2d4GHeadSetDetect: public CThread { public: - CTv2d4GHeadSetDetect(); - ~CTv2d4GHeadSetDetect(); - - int startDetect(); - - class IHeadSetObserver { - public: - IHeadSetObserver() - {}; - virtual ~IHeadSetObserver() - {}; - virtual void onHeadSetDetect(int state, int para) {}; - virtual void onThermalDetect(int state) {}; - - }; - void setObserver ( IHeadSetObserver *pOb ) - { - mpObserver = pOb; - }; + CTv2d4GHeadSetDetect(); + ~CTv2d4GHeadSetDetect(); + + int startDetect(); + + class IHeadSetObserver { + public: + IHeadSetObserver() + {}; + virtual ~IHeadSetObserver() + {}; + virtual void onHeadSetDetect(int state, int para) {}; + virtual void onThermalDetect(int state) {}; + + }; + void setObserver ( IHeadSetObserver *pOb ) + { + mpObserver = pOb; + }; private: - bool threadLoop(); - IHeadSetObserver *mpObserver; + bool threadLoop(); + IHeadSetObserver *mpObserver; }; diff --git a/tvapi/libtv/tvutils/tvutils.cpp b/tvapi/libtv/tvutils/tvutils.cpp index 88060fb..e6879ca 100644 --- a/tvapi/libtv/tvutils/tvutils.cpp +++ b/tvapi/libtv/tvutils/tvutils.cpp @@ -51,8 +51,8 @@ using namespace android; #define I2C_SMBUS 0x0720 /* SMBus transfer */ struct i2c_msg { - unsigned short addr; /* slave address */ - unsigned short flags; + unsigned short addr; /* slave address */ + unsigned short flags; #define I2C_M_TEN 0x0010 /* this is a ten bit chip address */ #define I2C_M_WR 0x0000 /* write data, from master to slave */ #define I2C_M_RD 0x0001 /* read data, from slave to master */ @@ -62,13 +62,13 @@ struct i2c_msg { #define I2C_M_NO_RD_ACK 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */ #define I2C_M_RECV_LEN 0x0400 /* length will be first received byte */ - unsigned short len; /* msg length */ - unsigned char *buf; /* pointer to msg data */ + unsigned short len; /* msg length */ + unsigned char *buf; /* pointer to msg data */ }; struct i2c_rdwr_ioctl_data { - struct i2c_msg *msgs; - unsigned int nmsgs; + struct i2c_msg *msgs; + unsigned int nmsgs; }; static volatile int mDreamPanelResumeLastBLFlag = 0; @@ -88,410 +88,410 @@ static int iw_duty = 0; static int Miscioctl(const char *file_path, int request, ...) { - int fd = -1, tmp_ret = -1; - int bus_status = 0; - va_list ap; - void *arg; - - if (file_path == NULL) { - LOGE("%s, file path is NULL!!!\n", CFG_SECTION_TV); - return -1; - } + int fd = -1, tmp_ret = -1; + int bus_status = 0; + va_list ap; + void *arg; + + if (file_path == NULL) { + LOGE("%s, file path is NULL!!!\n", CFG_SECTION_TV); + return -1; + } - fd = open(file_path, O_RDWR); - if (fd < 0) { - LOGE("%s, Open %s ERROR(%s)!!\n", CFG_SECTION_TV, file_path, strerror(errno)); - return -1; - } + fd = open(file_path, O_RDWR); + if (fd < 0) { + LOGE("%s, Open %s ERROR(%s)!!\n", CFG_SECTION_TV, file_path, strerror(errno)); + return -1; + } - va_start(ap, request); - arg = va_arg(ap, void *); - va_end(ap); + va_start(ap, request); + arg = va_arg(ap, void *); + va_end(ap); - tmp_ret = ioctl(fd, request, arg); + tmp_ret = ioctl(fd, request, arg); - close(fd); - fd = -1; + close(fd); + fd = -1; - return tmp_ret; + return tmp_ret; } int cfg_get_one_item(const char *key_str, const char *strDelimit, int item_index, char cfg_str[]) { - int cfg_item_ind = 0; - char *token = NULL; - const char *config_value; - char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; - - if (key_str == NULL) { - LOGE("%s, key_str's pointer is NULL.\n", CFG_SECTION_TV); - return -1; - } - - if (cfg_str == NULL) { - LOGE("%s, cfg_str's pointer is NULL.\n", CFG_SECTION_TV); - return -1; - } - - if (item_index < 0) { - LOGE("%s, item_index can't be less than 0.\n", CFG_SECTION_TV); - return -1; - } - - config_value = config_get_str(CFG_SECTION_TV, key_str, "null"); - if (strcasecmp(config_value, "null") == 0) { - cfg_str[0] = '\0'; - LOGE("%s, can't get config \"%s\"!!!\n", CFG_SECTION_TV, key_str); - return -1; - } - - cfg_item_ind = 0; - - memset((void *)data_str, 0, sizeof(data_str)); - strncpy(data_str, config_value, sizeof(data_str) - 1); - - token = strtok(data_str, strDelimit); - while (token != NULL) { - if (cfg_item_ind == item_index) { - strcpy(cfg_str, token); - break; - } - - token = strtok(NULL, strDelimit); - cfg_item_ind += 1; - } - - if (token == NULL) { - cfg_str[0] = '\0'; - return -1; - } - - return 0; + int cfg_item_ind = 0; + char *token = NULL; + const char *config_value; + char data_str[CC_CFG_VALUE_STR_MAX_LEN] = { 0 }; + + if (key_str == NULL) { + LOGE("%s, key_str's pointer is NULL.\n", CFG_SECTION_TV); + return -1; + } + + if (cfg_str == NULL) { + LOGE("%s, cfg_str's pointer is NULL.\n", CFG_SECTION_TV); + return -1; + } + + if (item_index < 0) { + LOGE("%s, item_index can't be less than 0.\n", CFG_SECTION_TV); + return -1; + } + + config_value = config_get_str(CFG_SECTION_TV, key_str, "null"); + if (strcasecmp(config_value, "null") == 0) { + cfg_str[0] = '\0'; + LOGE("%s, can't get config \"%s\"!!!\n", CFG_SECTION_TV, key_str); + return -1; + } + + cfg_item_ind = 0; + + memset((void *)data_str, 0, sizeof(data_str)); + strncpy(data_str, config_value, sizeof(data_str) - 1); + + token = strtok(data_str, strDelimit); + while (token != NULL) { + if (cfg_item_ind == item_index) { + strcpy(cfg_str, token); + break; + } + + token = strtok(NULL, strDelimit); + cfg_item_ind += 1; + } + + if (token == NULL) { + cfg_str[0] = '\0'; + return -1; + } + + return 0; } int cfg_split(char *line_data, char *strDelimit, int *item_cnt, char **item_bufs) { - int i = 0, tmp_cnt = 0; - char *token = NULL; + int i = 0, tmp_cnt = 0; + char *token = NULL; - if (line_data == NULL) { - LOGE("%s, line_data is NULL", CFG_SECTION_TV); - return -1; - } + if (line_data == NULL) { + LOGE("%s, line_data is NULL", CFG_SECTION_TV); + return -1; + } - if (strDelimit == NULL) { - LOGE("%s, strDelimit is NULL", CFG_SECTION_TV); - return -1; - } + if (strDelimit == NULL) { + LOGE("%s, strDelimit is NULL", CFG_SECTION_TV); + return -1; + } - if (item_cnt == NULL) { - LOGE("%s, item_cnt is NULL", CFG_SECTION_TV); - return -1; - } + if (item_cnt == NULL) { + LOGE("%s, item_cnt is NULL", CFG_SECTION_TV); + return -1; + } - if (item_bufs == NULL) { - LOGE("%s, item_bufs is NULL", CFG_SECTION_TV); - return -1; - } + if (item_bufs == NULL) { + LOGE("%s, item_bufs is NULL", CFG_SECTION_TV); + return -1; + } - for (i = 0; i < *item_cnt; i++) { - item_bufs[i] = NULL; - } + for (i = 0; i < *item_cnt; i++) { + item_bufs[i] = NULL; + } - token = strtok(line_data, strDelimit); + token = strtok(line_data, strDelimit); - while (token != NULL) { - item_bufs[tmp_cnt] = token; + while (token != NULL) { + item_bufs[tmp_cnt] = token; - token = strtok(NULL, strDelimit); + token = strtok(NULL, strDelimit); - tmp_cnt += 1; - if (tmp_cnt >= *item_cnt) { - break; - } - } + tmp_cnt += 1; + if (tmp_cnt >= *item_cnt) { + break; + } + } - *item_cnt = tmp_cnt; + *item_cnt = tmp_cnt; - return 0; + return 0; } int ReadADCSpecialChannelValue(int adc_channel_num) { - FILE *fp = NULL; - int rd_data = 0; - char ch_sysfs_path[256] = { 0 }; + FILE *fp = NULL; + int rd_data = 0; + char ch_sysfs_path[256] = { 0 }; - if (adc_channel_num < CC_MIN_ADC_CHANNEL_VAL || adc_channel_num > CC_MAX_ADC_CHANNEL_VAL) { - LOGD("adc channel num must between %d and %d.", CC_MIN_ADC_CHANNEL_VAL, CC_MAX_ADC_CHANNEL_VAL); - return 0; - } + if (adc_channel_num < CC_MIN_ADC_CHANNEL_VAL || adc_channel_num > CC_MAX_ADC_CHANNEL_VAL) { + LOGD("adc channel num must between %d and %d.", CC_MIN_ADC_CHANNEL_VAL, CC_MAX_ADC_CHANNEL_VAL); + return 0; + } - sprintf(ch_sysfs_path, "/sys/class/saradc/saradc_ch%d", adc_channel_num); + sprintf(ch_sysfs_path, "/sys/class/saradc/saradc_ch%d", adc_channel_num); - fp = fopen(ch_sysfs_path, "r"); + fp = fopen(ch_sysfs_path, "r"); - if (fp == NULL) { - LOGE("open %s ERROR(%s)!!\n", ch_sysfs_path, strerror(errno)); - return 0; - } + if (fp == NULL) { + LOGE("open %s ERROR(%s)!!\n", ch_sysfs_path, strerror(errno)); + return 0; + } - fscanf(fp, "%d", &rd_data); + fscanf(fp, "%d", &rd_data); - fclose(fp); + fclose(fp); - return rd_data; + return rd_data; } int Tv_MiscRegs(const char *cmd) { - //#ifdef BRING_UP_DEBUG - FILE *fp = NULL; - fp = fopen("/sys/class/register/reg", "w"); - - if (fp != NULL && cmd != NULL) { - fprintf(fp, "%s", cmd); - } else { - LOGE("Open /sys/class/register/reg ERROR(%s)!!\n", strerror(errno)); - fclose(fp); - return -1; - } - fclose(fp); - //#endif - - return 0; + //#ifdef BRING_UP_DEBUG + FILE *fp = NULL; + fp = fopen("/sys/class/register/reg", "w"); + + if (fp != NULL && cmd != NULL) { + fprintf(fp, "%s", cmd); + } else { + LOGE("Open /sys/class/register/reg ERROR(%s)!!\n", strerror(errno)); + fclose(fp); + return -1; + } + fclose(fp); + //#endif + + return 0; } int TvMisc_SetLVDSSSC(int val) { - FILE *fp; - - fp = fopen("/sys/class/lcd/ss", "w"); - - if (fp != NULL) { - fprintf(fp, "%d", val); - fclose(fp); - } else { - LOGE("open /sys/class/lcd/ss ERROR(%s)!!\n", strerror(errno)); - return -1; - } - return 0; + FILE *fp; + + fp = fopen("/sys/class/lcd/ss", "w"); + + if (fp != NULL) { + fprintf(fp, "%d", val); + fclose(fp); + } else { + LOGE("open /sys/class/lcd/ss ERROR(%s)!!\n", strerror(errno)); + return -1; + } + return 0; } int TvMisc_SetUserCounterTimeOut(int timeout) { - FILE *fp; - - fp = fopen("/sys/devices/platform/aml_wdt/user_pet_timeout", "w"); - - if (fp != NULL) { - fprintf(fp, "%d", timeout); - fclose(fp); - } else { - LOGE("=OSD CPP=> open /sys/devices/platform/aml_wdt/user_pet_timeout ERROR(%s)!!\n", strerror(errno)); - return -1; - } - return 0; + FILE *fp; + + fp = fopen("/sys/devices/platform/aml_wdt/user_pet_timeout", "w"); + + if (fp != NULL) { + fprintf(fp, "%d", timeout); + fclose(fp); + } else { + LOGE("=OSD CPP=> open /sys/devices/platform/aml_wdt/user_pet_timeout ERROR(%s)!!\n", strerror(errno)); + return -1; + } + return 0; } int TvMisc_SetUserCounter(int count) { - FILE *fp; + FILE *fp; - fp = fopen("/sys/module/aml_wdt/parameters/user_pet", "w"); + fp = fopen("/sys/module/aml_wdt/parameters/user_pet", "w"); - if (fp != NULL) { - fprintf(fp, "%d", count); - fclose(fp); - } else { - LOGE("=OSD CPP=> open /sys/devices/platform/aml_wdt/user_pet ERROR(%s)!!\n", strerror(errno)); - return -1; - } + if (fp != NULL) { + fprintf(fp, "%d", count); + fclose(fp); + } else { + LOGE("=OSD CPP=> open /sys/devices/platform/aml_wdt/user_pet ERROR(%s)!!\n", strerror(errno)); + return -1; + } - fclose(fp); + fclose(fp); - return 0; + return 0; } int TvMisc_SetUserPetResetEnable(int enable) { - FILE *fp; + FILE *fp; - fp = fopen("/sys/module/aml_wdt/parameters/user_pet_reset_enable", "w"); + fp = fopen("/sys/module/aml_wdt/parameters/user_pet_reset_enable", "w"); - if (fp != NULL) { - fprintf(fp, "%d", enable); - fclose(fp); - } else { - LOGE("=OSD CPP=> open /sys/devices/platform/aml_wdt/user_pet_reset_enable ERROR(%s)!!\n", strerror(errno)); - return -1; - } + if (fp != NULL) { + fprintf(fp, "%d", enable); + fclose(fp); + } else { + LOGE("=OSD CPP=> open /sys/devices/platform/aml_wdt/user_pet_reset_enable ERROR(%s)!!\n", strerror(errno)); + return -1; + } - fclose(fp); + fclose(fp); - return 0; + return 0; } int TvMisc_SetSystemPetResetEnable(int enable) { - FILE *fp; + FILE *fp; - fp = fopen("/sys/devices/platform/aml_wdt/reset_enable", "w"); + fp = fopen("/sys/devices/platform/aml_wdt/reset_enable", "w"); - if (fp != NULL) { - fprintf(fp, "%d", enable); - fclose(fp); - } else { - LOGE("=OSD CPP=> open /sys/devices/platform/aml_wdt/reset_enable ERROR(%s)!!\n", strerror(errno)); - return -1; - } + if (fp != NULL) { + fprintf(fp, "%d", enable); + fclose(fp); + } else { + LOGE("=OSD CPP=> open /sys/devices/platform/aml_wdt/reset_enable ERROR(%s)!!\n", strerror(errno)); + return -1; + } - fclose(fp); + fclose(fp); - return 0; + return 0; } int TvMisc_SetSystemPetEnable(int enable) { - FILE *fp; + FILE *fp; - fp = fopen("/sys/devices/platform/aml_wdt/ping_enable", "w"); + fp = fopen("/sys/devices/platform/aml_wdt/ping_enable", "w"); - if (fp != NULL) { - fprintf(fp, "%d", enable); - fclose(fp); - } else { - LOGE("=OSD CPP=> open /sys/devices/platform/aml_wdt/ping_enable ERROR(%s)!!\n", strerror(errno)); - return -1; - } + if (fp != NULL) { + fprintf(fp, "%d", enable); + fclose(fp); + } else { + LOGE("=OSD CPP=> open /sys/devices/platform/aml_wdt/ping_enable ERROR(%s)!!\n", strerror(errno)); + return -1; + } - fclose(fp); + fclose(fp); - return 0; + return 0; } int TvMisc_SetSystemPetCounterTimeOut(int timeout) { - FILE *fp; + FILE *fp; - fp = fopen("/sys/devices/platform/aml_wdt/wdt_timeout", "w"); + fp = fopen("/sys/devices/platform/aml_wdt/wdt_timeout", "w"); - if (fp != NULL) { - fprintf(fp, "%d", timeout); - fclose(fp); - } else { - LOGE("=OSD CPP=> open /sys/devices/platform/aml_wdt/wdt_timeout ERROR(%s)!!\n", strerror(errno)); - return -1; - } + if (fp != NULL) { + fprintf(fp, "%d", timeout); + fclose(fp); + } else { + LOGE("=OSD CPP=> open /sys/devices/platform/aml_wdt/wdt_timeout ERROR(%s)!!\n", strerror(errno)); + return -1; + } - fclose(fp); + fclose(fp); - return 0; + return 0; } #define MEMERASE _IOW('M', 2, struct erase_info_user) static int memerase(int fd, struct erase_info_user *erase) { - return (ioctl (fd, MEMERASE, erase)); + return (ioctl (fd, MEMERASE, erase)); } #define CS_ATV_SOCKET_FILE_NAME "/dev/socket/datv_sock" static int setServer(const char *fileName) { - int ret = -1, sock = -1; - struct sockaddr_un srv_addr; - - sock = socket(PF_UNIX, SOCK_STREAM, 0); - if (sock < 0) { - LOGE("%s, socket create failed (errno = %d: %s).\n", CFG_SECTION_TV, errno, strerror(errno)); - return -1; - } - - //set server addr_param - srv_addr.sun_family = AF_UNIX; - strncpy(srv_addr.sun_path, CS_ATV_SOCKET_FILE_NAME, sizeof(srv_addr.sun_path) - 1); - unlink(CS_ATV_SOCKET_FILE_NAME); - - //bind sockfd & addr - ret = bind(sock, (struct sockaddr *) &srv_addr, sizeof(srv_addr)); - if (ret == -1) { - LOGE("%s, cannot bind server socket.\n", CFG_SECTION_TV); - close(sock); - unlink(CS_ATV_SOCKET_FILE_NAME); - return -1; - } - - //listen sockfd - ret = listen(sock, 1); - if (ret == -1) { - LOGE("%s, cannot listen the client connect request.\n", CFG_SECTION_TV); - close(sock); - unlink(CS_ATV_SOCKET_FILE_NAME); - return -1; - } - - return sock; + int ret = -1, sock = -1; + struct sockaddr_un srv_addr; + + sock = socket(PF_UNIX, SOCK_STREAM, 0); + if (sock < 0) { + LOGE("%s, socket create failed (errno = %d: %s).\n", CFG_SECTION_TV, errno, strerror(errno)); + return -1; + } + + //set server addr_param + srv_addr.sun_family = AF_UNIX; + strncpy(srv_addr.sun_path, CS_ATV_SOCKET_FILE_NAME, sizeof(srv_addr.sun_path) - 1); + unlink(CS_ATV_SOCKET_FILE_NAME); + + //bind sockfd & addr + ret = bind(sock, (struct sockaddr *) &srv_addr, sizeof(srv_addr)); + if (ret == -1) { + LOGE("%s, cannot bind server socket.\n", CFG_SECTION_TV); + close(sock); + unlink(CS_ATV_SOCKET_FILE_NAME); + return -1; + } + + //listen sockfd + ret = listen(sock, 1); + if (ret == -1) { + LOGE("%s, cannot listen the client connect request.\n", CFG_SECTION_TV); + close(sock); + unlink(CS_ATV_SOCKET_FILE_NAME); + return -1; + } + + return sock; } static int acceptMessage(int listen_fd) { - int ret, com_fd; - socklen_t len; - struct sockaddr_un clt_addr; - - //have connect request use accept - len = sizeof(clt_addr); - com_fd = accept(listen_fd, (struct sockaddr *) &clt_addr, &len); - if (com_fd < 0) { - LOGE("%s, cannot accept client connect request.\n", CFG_SECTION_TV); - close(listen_fd); - unlink(CS_ATV_SOCKET_FILE_NAME); - return -1; - } - - LOGD("%s, com_fd = %d\n", CFG_SECTION_TV, com_fd); - - return com_fd; + int ret, com_fd; + socklen_t len; + struct sockaddr_un clt_addr; + + //have connect request use accept + len = sizeof(clt_addr); + com_fd = accept(listen_fd, (struct sockaddr *) &clt_addr, &len); + if (com_fd < 0) { + LOGE("%s, cannot accept client connect request.\n", CFG_SECTION_TV); + close(listen_fd); + unlink(CS_ATV_SOCKET_FILE_NAME); + return -1; + } + + LOGD("%s, com_fd = %d\n", CFG_SECTION_TV, com_fd); + + return com_fd; } static int parse_socket_message(char *msg_str, int *para_cnt, int para_buf[]) { - int para_count = 0, set_mode = 0; - char *token = NULL; - - set_mode = -1; - - token = strtok(msg_str, ","); - if (token != NULL) { - if (strcasecmp(token, "quit") == 0) { - set_mode = 0; - } else if (strcasecmp(token, "SetAudioVolumeCompensationVal") == 0) { - set_mode = 1; - } else if (strcasecmp(token, "set3dmode") == 0) { - set_mode = 2; - } else if (strcasecmp(token, "setdisplaymode") == 0) { - set_mode = 3; - } - } + int para_count = 0, set_mode = 0; + char *token = NULL; + + set_mode = -1; + + token = strtok(msg_str, ","); + if (token != NULL) { + if (strcasecmp(token, "quit") == 0) { + set_mode = 0; + } else if (strcasecmp(token, "SetAudioVolumeCompensationVal") == 0) { + set_mode = 1; + } else if (strcasecmp(token, "set3dmode") == 0) { + set_mode = 2; + } else if (strcasecmp(token, "setdisplaymode") == 0) { + set_mode = 3; + } + } - if (set_mode != 1 && set_mode != 2 && set_mode != 3) { - return set_mode; - } + if (set_mode != 1 && set_mode != 2 && set_mode != 3) { + return set_mode; + } - para_count = 0; + para_count = 0; - token = strtok(NULL, ","); - while (token != NULL) { - para_buf[para_count] = strtol(token, NULL, 10); - para_count += 1; + token = strtok(NULL, ","); + while (token != NULL) { + para_buf[para_count] = strtol(token, NULL, 10); + para_count += 1; - token = strtok(NULL, ","); - } + token = strtok(NULL, ","); + } - *para_cnt = para_count; + *para_cnt = para_count; - return set_mode; + return set_mode; } /*static void* socket_thread_entry(void *arg) @@ -606,288 +606,288 @@ static int parse_socket_message(char *msg_str, int *para_cnt, int para_buf[]) static int connectToServer(char *file_name) { - int tmp_ret = 0, sock = -1; - struct sockaddr_un addr; - - if (file_name == NULL) { - LOGE("%s, file name is NULL\n", CFG_SECTION_TV); - return -1; - } - - sock = socket(AF_UNIX, SOCK_STREAM, 0); - if (sock < 0) { - LOGE("%s, socket create failed (errno = %d: %s)\n", CFG_SECTION_TV, errno, strerror(errno)); - return -1; - } - - /* connect to socket; fails if file doesn't exist */ - strcpy(addr.sun_path, file_name); // max 108 bytes - addr.sun_family = AF_UNIX; - tmp_ret = connect(sock, (struct sockaddr *) &addr, SUN_LEN(&addr)); - if (tmp_ret < 0) { - // ENOENT means socket file doesn't exist - // ECONNREFUSED means socket exists but nobody is listening - LOGE("%s, AF_UNIX connect failed for '%s': %s\n", CFG_SECTION_TV, file_name, strerror(errno)); - close(sock); - return -1; - } - - return sock; + int tmp_ret = 0, sock = -1; + struct sockaddr_un addr; + + if (file_name == NULL) { + LOGE("%s, file name is NULL\n", CFG_SECTION_TV); + return -1; + } + + sock = socket(AF_UNIX, SOCK_STREAM, 0); + if (sock < 0) { + LOGE("%s, socket create failed (errno = %d: %s)\n", CFG_SECTION_TV, errno, strerror(errno)); + return -1; + } + + /* connect to socket; fails if file doesn't exist */ + strcpy(addr.sun_path, file_name); // max 108 bytes + addr.sun_family = AF_UNIX; + tmp_ret = connect(sock, (struct sockaddr *) &addr, SUN_LEN(&addr)); + if (tmp_ret < 0) { + // ENOENT means socket file doesn't exist + // ECONNREFUSED means socket exists but nobody is listening + LOGE("%s, AF_UNIX connect failed for '%s': %s\n", CFG_SECTION_TV, file_name, strerror(errno)); + close(sock); + return -1; + } + + return sock; } static int realSendSocketMsg(char *file_name, char *msg_str, char recv_buf[]) { - int sock = -1, rd_len = 0; - char tmp_buf[1024]; + int sock = -1, rd_len = 0; + char tmp_buf[1024]; - if (file_name == NULL) { - LOGE("%s, file name is NULL\n", CFG_SECTION_TV); - return -1; - } + if (file_name == NULL) { + LOGE("%s, file name is NULL\n", CFG_SECTION_TV); + return -1; + } - if (msg_str == NULL) { - LOGE("%s, msg string is NULL\n", CFG_SECTION_TV); - return -1; - } + if (msg_str == NULL) { + LOGE("%s, msg string is NULL\n", CFG_SECTION_TV); + return -1; + } - LOGD("%s, message to server (%d)) : %s\n", CFG_SECTION_TV, strlen(msg_str), msg_str); + LOGD("%s, message to server (%d)) : %s\n", CFG_SECTION_TV, strlen(msg_str), msg_str); - sock = connectToServer(file_name); + sock = connectToServer(file_name); - if (sock >= 0) { - write(sock, msg_str, strlen(msg_str) + 1); + if (sock >= 0) { + write(sock, msg_str, strlen(msg_str) + 1); - if (recv_buf == NULL) { - memset((void *) tmp_buf, 0, sizeof(tmp_buf)); - rd_len = read(sock, tmp_buf, sizeof(tmp_buf)); - LOGD("%s, message from server (%d)) : %s\n", CFG_SECTION_TV, rd_len, tmp_buf); - } else { - rd_len = read(sock, recv_buf, 1024); - LOGD("%s, message from server (%d)) : %s\n", CFG_SECTION_TV, rd_len, recv_buf); - } + if (recv_buf == NULL) { + memset((void *) tmp_buf, 0, sizeof(tmp_buf)); + rd_len = read(sock, tmp_buf, sizeof(tmp_buf)); + LOGD("%s, message from server (%d)) : %s\n", CFG_SECTION_TV, rd_len, tmp_buf); + } else { + rd_len = read(sock, recv_buf, 1024); + LOGD("%s, message from server (%d)) : %s\n", CFG_SECTION_TV, rd_len, recv_buf); + } - close(sock); - sock = -1; + close(sock); + sock = -1; - return 0; - } + return 0; + } - return -1; + return -1; } int I2C_WriteNbyte(int i2c_no, int dev_addr, int slave_addr, int len, unsigned char data_buf[]) { - int tmp_ret = 0; - struct i2c_rdwr_ioctl_data ctl_data; - struct i2c_msg msg; - unsigned char msg_buf[52]; - int device_fd = -1; - - memset((void *) msg_buf, 0, 52); - - msg_buf[0] = (unsigned char) (slave_addr >> 8); - msg_buf[1] = (unsigned char) (slave_addr & 0x00ff); - - if (data_buf == NULL) { - return -1; - } - - if (len < 50) { - memcpy((void *) &msg_buf[2], data_buf, len); - } else { - LOGE("I2C_WriteNbyte len(%d) > 50, error!\n", len); - return -1; - } - - msg.addr = dev_addr; - msg.flags = I2C_M_WR; - msg.len = 2 + len; - msg.buf = msg_buf; - ctl_data.nmsgs = 1; - ctl_data.msgs = &msg; - - if (i2c_no == 1) { - device_fd = open(CS_I2C_1_DEV_PATH, O_RDWR); - if (device_fd < 0) { - LOGE("%s, Open device file %S error: %s.\n", CFG_SECTION_TV, CS_I2C_1_DEV_PATH, strerror(errno)); - return -1; - } - } else if (i2c_no == 2) { - device_fd = open(CS_I2C_2_DEV_PATH, O_RDWR); - if (device_fd < 0) { - LOGE("%s, Open device file %S error: %s.\n", CFG_SECTION_TV, CS_I2C_2_DEV_PATH, strerror(errno)); - return -1; - } - } else { - LOGE("%s, invalid i2c no (%d).\n", CFG_SECTION_TV, i2c_no); - return -1; - } - - tmp_ret = ioctl(device_fd, I2C_RDWR, &ctl_data); - - usleep(10 * 1000); - if (device_fd >= 0) { - close(device_fd); - device_fd = -1; - } - return tmp_ret; + int tmp_ret = 0; + struct i2c_rdwr_ioctl_data ctl_data; + struct i2c_msg msg; + unsigned char msg_buf[52]; + int device_fd = -1; + + memset((void *) msg_buf, 0, 52); + + msg_buf[0] = (unsigned char) (slave_addr >> 8); + msg_buf[1] = (unsigned char) (slave_addr & 0x00ff); + + if (data_buf == NULL) { + return -1; + } + + if (len < 50) { + memcpy((void *) &msg_buf[2], data_buf, len); + } else { + LOGE("I2C_WriteNbyte len(%d) > 50, error!\n", len); + return -1; + } + + msg.addr = dev_addr; + msg.flags = I2C_M_WR; + msg.len = 2 + len; + msg.buf = msg_buf; + ctl_data.nmsgs = 1; + ctl_data.msgs = &msg; + + if (i2c_no == 1) { + device_fd = open(CS_I2C_1_DEV_PATH, O_RDWR); + if (device_fd < 0) { + LOGE("%s, Open device file %S error: %s.\n", CFG_SECTION_TV, CS_I2C_1_DEV_PATH, strerror(errno)); + return -1; + } + } else if (i2c_no == 2) { + device_fd = open(CS_I2C_2_DEV_PATH, O_RDWR); + if (device_fd < 0) { + LOGE("%s, Open device file %S error: %s.\n", CFG_SECTION_TV, CS_I2C_2_DEV_PATH, strerror(errno)); + return -1; + } + } else { + LOGE("%s, invalid i2c no (%d).\n", CFG_SECTION_TV, i2c_no); + return -1; + } + + tmp_ret = ioctl(device_fd, I2C_RDWR, &ctl_data); + + usleep(10 * 1000); + if (device_fd >= 0) { + close(device_fd); + device_fd = -1; + } + return tmp_ret; } int I2C_ReadNbyte(int i2c_no, int dev_addr, int slave_addr, int len, unsigned char data_buf[]) { - int tmp_ret = 0; - struct i2c_rdwr_ioctl_data ctl_data; - struct i2c_msg msg; - unsigned char msg_buf[52]; - int device_fd = -1; - - memset((void *) msg_buf, 0, 52); - - if (data_buf == NULL) { - return -1; - } - - if (len < 50) { - memcpy((void *) &msg_buf[2], data_buf, len); - } else { - LOGE("I2C_WriteNbyte len(%d) > 50, error!\n", len); - return -1; - } - - msg_buf[0] = (unsigned char) (slave_addr >> 8); - msg_buf[1] = (unsigned char) (slave_addr & 0x00ff); - msg.addr = dev_addr; - msg.flags = I2C_M_WR; - msg.len = 2; - msg.buf = msg_buf; - ctl_data.nmsgs = 1; - ctl_data.msgs = &msg; - - if (i2c_no == 1) { - device_fd = open(CS_I2C_1_DEV_PATH, O_RDWR); - if (device_fd < 0) { - LOGE("%s, Open device file %S error: %s.\n", CFG_SECTION_TV, CS_I2C_1_DEV_PATH, strerror(errno)); - return -1; - } - } else if (i2c_no == 2) { - device_fd = open(CS_I2C_2_DEV_PATH, O_RDWR); - if (device_fd < 0) { - LOGE("%s, Open device file %S error: %s.\n", CFG_SECTION_TV, CS_I2C_2_DEV_PATH, strerror(errno)); - return -1; - } - } else { - LOGE("%s, invalid i2c no (%d).\n", CFG_SECTION_TV, i2c_no); - return -1; - } - - tmp_ret = ioctl(device_fd, I2C_RDWR, &ctl_data); - - msg.addr = dev_addr; - msg.flags |= I2C_M_RD; - msg.len = len; - msg.buf = data_buf; - ctl_data.nmsgs = 1; - ctl_data.msgs = &msg; - - tmp_ret = ioctl(device_fd, I2C_RDWR, &ctl_data); - - usleep(10 * 1000); - - if (device_fd >= 0) { - close(device_fd); - device_fd = -1; - } - return tmp_ret; + int tmp_ret = 0; + struct i2c_rdwr_ioctl_data ctl_data; + struct i2c_msg msg; + unsigned char msg_buf[52]; + int device_fd = -1; + + memset((void *) msg_buf, 0, 52); + + if (data_buf == NULL) { + return -1; + } + + if (len < 50) { + memcpy((void *) &msg_buf[2], data_buf, len); + } else { + LOGE("I2C_WriteNbyte len(%d) > 50, error!\n", len); + return -1; + } + + msg_buf[0] = (unsigned char) (slave_addr >> 8); + msg_buf[1] = (unsigned char) (slave_addr & 0x00ff); + msg.addr = dev_addr; + msg.flags = I2C_M_WR; + msg.len = 2; + msg.buf = msg_buf; + ctl_data.nmsgs = 1; + ctl_data.msgs = &msg; + + if (i2c_no == 1) { + device_fd = open(CS_I2C_1_DEV_PATH, O_RDWR); + if (device_fd < 0) { + LOGE("%s, Open device file %S error: %s.\n", CFG_SECTION_TV, CS_I2C_1_DEV_PATH, strerror(errno)); + return -1; + } + } else if (i2c_no == 2) { + device_fd = open(CS_I2C_2_DEV_PATH, O_RDWR); + if (device_fd < 0) { + LOGE("%s, Open device file %S error: %s.\n", CFG_SECTION_TV, CS_I2C_2_DEV_PATH, strerror(errno)); + return -1; + } + } else { + LOGE("%s, invalid i2c no (%d).\n", CFG_SECTION_TV, i2c_no); + return -1; + } + + tmp_ret = ioctl(device_fd, I2C_RDWR, &ctl_data); + + msg.addr = dev_addr; + msg.flags |= I2C_M_RD; + msg.len = len; + msg.buf = data_buf; + ctl_data.nmsgs = 1; + ctl_data.msgs = &msg; + + tmp_ret = ioctl(device_fd, I2C_RDWR, &ctl_data); + + usleep(10 * 1000); + + if (device_fd >= 0) { + close(device_fd); + device_fd = -1; + } + return tmp_ret; } int SetFileAttrValue(const char *fp, const char value[]) { - int fd = -1, ret = -1; + int fd = -1, ret = -1; - pthread_mutex_lock(&file_attr_control_flag_mutex); + pthread_mutex_lock(&file_attr_control_flag_mutex); - fd = open(fp, O_RDWR); + fd = open(fp, O_RDWR); - if (fd < 0) { - LOGE("open %s ERROR(%s)!!\n", fp, strerror(errno)); - pthread_mutex_unlock(&file_attr_control_flag_mutex); - return -1; - } + if (fd < 0) { + LOGE("open %s ERROR(%s)!!\n", fp, strerror(errno)); + pthread_mutex_unlock(&file_attr_control_flag_mutex); + return -1; + } - ret = write(fd, value, strlen(value)); - close(fd); + ret = write(fd, value, strlen(value)); + close(fd); - pthread_mutex_unlock(&file_attr_control_flag_mutex); - return ret; + pthread_mutex_unlock(&file_attr_control_flag_mutex); + return ret; } int GetFileAttrIntValue(const char *fp) { - int fd = -1, ret = -1; - int temp = -1; - char temp_str[32]; - - memset(temp_str, 0, 32); - - fd = open(fp, O_RDWR); - - if (fd <= 0) { - LOGE("open %s ERROR(%s)!!\n", fp, strerror(errno)); - return -1; - } - - if (read(fd, temp_str, sizeof(temp_str)) > 0) { - if (sscanf(temp_str, "%d", &temp) >= 0) { - LOGD("%s -> get %s value =%d!\n", CFG_SECTION_TV, fp, temp); - close(fd); - return temp; - } else { - LOGE("%s -> get %s value error(%s)\n", CFG_SECTION_TV, fp, strerror(errno)); - close(fd); - return -1; - } - } - - close(fd); - return -1; + int fd = -1, ret = -1; + int temp = -1; + char temp_str[32]; + + memset(temp_str, 0, 32); + + fd = open(fp, O_RDWR); + + if (fd <= 0) { + LOGE("open %s ERROR(%s)!!\n", fp, strerror(errno)); + return -1; + } + + if (read(fd, temp_str, sizeof(temp_str)) > 0) { + if (sscanf(temp_str, "%d", &temp) >= 0) { + LOGD("%s -> get %s value =%d!\n", CFG_SECTION_TV, fp, temp); + close(fd); + return temp; + } else { + LOGE("%s -> get %s value error(%s)\n", CFG_SECTION_TV, fp, strerror(errno)); + close(fd); + return -1; + } + } + + close(fd); + return -1; } int *GetFileAttrIntValueStr(const char *fp) { - int fd = -1, ret = -1; - static int temp[4]; - char temp_str[32]; - int i = 0; - char *p = NULL; - - memset(temp_str, 0, 32); - - fd = open(fp, O_RDWR); - - if (fd <= 0) { - LOGE("open %s ERROR(%s)!!\n", fp, strerror(errno)); - return NULL; - } - - if (read(fd, temp_str, sizeof(temp_str)) > 0) { - LOGD("%s,temp_str = %s\n", CFG_SECTION_TV, temp_str); - p = strtok(temp_str, " "); - while (p != NULL) { - sscanf(p, "%d", &temp[i]); - p = strtok(NULL, " "); - i = i + 1; - } - close(fd); - return temp; - } - - close(fd); - return NULL; + int fd = -1, ret = -1; + static int temp[4]; + char temp_str[32]; + int i = 0; + char *p = NULL; + + memset(temp_str, 0, 32); + + fd = open(fp, O_RDWR); + + if (fd <= 0) { + LOGE("open %s ERROR(%s)!!\n", fp, strerror(errno)); + return NULL; + } + + if (read(fd, temp_str, sizeof(temp_str)) > 0) { + LOGD("%s,temp_str = %s\n", CFG_SECTION_TV, temp_str); + p = strtok(temp_str, " "); + while (p != NULL) { + sscanf(p, "%d", &temp[i]); + p = strtok(NULL, " "); + i = i + 1; + } + close(fd); + return temp; + } + + close(fd); + return NULL; } int Get_Fixed_NonStandard(void) { - return GetFileAttrIntValue("/sys/module/tvin_afe/parameters/force_nostd"); + return GetFileAttrIntValue("/sys/module/tvin_afe/parameters/force_nostd"); } //0-turn off @@ -895,204 +895,204 @@ int Get_Fixed_NonStandard(void) //2-force normal int Set_Fixed_NonStandard(int value) { - int fd = -1, ret = -1; - char set_vale[32]; - memset(set_vale, '\0', 32); + int fd = -1, ret = -1; + char set_vale[32]; + memset(set_vale, '\0', 32); - sprintf(set_vale, "%d", value); + sprintf(set_vale, "%d", value); - fd = open("/sys/module/tvin_afe/parameters/force_nostd", O_RDWR); + fd = open("/sys/module/tvin_afe/parameters/force_nostd", O_RDWR); - if (fd >= 0) { - ret = write(fd, set_vale, strlen(set_vale)); - } + if (fd >= 0) { + ret = write(fd, set_vale, strlen(set_vale)); + } - if (ret <= 0) { - LOGE("%s -> set /sys/module/tvin_afe/parameters/force_nostd error(%s)!\n", CFG_SECTION_TV, strerror(errno)); - } + if (ret <= 0) { + LOGE("%s -> set /sys/module/tvin_afe/parameters/force_nostd error(%s)!\n", CFG_SECTION_TV, strerror(errno)); + } - close(fd); + close(fd); - return ret; + return ret; } static void *UserPet_TreadRun(void *data) { - while (is_turnon_user_pet_thread == true) { - if (is_user_pet_thread_start == true) { - usleep(1000 * 1000); - if (++user_counter == 0xffffffff) - user_counter = 1; - TvMisc_SetUserCounter(user_counter); - } else { - usleep(10000 * 1000); - } - } - if (user_pet_terminal == 1) { - user_counter = 0; - } else { - user_counter = 1; - } - TvMisc_SetUserCounter(user_counter); - return ((void *) 0); + while (is_turnon_user_pet_thread == true) { + if (is_user_pet_thread_start == true) { + usleep(1000 * 1000); + if (++user_counter == 0xffffffff) + user_counter = 1; + TvMisc_SetUserCounter(user_counter); + } else { + usleep(10000 * 1000); + } + } + if (user_pet_terminal == 1) { + user_counter = 0; + } else { + user_counter = 1; + } + TvMisc_SetUserCounter(user_counter); + return ((void *) 0); } static int UserPet_CreateThread(void) { - int ret = 0; - pthread_attr_t attr; - struct sched_param param; - - is_turnon_user_pet_thread = true; - is_user_pet_thread_start = true; - - pthread_attr_init(&attr); - pthread_attr_setschedpolicy(&attr, SCHED_RR); - param.sched_priority = 1; - pthread_attr_setschedparam(&attr, ¶m); - ret = pthread_create(&UserPet_ThreadId, &attr, &UserPet_TreadRun, NULL); - pthread_attr_destroy(&attr); - return ret; + int ret = 0; + pthread_attr_t attr; + struct sched_param param; + + is_turnon_user_pet_thread = true; + is_user_pet_thread_start = true; + + pthread_attr_init(&attr); + pthread_attr_setschedpolicy(&attr, SCHED_RR); + param.sched_priority = 1; + pthread_attr_setschedparam(&attr, ¶m); + ret = pthread_create(&UserPet_ThreadId, &attr, &UserPet_TreadRun, NULL); + pthread_attr_destroy(&attr); + return ret; } static void UserPet_KillThread(void) { - int i = 0, dly = 600; - is_turnon_user_pet_thread = false; - is_user_pet_thread_start = false; - for (i = 0; i < 2; i++) { - usleep(dly * 1000); - } - pthread_join(UserPet_ThreadId, NULL); - UserPet_ThreadId = 0; - LOGD("%s, done.", CFG_SECTION_TV); + int i = 0, dly = 600; + is_turnon_user_pet_thread = false; + is_user_pet_thread_start = false; + for (i = 0; i < 2; i++) { + usleep(dly * 1000); + } + pthread_join(UserPet_ThreadId, NULL); + UserPet_ThreadId = 0; + LOGD("%s, done.", CFG_SECTION_TV); } void TvMisc_EnableWDT(bool kernelpet_disable, unsigned int userpet_enable, unsigned int kernelpet_timeout, unsigned int userpet_timeout, unsigned int userpet_reset) { - TvMisc_SetSystemPetCounterTimeOut(kernelpet_timeout); - TvMisc_SetSystemPetEnable(1); - if (kernelpet_disable) { - TvMisc_SetSystemPetResetEnable(0); - } else { - TvMisc_SetSystemPetResetEnable(1); - } - if (userpet_enable) { - TvMisc_SetUserCounterTimeOut(userpet_timeout); - TvMisc_SetUserPetResetEnable(userpet_reset); - UserPet_CreateThread(); - } else { - TvMisc_SetUserCounter(0); - TvMisc_SetUserPetResetEnable(0); - } + TvMisc_SetSystemPetCounterTimeOut(kernelpet_timeout); + TvMisc_SetSystemPetEnable(1); + if (kernelpet_disable) { + TvMisc_SetSystemPetResetEnable(0); + } else { + TvMisc_SetSystemPetResetEnable(1); + } + if (userpet_enable) { + TvMisc_SetUserCounterTimeOut(userpet_timeout); + TvMisc_SetUserPetResetEnable(userpet_reset); + UserPet_CreateThread(); + } else { + TvMisc_SetUserCounter(0); + TvMisc_SetUserPetResetEnable(0); + } } void TvMisc_DisableWDT(unsigned int userpet_enable) { - if (userpet_enable) { - user_pet_terminal = 0; - UserPet_KillThread(); - } + if (userpet_enable) { + user_pet_terminal = 0; + UserPet_KillThread(); + } } static int get_hardware_info(char *hardware, unsigned int *revision) { - char data[1024]; - int fd, n; - char *x, *hw, *rev; - - fd = open("/proc/cpuinfo", O_RDONLY); - if (fd < 0) { - return -1; - } - - n = read(fd, data, 1023); - close(fd); - if (n < 0) { - return -1; - } - - data[n] = 0; - - if (hardware != NULL) { - hw = strstr(data, "\nHardware"); - - if (hw) { - x = strstr(hw, ": "); - if (x) { - x += 2; - n = 0; - while (*x && *x != '\n' && !isspace(*x)) { - hardware[n++] = tolower(*x); - x++; - if (n == 31) { - break; - } - } - - hardware[n] = 0; - } - } - } - - if (revision != NULL) { - rev = strstr(data, "\nRevision"); - - if (rev) { - x = strstr(rev, ": "); - if (x) { - *revision = strtoul(x + 2, 0, 16); - } - } - } - - return 0; + char data[1024]; + int fd, n; + char *x, *hw, *rev; + + fd = open("/proc/cpuinfo", O_RDONLY); + if (fd < 0) { + return -1; + } + + n = read(fd, data, 1023); + close(fd); + if (n < 0) { + return -1; + } + + data[n] = 0; + + if (hardware != NULL) { + hw = strstr(data, "\nHardware"); + + if (hw) { + x = strstr(hw, ": "); + if (x) { + x += 2; + n = 0; + while (*x && *x != '\n' && !isspace(*x)) { + hardware[n++] = tolower(*x); + x++; + if (n == 31) { + break; + } + } + + hardware[n] = 0; + } + } + } + + if (revision != NULL) { + rev = strstr(data, "\nRevision"); + + if (rev) { + x = strstr(rev, ": "); + if (x) { + *revision = strtoul(x + 2, 0, 16); + } + } + } + + return 0; } int get_hardware_name(char *hardware) { - int tmp_ret = 0; + int tmp_ret = 0; - if (hardware == NULL) { - return -1; - } + if (hardware == NULL) { + return -1; + } - tmp_ret = get_hardware_info(hardware, NULL); - if (tmp_ret < 0) { - hardware[0] = '\0'; - } + tmp_ret = get_hardware_info(hardware, NULL); + if (tmp_ret < 0) { + hardware[0] = '\0'; + } - return 0; + return 0; } /*---------------delete dir---------------*/ int TvMisc_DeleteDirFiles(const char *strPath, int flag) { - int status; - char tmp[256]; - switch (flag) { - case 0: - sprintf(tmp, "rm -f %s", strPath); - LOGE("%s", tmp); - system(tmp); - break; - case 1: - sprintf(tmp, "cd %s", strPath); - LOGE("%s", tmp); - status = system(tmp); - if (status > 0 || status < 0) - return -1; - sprintf(tmp, "cd %s;rm -rf *", strPath); - system(tmp); - LOGE("%s", tmp); - break; - case 2: - sprintf(tmp, "rm -rf %s", strPath); - LOGE("%s", tmp); - system(tmp); - break; - } - return 0; + int status; + char tmp[256]; + switch (flag) { + case 0: + sprintf(tmp, "rm -f %s", strPath); + LOGE("%s", tmp); + system(tmp); + break; + case 1: + sprintf(tmp, "cd %s", strPath); + LOGE("%s", tmp); + status = system(tmp); + if (status > 0 || status < 0) + return -1; + sprintf(tmp, "cd %s;rm -rf *", strPath); + system(tmp); + LOGE("%s", tmp); + break; + case 2: + sprintf(tmp, "rm -rf %s", strPath); + LOGE("%s", tmp); + system(tmp); + break; + } + return 0; } /*---------------delete dir end-----------*/ @@ -1103,184 +1103,184 @@ int TvMisc_DeleteDirFiles(const char *strPath, int flag) int Tv_Utils_CheckFs(void) { - FILE *f; - char mount_dev[256]; - char mount_dir[256]; - char mount_type[256]; - char mount_opts[256]; - int mount_freq; - int mount_passno; - int match; - int found_ro_fs = 0; - int data_status = 0; - int cache_status = 0; - int atv_status = 0; - int dtv_status = 0; - int param_status = 0; - int cool_reboot = 0; - int recovery_reboot = 0; - - f = fopen("/proc/mounts", "r"); - if (! f) { - /* If we can't read /proc/mounts, just give up */ - return 1; - } - - do { - match = fscanf(f, "%255s %255s %255s %255s %d %d\n", - mount_dev, mount_dir, mount_type, - mount_opts, &mount_freq, &mount_passno); - mount_dev[255] = 0; - mount_dir[255] = 0; - mount_type[255] = 0; - mount_opts[255] = 0; - if ((match == 6) && (!strncmp(mount_dev, "/dev/block", 10))) { - LOGD("%s, %s %s %s %s %d %d!", CFG_SECTION_TV, mount_dev, mount_dir, mount_type, mount_opts, mount_freq, mount_passno); - if (!strncmp(mount_dir, "/param", 6)) { - param_status |= 0x01; - } else if (!strncmp(mount_dir, "/atv", 4)) { - atv_status |= 0x01; - } else if (!strncmp(mount_dir, "/dtv", 4)) { - dtv_status |= 0x01; - } else if (!strncmp(mount_dir, "/data", 5)) { - data_status |= 0x01; - } else if (!strncmp(mount_dir, "/cache", 6)) { - cache_status |= 0x01; - } - if (strstr(mount_opts, "ro")) { - found_ro_fs += 1; - if (!strncmp(mount_dir, "/param", 6)) { - param_status |= 0x02; - } else if (!strncmp(mount_dir, "/atv", 4)) { - atv_status |= 0x02; - } else if (!strncmp(mount_dir, "/dtv", 4)) { - dtv_status |= 0x02; - } else if (!strncmp(mount_dir, "/data", 5)) { - data_status |= 0x02; - } else if (!strncmp(mount_dir, "/cache", 6)) { - cache_status |= 0x02; - } - } - } - } while (match != EOF); - - fclose(f); - - switch (param_status) { - case 0x03: - LOGW("%s, param partition is read-only!", CFG_SECTION_TV); - break; - case 0x00: - LOGW("%s, param partition can not be mounted!", CFG_SECTION_TV); - break; - default: - break; - } - switch (atv_status) { - case 0x03: - LOGW("%s, atv partition is read-only!", CFG_SECTION_TV); - cool_reboot = 1; - //android_reboot(ANDROID_RB_RESTART2, 0, "cool_reboot"); - break; - case 0x00: - LOGW("%s, atv partition can not be mounted!", CFG_SECTION_TV); - recovery_reboot = 1; - //android_reboot(ANDROID_RB_RESTART2, 0, "recovery"); - default: - break; - } - switch (dtv_status) { - case 0x03: - LOGW("%s, dtv partition is read-only!", CFG_SECTION_TV); - //android_reboot(ANDROID_RB_RESTART2, 0, "cool_reboot"); - break; - case 0x00: - LOGW("%s, dtv partition can not be mounted!", CFG_SECTION_TV); - //android_reboot(ANDROID_RB_RESTART2, 0, "recovery"); - default: - break; - } - switch (data_status) { - case 0x03: - LOGW("%s, data partition is read-only!", CFG_SECTION_TV); - cool_reboot = 1; - //android_reboot(ANDROID_RB_RESTART2, 0, "cool_reboot"); - break; - case 0x00: - LOGW("%s, data partition can not be mounted!", CFG_SECTION_TV); - recovery_reboot = 1; - //android_reboot(ANDROID_RB_RESTART2, 0, "recovery"); - break; - default: - break; - } - switch (cache_status) { - case 0x03: - LOGW("%s, cache partition is read-only!", CFG_SECTION_TV); - cool_reboot = 1; - //android_reboot(ANDROID_RB_RESTART2, 0, "cool_reboot"); - break; - case 0x00: - LOGW("%s, cache partition can not be mounted!", CFG_SECTION_TV); - recovery_reboot = 1; - //android_reboot(ANDROID_RB_RESTART2, 0, "recovery"); - break; - default: - break; - } - if (cool_reboot == 1) { - android_reboot(ANDROID_RB_RESTART2, 0, "cool_reboot"); - } - if (recovery_reboot == 1) { - android_reboot(ANDROID_RB_RESTART2, 0, "recovery"); - } - return found_ro_fs; + FILE *f; + char mount_dev[256]; + char mount_dir[256]; + char mount_type[256]; + char mount_opts[256]; + int mount_freq; + int mount_passno; + int match; + int found_ro_fs = 0; + int data_status = 0; + int cache_status = 0; + int atv_status = 0; + int dtv_status = 0; + int param_status = 0; + int cool_reboot = 0; + int recovery_reboot = 0; + + f = fopen("/proc/mounts", "r"); + if (! f) { + /* If we can't read /proc/mounts, just give up */ + return 1; + } + + do { + match = fscanf(f, "%255s %255s %255s %255s %d %d\n", + mount_dev, mount_dir, mount_type, + mount_opts, &mount_freq, &mount_passno); + mount_dev[255] = 0; + mount_dir[255] = 0; + mount_type[255] = 0; + mount_opts[255] = 0; + if ((match == 6) && (!strncmp(mount_dev, "/dev/block", 10))) { + LOGD("%s, %s %s %s %s %d %d!", CFG_SECTION_TV, mount_dev, mount_dir, mount_type, mount_opts, mount_freq, mount_passno); + if (!strncmp(mount_dir, "/param", 6)) { + param_status |= 0x01; + } else if (!strncmp(mount_dir, "/atv", 4)) { + atv_status |= 0x01; + } else if (!strncmp(mount_dir, "/dtv", 4)) { + dtv_status |= 0x01; + } else if (!strncmp(mount_dir, "/data", 5)) { + data_status |= 0x01; + } else if (!strncmp(mount_dir, "/cache", 6)) { + cache_status |= 0x01; + } + if (strstr(mount_opts, "ro")) { + found_ro_fs += 1; + if (!strncmp(mount_dir, "/param", 6)) { + param_status |= 0x02; + } else if (!strncmp(mount_dir, "/atv", 4)) { + atv_status |= 0x02; + } else if (!strncmp(mount_dir, "/dtv", 4)) { + dtv_status |= 0x02; + } else if (!strncmp(mount_dir, "/data", 5)) { + data_status |= 0x02; + } else if (!strncmp(mount_dir, "/cache", 6)) { + cache_status |= 0x02; + } + } + } + } while (match != EOF); + + fclose(f); + + switch (param_status) { + case 0x03: + LOGW("%s, param partition is read-only!", CFG_SECTION_TV); + break; + case 0x00: + LOGW("%s, param partition can not be mounted!", CFG_SECTION_TV); + break; + default: + break; + } + switch (atv_status) { + case 0x03: + LOGW("%s, atv partition is read-only!", CFG_SECTION_TV); + cool_reboot = 1; + //android_reboot(ANDROID_RB_RESTART2, 0, "cool_reboot"); + break; + case 0x00: + LOGW("%s, atv partition can not be mounted!", CFG_SECTION_TV); + recovery_reboot = 1; + //android_reboot(ANDROID_RB_RESTART2, 0, "recovery"); + default: + break; + } + switch (dtv_status) { + case 0x03: + LOGW("%s, dtv partition is read-only!", CFG_SECTION_TV); + //android_reboot(ANDROID_RB_RESTART2, 0, "cool_reboot"); + break; + case 0x00: + LOGW("%s, dtv partition can not be mounted!", CFG_SECTION_TV); + //android_reboot(ANDROID_RB_RESTART2, 0, "recovery"); + default: + break; + } + switch (data_status) { + case 0x03: + LOGW("%s, data partition is read-only!", CFG_SECTION_TV); + cool_reboot = 1; + //android_reboot(ANDROID_RB_RESTART2, 0, "cool_reboot"); + break; + case 0x00: + LOGW("%s, data partition can not be mounted!", CFG_SECTION_TV); + recovery_reboot = 1; + //android_reboot(ANDROID_RB_RESTART2, 0, "recovery"); + break; + default: + break; + } + switch (cache_status) { + case 0x03: + LOGW("%s, cache partition is read-only!", CFG_SECTION_TV); + cool_reboot = 1; + //android_reboot(ANDROID_RB_RESTART2, 0, "cool_reboot"); + break; + case 0x00: + LOGW("%s, cache partition can not be mounted!", CFG_SECTION_TV); + recovery_reboot = 1; + //android_reboot(ANDROID_RB_RESTART2, 0, "recovery"); + break; + default: + break; + } + if (cool_reboot == 1) { + android_reboot(ANDROID_RB_RESTART2, 0, "cool_reboot"); + } + if (recovery_reboot == 1) { + android_reboot(ANDROID_RB_RESTART2, 0, "recovery"); + } + return found_ro_fs; } int Tv_Utils_SetFileAttrStr(const char *file_path, char val_str_buf[]) { - FILE *tmpfp = NULL; + FILE *tmpfp = NULL; - tmpfp = fopen(file_path, "w"); - if (tmpfp == NULL) { - LOGE("%s, write open file %s error(%s)!!!\n", CFG_SECTION_TV, file_path, strerror(errno)); - return -1; - } + tmpfp = fopen(file_path, "w"); + if (tmpfp == NULL) { + LOGE("%s, write open file %s error(%s)!!!\n", CFG_SECTION_TV, file_path, strerror(errno)); + return -1; + } - fputs(val_str_buf, tmpfp); + fputs(val_str_buf, tmpfp); - fclose(tmpfp); - tmpfp = NULL; + fclose(tmpfp); + tmpfp = NULL; - return 0; + return 0; } int Tv_Utils_GetFileAttrStr(const char *file_path, int buf_size, char val_str_buf[]) { - FILE *tmpfp = NULL; + FILE *tmpfp = NULL; - tmpfp = fopen(file_path, "r"); - if (tmpfp == NULL) { - LOGE("%s, read open file %s error(%s)!!!\n", CFG_SECTION_TV, file_path, strerror(errno)); - val_str_buf[0] = '\0'; - return -1; - } + tmpfp = fopen(file_path, "r"); + if (tmpfp == NULL) { + LOGE("%s, read open file %s error(%s)!!!\n", CFG_SECTION_TV, file_path, strerror(errno)); + val_str_buf[0] = '\0'; + return -1; + } - fgets(val_str_buf, buf_size, tmpfp); + fgets(val_str_buf, buf_size, tmpfp); - fclose(tmpfp); - tmpfp = NULL; + fclose(tmpfp); + tmpfp = NULL; - return 0; + return 0; } //check file exist or not bool Tv_Utils_IsFileExist(const char *file_name) { - struct stat tmp_st; + struct stat tmp_st; - return stat(file_name, &tmp_st) == 0; + return stat(file_name, &tmp_st) == 0; } #define CC_EDID_SIZE (256) @@ -1311,416 +1311,416 @@ static unsigned char mDefHDMIEdidBuf[CC_EDID_SIZE] = { static unsigned char mVGAEdidDataBuf[CC_EDID_SIZE]; void monitor_info_set_date ( unsigned char *edidbuf ) { - char prop_value[PROPERTY_VALUE_MAX]; - char tmp[4]; - struct tm *p; - int week = 0; + char prop_value[PROPERTY_VALUE_MAX]; + char tmp[4]; + struct tm *p; + int week = 0; - memset ( prop_value, '\0', PROPERTY_VALUE_MAX ); + memset ( prop_value, '\0', PROPERTY_VALUE_MAX ); - property_get ( "ro.build.date.utc", prop_value, "VERSION_ERROR" ); + property_get ( "ro.build.date.utc", prop_value, "VERSION_ERROR" ); - time_t timep = atoi ( prop_value ); + time_t timep = atoi ( prop_value ); - p = localtime ( &timep ); + p = localtime ( &timep ); - mktime ( p ); + mktime ( p ); - strftime ( prop_value, PROPERTY_VALUE_MAX, "%W.", p ); + strftime ( prop_value, PROPERTY_VALUE_MAX, "%W.", p ); - week = atoi ( prop_value ); + week = atoi ( prop_value ); - edidbuf[16] = week; - edidbuf[17] = ( 1900 + p->tm_year ) - 1990; + edidbuf[16] = week; + edidbuf[17] = ( 1900 + p->tm_year ) - 1990; - LOGD ( "###############%s##############", CFG_SECTION_TV ); - LOGD ( "Week number is %d", week ); - LOGD ( "%d %02d %02d", 1900 + p->tm_year, 1 + p->tm_mon, p->tm_mday ); - LOGD ( "###############%s##############", CFG_SECTION_TV ); + LOGD ( "###############%s##############", CFG_SECTION_TV ); + LOGD ( "Week number is %d", week ); + LOGD ( "%d %02d %02d", 1900 + p->tm_year, 1 + p->tm_mon, p->tm_mday ); + LOGD ( "###############%s##############", CFG_SECTION_TV ); } void monitor_info_set_imagesize ( unsigned char *edidbuf ) { - //panel size info for edid: - //39' : max_horizontal = 86; max_vertical = 48; - //42' : max_horizontal = 93; max_vertical = 52; - //47' : max_horizontal = 104; max_vertical = 60; - //50' : max_horizontal = 110; max_vertical = 62; - //55' : max_horizontal = 121; max_vertical = 71; - int max_horizontal = 104; //47' - int max_vertical = 60; //47' - - edidbuf[21] = max_horizontal; - edidbuf[22] = max_vertical; - - LOGD ( "imagesize max_horizontal %d max_vertical %d", max_horizontal, max_vertical ); + //panel size info for edid: + //39' : max_horizontal = 86; max_vertical = 48; + //42' : max_horizontal = 93; max_vertical = 52; + //47' : max_horizontal = 104; max_vertical = 60; + //50' : max_horizontal = 110; max_vertical = 62; + //55' : max_horizontal = 121; max_vertical = 71; + int max_horizontal = 104; //47' + int max_vertical = 60; //47' + + edidbuf[21] = max_horizontal; + edidbuf[22] = max_vertical; + + LOGD ( "imagesize max_horizontal %d max_vertical %d", max_horizontal, max_vertical ); } void monitor_info_name_init ( unsigned char *edidbuf ) { - int i = 0; + int i = 0; - for ( i = 90; i < 108; i++ ) { - edidbuf[i] = 0; - } + for ( i = 90; i < 108; i++ ) { + edidbuf[i] = 0; + } - edidbuf[93] = 252; + edidbuf[93] = 252; } void monitor_info_set_name ( unsigned char *edidbuf ) { - int i = 0; - int config_value_len; - const char *config_value; - unsigned char str_manufacturer_name[14]; - config_value = config_get_str ( CFG_SECTION_TV, "tvin.hdmiedid.name", "null" ); - - if ( strcmp ( config_value, "null" ) != 0 ) { - config_value_len = strlen ( config_value ); - - if ( config_value_len < 13 ) { - for ( i = 0; i < config_value_len; ++i ) { - str_manufacturer_name[i] = config_value[i]; - } - - for ( i = config_value_len; i < 13; ++i ) { - str_manufacturer_name[i] = ' '; - } - } else { - for ( i = 0; i < 13; ++i ) { - str_manufacturer_name[i] = config_value[i]; - } - } - - } - - for ( i = 0; i < 13; i++ ) { - edidbuf[95 + i] = str_manufacturer_name[i]; - } + int i = 0; + int config_value_len; + const char *config_value; + unsigned char str_manufacturer_name[14]; + config_value = config_get_str ( CFG_SECTION_TV, "tvin.hdmiedid.name", "null" ); + + if ( strcmp ( config_value, "null" ) != 0 ) { + config_value_len = strlen ( config_value ); + + if ( config_value_len < 13 ) { + for ( i = 0; i < config_value_len; ++i ) { + str_manufacturer_name[i] = config_value[i]; + } + + for ( i = config_value_len; i < 13; ++i ) { + str_manufacturer_name[i] = ' '; + } + } else { + for ( i = 0; i < 13; ++i ) { + str_manufacturer_name[i] = config_value[i]; + } + } + + } + + for ( i = 0; i < 13; i++ ) { + edidbuf[95 + i] = str_manufacturer_name[i]; + } } void monitor_info_edid_checksum ( unsigned char *edidbuf ) { - int sum = 0, i = 0; + int sum = 0, i = 0; - for ( i = 0; i < 127; i++ ) { - sum += edidbuf[i]; - } + for ( i = 0; i < 127; i++ ) { + sum += edidbuf[i]; + } - sum = ( 256 - ( sum % 256 ) ) % 256; - edidbuf[127] = sum; + sum = ( 256 - ( sum % 256 ) ) % 256; + edidbuf[127] = sum; - LOGD ( "checksum is 0x%x,so testBuf[127] = 0x%x", sum, edidbuf[127] ); + LOGD ( "checksum is 0x%x,so testBuf[127] = 0x%x", sum, edidbuf[127] ); } int reboot_sys_by_fbc_edid_info() { - int ret = -1; - int fd = -1; - int edid_info_len = 256; - unsigned char fbc_edid_info[edid_info_len]; - int env_different_as_cur = 0; - char outputmode_prop_value[256]; - char lcd_reverse_prop_value[256]; - - LOGD("get edid info from fbc!"); - memset(outputmode_prop_value, '\0', 256); - memset(lcd_reverse_prop_value, '\0', 256); - property_get("ubootenv.var.outputmode", outputmode_prop_value, "null" ); - property_get("ubootenv.var.lcd_reverse", lcd_reverse_prop_value, "null" ); - - fd = open("/sys/class/amhdmitx/amhdmitx0/edid_info", O_RDWR); - if (fd < 0) { - LOGW("open edid node error\n"); - return -1; - } - ret = read(fd, fbc_edid_info, edid_info_len); - if (ret < 0) { - LOGW("read edid node error\n"); - return -1; - } - - if ((0xfb == fbc_edid_info[250]) && (0x0c == fbc_edid_info[251])) { - LOGD("RX is FBC!"); - // set outputmode env - ret = 0;//is Fbc - switch (fbc_edid_info[252] & 0x0f) { - case 0x0: - if (0 != strcmp(outputmode_prop_value, "1080p") && - 0 != strcmp(outputmode_prop_value, "1080p50hz") - ) { - if (0 == env_different_as_cur) { - env_different_as_cur = 1; - } - property_set("ubootenv.var.outputmode", "1080p"); - } - break; - case 0x1: - if (0 != strcmp(outputmode_prop_value, "4k2k60hz420") && - 0 != strcmp(outputmode_prop_value, "4k2k50hz420") - ) { - if (0 == env_different_as_cur) { - env_different_as_cur = 1; - } - property_set("ubootenv.var.outputmode", "4k2k60hz420"); - } - break; - case 0x2: - if (0 != strcmp(outputmode_prop_value, "1366*768")) { - if (0 == env_different_as_cur) { - env_different_as_cur = 1; - } - property_set("ubootenv.var.outputmode", "1366*768"); - } - break; - default: - break; - } - - // set RX 3D Info - //switch((fbc_edid_info[252]>>4)&0x0f) - - // set lcd_reverse env - switch (fbc_edid_info[253]) { - case 0x0: - if (0 != strcmp(lcd_reverse_prop_value, "0")) { - if (0 == env_different_as_cur) { - env_different_as_cur = 1; - } - property_set("ubootenv.var.lcd_reverse", "0"); - } - break; - case 0x1: - if (0 != strcmp(lcd_reverse_prop_value, "1")) { - if (0 == env_different_as_cur) { - env_different_as_cur = 1; - } - property_set("ubootenv.var.lcd_reverse", "1"); - } - break; - default: - break; - } - } - close(fd); - fd = -1; - //ret = -1; - if (1 == env_different_as_cur) { - LOGW("env change , reboot system\n"); - system("reboot"); - } - return ret; + int ret = -1; + int fd = -1; + int edid_info_len = 256; + unsigned char fbc_edid_info[edid_info_len]; + int env_different_as_cur = 0; + char outputmode_prop_value[256]; + char lcd_reverse_prop_value[256]; + + LOGD("get edid info from fbc!"); + memset(outputmode_prop_value, '\0', 256); + memset(lcd_reverse_prop_value, '\0', 256); + property_get("ubootenv.var.outputmode", outputmode_prop_value, "null" ); + property_get("ubootenv.var.lcd_reverse", lcd_reverse_prop_value, "null" ); + + fd = open("/sys/class/amhdmitx/amhdmitx0/edid_info", O_RDWR); + if (fd < 0) { + LOGW("open edid node error\n"); + return -1; + } + ret = read(fd, fbc_edid_info, edid_info_len); + if (ret < 0) { + LOGW("read edid node error\n"); + return -1; + } + + if ((0xfb == fbc_edid_info[250]) && (0x0c == fbc_edid_info[251])) { + LOGD("RX is FBC!"); + // set outputmode env + ret = 0;//is Fbc + switch (fbc_edid_info[252] & 0x0f) { + case 0x0: + if (0 != strcmp(outputmode_prop_value, "1080p") && + 0 != strcmp(outputmode_prop_value, "1080p50hz") + ) { + if (0 == env_different_as_cur) { + env_different_as_cur = 1; + } + property_set("ubootenv.var.outputmode", "1080p"); + } + break; + case 0x1: + if (0 != strcmp(outputmode_prop_value, "4k2k60hz420") && + 0 != strcmp(outputmode_prop_value, "4k2k50hz420") + ) { + if (0 == env_different_as_cur) { + env_different_as_cur = 1; + } + property_set("ubootenv.var.outputmode", "4k2k60hz420"); + } + break; + case 0x2: + if (0 != strcmp(outputmode_prop_value, "1366*768")) { + if (0 == env_different_as_cur) { + env_different_as_cur = 1; + } + property_set("ubootenv.var.outputmode", "1366*768"); + } + break; + default: + break; + } + + // set RX 3D Info + //switch((fbc_edid_info[252]>>4)&0x0f) + + // set lcd_reverse env + switch (fbc_edid_info[253]) { + case 0x0: + if (0 != strcmp(lcd_reverse_prop_value, "0")) { + if (0 == env_different_as_cur) { + env_different_as_cur = 1; + } + property_set("ubootenv.var.lcd_reverse", "0"); + } + break; + case 0x1: + if (0 != strcmp(lcd_reverse_prop_value, "1")) { + if (0 == env_different_as_cur) { + env_different_as_cur = 1; + } + property_set("ubootenv.var.lcd_reverse", "1"); + } + break; + default: + break; + } + } + close(fd); + fd = -1; + //ret = -1; + if (1 == env_different_as_cur) { + LOGW("env change , reboot system\n"); + system("reboot"); + } + return ret; } int reboot_sys_by_fbc_uart_panel_info(CFbcCommunication *fbc) { - int ret = -1; - char outputmode_prop_value[256]; - char lcd_reverse_prop_value[256]; - int env_different_as_cur = 0; - int panel_reverse = -1; - int panel_outputmode = -1; - - - char panel_model[64] = {0}; - - if (fbc == NULL) { - LOGE("there is no fbc!!!\n"); - return -1; - } - - fbc->cfbc_Get_FBC_Get_PANel_INFO(COMM_DEV_SERIAL, panel_model); - if (0 == panel_model[0]) { - LOGD("device is not fbc\n"); - return -1; - } - LOGD("device is fbc, get panel info from fbc!\n"); - memset(outputmode_prop_value, '\0', 256); - memset(lcd_reverse_prop_value, '\0', 256); - property_get("ubootenv.var.outputmode", outputmode_prop_value, "null" ); - property_get("ubootenv.var.lcd_reverse", lcd_reverse_prop_value, "null" ); - - fbc->cfbc_Get_FBC_PANEL_REVERSE(COMM_DEV_SERIAL, &panel_reverse); - fbc->cfbc_Get_FBC_PANEL_OUTPUT(COMM_DEV_SERIAL, &panel_outputmode); - LOGD("panel_reverse = %d, panel_outputmode = %d\n", panel_reverse, panel_outputmode); - LOGD("panel_output prop = %s, panel reverse prop = %s\n", outputmode_prop_value, lcd_reverse_prop_value); - switch (panel_outputmode) { - case 0x0: - if (0 != strcmp(outputmode_prop_value, "1080p") && - 0 != strcmp(outputmode_prop_value, "1080p50hz") - ) { - LOGD("panel_output changed to 1080p\n"); - if (0 == env_different_as_cur) { - env_different_as_cur = 1; - } - property_set("ubootenv.var.outputmode", "1080p"); - } - break; - case 0x1: - if (0 != strcmp(outputmode_prop_value, "4k2k60hz420") && - 0 != strcmp(outputmode_prop_value, "4k2k50hz420") - ) { - if (0 == env_different_as_cur) { - env_different_as_cur = 1; - } - property_set("ubootenv.var.outputmode", "4k2k60hz420"); - } - break; - case 0x2: - if (0 != strcmp(outputmode_prop_value, "1366*768")) { - if (0 == env_different_as_cur) { - env_different_as_cur = 1; - } - property_set("ubootenv.var.outputmode", "1366*768"); - } - break; - default: - break; - } - - // set RX 3D Info - //switch((fbc_edid_info[252]>>4)&0x0f) - - // set lcd_reverse env - switch (panel_reverse) { - case 0x0: - if (0 != strcmp(lcd_reverse_prop_value, "0")) { - LOGD("panel_reverse changed to 0\n"); - if (0 == env_different_as_cur) { - env_different_as_cur = 1; - } - property_set("ubootenv.var.lcd_reverse", "0"); - } - break; - case 0x1: - if (0 != strcmp(lcd_reverse_prop_value, "1")) { - if (0 == env_different_as_cur) { - env_different_as_cur = 1; - } - property_set("ubootenv.var.lcd_reverse", "1"); - } - break; - default: - break; - } - - ret = -1; - if (1 == env_different_as_cur) { - LOGW("env change , reboot system\n"); - system("reboot"); - } - return 0; + int ret = -1; + char outputmode_prop_value[256]; + char lcd_reverse_prop_value[256]; + int env_different_as_cur = 0; + int panel_reverse = -1; + int panel_outputmode = -1; + + + char panel_model[64] = {0}; + + if (fbc == NULL) { + LOGE("there is no fbc!!!\n"); + return -1; + } + + fbc->cfbc_Get_FBC_Get_PANel_INFO(COMM_DEV_SERIAL, panel_model); + if (0 == panel_model[0]) { + LOGD("device is not fbc\n"); + return -1; + } + LOGD("device is fbc, get panel info from fbc!\n"); + memset(outputmode_prop_value, '\0', 256); + memset(lcd_reverse_prop_value, '\0', 256); + property_get("ubootenv.var.outputmode", outputmode_prop_value, "null" ); + property_get("ubootenv.var.lcd_reverse", lcd_reverse_prop_value, "null" ); + + fbc->cfbc_Get_FBC_PANEL_REVERSE(COMM_DEV_SERIAL, &panel_reverse); + fbc->cfbc_Get_FBC_PANEL_OUTPUT(COMM_DEV_SERIAL, &panel_outputmode); + LOGD("panel_reverse = %d, panel_outputmode = %d\n", panel_reverse, panel_outputmode); + LOGD("panel_output prop = %s, panel reverse prop = %s\n", outputmode_prop_value, lcd_reverse_prop_value); + switch (panel_outputmode) { + case 0x0: + if (0 != strcmp(outputmode_prop_value, "1080p") && + 0 != strcmp(outputmode_prop_value, "1080p50hz") + ) { + LOGD("panel_output changed to 1080p\n"); + if (0 == env_different_as_cur) { + env_different_as_cur = 1; + } + property_set("ubootenv.var.outputmode", "1080p"); + } + break; + case 0x1: + if (0 != strcmp(outputmode_prop_value, "4k2k60hz420") && + 0 != strcmp(outputmode_prop_value, "4k2k50hz420") + ) { + if (0 == env_different_as_cur) { + env_different_as_cur = 1; + } + property_set("ubootenv.var.outputmode", "4k2k60hz420"); + } + break; + case 0x2: + if (0 != strcmp(outputmode_prop_value, "1366*768")) { + if (0 == env_different_as_cur) { + env_different_as_cur = 1; + } + property_set("ubootenv.var.outputmode", "1366*768"); + } + break; + default: + break; + } + + // set RX 3D Info + //switch((fbc_edid_info[252]>>4)&0x0f) + + // set lcd_reverse env + switch (panel_reverse) { + case 0x0: + if (0 != strcmp(lcd_reverse_prop_value, "0")) { + LOGD("panel_reverse changed to 0\n"); + if (0 == env_different_as_cur) { + env_different_as_cur = 1; + } + property_set("ubootenv.var.lcd_reverse", "0"); + } + break; + case 0x1: + if (0 != strcmp(lcd_reverse_prop_value, "1")) { + if (0 == env_different_as_cur) { + env_different_as_cur = 1; + } + property_set("ubootenv.var.lcd_reverse", "1"); + } + break; + default: + break; + } + + ret = -1; + if (1 == env_different_as_cur) { + LOGW("env change , reboot system\n"); + system("reboot"); + } + return 0; } static pid_t pidof(const char *name) { - DIR *dir; - struct dirent *ent; - char *endptr; - char tmp_buf[512]; - - if (!(dir = opendir("/proc"))) { - LOGE("%s, can't open /proc", __FUNCTION__, strerror(errno)); - return -1; - } - - while ((ent = readdir(dir)) != NULL) { - /* if endptr is not a null character, the directory is not - * entirely numeric, so ignore it */ - long lpid = strtol(ent->d_name, &endptr, 10); - if (*endptr != '\0') { - continue; - } - - /* try to open the cmdline file */ - snprintf(tmp_buf, sizeof(tmp_buf), "/proc/%ld/cmdline", lpid); - FILE *fp = fopen(tmp_buf, "r"); - - if (fp) { - if (fgets(tmp_buf, sizeof(tmp_buf), fp) != NULL) { - /* check the first token in the file, the program name */ - char *first = strtok(tmp_buf, " "); - if (!strcmp(first, name)) { - fclose(fp); - closedir(dir); - return (pid_t) lpid; - } - } - fclose(fp); - } - } - - closedir(dir); - return -1; + DIR *dir; + struct dirent *ent; + char *endptr; + char tmp_buf[512]; + + if (!(dir = opendir("/proc"))) { + LOGE("%s, can't open /proc", __FUNCTION__, strerror(errno)); + return -1; + } + + while ((ent = readdir(dir)) != NULL) { + /* if endptr is not a null character, the directory is not + * entirely numeric, so ignore it */ + long lpid = strtol(ent->d_name, &endptr, 10); + if (*endptr != '\0') { + continue; + } + + /* try to open the cmdline file */ + snprintf(tmp_buf, sizeof(tmp_buf), "/proc/%ld/cmdline", lpid); + FILE *fp = fopen(tmp_buf, "r"); + + if (fp) { + if (fgets(tmp_buf, sizeof(tmp_buf), fp) != NULL) { + /* check the first token in the file, the program name */ + char *first = strtok(tmp_buf, " "); + if (!strcmp(first, name)) { + fclose(fp); + closedir(dir); + return (pid_t) lpid; + } + } + fclose(fp); + } + } + + closedir(dir); + return -1; } int GetPlatformHaveDDFlag() { - const char *config_value; + const char *config_value; - config_value = config_get_str(CFG_SECTION_TV, "platform.havedd", "null"); - if (strcmp(config_value, "true") == 0 || strcmp(config_value, "1") == 0) { - return 1; - } + config_value = config_get_str(CFG_SECTION_TV, "platform.havedd", "null"); + if (strcmp(config_value, "true") == 0 || strcmp(config_value, "1") == 0) { + return 1; + } - return 0; + return 0; } int GetPlatformProjectInfoSrc() { - const char *config_value; - - config_value = config_get_str(CFG_SECTION_TV, "platform.projectinfo.src", "null"); - if (strcmp(config_value, "null") == 0 || strcmp(config_value, "prop") == 0) { - return 0; - } else if (strcmp(config_value, "emmckey") == 0) { - return 1; - } else if (strcmp(config_value, "fbc_ver") == 0) { - return 2; - } - - return 0; + const char *config_value; + + config_value = config_get_str(CFG_SECTION_TV, "platform.projectinfo.src", "null"); + if (strcmp(config_value, "null") == 0 || strcmp(config_value, "prop") == 0) { + return 0; + } else if (strcmp(config_value, "emmckey") == 0) { + return 1; + } else if (strcmp(config_value, "fbc_ver") == 0) { + return 2; + } + + return 0; } static unsigned int mCrc32Table[256]; static void initCrc32Table() { - int i, j; - unsigned int Crc; - for (i = 0; i < 256; i++) { - Crc = i; - for (j = 0; j < 8; j++) { - if (Crc & 1) - Crc = (Crc >> 1) ^ 0xEDB88320; - else - Crc >>= 1; - } - mCrc32Table[i] = Crc; - } + int i, j; + unsigned int Crc; + for (i = 0; i < 256; i++) { + Crc = i; + for (j = 0; j < 8; j++) { + if (Crc & 1) + Crc = (Crc >> 1) ^ 0xEDB88320; + else + Crc >>= 1; + } + mCrc32Table[i] = Crc; + } } unsigned int CalCRC32(unsigned int crc, const unsigned char *ptr, unsigned int buf_len) { - static const unsigned int s_crc32[16] = { 0, 0x1db71064, 0x3b6e20c8, 0x26d930ac, 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c, - 0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c, 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c - }; - unsigned int crcu32 = crc; - if (buf_len < 0) - return 0; - if (!ptr) return 0; - crcu32 = ~crcu32; - while (buf_len--) { - unsigned char b = *ptr++; - crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b & 0xF)]; - crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b >> 4)]; - } - return ~crcu32; + static const unsigned int s_crc32[16] = { 0, 0x1db71064, 0x3b6e20c8, 0x26d930ac, 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c, + 0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c, 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c + }; + unsigned int crcu32 = crc; + if (buf_len < 0) + return 0; + if (!ptr) return 0; + crcu32 = ~crcu32; + while (buf_len--) { + unsigned char b = *ptr++; + crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b & 0xF)]; + crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b >> 4)]; + } + return ~crcu32; } #define CC_HEAD_CHKSUM_LEN (9) @@ -1728,44 +1728,44 @@ unsigned int CalCRC32(unsigned int crc, const unsigned char *ptr, unsigned int b static int check_projectinfo_data_valid(char *data_str, int chksum_head_len, int ver_len) { - int tmp_len = 0, tmp_ver = 0; - char *endp = NULL; - unsigned long src_chksum = 0, cal_chksum = 0; - char tmp_buf[129] = { 0 }; - - if (data_str != NULL) { - tmp_len = strlen(data_str); - if (tmp_len > chksum_head_len + ver_len) { - cal_chksum = CalCRC32(0, (unsigned char *)(data_str + chksum_head_len), tmp_len - chksum_head_len); - memcpy(tmp_buf, data_str, chksum_head_len); - tmp_buf[chksum_head_len] = 0; - src_chksum = strtoul(tmp_buf, &endp, 16); - if (cal_chksum == src_chksum) { - memcpy(tmp_buf, data_str + chksum_head_len, ver_len); - if ((tmp_buf[0] == 'v' || tmp_buf[0] == 'V') && isxdigit(tmp_buf[1]) && isxdigit(tmp_buf[2]) && isxdigit(tmp_buf[3])) { - tmp_ver = strtoul(tmp_buf + 1, &endp, 16); - if (tmp_ver <= 0) { - LOGD("%s, project_info data version error!!!\n", __FUNCTION__); - return -1; - } - } else { - LOGD("%s, project_info data version error!!!\n", __FUNCTION__); - return -1; - } - - return tmp_ver; - } else { - LOGD("%s, cal_chksum = %x\n", __FUNCTION__, (unsigned int)cal_chksum); - LOGD("%s, src_chksum = %x\n", __FUNCTION__, (unsigned int)src_chksum); - } - } - - LOGD("%s, project_info data error!!!\n", __FUNCTION__); - return -1; - } - - LOGD("%s, project_info data is NULL!!!\n", __FUNCTION__); - return -1; + int tmp_len = 0, tmp_ver = 0; + char *endp = NULL; + unsigned long src_chksum = 0, cal_chksum = 0; + char tmp_buf[129] = { 0 }; + + if (data_str != NULL) { + tmp_len = strlen(data_str); + if (tmp_len > chksum_head_len + ver_len) { + cal_chksum = CalCRC32(0, (unsigned char *)(data_str + chksum_head_len), tmp_len - chksum_head_len); + memcpy(tmp_buf, data_str, chksum_head_len); + tmp_buf[chksum_head_len] = 0; + src_chksum = strtoul(tmp_buf, &endp, 16); + if (cal_chksum == src_chksum) { + memcpy(tmp_buf, data_str + chksum_head_len, ver_len); + if ((tmp_buf[0] == 'v' || tmp_buf[0] == 'V') && isxdigit(tmp_buf[1]) && isxdigit(tmp_buf[2]) && isxdigit(tmp_buf[3])) { + tmp_ver = strtoul(tmp_buf + 1, &endp, 16); + if (tmp_ver <= 0) { + LOGD("%s, project_info data version error!!!\n", __FUNCTION__); + return -1; + } + } else { + LOGD("%s, project_info data version error!!!\n", __FUNCTION__); + return -1; + } + + return tmp_ver; + } else { + LOGD("%s, cal_chksum = %x\n", __FUNCTION__, (unsigned int)cal_chksum); + LOGD("%s, src_chksum = %x\n", __FUNCTION__, (unsigned int)src_chksum); + } + } + + LOGD("%s, project_info data error!!!\n", __FUNCTION__); + return -1; + } + + LOGD("%s, project_info data is NULL!!!\n", __FUNCTION__); + return -1; } static int gFBCPrjInfoRDPass = 0; @@ -1773,181 +1773,183 @@ static char gFBCPrjInfoBuf[1024] = {0}; static int GetProjectInfoOriData(char data_str[], CFbcCommunication *fbcIns) { - int tmp_val = 0; - int src_type = GetPlatformProjectInfoSrc(); - - if (src_type == 0) { - memset(data_str, '\0', sizeof(data_str)); - getBootEnv("ubootenv.var.project_info", data_str, "null"); - if (strcmp(data_str, "null") == 0) { - LOGE("%s, get project info data error!!!\n", __FUNCTION__); - return -1; - } - - return 0; - } else if (src_type == 1) { - return -1; - } else if (src_type == 2) { - int i = 0, tmp_len = 0, tmp_val = 0, item_cnt = 0; - int tmp_rd_fail_flag = 0; - unsigned int cal_chksum = 0; - char sw_version[64]; - char build_time[64]; - char git_version[64]; - char git_branch[64]; - char build_name[64]; - char tmp_buf[512] = {0}; - - if (fbcIns != NULL) { - if (gFBCPrjInfoRDPass == 0) { - memset((void *)gFBCPrjInfoBuf, 0, sizeof(gFBCPrjInfoBuf)); - } - - if (gFBCPrjInfoRDPass == 1) { - strcpy(data_str, gFBCPrjInfoBuf); - LOGD("%s, rd once just return, data_str = %s\n", __FUNCTION__, data_str); - return 0; - } - - if (fbcIns->cfbc_Get_FBC_MAINCODE_Version(COMM_DEV_SERIAL, sw_version, build_time, git_version, git_branch, build_name) == 0) { - if (sw_version[0] == '1' || sw_version[0] == '2') { - strcpy(build_name, "2"); - - strcpy(tmp_buf, "v001,fbc_"); - strcat(tmp_buf, build_name); - strcat(tmp_buf, ",4k2k60hz420,no_rev,"); - strcat(tmp_buf, "HV550QU2-305"); - strcat(tmp_buf, ",8o8w,0,0"); - cal_chksum = CalCRC32(0, (unsigned char *)tmp_buf, strlen(tmp_buf)); - sprintf(data_str, "%08x,%s", cal_chksum, tmp_buf); - LOGD("%s, data_str = %s\n", __FUNCTION__, data_str); - } else { - tmp_val = 0; - if (fbcIns->cfbc_Get_FBC_project_id(COMM_DEV_SERIAL, &tmp_val) == 0) { - sprintf(build_name, "fbc_%d", tmp_val); - } else { - tmp_rd_fail_flag = 1; - strcpy(build_name, "fbc_0"); - LOGD("%s, get project id from fbc error!!!\n", __FUNCTION__); - } - - strcpy(tmp_buf, "v001,"); - strcat(tmp_buf, build_name); - strcat(tmp_buf, ",4k2k60hz420,no_rev,"); - - memset(git_branch, 0, sizeof(git_branch)); - if (fbcIns->cfbc_Get_FBC_Get_PANel_INFO(COMM_DEV_SERIAL, git_branch) == 0) { - strcat(tmp_buf, git_branch); - } else { - tmp_rd_fail_flag = 1; - strcat(tmp_buf, build_name); - LOGD("%s, get panel info from fbc error!!!\n", __FUNCTION__); - } - - strcat(tmp_buf, ",8o8w,0,0"); - cal_chksum = CalCRC32(0, (unsigned char *)tmp_buf, strlen(tmp_buf)); - sprintf(data_str, "%08x,%s", cal_chksum, tmp_buf); - LOGD("%s, data_str = %s\n", __FUNCTION__, data_str); - - if (tmp_rd_fail_flag == 0) { - gFBCPrjInfoRDPass = 1; - strcpy(gFBCPrjInfoBuf, data_str); - } - } - - return 0; - } - - return -1; - } - } - - return -1; + int tmp_val = 0; + int src_type = GetPlatformProjectInfoSrc(); + + if (src_type == 0) { + memset(data_str, '\0', sizeof(data_str)); + getBootEnv("ubootenv.var.project_info", data_str, "null"); + if (strcmp(data_str, "null") == 0) { + LOGE("%s, get project info data error!!!\n", __FUNCTION__); + return -1; + } + + return 0; + } else if (src_type == 1) { + return -1; + } else if (src_type == 2) { + int i = 0, tmp_len = 0, tmp_val = 0, item_cnt = 0; + int tmp_rd_fail_flag = 0; + unsigned int cal_chksum = 0; + char sw_version[64]; + char build_time[64]; + char git_version[64]; + char git_branch[64]; + char build_name[64]; + char tmp_buf[512] = {0}; + + if (fbcIns != NULL) { + if (gFBCPrjInfoRDPass == 0) { + memset((void *)gFBCPrjInfoBuf, 0, sizeof(gFBCPrjInfoBuf)); + } + + if (gFBCPrjInfoRDPass == 1) { + strcpy(data_str, gFBCPrjInfoBuf); + LOGD("%s, rd once just return, data_str = %s\n", __FUNCTION__, data_str); + return 0; + } + + if (fbcIns->cfbc_Get_FBC_MAINCODE_Version(COMM_DEV_SERIAL, sw_version, build_time, git_version, git_branch, build_name) == 0) { + if (sw_version[0] == '1' || sw_version[0] == '2') { + strcpy(build_name, "2"); + + strcpy(tmp_buf, "v001,fbc_"); + strcat(tmp_buf, build_name); + strcat(tmp_buf, ",4k2k60hz420,no_rev,"); + strcat(tmp_buf, "HV550QU2-305"); + strcat(tmp_buf, ",8o8w,0,0"); + cal_chksum = CalCRC32(0, (unsigned char *)tmp_buf, strlen(tmp_buf)); + sprintf(data_str, "%08x,%s", cal_chksum, tmp_buf); + LOGD("%s, data_str = %s\n", __FUNCTION__, data_str); + } else { + tmp_val = 0; + if (fbcIns->cfbc_Get_FBC_project_id(COMM_DEV_SERIAL, &tmp_val) == 0) { + sprintf(build_name, "fbc_%d", tmp_val); + } else { + tmp_rd_fail_flag = 1; + strcpy(build_name, "fbc_0"); + LOGD("%s, get project id from fbc error!!!\n", __FUNCTION__); + } + + strcpy(tmp_buf, "v001,"); + strcat(tmp_buf, build_name); + strcat(tmp_buf, ",4k2k60hz420,no_rev,"); + + memset(git_branch, 0, sizeof(git_branch)); + if (fbcIns->cfbc_Get_FBC_Get_PANel_INFO(COMM_DEV_SERIAL, git_branch) == 0) { + strcat(tmp_buf, git_branch); + } else { + tmp_rd_fail_flag = 1; + strcat(tmp_buf, build_name); + LOGD("%s, get panel info from fbc error!!!\n", __FUNCTION__); + } + + strcat(tmp_buf, ",8o8w,0,0"); + cal_chksum = CalCRC32(0, (unsigned char *)tmp_buf, strlen(tmp_buf)); + sprintf(data_str, "%08x,%s", cal_chksum, tmp_buf); + LOGD("%s, data_str = %s\n", __FUNCTION__, data_str); + + if (tmp_rd_fail_flag == 0) { + gFBCPrjInfoRDPass = 1; + strcpy(gFBCPrjInfoBuf, data_str); + } + } + + return 0; + } + + return -1; + } + } + + return -1; } static int handle_prj_info_by_ver(int ver, int item_ind, char *item_str, project_info_t *proj_info_ptr) { - if (ver == 1) { - if (item_ind == 0) { - strncpy(proj_info_ptr->version, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); - } else if (item_ind == 1) { - strncpy(proj_info_ptr->panel_type, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); - } else if (item_ind == 2) { - strncpy(proj_info_ptr->panel_outputmode, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); - } else if (item_ind == 3) { - strncpy(proj_info_ptr->panel_rev, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); - } else if (item_ind == 4) { - strncpy(proj_info_ptr->panel_name, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); - } else if (item_ind == 5) { - strncpy(proj_info_ptr->amp_curve_name, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); - } - } else { - if (item_ind == 0) { - strncpy(proj_info_ptr->version, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); - } else if (item_ind == 1) { - strncpy(proj_info_ptr->panel_type, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); - } else if (item_ind == 2) { - strncpy(proj_info_ptr->panel_name, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); - } else if (item_ind == 3) { - strncpy(proj_info_ptr->panel_outputmode, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); - } else if (item_ind == 4) { - strncpy(proj_info_ptr->panel_rev, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); - }else if (item_ind == 5) { - strncpy(proj_info_ptr->amp_curve_name, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); - } - } - - return 0; + if (ver == 1) { + if (item_ind == 0) { + strncpy(proj_info_ptr->version, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); + } else if (item_ind == 1) { + strncpy(proj_info_ptr->panel_type, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); + } else if (item_ind == 2) { + strncpy(proj_info_ptr->panel_outputmode, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); + } else if (item_ind == 3) { + strncpy(proj_info_ptr->panel_rev, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); + } else if (item_ind == 4) { + strncpy(proj_info_ptr->panel_name, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); + } else if (item_ind == 5) { + strncpy(proj_info_ptr->amp_curve_name, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); + } + } else { + if (item_ind == 0) { + strncpy(proj_info_ptr->version, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); + } else if (item_ind == 1) { + strncpy(proj_info_ptr->panel_type, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); + } else if (item_ind == 2) { + strncpy(proj_info_ptr->panel_name, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); + } else if (item_ind == 3) { + strncpy(proj_info_ptr->panel_outputmode, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); + } else if (item_ind == 4) { + strncpy(proj_info_ptr->panel_rev, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); + } else if (item_ind == 5) { + strncpy(proj_info_ptr->amp_curve_name, item_str, CC_PROJECT_INFO_ITEM_MAX_LEN - 1); + } + } + + return 0; } int GetProjectInfo(project_info_t *proj_info_ptr, CFbcCommunication *fbcIns) { - int i = 0, tmp_ret = 0, tmp_val = 0, tmp_len = 0; - int item_cnt = 0, handle_prj_info_data_flag = 0; - char *token = NULL; - const char *strDelimit = ","; - char tmp_buf[1024] = { 0 }; - char data_str[1024] = { 0 }; - - if (GetProjectInfoOriData(data_str, fbcIns) < 0) { - return -1; - } - - memset((void *)proj_info_ptr->version, 0, CC_PROJECT_INFO_ITEM_MAX_LEN); - memset((void *)proj_info_ptr->panel_type, 0, CC_PROJECT_INFO_ITEM_MAX_LEN); - memset((void *)proj_info_ptr->panel_outputmode, 0, CC_PROJECT_INFO_ITEM_MAX_LEN); - memset((void *)proj_info_ptr->panel_rev, 0, CC_PROJECT_INFO_ITEM_MAX_LEN); - memset((void *)proj_info_ptr->panel_name, 0, CC_PROJECT_INFO_ITEM_MAX_LEN); - memset((void *)proj_info_ptr->amp_curve_name, 0, CC_PROJECT_INFO_ITEM_MAX_LEN); - - //check project info data is valid - handle_prj_info_data_flag = check_projectinfo_data_valid(data_str, CC_HEAD_CHKSUM_LEN, CC_VERSION_LEN); - - //handle project info data - if (handle_prj_info_data_flag > 0) { - item_cnt = 0; - memset((void *)tmp_buf, 0, sizeof(tmp_buf)); - strncpy(tmp_buf, data_str + CC_HEAD_CHKSUM_LEN, sizeof(tmp_buf) - 1); - token = strtok(tmp_buf, strDelimit); - while (token != NULL) { - handle_prj_info_by_ver(handle_prj_info_data_flag, item_cnt, token, proj_info_ptr); - - token = strtok(NULL, strDelimit); - item_cnt += 1; - } - - return 0; - } - - return -1; + int i = 0, tmp_ret = 0, tmp_val = 0, tmp_len = 0; + int item_cnt = 0, handle_prj_info_data_flag = 0; + char *token = NULL; + const char *strDelimit = ","; + char tmp_buf[1024] = { 0 }; + char data_str[1024] = { 0 }; + + if (GetProjectInfoOriData(data_str, fbcIns) < 0) { + return -1; + } + + memset((void *)proj_info_ptr->version, 0, CC_PROJECT_INFO_ITEM_MAX_LEN); + memset((void *)proj_info_ptr->panel_type, 0, CC_PROJECT_INFO_ITEM_MAX_LEN); + memset((void *)proj_info_ptr->panel_outputmode, 0, CC_PROJECT_INFO_ITEM_MAX_LEN); + memset((void *)proj_info_ptr->panel_rev, 0, CC_PROJECT_INFO_ITEM_MAX_LEN); + memset((void *)proj_info_ptr->panel_name, 0, CC_PROJECT_INFO_ITEM_MAX_LEN); + memset((void *)proj_info_ptr->amp_curve_name, 0, CC_PROJECT_INFO_ITEM_MAX_LEN); + + //check project info data is valid + handle_prj_info_data_flag = check_projectinfo_data_valid(data_str, CC_HEAD_CHKSUM_LEN, CC_VERSION_LEN); + + //handle project info data + if (handle_prj_info_data_flag > 0) { + item_cnt = 0; + memset((void *)tmp_buf, 0, sizeof(tmp_buf)); + strncpy(tmp_buf, data_str + CC_HEAD_CHKSUM_LEN, sizeof(tmp_buf) - 1); + token = strtok(tmp_buf, strDelimit); + while (token != NULL) { + handle_prj_info_by_ver(handle_prj_info_data_flag, item_cnt, token, proj_info_ptr); + + token = strtok(NULL, strDelimit); + item_cnt += 1; + } + + return 0; + } + + return -1; } #if ANDROID_PLATFORM_SDK_VERSION == 19 -int getBootEnv(const char* key, char* value, char* def_val) { +int getBootEnv(const char *key, char *value, char *def_val) +{ return property_get(key, value, def_val); } -void setBootEnv(const char* key, const char* value) { +void setBootEnv(const char *key, const char *value) +{ return property_set(key, value); } #endif @@ -1959,20 +1961,23 @@ void setBootEnv(const char* key, const char* value) { #include <systemcontrol/ISystemControlService.h> class DeathNotifier: public IBinder::DeathRecipient { - public: - DeathNotifier() { - } +public: + DeathNotifier() + { + } - void binderDied(const wp<IBinder>& who) { - ALOGW("system_control died!"); - } + void binderDied(const wp<IBinder> &who) + { + ALOGW("system_control died!"); + } }; static sp<ISystemControlService> amSystemControlService; static sp<DeathNotifier> amDeathNotifier; static Mutex amLock; -static const sp<ISystemControlService>& getSystemControlService() { +static const sp<ISystemControlService> &getSystemControlService() +{ Mutex::Autolock _l(amLock); if (amSystemControlService.get() == 0) { sp<IServiceManager> sm = defaultServiceManager(); @@ -1991,13 +1996,14 @@ static const sp<ISystemControlService>& getSystemControlService() { binder->linkToDeath(amDeathNotifier); amSystemControlService = interface_cast<ISystemControlService>(binder); } - ALOGE_IF(amSystemControlService==0, "no System Control Service!?"); + ALOGE_IF(amSystemControlService == 0, "no System Control Service!?"); return amSystemControlService; } -int getBootEnv(const char* key, char* value, char* def_val) { - const sp<ISystemControlService>& sws = getSystemControlService(); +int getBootEnv(const char *key, char *value, char *def_val) +{ + const sp<ISystemControlService> &sws = getSystemControlService(); if (sws != 0) { String16 v; if (sws->getBootEnv(String16(key), v)) { @@ -2010,8 +2016,9 @@ int getBootEnv(const char* key, char* value, char* def_val) { return -1; } -void setBootEnv(const char* key, const char* value) { - const sp<ISystemControlService>& sws = getSystemControlService(); +void setBootEnv(const char *key, const char *value) +{ + const sp<ISystemControlService> &sws = getSystemControlService(); if (sws != 0) { sws->setBootEnv(String16(key), String16(value)); } diff --git a/tvapi/libtv/tvutils/tvutils.h b/tvapi/libtv/tvutils/tvutils.h index 272fcef..8805144 100644 --- a/tvapi/libtv/tvutils/tvutils.h +++ b/tvapi/libtv/tvutils/tvutils.h @@ -11,8 +11,8 @@ #define CPQDB_DB_SIZE_ID "tv.db.size.id" struct erase_info_user { - uint32_t start; - uint32_t length; + uint32_t start; + uint32_t length; }; extern int *GetFileAttrIntValueStr(const char *fp); @@ -57,18 +57,18 @@ extern int GetPlatformHaveDDFlag(); #define CC_PROJECT_INFO_ITEM_MAX_LEN (64) typedef struct project_info_s { - char version[CC_PROJECT_INFO_ITEM_MAX_LEN]; - char panel_type[CC_PROJECT_INFO_ITEM_MAX_LEN]; - char panel_outputmode[CC_PROJECT_INFO_ITEM_MAX_LEN]; - char panel_rev[CC_PROJECT_INFO_ITEM_MAX_LEN]; - char panel_name[CC_PROJECT_INFO_ITEM_MAX_LEN]; - char amp_curve_name[CC_PROJECT_INFO_ITEM_MAX_LEN]; + char version[CC_PROJECT_INFO_ITEM_MAX_LEN]; + char panel_type[CC_PROJECT_INFO_ITEM_MAX_LEN]; + char panel_outputmode[CC_PROJECT_INFO_ITEM_MAX_LEN]; + char panel_rev[CC_PROJECT_INFO_ITEM_MAX_LEN]; + char panel_name[CC_PROJECT_INFO_ITEM_MAX_LEN]; + char amp_curve_name[CC_PROJECT_INFO_ITEM_MAX_LEN]; } project_info_t; extern unsigned int CalCRC32(unsigned int crc, const unsigned char *ptr, unsigned int buf_len); extern int GetProjectInfo(project_info_t *proj_info_ptr, CFbcCommunication *fbcIns = NULL); -extern int getBootEnv(const char* key, char* value, char* def_val); -extern void setBootEnv(const char* key, const char* value); +extern int getBootEnv(const char *key, char *value, char *def_val); +extern void setBootEnv(const char *key, const char *value); //extern void SSMRewriteEdidInfo ( unsigned char *edidbuf ); //extern int HandleEdid ( int op_type, int op_direct, unsigned char edid_buf[], unsigned char def_buf[] ); @@ -76,28 +76,28 @@ extern void setBootEnv(const char* key, const char* value); #define AML_DBG_REGS_IOC_MAGIC 'R' typedef struct aml_debug_reg_s { - unsigned int addr; - unsigned int val; - unsigned char mode; + unsigned int addr; + unsigned int val; + unsigned char mode; } aml_debug_reg_t; typedef struct aml_debug_bit_s { - unsigned int addr; - unsigned int val; - unsigned int start; - unsigned int len; + unsigned int addr; + unsigned int val; + unsigned int start; + unsigned int len; } aml_debug_bit_t; template<typename T1, typename T2> int ArrayCopy(T1 dst_buf[], T2 src_buf[], int copy_size) { - int i = 0; + int i = 0; - for (i = 0; i < copy_size; i++) { - dst_buf[i] = src_buf[i]; - } + for (i = 0; i < copy_size; i++) { + dst_buf[i] = src_buf[i]; + } - return 0; + return 0; }; #endif //__TV_MISC_H__ diff --git a/tvapi/libtv/tvutils/zepoll.cpp b/tvapi/libtv/tvutils/zepoll.cpp index 3cba8a6..56f6553 100644 --- a/tvapi/libtv/tvutils/zepoll.cpp +++ b/tvapi/libtv/tvutils/zepoll.cpp @@ -2,87 +2,87 @@ Epoll::Epoll(int _max, int maxevents): max(_max), - epoll_fd(-1), - epoll_timeout(-1), - epoll_maxevents(maxevents), - backEvents(0) + epoll_fd(-1), + epoll_timeout(-1), + epoll_maxevents(maxevents), + backEvents(0) { } Epoll::~Epoll() { - if (isValid()) { - close(epoll_fd); - } - delete[] backEvents; + if (isValid()) { + close(epoll_fd); + } + delete[] backEvents; } inline bool Epoll::isValid() const { - return epoll_fd > 0; + return epoll_fd > 0; } void Epoll::setTimeout(int timeout) { - epoll_timeout = timeout; + epoll_timeout = timeout; } inline void Epoll::setMaxEvents(int maxevents) { - epoll_maxevents = maxevents; + epoll_maxevents = maxevents; } inline const epoll_event *Epoll::events() const { - return backEvents; + return backEvents; } int Epoll::create() { - epoll_fd = ::epoll_create(max); - if (isValid()) { - backEvents = new epoll_event[epoll_maxevents]; - } - return epoll_fd; + epoll_fd = ::epoll_create(max); + if (isValid()) { + backEvents = new epoll_event[epoll_maxevents]; + } + return epoll_fd; } int Epoll::add(int fd, epoll_event *event) { - if (isValid()) { - return ::epoll_ctl(epoll_fd, ADD, fd, event); - } - return -1; + if (isValid()) { + return ::epoll_ctl(epoll_fd, ADD, fd, event); + } + return -1; } int Epoll::mod(int fd, epoll_event *event) { - if (isValid()) { - return ::epoll_ctl(epoll_fd, MOD, fd, event); - } - return -1; + if (isValid()) { + return ::epoll_ctl(epoll_fd, MOD, fd, event); + } + return -1; } int Epoll::del(int fd, epoll_event *event) { - if (isValid()) { - return ::epoll_ctl(epoll_fd, DEL, fd, event); - } - return -1; + if (isValid()) { + return ::epoll_ctl(epoll_fd, DEL, fd, event); + } + return -1; } int Epoll::wait() { - if (isValid()) { - return ::epoll_wait(epoll_fd, backEvents, epoll_maxevents, epoll_timeout); - } - return -1; + if (isValid()) { + return ::epoll_wait(epoll_fd, backEvents, epoll_maxevents, epoll_timeout); + } + return -1; } diff --git a/tvapi/libtv/tvutils/zepoll.h b/tvapi/libtv/tvutils/zepoll.h index 9ba4c25..3fc6856 100644 --- a/tvapi/libtv/tvutils/zepoll.h +++ b/tvapi/libtv/tvutils/zepoll.h @@ -11,34 +11,34 @@ */ class Epoll { public: - /** - * - */ - enum EPOLL_OP {ADD = EPOLL_CTL_ADD, MOD = EPOLL_CTL_MOD, DEL = EPOLL_CTL_DEL}; - /** - * æœ€å¤§çš„è¿žæŽ¥æ•°å’Œæœ€å¤§çš„å›žä¼ äº‹ä»¶æ•° - */ - Epoll(int _max = 30, int maxevents = 20); - ~Epoll(); - int create(); - int add(int fd, epoll_event *event); - int mod(int fd, epoll_event *event); - int del(int fd, epoll_event *event); - void setTimeout(int timeout); - void setMaxEvents(int maxevents); - int wait(); - const epoll_event *events() const; - const epoll_event &operator[](int index) - { - return backEvents[index]; - } + /** + * + */ + enum EPOLL_OP {ADD = EPOLL_CTL_ADD, MOD = EPOLL_CTL_MOD, DEL = EPOLL_CTL_DEL}; + /** + * æœ€å¤§çš„è¿žæŽ¥æ•°å’Œæœ€å¤§çš„å›žä¼ äº‹ä»¶æ•° + */ + Epoll(int _max = 30, int maxevents = 20); + ~Epoll(); + int create(); + int add(int fd, epoll_event *event); + int mod(int fd, epoll_event *event); + int del(int fd, epoll_event *event); + void setTimeout(int timeout); + void setMaxEvents(int maxevents); + int wait(); + const epoll_event *events() const; + const epoll_event &operator[](int index) + { + return backEvents[index]; + } private: - bool isValid() const; - int max; - int epoll_fd; - int epoll_timeout; - int epoll_maxevents; - epoll_event *backEvents; + bool isValid() const; + int max; + int epoll_fd; + int epoll_timeout; + int epoll_maxevents; + epoll_event *backEvents; }; diff --git a/tvapi/libtv/version/version.cpp b/tvapi/libtv/version/version.cpp index c0d3358..8e8e82a 100644 --- a/tvapi/libtv/version/version.cpp +++ b/tvapi/libtv/version/version.cpp @@ -8,87 +8,87 @@ static char gitversionstr[256] = "N/A"; static int tvservice_version_info_init(void) { - static int info_is_inited = 0; - int dirty_num = 0; + static int info_is_inited = 0; + int dirty_num = 0; - if (info_is_inited > 0) { - return 0; - } - info_is_inited++; + if (info_is_inited > 0) { + return 0; + } + info_is_inited++; #ifdef HAVE_VERSION_INFO #ifdef LIBTVSERVICE_GIT_UNCOMMIT_FILE_NUM #if LIBTVSERVICE_GIT_UNCOMMIT_FILE_NUM>0 - dirty_num = LIBTVSERVICE_GIT_UNCOMMIT_FILE_NUM; + dirty_num = LIBTVSERVICE_GIT_UNCOMMIT_FILE_NUM; #endif #endif #ifdef LIBTVSERVICE_GIT_VERSION - if (dirty_num > 0) { - snprintf(gitversionstr, 250, "%s-with-%d-dirty-files", LIBTVSERVICE_GIT_VERSION, dirty_num); - } else { - snprintf(gitversionstr, 250, "%s", LIBTVSERVICE_GIT_VERSION); - } + if (dirty_num > 0) { + snprintf(gitversionstr, 250, "%s-with-%d-dirty-files", LIBTVSERVICE_GIT_VERSION, dirty_num); + } else { + snprintf(gitversionstr, 250, "%s", LIBTVSERVICE_GIT_VERSION); + } #endif #endif - return 0; + return 0; } const char *tvservice_get_git_version_info(void) { - tvservice_version_info_init(); - return gitversionstr; + tvservice_version_info_init(); + return gitversionstr; } const char *tvservice_get_last_chaned_time_info(void) { #ifdef HAVE_VERSION_INFO #ifdef LIBTVSERVICE_LAST_CHANGED - return LIBTVSERVICE_LAST_CHANGED; + return LIBTVSERVICE_LAST_CHANGED; #endif #endif - return " Unknow "; + return " Unknow "; } const char *tvservice_get_git_branch_info(void) { #ifdef HAVE_VERSION_INFO #ifdef LIBTVSERVICE_GIT_BRANCH - return LIBTVSERVICE_GIT_BRANCH; + return LIBTVSERVICE_GIT_BRANCH; #endif #endif - return " Unknow "; + return " Unknow "; } const char *tvservice_get_build_time_info(void) { #ifdef HAVE_VERSION_INFO #ifdef LIBTVSERVICE_BUILD_TIME - return LIBTVSERVICE_BUILD_TIME; + return LIBTVSERVICE_BUILD_TIME; #endif #endif - return " Unknow "; + return " Unknow "; } const char *tvservice_get_build_name_info(void) { #ifdef HAVE_VERSION_INFO #ifdef LIBTVSERVICE_BUILD_NAME - return LIBTVSERVICE_BUILD_NAME; + return LIBTVSERVICE_BUILD_NAME; #endif #endif - return " Unknow "; + return " Unknow "; } const char *tvservice_get_board_version_info(void) { #ifdef HAVE_VERSION_INFO #ifdef TVAPI_BOARD_VERSION - return TVAPI_BOARD_VERSION; + return TVAPI_BOARD_VERSION; #endif #endif - return " Unknow "; + return " Unknow "; } diff --git a/tvapi/libtv/vpp/CPQdb.cpp b/tvapi/libtv/vpp/CPQdb.cpp index 4f11e7f..ac01d47 100644 --- a/tvapi/libtv/vpp/CPQdb.cpp +++ b/tvapi/libtv/vpp/CPQdb.cpp @@ -101,7 +101,8 @@ using namespace std; return temp.st_size; }*/ -CPqData::CPqData() { +CPqData::CPqData() +{ int i = 0, j = 0; for (i = 0; i < 15; i++) { @@ -154,10 +155,12 @@ CPqData::CPqData() { } } -CPqData::~CPqData() { +CPqData::~CPqData() +{ } -int CPqData::openPqDB(const char *db_path) { +int CPqData::openPqDB(const char *db_path) +{ int rval; project_info_t tmp_info; char SYSTEM_PQ[128] = { 0 }; @@ -211,7 +214,7 @@ int CPqData::reopenDB() } int CPqData::getRegValues(const char *table_name, tvin_port_t source, tvin_sig_fmt_t signal, - is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs) + is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs) { CSqlite::Cursor c_tablelist, c_reg_list; int index_am_reg = 0; @@ -223,16 +226,16 @@ int CPqData::getRegValues(const char *table_name, tvin_port_t source, tvin_sig_f } getSqlParams(__FUNCTION__, sqlmaster, - "select TableName from %s where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d ;", table_name, source, signal, mode); + "select TableName from %s where " + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d ;", table_name, source, signal, mode); this->select(sqlmaster, c_tablelist); if (c_tablelist.moveToFirst()) { //for table list do { getSqlParams(__FUNCTION__, sqlmaster, - "select RegType, RegAddr, RegMask, RegValue from %s;", - c_tablelist.getString(0).string()); + "select RegType, RegAddr, RegMask, RegValue from %s;", + c_tablelist.getString(0).string()); this->select(sqlmaster, c_reg_list); if (c_reg_list.moveToFirst()) { //reg list for each table @@ -257,19 +260,20 @@ int CPqData::getRegValues(const char *table_name, tvin_port_t source, tvin_sig_f } int CPqData::getRegValuesByValue(const char *name, const char *f_name, const char *f2_name, - const int val, const int val2, am_regs_t *regs) { + const int val, const int val2, am_regs_t *regs) +{ CSqlite::Cursor c_reg_list; char sqlmaster[256]; int rval = -1; //first get table name if ((strlen(f2_name) == 0) && (val2 == 0)) getSqlParams(__FUNCTION__, sqlmaster, - "select RegType, RegAddr, RegMask, RegValue from %s where %s = %d;", name, f_name, - val); + "select RegType, RegAddr, RegMask, RegValue from %s where %s = %d;", name, f_name, + val); else getSqlParams(__FUNCTION__, sqlmaster, - "select RegType, RegAddr, RegMask, RegValue from %s where %s = %d and %s = %d;", - name, f_name, val, f2_name, val2); + "select RegType, RegAddr, RegMask, RegValue from %s where %s = %d and %s = %d;", + name, f_name, val, f2_name, val2); rval = this->select(sqlmaster, c_reg_list); int count = c_reg_list.getCount(); @@ -299,19 +303,20 @@ int CPqData::getRegValuesByValue(const char *name, const char *f_name, const cha } int CPqData::getRegValuesByValue_long(const char *name, const char *f_name, const char *f2_name, - const int val, const int val2, am_regs_t *regs, am_regs_t *regs_1) { + const int val, const int val2, am_regs_t *regs, am_regs_t *regs_1) +{ CSqlite::Cursor c_reg_list; char sqlmaster[256]; int rval = -1; //first get table name if ((strlen(f2_name) == 0) && (val2 == 0)) getSqlParams(__FUNCTION__, sqlmaster, - "select RegType, RegAddr, RegMask, RegValue from %s where %s = %d;", name, f_name, - val); + "select RegType, RegAddr, RegMask, RegValue from %s where %s = %d;", name, f_name, + val); else getSqlParams(__FUNCTION__, sqlmaster, - "select RegType, RegAddr, RegMask, RegValue from %s where %s = %d and %s = %d;", - name, f_name, val, f2_name, val2); + "select RegType, RegAddr, RegMask, RegValue from %s where %s = %d and %s = %d;", + name, f_name, val, f2_name, val2); rval = this->select(sqlmaster, c_reg_list); @@ -354,29 +359,31 @@ int CPqData::getRegValuesByValue_long(const char *name, const char *f_name, cons return rval; } int CPqData::PQ_GetBaseColorParams(vpp_color_basemode_t basemode, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs) { + tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs) +{ CSqlite::Cursor c; char sqlmaster[256]; int mode = is2dOr3d;//Check2Dor3D(status, trans_fmt); int rval = -1; getSqlParams(__FUNCTION__, sqlmaster, - "select TableName from GeneralColormanagementTable where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d ;", source_port, sig_fmt, mode); + "select TableName from GeneralColormanagementTable where " + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d ;", source_port, sig_fmt, mode); this->select(sqlmaster, c); if (c.moveToFirst()) { int index_TableName = 0;//c.getColumnIndex("TableName"); rval = getRegValuesByValue(c.getString(index_TableName), CM_LEVEL_NAME, "", (int) basemode, - 0, regs); + 0, regs); } return rval; } int CPqData::PQ_GetCM2Params(vpp_color_management2_t basemode, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs) { + tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs) +{ CSqlite::Cursor c; char sqlmaster[256]; int mode = is2dOr3d;//Check2Dor3D(status, trans_fmt); @@ -396,22 +403,23 @@ int CPqData::PQ_GetCM2Params(vpp_color_management2_t basemode, tvin_port_t sourc } getSqlParams(__FUNCTION__, sqlmaster, "select TableName from GeneralCM2Table where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d ;", source_port, sig_fmt, mode); + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d ;", source_port, sig_fmt, mode); rval = this->select(sqlmaster, c); if (c.moveToFirst()) { int index_TableName = 0;//c.getColumnIndex("TableName"); rval = getRegValuesByValue(c.getString(index_TableName), CM_LEVEL_NAME, "", (int) basemode, - 0, regs); + 0, regs); } return rval; } int CPqData::PQ_GetNR2Params(vpp_noise_reduction2_mode_t nr_mode, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs) { + tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs) +{ CSqlite::Cursor c; char sqlmaster[256]; int mode = is2dOr3d;//Check2Dor3D(status, trans_fmt); @@ -428,23 +436,24 @@ int CPqData::PQ_GetNR2Params(vpp_noise_reduction2_mode_t nr_mode, tvin_port_t so } getSqlParams(__FUNCTION__, sqlmaster, "select TableName from GeneralNR2Table where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d ;", source_port, sig_fmt, mode); + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d ;", source_port, sig_fmt, mode); rval = this->select(sqlmaster, c); if (c.moveToFirst()) { int index_TableName = 0;//c.getColumnIndex("TableName"); rval = getRegValuesByValue(c.getString(index_TableName), LEVEL_NAME, "", (int) nr_mode, 0, - regs); + regs); } return rval; } int CPqData::PQ_GetXVYCCParams(vpp_xvycc_mode_t xvycc_mode, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs, - am_regs_t *regs_1) { + tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs, + am_regs_t *regs_1) +{ CSqlite::Cursor c; char sqlmaster[256]; int mode = is2dOr3d;//Check2Dor3D(status, trans_fmt); @@ -461,22 +470,23 @@ int CPqData::PQ_GetXVYCCParams(vpp_xvycc_mode_t xvycc_mode, tvin_port_t source_p } getSqlParams(__FUNCTION__, sqlmaster, "select TableName from GeneralXVYCCTable where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d ;", source_port, sig_fmt, mode); + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d ;", source_port, sig_fmt, mode); rval = this->select(sqlmaster, c); if (c.moveToFirst()) { int index_TableName = 0;//c.getColumnIndex("TableName"); rval = getRegValuesByValue_long(c.getString(index_TableName), LEVEL_NAME, "", - (int) xvycc_mode, 0, regs, regs_1); + (int) xvycc_mode, 0, regs, regs_1); } return rval; } int CPqData::PQ_GetMCDIParams(vpp_mcdi_mode_t mcdi_mode, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs) { + tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs) +{ CSqlite::Cursor c; char sqlmaster[256]; int mode = is2dOr3d;//Check2Dor3D(status, trans_fmt); @@ -493,22 +503,22 @@ int CPqData::PQ_GetMCDIParams(vpp_mcdi_mode_t mcdi_mode, tvin_port_t source_port } getSqlParams(__FUNCTION__, sqlmaster, "select TableName from GeneralMCDITable where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d ;", source_port, sig_fmt, mode); + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d ;", source_port, sig_fmt, mode); rval = this->select(sqlmaster, c); if (c.moveToFirst()) { int index_TableName = 0;//c.getColumnIndex("TableName"); rval = getRegValuesByValue(c.getString(index_TableName), LEVEL_NAME, "", (int) mcdi_mode, - 0, regs); + 0, regs); } return rval; } int CPqData::PQ_GetDeblockParams(vpp_deblock_mode_t deb_mode, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs) + tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs) { CSqlite::Cursor c; char sqlmaster[256]; @@ -516,9 +526,9 @@ int CPqData::PQ_GetDeblockParams(vpp_deblock_mode_t deb_mode, tvin_port_t source int rval = -1; getSqlParams(__FUNCTION__, sqlmaster, "select TableName from GeneralDeblockTable where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d ;", source_port, sig_fmt, is2dOr3d); + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d ;", source_port, sig_fmt, is2dOr3d); rval = this->select(sqlmaster, c); @@ -530,7 +540,8 @@ int CPqData::PQ_GetDeblockParams(vpp_deblock_mode_t deb_mode, tvin_port_t source int CPqData::PQ_GetColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, - tcon_rgb_ogo_t *params) { + tcon_rgb_ogo_t *params) +{ CSqlite::Cursor c; char sqlmaster[256]; @@ -549,20 +560,20 @@ int CPqData::PQ_GetColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, params->b_post_offset = 0; getSqlParams(__FUNCTION__, sqlmaster, "select TableName from GeneralWhiteBalanceTable where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d;", source_port, sig_fmt, trans_fmt); + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d;", source_port, sig_fmt, trans_fmt); rval = this->select(sqlmaster, c); if (c.moveToFirst()) { int index_TableName = 0;//c.getColumnIndex("TableName"); getSqlParams( - __FUNCTION__, - sqlmaster, - "select Enable, R_Pre_Offset, G_Pre_Offset, B_Pre_Offset, R_Gain, G_Gain, B_Gain, R_Post_Offset, G_Post_Offset, B_Post_Offset from %s where " - "Level = %d and def = 0;", c.getString(index_TableName).string(), - (int) Tempmode); + __FUNCTION__, + sqlmaster, + "select Enable, R_Pre_Offset, G_Pre_Offset, B_Pre_Offset, R_Gain, G_Gain, B_Gain, R_Post_Offset, G_Post_Offset, B_Post_Offset from %s where " + "Level = %d and def = 0;", c.getString(index_TableName).string(), + (int) Tempmode); rval = this->select(sqlmaster, c); @@ -583,7 +594,8 @@ int CPqData::PQ_GetColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, } int CPqData::PQ_SetColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, - tcon_rgb_ogo_t params) { + tcon_rgb_ogo_t params) +{ CSqlite::Cursor c; char sqlmaster[256]; char sql[512]; @@ -591,38 +603,39 @@ int CPqData::PQ_SetColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, int rval = -1; getSqlParams(__FUNCTION__, sqlmaster, "select TableName from GeneralWhiteBalanceTable where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d;", source_port, sig_fmt, trans_fmt); + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d;", source_port, sig_fmt, trans_fmt); rval = this->select(sqlmaster, c); if (c.moveToFirst()) { int index_TableName = 0;//c.getColumnIndex("TableName"); getSqlParams( - __FUNCTION__, - sql, - "update %s set Enable = %d, " - "R_Pre_Offset = %d, G_Pre_Offset = %d, B_Pre_Offset = %d, R_Gain = %d, G_Gain = %d, B_Gain = %d, " - "R_Post_Offset = %d, G_Post_Offset = %d, B_Post_Offset = %d where Level = %d and def = 0;", - c.getString(index_TableName).string(), params.en, params.r_pre_offset, - params.g_pre_offset, params.b_pre_offset, params.r_gain, params.g_gain, - params.b_gain, params.r_post_offset, params.g_post_offset, params.b_post_offset, - Tempmode); + __FUNCTION__, + sql, + "update %s set Enable = %d, " + "R_Pre_Offset = %d, G_Pre_Offset = %d, B_Pre_Offset = %d, R_Gain = %d, G_Gain = %d, B_Gain = %d, " + "R_Post_Offset = %d, G_Post_Offset = %d, B_Post_Offset = %d where Level = %d and def = 0;", + c.getString(index_TableName).string(), params.en, params.r_pre_offset, + params.g_pre_offset, params.b_pre_offset, params.r_gain, params.g_gain, + params.b_gain, params.r_post_offset, params.g_post_offset, params.b_post_offset, + Tempmode); rval = this->exeSql(sql); } return rval; } -int CPqData::PQ_ResetAllColorTemperatureParams(void) { +int CPqData::PQ_ResetAllColorTemperatureParams(void) +{ CSqlite::Cursor c; char sqlmaster[512]; int rval = -1; getSqlParams(__FUNCTION__, sqlmaster, - "select distinct TableName from GeneralWhiteBalanceTable ;"); + "select distinct TableName from GeneralWhiteBalanceTable ;"); rval = this->select(sqlmaster, c); @@ -630,13 +643,13 @@ int CPqData::PQ_ResetAllColorTemperatureParams(void) { int index_TableName = 0;//c.getColumnIndex("TableName"); do { //delete getSqlParams( - __FUNCTION__, - sqlmaster, - "delete from %s where def = 0;" - "insert into %s( Level , Enable , R_Pre_Offset, G_Pre_Offset, B_Pre_Offset, R_Gain, G_Gain, B_Gain, R_Post_Offset, G_Post_Offset, B_Post_Offset, def ) " - "select Level, Enable, R_Pre_Offset, G_Pre_Offset, B_Pre_Offset, R_Gain, G_Gain, B_Gain, R_Post_Offset, G_Post_Offset, B_Post_Offset, 0 from %s where def = 1;", - c.getString(index_TableName).string(), c.getString(index_TableName).string(), - c.getString(index_TableName).string()); + __FUNCTION__, + sqlmaster, + "delete from %s where def = 0;" + "insert into %s( Level , Enable , R_Pre_Offset, G_Pre_Offset, B_Pre_Offset, R_Gain, G_Gain, B_Gain, R_Post_Offset, G_Post_Offset, B_Post_Offset, def ) " + "select Level, Enable, R_Pre_Offset, G_Pre_Offset, B_Pre_Offset, R_Gain, G_Gain, B_Gain, R_Post_Offset, G_Post_Offset, B_Post_Offset, 0 from %s where def = 1;", + c.getString(index_TableName).string(), c.getString(index_TableName).string(), + c.getString(index_TableName).string()); rval = this->exeSql(sqlmaster); } while (c.moveToNext()); } @@ -644,7 +657,8 @@ int CPqData::PQ_ResetAllColorTemperatureParams(void) { } int CPqData::PQ_GetDNLPParams(tvin_port_t source_port, tvin_sig_fmt_t fmt, is_3d_type_t is2dOr3d, - tvin_trans_fmt_t trans_fmt, ve_dnlp_t *params, ve_dnlp_table_t *newParams, int *dnlpFlag) { + tvin_trans_fmt_t trans_fmt, ve_dnlp_t *params, ve_dnlp_table_t *newParams, int *dnlpFlag) +{ CSqlite::Cursor c; char sqlmaster[256]; int mode = is2dOr3d;//Check2Dor3D(status, trans_fmt); @@ -659,16 +673,16 @@ int CPqData::PQ_GetDNLPParams(tvin_port_t source_port, tvin_sig_fmt_t fmt, is_3d mode = is2dOr3d;//Check2Dor3D(status, trans_fmt);//(status << 16)|trans_fmt; getSqlParams(__FUNCTION__, sqlmaster, "select TableName from GeneralDNLPTable where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d ;", source_port, fmt, mode); + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d ;", source_port, fmt, mode); rval = this->select(sqlmaster, c); if (c.moveToFirst()) { int index_TableName = 0;//c.getColumnIndex("TableName"); getSqlParams(__FUNCTION__, sqlmaster, "select value from %s ", - c.getString(index_TableName).string()); + c.getString(index_TableName).string()); rval = this->select(sqlmaster, c); int count = c.getCount(); @@ -733,11 +747,13 @@ int CPqData::PQ_GetDNLPParams(tvin_port_t source_port, tvin_sig_fmt_t fmt, is_3d } int CPqData::PQ_SetNoLineAllBrightnessParams(tv_source_input_type_t source_type, int osd0, - int osd25, int osd50, int osd75, int osd100) { + int osd25, int osd50, int osd75, int osd100) +{ return SetNonlinearMapping(TVPQ_DATA_BRIGHTNESS, source_type, osd0, osd25, osd50, osd75, osd100); } int CPqData::PQ_GetNoLineAllBrightnessParams(tv_source_input_type_t source_type, int *osd0, - int *osd25, int *osd50, int *osd75, int *osd100) { + int *osd25, int *osd50, int *osd75, int *osd100) +{ int osdvalue[5] = { 0 }; int rval; rval = GetNonlinearMappingByOSDFac(TVPQ_DATA_BRIGHTNESS, source_type, osdvalue); @@ -754,7 +770,8 @@ int CPqData::PQ_GetNoLineAllBrightnessParams(tv_source_input_type_t source_type, } int CPqData::PQ_GetBrightnessParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params) { + is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params) +{ int val; GetNonlinearMapping(TVPQ_DATA_BRIGHTNESS, source_port, level, &val); @@ -763,16 +780,19 @@ int CPqData::PQ_GetBrightnessParams(tvin_port_t source_port, tvin_sig_fmt_t sig_ } int CPqData::PQ_SetBrightnessParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params) { + is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params) +{ return 0; } int CPqData::PQ_SetNoLineAllContrastParams(tv_source_input_type_t source_type, int osd0, int osd25, - int osd50, int osd75, int osd100) { + int osd50, int osd75, int osd100) +{ return SetNonlinearMapping(TVPQ_DATA_CONTRAST, source_type, osd0, osd25, osd50, osd75, osd100); } int CPqData::PQ_GetNoLineAllContrastParams(tv_source_input_type_t source_type, int *osd0, - int *osd25, int *osd50, int *osd75, int *osd100) { + int *osd25, int *osd50, int *osd75, int *osd100) +{ int osdvalue[5] = { 0 }; int rval; rval = GetNonlinearMappingByOSDFac(TVPQ_DATA_CONTRAST, source_type, osdvalue); @@ -788,23 +808,27 @@ int CPqData::PQ_GetNoLineAllContrastParams(tv_source_input_type_t source_type, i } int CPqData::PQ_GetContrastParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params) { + is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params) +{ int val; GetNonlinearMapping(TVPQ_DATA_CONTRAST, source_port, level, &val); *params = CaculateLevelParam(pq_con_data, con_nodes, val); return 0; } int CPqData::PQ_SetContrastParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params) { + is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params) +{ return 0; } int CPqData::PQ_SetNoLineAllSaturationParams(tv_source_input_type_t source_type, int osd0, - int osd25, int osd50, int osd75, int osd100) { + int osd25, int osd50, int osd75, int osd100) +{ return SetNonlinearMapping(TVPQ_DATA_SATURATION, source_type, osd0, osd25, osd50, osd75, osd100); } int CPqData::PQ_GetNoLineAllSaturationParams(tv_source_input_type_t source_type, int *osd0, - int *osd25, int *osd50, int *osd75, int *osd100) { + int *osd25, int *osd50, int *osd75, int *osd100) +{ int osdvalue[5] = { 0 }; int rval; rval = GetNonlinearMappingByOSDFac(TVPQ_DATA_SATURATION, source_type, osdvalue); @@ -820,23 +844,27 @@ int CPqData::PQ_GetNoLineAllSaturationParams(tv_source_input_type_t source_type, } int CPqData::PQ_GetSaturationParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params) { + is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params) +{ int val; GetNonlinearMapping(TVPQ_DATA_SATURATION, source_port, level, &val); *params = CaculateLevelParam(pq_sat_data, sat_nodes, val); return 0; } int CPqData::PQ_SetSaturationParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params) { + is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params) +{ return 0; } int CPqData::PQ_SetNoLineAllHueParams(tv_source_input_type_t source_type, int osd0, int osd25, - int osd50, int osd75, int osd100) { + int osd50, int osd75, int osd100) +{ return SetNonlinearMapping(TVPQ_DATA_HUE, source_type, osd0, osd25, osd50, osd75, osd100); } int CPqData::PQ_GetNoLineAllHueParams(tv_source_input_type_t source_type, int *osd0, int *osd25, - int *osd50, int *osd75, int *osd100) { + int *osd50, int *osd75, int *osd100) +{ int osdvalue[5] = { 0 }; int rval; rval = GetNonlinearMappingByOSDFac(TVPQ_DATA_HUE, source_type, osdvalue); @@ -852,23 +880,27 @@ int CPqData::PQ_GetNoLineAllHueParams(tv_source_input_type_t source_type, int *o } int CPqData::PQ_GetHueParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params) { + is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params) +{ int val; GetNonlinearMapping(TVPQ_DATA_HUE, source_port, level, &val); *params = CaculateLevelParam(pq_hue_data, hue_nodes, val); return 0; } int CPqData::PQ_SetHueParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params) { + is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params) +{ return 0; } int CPqData::PQ_SetNoLineAllSharpnessParams(tv_source_input_type_t source_type, int osd0, - int osd25, int osd50, int osd75, int osd100) { + int osd25, int osd50, int osd75, int osd100) +{ return SetNonlinearMapping(TVPQ_DATA_SHARPNESS, source_type, osd0, osd25, osd50, osd75, osd100); } int CPqData::PQ_GetNoLineAllSharpnessParams(tv_source_input_type_t source_type, int *osd0, - int *osd25, int *osd50, int *osd75, int *osd100) { + int *osd25, int *osd50, int *osd75, int *osd100) +{ int osdvalue[5] = { 0 }; int rval; rval = GetNonlinearMappingByOSDFac(TVPQ_DATA_SHARPNESS, source_type, osdvalue); @@ -884,7 +916,8 @@ int CPqData::PQ_GetNoLineAllSharpnessParams(tv_source_input_type_t source_type, } int CPqData::PQ_GetSharpnessParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, am_regs_t *regs, am_regs_t *regs_l) { + is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, am_regs_t *regs, am_regs_t *regs_l) +{ int val; GetNonlinearMapping(TVPQ_DATA_SHARPNESS, source_port, level, &val); LOGD("val = %d\n", val); @@ -894,7 +927,8 @@ int CPqData::PQ_GetSharpnessParams(tvin_port_t source_port, tvin_sig_fmt_t sig_f } return 0; } -int CPqData::PQ_GetPLLParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, am_regs_t *regs) { +int CPqData::PQ_GetPLLParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, am_regs_t *regs) +{ int ret = -1; int i = 0; @@ -917,7 +951,8 @@ int CPqData::PQ_GetPLLParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, am } return ret; } -int CPqData::PQ_GetCVD2Params(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, am_regs_t *regs) { +int CPqData::PQ_GetCVD2Params(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, am_regs_t *regs) +{ int ret = -1; int i = 0; ret = getRegValuesByValue(CVD2_SETTING, PORT, FORMAT, source_port, sig_fmt, regs); @@ -941,16 +976,19 @@ int CPqData::PQ_GetCVD2Params(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, a return ret; } int CPqData::PQ_SetSharpnessParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, am_regs_t regs) { + is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, am_regs_t regs) +{ return 0; } int CPqData::PQ_SetNoLineAllVolumeParams(tv_source_input_type_t source_type, int osd0, int osd25, - int osd50, int osd75, int osd100) { + int osd50, int osd75, int osd100) +{ return SetNonlinearMapping(TVPQ_DATA_VOLUME, source_type, osd0, osd25, osd50, osd75, osd100); } int CPqData::PQ_GetNoLineAllVolumeParams(tv_source_input_type_t source_type, int *osd0, int *osd25, - int *osd50, int *osd75, int *osd100) { + int *osd50, int *osd75, int *osd100) +{ int osdvalue[5] = { 0 }; int rval; rval = GetNonlinearMappingByOSDFac(TVPQ_DATA_VOLUME, source_type, osdvalue); @@ -966,44 +1004,47 @@ int CPqData::PQ_GetNoLineAllVolumeParams(tv_source_input_type_t source_type, int } int CPqData::PQ_SetVolumeParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params) { + is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params) +{ return 0; } -int CPqData::PQ_ResetAllNoLineParams(void) { +int CPqData::PQ_ResetAllNoLineParams(void) +{ int rval; char sqlmaster[256]; char *err = NULL; getSqlParams( - __FUNCTION__, - sqlmaster, - "delete from NonlinearMapping; " - "insert into NonlinearMapping(TVIN_PORT, Item_ID, Level, Value) select TVIN_PORT, Item_ID, Level, Value from NonlinearMapping_Default;"); + __FUNCTION__, + sqlmaster, + "delete from NonlinearMapping; " + "insert into NonlinearMapping(TVIN_PORT, Item_ID, Level, Value) select TVIN_PORT, Item_ID, Level, Value from NonlinearMapping_Default;"); rval = this->exeSql(sqlmaster); return rval; } int CPqData::PQ_GetNoiseReductionParams(vpp_noise_reduction_mode_t nr_mode, - tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, - tvin_trans_fmt_t trans_fmt, int *params) { + tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, + tvin_trans_fmt_t trans_fmt, int *params) +{ CSqlite::Cursor c; char sqlmaster[256]; int mode = is2dOr3d;//Check2Dor3D(status, trans_fmt); int rval = -1; getSqlParams(__FUNCTION__, sqlmaster, "select TableName from GeneralNoiseReductionTable where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d ;", source_port, sig_fmt, mode); + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d ;", source_port, sig_fmt, mode); rval = this->select(sqlmaster, c); if (c.moveToFirst()) { int index_TableName = 0;//c.getColumnIndex("TableName"); getSqlParams(__FUNCTION__, sqlmaster, "select NRValue from %s where NRLevel = %d;", - c.getString(index_TableName).string(), (int) nr_mode); + c.getString(index_TableName).string(), (int) nr_mode); rval = this->select(sqlmaster, c); @@ -1015,14 +1056,16 @@ int CPqData::PQ_GetNoiseReductionParams(vpp_noise_reduction_mode_t nr_mode, } int CPqData::PQ_SetNoiseReductionParams(vpp_noise_reduction_mode_t nr_mode, - tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, - tvin_trans_fmt_t trans_fmt, int *params) { + tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, + tvin_trans_fmt_t trans_fmt, int *params) +{ return 0; } int CPqData::PQ_GetOverscanParams(tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, - is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, vpp_display_mode_t dmode, - tvin_cutwin_t *cutwin_t) { + is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, vpp_display_mode_t dmode, + tvin_cutwin_t *cutwin_t) +{ CSqlite::Cursor c; char sqlmaster[256]; int mode = is2dOr3d;//Check2Dor3D(status, trans_fmt); @@ -1034,9 +1077,9 @@ int CPqData::PQ_GetOverscanParams(tv_source_input_type_t source_type, tvin_sig_f cutwin_t->ve = 0; getSqlParams(__FUNCTION__, sqlmaster, "select Hs, He, Vs, Ve from OVERSCAN where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d ;", source_type, fmt, mode); + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d ;", source_type, fmt, mode); rval = this->select(sqlmaster, c); @@ -1049,62 +1092,65 @@ int CPqData::PQ_GetOverscanParams(tv_source_input_type_t source_type, tvin_sig_f return rval; } int CPqData::PQ_SetOverscanParams(tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, - is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, tvin_cutwin_t cutwin_t) { + is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, tvin_cutwin_t cutwin_t) +{ CSqlite::Cursor c; char sqlmaster[256]; int mode = is2dOr3d;//Check2Dor3D(status, trans_fmt); int rval = -1; getSqlParams( - __FUNCTION__, - sqlmaster, - "select * from OVERSCAN where TVIN_PORT = %d and TVIN_SIG_FMT = %d and TVIN_TRANS_FMT = %d;", - source_type, fmt, mode); + __FUNCTION__, + sqlmaster, + "select * from OVERSCAN where TVIN_PORT = %d and TVIN_SIG_FMT = %d and TVIN_TRANS_FMT = %d;", + source_type, fmt, mode); rval = this->select(sqlmaster, c); if (c.moveToFirst()) { getSqlParams( - __FUNCTION__, - sqlmaster, - "update OVERSCAN set Hs = %d, He = %d, Vs = %d, Ve = %d where TVIN_PORT = %d and TVIN_SIG_FMT = %d and TVIN_TRANS_FMT = %d;", - cutwin_t.hs, cutwin_t.he, cutwin_t.vs, cutwin_t.ve, source_type, fmt, mode); + __FUNCTION__, + sqlmaster, + "update OVERSCAN set Hs = %d, He = %d, Vs = %d, Ve = %d where TVIN_PORT = %d and TVIN_SIG_FMT = %d and TVIN_TRANS_FMT = %d;", + cutwin_t.hs, cutwin_t.he, cutwin_t.vs, cutwin_t.ve, source_type, fmt, mode); } else { getSqlParams( - __FUNCTION__, - sqlmaster, - "Insert into OVERSCAN(TVIN_PORT, TVIN_SIG_FMT, TVIN_TRANS_FMT, Hs, He, Vs, Ve) values(%d, %d, %d ,%d ,%d, %d, %d);", - source_type, fmt, mode, cutwin_t.hs, cutwin_t.he, cutwin_t.vs, cutwin_t.ve); + __FUNCTION__, + sqlmaster, + "Insert into OVERSCAN(TVIN_PORT, TVIN_SIG_FMT, TVIN_TRANS_FMT, Hs, He, Vs, Ve) values(%d, %d, %d ,%d ,%d, %d, %d);", + source_type, fmt, mode, cutwin_t.hs, cutwin_t.he, cutwin_t.vs, cutwin_t.ve); } rval = this->exeSql(sqlmaster); return rval; } -int CPqData::PQ_ResetAllOverscanParams(void) { +int CPqData::PQ_ResetAllOverscanParams(void) +{ int rval; char sqlmaster[256]; getSqlParams( - __FUNCTION__, - sqlmaster, - "delete from OVERSCAN; insert into OVERSCAN(TVIN_PORT, TVIN_SIG_FMT, TVIN_TRANS_FMT, hs, he, vs, ve) select TVIN_PORT, TVIN_SIG_FMT, TVIN_TRANS_FMT, hs, he, vs, ve from OVERSCAN_default;"); + __FUNCTION__, + sqlmaster, + "delete from OVERSCAN; insert into OVERSCAN(TVIN_PORT, TVIN_SIG_FMT, TVIN_TRANS_FMT, hs, he, vs, ve) select TVIN_PORT, TVIN_SIG_FMT, TVIN_TRANS_FMT, hs, he, vs, ve from OVERSCAN_default;"); rval = this->exeSql(sqlmaster); return rval; } int CPqData::PQ_GetPQModeParams(tv_source_input_type_t source_type, vpp_picture_mode_t pq_mode, - vpp_pq_para_t *params) { + vpp_pq_para_t *params) +{ CSqlite::Cursor c; char sqlmaster[256]; int rval = -1; getSqlParams(__FUNCTION__, sqlmaster, - "select Brightness, Contrast, Saturation, Hue, Sharpness, Backlight, NR from Picture_Mode where " - "TVIN_PORT = %d and " - "Mode = %d ;", source_type, pq_mode); + "select Brightness, Contrast, Saturation, Hue, Sharpness, Backlight, NR from Picture_Mode where " + "TVIN_PORT = %d and " + "Mode = %d ;", source_type, pq_mode); rval = this->select(sqlmaster, c); @@ -1120,51 +1166,55 @@ int CPqData::PQ_GetPQModeParams(tv_source_input_type_t source_type, vpp_picture_ return rval; } int CPqData::PQ_SetPQModeParams(tv_source_input_type_t source_type, vpp_picture_mode_t pq_mode, - vpp_pq_para_t *params) { + vpp_pq_para_t *params) +{ int rval; char sql[256]; getSqlParams( - __FUNCTION__, - sql, - "update Picture_Mode set Brightness = %d, Contrast = %d, Saturation = %d, Hue = %d, Sharpness = %d, Backlight = %d, NR= %d " - " where TVIN_PORT = %d and Mode = %d;", params->brightness, params->contrast, - params->saturation, params->hue, params->sharpness, params->backlight, params->nr, - source_type, pq_mode); + __FUNCTION__, + sql, + "update Picture_Mode set Brightness = %d, Contrast = %d, Saturation = %d, Hue = %d, Sharpness = %d, Backlight = %d, NR= %d " + " where TVIN_PORT = %d and Mode = %d;", params->brightness, params->contrast, + params->saturation, params->hue, params->sharpness, params->backlight, params->nr, + source_type, pq_mode); rval = this->exeSql(sql); return 0; } int CPqData::PQ_SetPQModeParamsByName(const char *name, tv_source_input_type_t source_type, - vpp_picture_mode_t pq_mode, vpp_pq_para_t *params) { + vpp_picture_mode_t pq_mode, vpp_pq_para_t *params) +{ int rval; char sql[256]; getSqlParams(__FUNCTION__, sql, - "insert into %s(TVIN_PORT, Mode, Brightness, Contrast, Saturation, Hue, Sharpness, Backlight, NR)" - " values(%d,%d,%d,%d,%d,%d,%d,%d,%d);", name, source_type, pq_mode, - params->brightness, params->contrast, params->saturation, params->hue, - params->sharpness, params->backlight, params->nr); + "insert into %s(TVIN_PORT, Mode, Brightness, Contrast, Saturation, Hue, Sharpness, Backlight, NR)" + " values(%d,%d,%d,%d,%d,%d,%d,%d,%d);", name, source_type, pq_mode, + params->brightness, params->contrast, params->saturation, params->hue, + params->sharpness, params->backlight, params->nr); rval = this->exeSql(sql); return 0; } -int CPqData::PQ_ResetAllPQModeParams(void) { +int CPqData::PQ_ResetAllPQModeParams(void) +{ int rval; char sqlmaster[256]; getSqlParams( - __FUNCTION__, - sqlmaster, - "delete from picture_mode; insert into picture_mode(TVIN_PORT, Mode, Brightness, Contrast, Saturation, Hue, Sharpness, Backlight, NR) select TVIN_PORT, Mode, Brightness, Contrast, Saturation, Hue, Sharpness, Backlight, NR from picture_mode_default;"); + __FUNCTION__, + sqlmaster, + "delete from picture_mode; insert into picture_mode(TVIN_PORT, Mode, Brightness, Contrast, Saturation, Hue, Sharpness, Backlight, NR) select TVIN_PORT, Mode, Brightness, Contrast, Saturation, Hue, Sharpness, Backlight, NR from picture_mode_default;"); rval = this->exeSql(sqlmaster); return rval; } int CPqData::PQ_GetGammaSpecialTable(int gammaValue, const char *f_name, - tcon_gamma_table_t *gamma_value) { + tcon_gamma_table_t *gamma_value) +{ CSqlite::Cursor c; char sqlmaster[256]; int rval = -1; @@ -1184,37 +1234,41 @@ int CPqData::PQ_GetGammaSpecialTable(int gammaValue, const char *f_name, } int CPqData::PQ_GetGammaTableR(int panel_id, tvin_port_t source_port, tvin_sig_fmt_t fmt, - tcon_gamma_table_t *gamma_r) { + tcon_gamma_table_t *gamma_r) +{ return PQ_GetGammaTable(panel_id, source_port, fmt, "Red", gamma_r); } int CPqData::PQ_GetGammaTableG(int panel_id, tvin_port_t source_port, tvin_sig_fmt_t fmt, - tcon_gamma_table_t *gamma_g) { + tcon_gamma_table_t *gamma_g) +{ return PQ_GetGammaTable(panel_id, source_port, fmt, "Green", gamma_g); } int CPqData::PQ_GetGammaTableB(int panel_id, tvin_port_t source_port, tvin_sig_fmt_t fmt, - tcon_gamma_table_t *gamma_b) { + tcon_gamma_table_t *gamma_b) +{ return PQ_GetGammaTable(panel_id, source_port, fmt, "Blue", gamma_b); } int CPqData::PQ_GetGammaTable(int panel_id, tvin_port_t source_port, tvin_sig_fmt_t fmt, - const char *f_name, tcon_gamma_table_t *val) { + const char *f_name, tcon_gamma_table_t *val) +{ CSqlite::Cursor c; char sqlmaster[256]; int rval = -1; getSqlParams(__FUNCTION__, sqlmaster, "select TableName from GeneralGammaTable where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d;", source_port, fmt); + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d;", source_port, fmt); rval = this->select(sqlmaster, c); if (c.moveToFirst()) { int index_TableName = 0;//c.getColumnIndex("TableName"); getSqlParams(__FUNCTION__, sqlmaster, "select %s from %s;", f_name, - c.getString(index_TableName).string()); + c.getString(index_TableName).string()); rval = this->select(sqlmaster, c); if (c.moveToFirst()) { @@ -1228,7 +1282,8 @@ int CPqData::PQ_GetGammaTable(int panel_id, tvin_port_t source_port, tvin_sig_fm return rval; } -int CPqData::PQ_GetVGAAjustPara(tvin_sig_fmt_t vga_fmt, tvafe_vga_parm_t *adjparam) { +int CPqData::PQ_GetVGAAjustPara(tvin_sig_fmt_t vga_fmt, tvafe_vga_parm_t *adjparam) +{ CSqlite::Cursor c; char sqlmaster[256]; int rval = -1; @@ -1240,10 +1295,10 @@ int CPqData::PQ_GetVGAAjustPara(tvin_sig_fmt_t vga_fmt, tvafe_vga_parm_t *adjpar adjparam->vga_in_clean = 0; getSqlParams( - __FUNCTION__, - sqlmaster, - "select Clk, Phase, HPos, VPos, Vga_in_clean from VGA_AutoParams where TVIN_SIG_FMT = %d", - vga_fmt); + __FUNCTION__, + sqlmaster, + "select Clk, Phase, HPos, VPos, Vga_in_clean from VGA_AutoParams where TVIN_SIG_FMT = %d", + vga_fmt); rval = this->select(sqlmaster, c); @@ -1256,36 +1311,38 @@ int CPqData::PQ_GetVGAAjustPara(tvin_sig_fmt_t vga_fmt, tvafe_vga_parm_t *adjpar } return rval; } -int CPqData::PQ_SetVGAAjustPara(tvin_sig_fmt_t vga_fmt, tvafe_vga_parm_t adjparam) { +int CPqData::PQ_SetVGAAjustPara(tvin_sig_fmt_t vga_fmt, tvafe_vga_parm_t adjparam) +{ CSqlite::Cursor c; char sql[256]; int rval = -1; getSqlParams(__FUNCTION__, sql, "select * from VGA_AutoParams where TVIN_SIG_FMT = %d;", - vga_fmt); + vga_fmt); rval = this->select(sql, c); if (c.moveToFirst()) { getSqlParams( - __FUNCTION__, - sql, - "Insert into VGA_AutoParams(TVIN_SIG_FMT, Clk, Phase, HPos, VPos, Vga_in_clean) values(%d, %d, %d ,%d ,%d, %d);", - vga_fmt, adjparam.clk_step, adjparam.phase, adjparam.hpos_step, adjparam.vpos_step, - adjparam.vga_in_clean); + __FUNCTION__, + sql, + "Insert into VGA_AutoParams(TVIN_SIG_FMT, Clk, Phase, HPos, VPos, Vga_in_clean) values(%d, %d, %d ,%d ,%d, %d);", + vga_fmt, adjparam.clk_step, adjparam.phase, adjparam.hpos_step, adjparam.vpos_step, + adjparam.vga_in_clean); } else { getSqlParams( - __FUNCTION__, - sql, - "update VGA_AutoParams set Clk = %d, Phase = %d, HPos = %d, VPos = %d, Vga_in_clean = %d where TVIN_SIG_FMT = %d;", - adjparam.clk_step, adjparam.phase, adjparam.hpos_step, adjparam.vpos_step, - adjparam.vga_in_clean, vga_fmt); + __FUNCTION__, + sql, + "update VGA_AutoParams set Clk = %d, Phase = %d, HPos = %d, VPos = %d, Vga_in_clean = %d where TVIN_SIG_FMT = %d;", + adjparam.clk_step, adjparam.phase, adjparam.hpos_step, adjparam.vpos_step, + adjparam.vga_in_clean, vga_fmt); } rval = this->exeSql(sql); return rval; } -int CPqData::CaculateLevelParam(tvpq_data_t *pq_data, int nodes, int level) { +int CPqData::CaculateLevelParam(tvpq_data_t *pq_data, int nodes, int level) +{ int i; for (i = 0; i < nodes; i++) { @@ -1303,7 +1360,8 @@ int CPqData::CaculateLevelParam(tvpq_data_t *pq_data, int nodes, int level) { } } -am_regs_t CPqData::CaculateLevelRegsParam(tvpq_sharpness_regs_t *pq_regs, int level, int flag) { +am_regs_t CPqData::CaculateLevelRegsParam(tvpq_sharpness_regs_t *pq_regs, int level, int flag) +{ am_regs_t regs; int i; int *pq_nodes = NULL; @@ -1343,7 +1401,7 @@ am_regs_t CPqData::CaculateLevelRegsParam(tvpq_sharpness_regs_t *pq_regs, int le regs.am_reg[j].addr = pq_regs[i - 1].reg_data[j].Value.addr; regs.am_reg[j].mask = pq_regs[i - 1].reg_data[j].Value.mask; regs.am_reg[j].val = pq_regs[i - 1].reg_data[j].Value.val + (level - - pq_regs[i - 1].reg_data[j].IndexValue) * pq_regs[i - 1].reg_data[j].step; + - pq_regs[i - 1].reg_data[j].IndexValue) * pq_regs[i - 1].reg_data[j].step; } } @@ -1351,7 +1409,8 @@ am_regs_t CPqData::CaculateLevelRegsParam(tvpq_sharpness_regs_t *pq_regs, int le } int CPqData::GetNonlinearMapping(tvpq_data_type_t data_type, tvin_port_t source_port, int level, - int *params) { + int *params) +{ CSqlite::Cursor c; char sqlmaster[256]; int rval = -1; @@ -1361,9 +1420,9 @@ int CPqData::GetNonlinearMapping(tvpq_data_type_t data_type, tvin_port_t source_ type = CTvin::Tvin_SourcePortToSourceInputType(source_port);//??? getSqlParams(__FUNCTION__, sqlmaster, "select Value from NonlinearMapping where " - "TVIN_PORT = %d and " - "Item_ID = %d and " - "Level = %d ;", type, data_type, level); + "TVIN_PORT = %d and " + "Item_ID = %d and " + "Level = %d ;", type, data_type, level); rval = this->select(sqlmaster, c); @@ -1374,16 +1433,17 @@ int CPqData::GetNonlinearMapping(tvpq_data_type_t data_type, tvin_port_t source_ } int CPqData::GetNonlinearMappingByOSDFac(tvpq_data_type_t data_type, - tv_source_input_type_t source_type, int *params) { + tv_source_input_type_t source_type, int *params) +{ CSqlite::Cursor c; char sqlmaster[256]; int rval = -1; getSqlParams(__FUNCTION__, sqlmaster, "select Value from NonlinearMapping where " - "TVIN_PORT = %d and " - "Item_ID = %d and (" - "Level = 0 or Level = 25 or Level = 50 or Level = 75 or Level = 100);", source_type, - data_type); + "TVIN_PORT = %d and " + "Item_ID = %d and (" + "Level = 0 or Level = 25 or Level = 50 or Level = 75 or Level = 100);", source_type, + data_type); rval = this->select(sqlmaster, c); @@ -1398,7 +1458,8 @@ int CPqData::GetNonlinearMappingByOSDFac(tvpq_data_type_t data_type, } int CPqData::SetNonlinearMapping(tvpq_data_type_t data_type, tv_source_input_type_t source_type, - int osd0, int osd25, int osd50, int osd75, int osd100) { + int osd0, int osd25, int osd50, int osd75, int osd100) +{ int rval; char *err = NULL; @@ -1424,10 +1485,10 @@ int CPqData::SetNonlinearMapping(tvpq_data_type_t data_type, tv_source_input_typ osdvalue[i] = osd75 + (int) ((i - 75) * step[3]); } getSqlParams( - __FUNCTION__, - sql, - "update NonLinearMapping set Value = %d where TVIN_PORT = %d and Item_ID = %d and Level = %d ;", - osdvalue[i], source_type, data_type, i); + __FUNCTION__, + sql, + "update NonLinearMapping set Value = %d where TVIN_PORT = %d and Item_ID = %d and Level = %d ;", + osdvalue[i], source_type, data_type, i); if (!(this->exeSql(sql))) { return -1; } @@ -1436,7 +1497,8 @@ int CPqData::SetNonlinearMapping(tvpq_data_type_t data_type, tv_source_input_typ } int CPqData::SetNonlinearMappingByName(const char *name, tvpq_data_type_t data_type, - tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100) { + tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100) +{ int rval; char *err = NULL; int osdvalue[101]; @@ -1462,19 +1524,21 @@ int CPqData::SetNonlinearMappingByName(const char *name, tvpq_data_type_t data_t } memset(sql, '\0', 256); getSqlParams(__FUNCTION__, sql, - "insert into %s(TVIN_PORT, Item_ID, Level, Value) values(%d,%d,%d,%d);", name, - source_type, data_type, i, osdvalue[i]); + "insert into %s(TVIN_PORT, Item_ID, Level, Value) values(%d,%d,%d,%d);", name, + source_type, data_type, i, osdvalue[i]); if (!(this->exeSql(sql))) { return -1; } } return 0; } -int CPqData::getSharpnessFlag() { +int CPqData::getSharpnessFlag() +{ return sha_diff_flag; } -int CPqData::loadSharpnessData(char *sqlmaster, char *table_name) { +int CPqData::loadSharpnessData(char *sqlmaster, char *table_name) +{ LOGD("%s, table_name: %s, sqlmaster: %s\n", __FUNCTION__, table_name, sqlmaster); CSqlite::Cursor c; int rval; @@ -1508,19 +1572,19 @@ int CPqData::loadSharpnessData(char *sqlmaster, char *table_name) { } do { pq_sharpness_reg_data[index / length].reg_data[index % length].TotalNode - = c.getInt(0); + = c.getInt(0); pq_sharpness_reg_data[index / length].reg_data[index % length].NodeValue - = c.getInt(1); + = c.getInt(1); pq_sharpness_reg_data[index / length].reg_data[index % length].Value.type - = c.getUInt(2); + = c.getUInt(2); pq_sharpness_reg_data[index / length].reg_data[index % length].Value.addr - = c.getUInt(3); + = c.getUInt(3); pq_sharpness_reg_data[index / length].reg_data[index % length].Value.mask - = c.getUInt(4); + = c.getUInt(4); pq_sharpness_reg_data[index / length].reg_data[index % length].IndexValue - = c.getInt(5); + = c.getInt(5); pq_sharpness_reg_data[index / length].reg_data[index % length].Value.val - = c.getUInt(6); + = c.getUInt(6); pq_sharpness_reg_data[index / length].reg_data[index % length].step = c.getF(7); index++; } while (c.moveToNext()); @@ -1534,19 +1598,19 @@ int CPqData::loadSharpnessData(char *sqlmaster, char *table_name) { } do { pq_sharpness_reg_data_1[index / length].reg_data[index % length].TotalNode - = c.getInt(0); + = c.getInt(0); pq_sharpness_reg_data_1[index / length].reg_data[index % length].NodeValue - = c.getInt(1); + = c.getInt(1); pq_sharpness_reg_data_1[index / length].reg_data[index % length].Value.type - = c.getUInt(2); + = c.getUInt(2); pq_sharpness_reg_data_1[index / length].reg_data[index % length].Value.addr - = c.getUInt(3); + = c.getUInt(3); pq_sharpness_reg_data_1[index / length].reg_data[index % length].Value.mask - = c.getUInt(4); + = c.getUInt(4); pq_sharpness_reg_data_1[index / length].reg_data[index % length].IndexValue - = c.getInt(5); + = c.getInt(5); pq_sharpness_reg_data_1[index / length].reg_data[index % length].Value.val - = c.getUInt(6); + = c.getUInt(6); pq_sharpness_reg_data_1[index / length].reg_data[index % length].step = c.getF(7); index++; } while (c.moveToNext()); @@ -1556,7 +1620,8 @@ int CPqData::loadSharpnessData(char *sqlmaster, char *table_name) { } int CPqData::LoadPQData(tvpq_data_type_t data_type, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int flag) { + tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int flag) +{ CSqlite::Cursor c; int rval; char sqlmaster[256]; @@ -1568,52 +1633,52 @@ int CPqData::LoadPQData(tvpq_data_type_t data_type, tvin_port_t source_port, switch (data_type) { case TVPQ_DATA_BRIGHTNESS: getSqlParams(__FUNCTION__, sqlmaster, - "select TableName from GeneralContrastBrightnessTable where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d and " - "%s = %d;", source_port, sig_fmt, mode, ID_FIELD, BRIGHTNESS_ID); + "select TableName from GeneralContrastBrightnessTable where " + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d and " + "%s = %d;", source_port, sig_fmt, mode, ID_FIELD, BRIGHTNESS_ID); pq_data = pq_bri_data; pq_nodes = &bri_nodes; break; case TVPQ_DATA_CONTRAST: getSqlParams(__FUNCTION__, sqlmaster, - "select TableName from GeneralContrastBrightnessTable where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d and " - "%s = %d;", source_port, sig_fmt, mode, ID_FIELD, CONTRAST_ID); + "select TableName from GeneralContrastBrightnessTable where " + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d and " + "%s = %d;", source_port, sig_fmt, mode, ID_FIELD, CONTRAST_ID); pq_data = pq_con_data; pq_nodes = &con_nodes; break; case TVPQ_DATA_HUE: getSqlParams(__FUNCTION__, sqlmaster, - "select TableName from GeneralSaturationHueTable where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d and " - "%s = %d;", source_port, sig_fmt, mode, ID_FIELD, HUE_ID); + "select TableName from GeneralSaturationHueTable where " + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d and " + "%s = %d;", source_port, sig_fmt, mode, ID_FIELD, HUE_ID); pq_data = pq_hue_data; pq_nodes = &hue_nodes; break; case TVPQ_DATA_SATURATION: getSqlParams(__FUNCTION__, sqlmaster, - "select TableName from GeneralSaturationHueTable where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d and " - "%s = %d;", source_port, sig_fmt, mode, ID_FIELD, SATURATION_ID); + "select TableName from GeneralSaturationHueTable where " + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d and " + "%s = %d;", source_port, sig_fmt, mode, ID_FIELD, SATURATION_ID); pq_data = pq_sat_data; pq_nodes = &sat_nodes; break; case TVPQ_DATA_SHARPNESS: //sprintf(sqlmaster, "select TableName from GeneralSharpnessTable where " - getSqlParams(__FUNCTION__,sqlmaster, - "select TableName from GeneralSharpnessG9Table where " - "TVIN_PORT = %d and " - "TVIN_SIG_FMT = %d and " - "TVIN_TRANS_FMT = %d and " - "%s = %d;", source_port, sig_fmt, mode, ID_FIELD, SHARPNESS_ID); + getSqlParams(__FUNCTION__, sqlmaster, + "select TableName from GeneralSharpnessG9Table where " + "TVIN_PORT = %d and " + "TVIN_SIG_FMT = %d and " + "TVIN_TRANS_FMT = %d and " + "%s = %d;", source_port, sig_fmt, mode, ID_FIELD, SHARPNESS_ID); pq_data = NULL; pq_nodes = &sha_nodes; break; @@ -1630,17 +1695,17 @@ int CPqData::LoadPQData(tvpq_data_type_t data_type, tvin_port_t source_port, case TVPQ_DATA_HUE: case TVPQ_DATA_SATURATION: getSqlParams( - __FUNCTION__, - sqlmaster, - "select TotalNode, NodeNumber, IndexValue, RegValue, StepUp from %s order by NodeNumber asc;", - c.getString(0).string()); + __FUNCTION__, + sqlmaster, + "select TotalNode, NodeNumber, IndexValue, RegValue, StepUp from %s order by NodeNumber asc;", + c.getString(0).string()); break; case TVPQ_DATA_SHARPNESS: do { getSqlParams(__FUNCTION__, sqlmaster, - "select TotalNode, NodeNumber, RegType, RegAddr, RegMask," - "IndexValue, RegValue, StepUp from %s order by NodeNumber asc;", - c.getString(0).string()); + "select TotalNode, NodeNumber, RegType, RegAddr, RegMask," + "IndexValue, RegValue, StepUp from %s order by NodeNumber asc;", + c.getString(0).string()); c.getString(table_name, 0); rval = loadSharpnessData(sqlmaster, table_name); } while (c.moveToNext()); @@ -1664,16 +1729,16 @@ int CPqData::LoadPQData(tvpq_data_type_t data_type, tvin_port_t source_port, if (flag == 1) { if (data_type == TVPQ_DATA_BRIGHTNESS) { LOGD("%s, bri pq_data[%d].RegValue = %d\n", "TV", index, - pq_data[index].RegValue); + pq_data[index].RegValue); pq_data[index].RegValue -= 64; LOGD("%s, bri pq_data[%d].RegValue + 64 = %d\n", "TV", index, - pq_data[index].RegValue); + pq_data[index].RegValue); } else if (data_type == TVPQ_DATA_CONTRAST) { LOGD("%s, con pq_data[%d].RegValue = %d\n", "TV", index, - pq_data[index].RegValue); + pq_data[index].RegValue); pq_data[index].RegValue += 64; LOGD("%s, con pq_data[%d].RegValue + 64 = %d\n", "TV", index, - pq_data[index].RegValue); + pq_data[index].RegValue); } } index++; @@ -1686,7 +1751,8 @@ int CPqData::LoadPQData(tvpq_data_type_t data_type, tvin_port_t source_port, } int CPqData::LoadAllPQData(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, - tvin_trans_fmt_t trans_fmt, int flag) { + tvin_trans_fmt_t trans_fmt, int flag) +{ int rval = -1; rval = LoadPQData(TVPQ_DATA_BRIGHTNESS, source_port, sig_fmt, is2dOr3d, trans_fmt, flag); if (rval) { @@ -1721,9 +1787,11 @@ typedef enum initial_type_e { } initial_type_t; const char *Pmode_name[6] = { "Picture_Mode", "Picture_Mode_Default", "NonlinearMapping", - "NonlinearMapping_Default", "VGA_AutoParams", "OVERSCAN" }; + "NonlinearMapping_Default", "VGA_AutoParams", "OVERSCAN" + }; -void CPqData::initialTable(int type) { +void CPqData::initialTable(int type) +{ vpp_pq_para_t pmode_default; pmode_default.backlight = 100; @@ -1740,7 +1808,7 @@ void CPqData::initialTable(int type) { for (int i = 0; i < 6; i++) { for (int j = 0; j < 4; j++) { PQ_SetPQModeParamsByName(Pmode_name[type], (tv_source_input_type_t) i, - (vpp_picture_mode_t) j, &pmode_default); + (vpp_picture_mode_t) j, &pmode_default); } } break; @@ -1749,8 +1817,8 @@ void CPqData::initialTable(int type) { for (int i = 0; i < 6; i++) { for (int j = 0; j < 5; j++) { SetNonlinearMappingByName(Pmode_name[type], (tvpq_data_type_t) j, - (tv_source_input_type_t) i, 0, (int) 255 / 4.0, (int) 255 * 2 / 4.0, - (int) 255 * 3 / 4.0, 255); + (tv_source_input_type_t) i, 0, (int) 255 / 4.0, (int) 255 * 2 / 4.0, + (int) 255 * 3 / 4.0, 255); } } break; @@ -1827,7 +1895,8 @@ void CPqData::initialTable(int type) { } */ -int CPqData::replacePqDb(const char *newFilePath) { +int CPqData::replacePqDb(const char *newFilePath) +{ CFile::delFile( PQ_DB_PATH); if (newFilePath == NULL) { @@ -1840,7 +1909,8 @@ int CPqData::replacePqDb(const char *newFilePath) { return ret; } } -int CPqData::PQ_GetPhaseArray(am_phase_t *am_phase) { +int CPqData::PQ_GetPhaseArray(am_phase_t *am_phase) +{ CSqlite::Cursor c; int iOutRet = 0; char sqlmaster[256]; diff --git a/tvapi/libtv/vpp/CPQdb.h b/tvapi/libtv/vpp/CPQdb.h index 972cbd7..300494a 100644 --- a/tvapi/libtv/vpp/CPQdb.h +++ b/tvapi/libtv/vpp/CPQdb.h @@ -33,148 +33,148 @@ typedef enum tvpq_data_type_e { - TVPQ_DATA_BRIGHTNESS, - TVPQ_DATA_CONTRAST, - TVPQ_DATA_SATURATION, - TVPQ_DATA_HUE, - TVPQ_DATA_SHARPNESS, - TVPQ_DATA_VOLUME, - - TVPQ_DATA_MAX, + TVPQ_DATA_BRIGHTNESS, + TVPQ_DATA_CONTRAST, + TVPQ_DATA_SATURATION, + TVPQ_DATA_HUE, + TVPQ_DATA_SHARPNESS, + TVPQ_DATA_VOLUME, + + TVPQ_DATA_MAX, } tvpq_data_type_t; typedef struct tvpq_data_s { - int TotalNode; - int NodeValue; - int IndexValue; - int RegValue; - double step; + int TotalNode; + int NodeValue; + int IndexValue; + int RegValue; + double step; } tvpq_data_t; typedef struct tvpq_sharpness_reg_s { - int TotalNode; - am_reg_t Value; - int NodeValue; - int IndexValue; - double step; + int TotalNode; + am_reg_t Value; + int NodeValue; + int IndexValue; + double step; } tvpq_sharpness_reg_t; typedef struct tvpq_sharpness_regs_s { - int length; - tvpq_sharpness_reg_t reg_data[50]; + int length; + tvpq_sharpness_reg_t reg_data[50]; } tvpq_sharpness_regs_t; typedef struct tvpq_nonlinear_s { - int osd0; - int osd25; - int osd50; - int osd75; - int osd100; + int osd0; + int osd25; + int osd50; + int osd75; + int osd100; } tvpq_nonlinear_t; class CPqData: public CSqlite { public: - CPqData(); - ~CPqData(); - int PQ_GetColorDemoParams(vpp_color_demomode_t demomode, void *params); - int PQ_GetBaseColorParams(vpp_color_basemode_t basemode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs); - int PQ_GetCM2Params(vpp_color_management2_t basemode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs); - int PQ_GetNR2Params(vpp_noise_reduction2_mode_t basemode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs); - int PQ_GetXVYCCParams(vpp_xvycc_mode_t xvycc_mode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs, am_regs_t *regs_1); - int PQ_GetMCDIParams(vpp_mcdi_mode_t mcdi_mode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs); + CPqData(); + ~CPqData(); + int PQ_GetColorDemoParams(vpp_color_demomode_t demomode, void *params); + int PQ_GetBaseColorParams(vpp_color_basemode_t basemode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs); + int PQ_GetCM2Params(vpp_color_management2_t basemode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs); + int PQ_GetNR2Params(vpp_noise_reduction2_mode_t basemode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs); + int PQ_GetXVYCCParams(vpp_xvycc_mode_t xvycc_mode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs, am_regs_t *regs_1); + int PQ_GetMCDIParams(vpp_mcdi_mode_t mcdi_mode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs); int PQ_GetDeblockParams(vpp_deblock_mode_t mode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs); int PQ_ColorTemperatureRGBogo2Params(void *params, tcon_rgb_ogo_t rgb_ogo); - int PQ_ColorTemperatureParams2RGBogo(tcon_rgb_ogo_t *rgb_ogo, void *params); - int PQ_GetColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, - tcon_rgb_ogo_t *params); - int PQ_SetColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, - tcon_rgb_ogo_t params); - int PQ_ResetAllColorTemperatureParams(void); - int PQ_GetBacklightParams(tvin_port_t source_port, int level, int *params); - int PQ_SetBacklightParams(tvin_port_t source_port, int level, int params); - int PQ_SetNoLineAllBrightnessParams(tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); - int PQ_GetNoLineAllBrightnessParams(tv_source_input_type_t source_type, int *osd0, int *osd25, int *osd50, int *osd75, int *osd100); - int PQ_GetBrightnessParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params); - int PQ_SetBrightnessParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params); - int PQ_SetNoLineAllContrastParams(tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); - int PQ_GetNoLineAllContrastParams(tv_source_input_type_t source_type, int *osd0, int *osd25, int *osd50, int *osd75, int *osd100); - int PQ_GetContrastParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params); - int PQ_SetContrastParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params); - int PQ_SetNoLineAllSaturationParams(tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); - int PQ_GetNoLineAllSaturationParams(tv_source_input_type_t source_type, int *osd0, int *osd25, int *osd50, int *osd75, int *osd100); - int PQ_GetSaturationParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params); - int PQ_SetSaturationParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params); - int PQ_SetNoLineAllHueParams(tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); - int PQ_GetNoLineAllHueParams(tv_source_input_type_t source_type, int *osd0, int *osd25, int *osd50, int *osd75, int *osd100); - int PQ_GetHueParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params); - int PQ_SetHueParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params); - int PQ_SetNoLineAllSharpnessParams(tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); - int PQ_GetNoLineAllSharpnessParams(tv_source_input_type_t source_type, int *osd0, int *osd25, int *osd50, int *osd75, int *osd100); - int PQ_GetSharpnessParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, am_regs_t *regs, am_regs_t *regs_l); - int PQ_SetSharpnessParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, am_regs_t regs); - int PQ_SetNoLineAllVolumeParams(tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); - int PQ_GetNoLineAllVolumeParams(tv_source_input_type_t source_type, int *osd0, int *osd25, int *osd50, int *osd75, int *osd100); - int PQ_GetVolumeParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int *length, int *params); - int PQ_SetVolumeParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params); - int PQ_ResetAllNoLineParams(void); - int PQ_GetNoiseReductionParams(vpp_noise_reduction_mode_t nr_mode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int *params); - int PQ_SetNoiseReductionParams(vpp_noise_reduction_mode_t nr_mode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int *params); - int PQ_GetDNLPParams(tvin_port_t source_port, tvin_sig_fmt_t fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, ve_dnlp_t *params, ve_dnlp_table_t *newParams, int *dnlpFlag); - int PQ_GetBlackExtParams(tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, ve_bext_t *params); - int PQ_GetOverscanParams(tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, vpp_display_mode_t dmode, tvin_cutwin_t *cutwin_t); - int PQ_SetOverscanParams(tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, tvin_cutwin_t cutwin_t); - int PQ_ResetAllOverscanParams(void); - int PQ_GetPQModeParams(tv_source_input_type_t source_type, vpp_picture_mode_t pq_mode, vpp_pq_para_t *params); - int PQ_SetPQModeParams(tv_source_input_type_t source_type, vpp_picture_mode_t pq_mode, vpp_pq_para_t *params); - int PQ_ResetAllPQModeParams(void); - int PQ_GetGammaTableR(int panel_id, tvin_port_t source_port, tvin_sig_fmt_t fmt, tcon_gamma_table_t *gamma_r); - int PQ_GetGammaTableG(int panel_id, tvin_port_t source_port, tvin_sig_fmt_t fmt, tcon_gamma_table_t *gamma_g); - int PQ_GetGammaTableB(int panel_id, tvin_port_t source_port, tvin_sig_fmt_t fmt, tcon_gamma_table_t *gamma_b); - int PQ_GetGammaSpecialTable(int gammaValue, const char *f_name, tcon_gamma_table_t *gamma_r); - int PQ_GetVGAAjustPara(tvin_sig_fmt_t vga_fmt, tvafe_vga_parm_t *adjparam); - int PQ_SetVGAAjustPara(tvin_sig_fmt_t vga_fmt, tvafe_vga_parm_t adjparam); - int PQ_GetPhaseArray(am_phase_t *am_phase); - int PQ_GetPLLParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, am_regs_t *regs); - int PQ_GetCVD2Params(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, am_regs_t *regs); - - int openPqDB(const char *); - int closeDB(); - int reopenDB(); - int getRegValues(const char *table_name, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs); - int getRegValuesByValue(const char *name, const char *f_name, const char *f2_name, const int val, const int val2, am_regs_t *regs); - int getRegValuesByValue_long(const char *name, const char *f_name, const char *f2_name, const int val, const int val2, am_regs_t *regs, am_regs_t *regs_1); - int LoadAllPQData(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int flag); - void initialTable(int type); - void transferFixTable(); - int replacePqDb(const char *newFilePath); + int PQ_ColorTemperatureParams2RGBogo(tcon_rgb_ogo_t *rgb_ogo, void *params); + int PQ_GetColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, + tcon_rgb_ogo_t *params); + int PQ_SetColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, + tcon_rgb_ogo_t params); + int PQ_ResetAllColorTemperatureParams(void); + int PQ_GetBacklightParams(tvin_port_t source_port, int level, int *params); + int PQ_SetBacklightParams(tvin_port_t source_port, int level, int params); + int PQ_SetNoLineAllBrightnessParams(tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); + int PQ_GetNoLineAllBrightnessParams(tv_source_input_type_t source_type, int *osd0, int *osd25, int *osd50, int *osd75, int *osd100); + int PQ_GetBrightnessParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params); + int PQ_SetBrightnessParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params); + int PQ_SetNoLineAllContrastParams(tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); + int PQ_GetNoLineAllContrastParams(tv_source_input_type_t source_type, int *osd0, int *osd25, int *osd50, int *osd75, int *osd100); + int PQ_GetContrastParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params); + int PQ_SetContrastParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params); + int PQ_SetNoLineAllSaturationParams(tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); + int PQ_GetNoLineAllSaturationParams(tv_source_input_type_t source_type, int *osd0, int *osd25, int *osd50, int *osd75, int *osd100); + int PQ_GetSaturationParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params); + int PQ_SetSaturationParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params); + int PQ_SetNoLineAllHueParams(tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); + int PQ_GetNoLineAllHueParams(tv_source_input_type_t source_type, int *osd0, int *osd25, int *osd50, int *osd75, int *osd100); + int PQ_GetHueParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int *params); + int PQ_SetHueParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params); + int PQ_SetNoLineAllSharpnessParams(tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); + int PQ_GetNoLineAllSharpnessParams(tv_source_input_type_t source_type, int *osd0, int *osd25, int *osd50, int *osd75, int *osd100); + int PQ_GetSharpnessParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, am_regs_t *regs, am_regs_t *regs_l); + int PQ_SetSharpnessParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, am_regs_t regs); + int PQ_SetNoLineAllVolumeParams(tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); + int PQ_GetNoLineAllVolumeParams(tv_source_input_type_t source_type, int *osd0, int *osd25, int *osd50, int *osd75, int *osd100); + int PQ_GetVolumeParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int *length, int *params); + int PQ_SetVolumeParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int level, int params); + int PQ_ResetAllNoLineParams(void); + int PQ_GetNoiseReductionParams(vpp_noise_reduction_mode_t nr_mode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int *params); + int PQ_SetNoiseReductionParams(vpp_noise_reduction_mode_t nr_mode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int *params); + int PQ_GetDNLPParams(tvin_port_t source_port, tvin_sig_fmt_t fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, ve_dnlp_t *params, ve_dnlp_table_t *newParams, int *dnlpFlag); + int PQ_GetBlackExtParams(tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, ve_bext_t *params); + int PQ_GetOverscanParams(tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, vpp_display_mode_t dmode, tvin_cutwin_t *cutwin_t); + int PQ_SetOverscanParams(tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, tvin_cutwin_t cutwin_t); + int PQ_ResetAllOverscanParams(void); + int PQ_GetPQModeParams(tv_source_input_type_t source_type, vpp_picture_mode_t pq_mode, vpp_pq_para_t *params); + int PQ_SetPQModeParams(tv_source_input_type_t source_type, vpp_picture_mode_t pq_mode, vpp_pq_para_t *params); + int PQ_ResetAllPQModeParams(void); + int PQ_GetGammaTableR(int panel_id, tvin_port_t source_port, tvin_sig_fmt_t fmt, tcon_gamma_table_t *gamma_r); + int PQ_GetGammaTableG(int panel_id, tvin_port_t source_port, tvin_sig_fmt_t fmt, tcon_gamma_table_t *gamma_g); + int PQ_GetGammaTableB(int panel_id, tvin_port_t source_port, tvin_sig_fmt_t fmt, tcon_gamma_table_t *gamma_b); + int PQ_GetGammaSpecialTable(int gammaValue, const char *f_name, tcon_gamma_table_t *gamma_r); + int PQ_GetVGAAjustPara(tvin_sig_fmt_t vga_fmt, tvafe_vga_parm_t *adjparam); + int PQ_SetVGAAjustPara(tvin_sig_fmt_t vga_fmt, tvafe_vga_parm_t adjparam); + int PQ_GetPhaseArray(am_phase_t *am_phase); + int PQ_GetPLLParams(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, am_regs_t *regs); + int PQ_GetCVD2Params(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, am_regs_t *regs); + + int openPqDB(const char *); + int closeDB(); + int reopenDB(); + int getRegValues(const char *table_name, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, am_regs_t *regs); + int getRegValuesByValue(const char *name, const char *f_name, const char *f2_name, const int val, const int val2, am_regs_t *regs); + int getRegValuesByValue_long(const char *name, const char *f_name, const char *f2_name, const int val, const int val2, am_regs_t *regs, am_regs_t *regs_1); + int LoadAllPQData(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int flag); + void initialTable(int type); + void transferFixTable(); + int replacePqDb(const char *newFilePath); int getSharpnessFlag(); private: - int CaculateLevelParam(tvpq_data_t *pq_data, int nodes, int level); - am_regs_t CaculateLevelRegsParam(tvpq_sharpness_regs_t *pq_regs, int level, int flag); - int GetNonlinearMapping(tvpq_data_type_t data_type, tvin_port_t source_port, int level, int *params); - int GetNonlinearMappingByOSDFac(tvpq_data_type_t data_type, tv_source_input_type_t source_type, int *params); - int SetNonlinearMapping(tvpq_data_type_t data_type, tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); - int LoadPQData(tvpq_data_type_t data_type, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int flag); + int CaculateLevelParam(tvpq_data_t *pq_data, int nodes, int level); + am_regs_t CaculateLevelRegsParam(tvpq_sharpness_regs_t *pq_regs, int level, int flag); + int GetNonlinearMapping(tvpq_data_type_t data_type, tvin_port_t source_port, int level, int *params); + int GetNonlinearMappingByOSDFac(tvpq_data_type_t data_type, tv_source_input_type_t source_type, int *params); + int SetNonlinearMapping(tvpq_data_type_t data_type, tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); + int LoadPQData(tvpq_data_type_t data_type, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is2dOr3d, tvin_trans_fmt_t trans_fmt, int flag); int loadSharpnessData(char *sqlmaster, char *table_name); int PQ_GetGammaTable(int panel_id, tvin_port_t source_port, tvin_sig_fmt_t fmt, const char *f_name, tcon_gamma_table_t *val); - int SetNonlinearMappingByName(const char *name, tvpq_data_type_t data_type, tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); - int PQ_SetPQModeParamsByName(const char *name, tv_source_input_type_t source_type, vpp_picture_mode_t pq_mode, vpp_pq_para_t *params); - - tvpq_data_t pq_bri_data[15]; - tvpq_data_t pq_con_data[15]; - tvpq_data_t pq_sat_data[15]; - tvpq_data_t pq_hue_data[15]; - tvpq_sharpness_regs_t pq_sharpness_reg_data[10]; + int SetNonlinearMappingByName(const char *name, tvpq_data_type_t data_type, tv_source_input_type_t source_type, int osd0, int osd25, int osd50, int osd75, int osd100); + int PQ_SetPQModeParamsByName(const char *name, tv_source_input_type_t source_type, vpp_picture_mode_t pq_mode, vpp_pq_para_t *params); + + tvpq_data_t pq_bri_data[15]; + tvpq_data_t pq_con_data[15]; + tvpq_data_t pq_sat_data[15]; + tvpq_data_t pq_hue_data[15]; + tvpq_sharpness_regs_t pq_sharpness_reg_data[10]; tvpq_sharpness_regs_t pq_sharpness_reg_data_1[10]; - int bri_nodes; - int con_nodes; - int hue_nodes; - int sat_nodes; - int sha_nodes; + int bri_nodes; + int con_nodes; + int hue_nodes; + int sat_nodes; + int sha_nodes; int sha_nodes_1; int sha_diff_flag; - char PQ_DB_PATH[256]; + char PQ_DB_PATH[256]; }; #endif diff --git a/tvapi/libtv/vpp/CVpp.cpp b/tvapi/libtv/vpp/CVpp.cpp index 005b40e..0a00049 100644 --- a/tvapi/libtv/vpp/CVpp.cpp +++ b/tvapi/libtv/vpp/CVpp.cpp @@ -23,20 +23,23 @@ #undef LOG_TAG #define LOG_TAG "CVpp" #endif -CVpp::CVpp() { +CVpp::CVpp() +{ vpp_amvideo_fd = -1; vpp_amvideo_3d_fd = -1; mpPqData = new CPqData(); } -CVpp::~CVpp() { +CVpp::~CVpp() +{ if (mpPqData != NULL) { delete mpPqData; mpPqData = NULL; } } -int CVpp::Vpp_Init(const char *pq_db_path) { +int CVpp::Vpp_Init(const char *pq_db_path) +{ LOGD("Vpp_Init pq_db_path = %s", pq_db_path); if (mpPqData->openPqDB(pq_db_path)) { LOGW("%s, open pq failed!", __FUNCTION__); @@ -74,13 +77,15 @@ int CVpp::Vpp_Init(const char *pq_db_path) { return ret; } -int CVpp::Vpp_Uninit(void) { +int CVpp::Vpp_Uninit(void) +{ Vpp_ResetLastVppSettingsSourceType(); VPP_CloseModule(); mpPqData->closeDb(); return 0; } -CPqData *CVpp::getPqData() { +CPqData *CVpp::getPqData() +{ return mpPqData; } @@ -93,7 +98,8 @@ int CVpp::doResume() { return mpPqData->reopenDB(); } -int CVpp::VPP_OpenModule(void) { +int CVpp::VPP_OpenModule(void) +{ if (vpp_amvideo_fd < 0) { vpp_amvideo_fd = open(VPP_DEV_PATH, O_RDWR); @@ -119,7 +125,8 @@ int CVpp::VPP_OpenModule(void) { return vpp_amvideo_fd; } -int CVpp::VPP_CloseModule(void) { +int CVpp::VPP_CloseModule(void) +{ if (vpp_amvideo_fd >= 0) { close ( vpp_amvideo_fd); vpp_amvideo_fd = -1; @@ -133,7 +140,8 @@ int CVpp::VPP_CloseModule(void) { return 0; } -int CVpp::VPP_DeviceIOCtl(int request, ...) { +int CVpp::VPP_DeviceIOCtl(int request, ...) +{ int tmp_ret = -1; va_list ap; void *arg; @@ -144,7 +152,8 @@ int CVpp::VPP_DeviceIOCtl(int request, ...) { return tmp_ret; } -int CVpp::Vpp_LoadRegs(am_regs_t regs) { +int CVpp::Vpp_LoadRegs(am_regs_t regs) +{ LOGD("~~~VPP_DeviceIOCtl~~~##Vpp_LoadRegs##AMVECM_IOC_LOAD_REG##"); int count_retry = 20; @@ -166,16 +175,18 @@ int CVpp::Vpp_LoadRegs(am_regs_t regs) { return rt; } -int CVpp::isPreviewWindow() { +int CVpp::isPreviewWindow() +{ char prop_value[PROPERTY_VALUE_MAX]; memset(prop_value, '\0', PROPERTY_VALUE_MAX); property_get("tv.is.preview.window", prop_value, "false"); LOGD("%s, prop tv.is.preview.window is \"%s\".\n", __FUNCTION__, prop_value); - return (strcmp(prop_value, "true")==0) ? 1 : 0; + return (strcmp(prop_value, "true") == 0) ? 1 : 0; } int CVpp::LoadVppSettings(tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { + is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) +{ int val = 0, ret = -1; vpp_color_temperature_mode_t temp_mode = VPP_COLOR_TEMPERATURE_MODE_STANDARD; vpp_picture_mode_t pqmode = VPP_PICTURE_MODE_STANDARD; @@ -184,17 +195,17 @@ int CVpp::LoadVppSettings(tv_source_input_type_t source_type, tvin_sig_fmt_t sig tvin_port_t source_port = CTvin::Tvin_GetSourcePortBySourceType(source_type); if ((vpp_setting_last_source_type == source_type) && (vpp_setting_last_sig_fmt == sig_fmt) - /*&& ( vpp_setting_last_3d_status == status showbo mark)*/ - && (vpp_setting_last_trans_fmt == trans_fmt)) { + /*&& ( vpp_setting_last_3d_status == status showbo mark)*/ + && (vpp_setting_last_trans_fmt == trans_fmt)) { return -1; } nr_mode = GetNoiseReductionMode(source_type); ret |= Vpp_SetNoiseReductionMode(nr_mode, source_type, source_port, sig_fmt, is3d, trans_fmt); ret |= Vpp_SetXVYCCMode(VPP_XVYCC_MODE_STANDARD, source_type, source_port, sig_fmt, is3d, - trans_fmt); + trans_fmt); ret |= Vpp_SetMCDIMode(VPP_MCDI_MODE_STANDARD, source_type, source_port, sig_fmt, is3d, - trans_fmt); + trans_fmt); ret |= Vpp_SetDeblockMode(VPP_DEBLOCK_MODE_MIDDLE, source_port, sig_fmt, is3d, trans_fmt); Vpp_LoadDI(source_type, sig_fmt, is3d, trans_fmt); @@ -234,7 +245,8 @@ int CVpp::LoadVppSettings(tv_source_input_type_t source_type, tvin_sig_fmt_t sig return 0; } -int CVpp::Vpp_GetVppConfig(void) { +int CVpp::Vpp_GetVppConfig(void) +{ const char *config_value; int cfg_item_count = 0; char *token = NULL; @@ -333,7 +345,8 @@ int CVpp::Vpp_GetVppConfig(void) { } int CVpp::Vpp_LoadDI(tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { + is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) +{ am_regs_t regs; int ret = -1; tvin_port_t source_port = CTvin::Tvin_GetSourcePortBySourceType(source_type); @@ -350,7 +363,8 @@ int CVpp::Vpp_LoadDI(tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, } int CVpp::Vpp_LoadBasicRegs(tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { + is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) +{ am_regs_t regs; int ret = -1, rangeRet = -1, formatRet = -1, enableFlag = -1; @@ -376,7 +390,8 @@ int CVpp::Vpp_LoadBasicRegs(tv_source_input_type_t source_type, tvin_sig_fmt_t s return ret; } -int CVpp::Vpp_ResetLastVppSettingsSourceType(void) { +int CVpp::Vpp_ResetLastVppSettingsSourceType(void) +{ vpp_setting_last_source_type = SOURCE_TYPE_MAX; vpp_setting_last_sig_fmt = TVIN_SIG_FMT_MAX; //showbo mark vpp_setting_last_3d_status = STATUS3D_MAX; @@ -384,7 +399,8 @@ int CVpp::Vpp_ResetLastVppSettingsSourceType(void) { return 0; } -int CVpp::VPP3D_DeviceIOCtl(int request, ...) { +int CVpp::VPP3D_DeviceIOCtl(int request, ...) +{ int tmp_ret = -1; va_list ap; void *arg; @@ -402,7 +418,8 @@ int CVpp::VPP3D_DeviceIOCtl(int request, ...) { } int CVpp::Vpp_GetPQModeValue(tv_source_input_type_t source_type, vpp_picture_mode_t pq_mode, - vpp_pq_para_t *pq_para) { + vpp_pq_para_t *pq_para) +{ vpp_pq_para_t parms; vpp_picture_mode_t real_pq_mode; @@ -443,15 +460,16 @@ int CVpp::Vpp_GetPQModeValue(tv_source_input_type_t source_type, vpp_picture_mod } int CVpp::Vpp_SetPQParams(tv_source_input_type_t source_type, vpp_picture_mode_t pq_mode, - vpp_pq_para_t pq_para, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, - tvin_trans_fmt_t trans_fmt) { + vpp_pq_para_t pq_para, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, + tvin_trans_fmt_t trans_fmt) +{ int ret = 0, brightness = 50, contrast = 50, saturation = 50, hue = 50, sharnpess = 50; am_regs_t regs, regs_l; int level; if (pq_para.brightness >= 0 && pq_para.brightness <= 100) { if (mpPqData->PQ_GetBrightnessParams(source_port, sig_fmt, is3d, trans_fmt, - pq_para.brightness, &brightness) == 0) { + pq_para.brightness, &brightness) == 0) { } else { LOGE("%s, PQ_GetBrightnessParams error!\n", "Vpp_SetPQParams"); } @@ -461,7 +479,7 @@ int CVpp::Vpp_SetPQParams(tv_source_input_type_t source_type, vpp_picture_mode_t if (pq_para.contrast >= 0 && pq_para.contrast <= 100) { if (mpPqData->PQ_GetContrastParams(source_port, sig_fmt, is3d, trans_fmt, pq_para.contrast, - &contrast) == 0) { + &contrast) == 0) { } else { LOGE("%s, PQ_GetBrightnessParams error!\n", "Vpp_SetPQParams"); } @@ -471,7 +489,7 @@ int CVpp::Vpp_SetPQParams(tv_source_input_type_t source_type, vpp_picture_mode_t if (pq_para.saturation >= 0 && pq_para.saturation <= 100) { if (mpPqData->PQ_GetSaturationParams(source_port, sig_fmt, is3d, trans_fmt, - pq_para.saturation, &saturation) == 0) { + pq_para.saturation, &saturation) == 0) { if (mbVppCfg_hue_reverse) { pq_para.hue = 100 - pq_para.hue; @@ -500,7 +518,7 @@ int CVpp::Vpp_SetPQParams(tv_source_input_type_t source_type, vpp_picture_mode_t level = pq_para.sharpness; if (mpPqData->PQ_GetSharpnessParams(source_port, sig_fmt, is3d, trans_fmt, level, ®s, - ®s_l) == 0) { + ®s_l) == 0) { if (Vpp_LoadRegs(regs) < 0) { LOGE("%s, load reg for sharpness0 failed!\n", __FUNCTION__); } @@ -522,8 +540,9 @@ int CVpp::Vpp_SetPQParams(tv_source_input_type_t source_type, vpp_picture_mode_t } int CVpp::Vpp_SetPQMode(vpp_picture_mode_t pq_mode, tv_source_input_type_t source_type, - tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, - tvin_trans_fmt_t trans_fmt) { + tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, + tvin_trans_fmt_t trans_fmt) +{ vpp_pq_para_t pq_para; int ret = -1; @@ -554,7 +573,8 @@ int CVpp::Vpp_SetPQMode(vpp_picture_mode_t pq_mode, tv_source_input_type_t sourc return ret; } -int CVpp::SavePQMode(vpp_picture_mode_t pq_mode, tv_source_input_type_t source_type) { +int CVpp::SavePQMode(vpp_picture_mode_t pq_mode, tv_source_input_type_t source_type) +{ vpp_pq_para_t pq_para; int ret = -1; int tmp_pic_mode = 0; @@ -565,7 +585,8 @@ int CVpp::SavePQMode(vpp_picture_mode_t pq_mode, tv_source_input_type_t source_t } int CVpp::SetPQMode(vpp_picture_mode_t pq_mode, tv_source_input_type_t source_type, - tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save) { + tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save) +{ tvin_port_t source_port = CTvin::Tvin_GetSourcePortBySourceType(source_type); if (0 == Vpp_SetPQMode(pq_mode, source_type, source_port, sig_fmt, is3d, trans_fmt)) { @@ -580,7 +601,8 @@ int CVpp::SetPQMode(vpp_picture_mode_t pq_mode, tv_source_input_type_t source_ty return -1; } -vpp_picture_mode_t CVpp::GetPQMode(tv_source_input_type_t source_type) { +vpp_picture_mode_t CVpp::GetPQMode(tv_source_input_type_t source_type) +{ vpp_picture_mode_t data = VPP_PICTURE_MODE_STANDARD; int tmp_pic_mode = 0; @@ -594,7 +616,8 @@ vpp_picture_mode_t CVpp::GetPQMode(tv_source_input_type_t source_type) { return data; } -int CVpp::Vpp_SetColorDemoMode(vpp_color_demomode_t demomode) { +int CVpp::Vpp_SetColorDemoMode(vpp_color_demomode_t demomode) +{ cm_regmap_t regmap; unsigned long *temp_regmap; int i = 0; @@ -664,14 +687,15 @@ int CVpp::Vpp_SetColorDemoMode(vpp_color_demomode_t demomode) { } int CVpp::Vpp_SetBaseColorMode(vpp_color_basemode_t basemode, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { + tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) +{ int ret = -1; am_regs_t regs; LOGD("%s.\n", "Vpp_SetBaseColorMode"); if (mbVppCfg_new_cm) { if (mpPqData->PQ_GetCM2Params((vpp_color_management2_t) basemode, source_port, sig_fmt, - is3d, trans_fmt, ®s) == 0) { + is3d, trans_fmt, ®s) == 0) { ret = Vpp_LoadRegs(regs); } else { LOGE("PQ_GetCM2Params failed!\n"); @@ -682,7 +706,8 @@ int CVpp::Vpp_SetBaseColorMode(vpp_color_basemode_t basemode, tvin_port_t source } int CVpp::Vpp_SetColorTemperatureUser(vpp_color_temperature_mode_t temp_mode, - tv_source_input_type_t source_type) { + tv_source_input_type_t source_type) +{ tcon_rgb_ogo_t rgbogo; unsigned int gain_r, gain_g, gain_b; @@ -719,8 +744,9 @@ int CVpp::Vpp_SetColorTemperatureUser(vpp_color_temperature_mode_t temp_mode, } int CVpp::Vpp_SetColorTemperature(vpp_color_temperature_mode_t Tempmode, - tv_source_input_type_t source_type, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - tvin_trans_fmt_t trans_fmt) { + tv_source_input_type_t source_type, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, + tvin_trans_fmt_t trans_fmt) +{ tcon_rgb_ogo_t rgbogo, rgbPreOffset; int ret = -1; @@ -741,7 +767,8 @@ int CVpp::Vpp_SetColorTemperature(vpp_color_temperature_mode_t Tempmode, } int CVpp::Vpp_SetBrightness(int value, tv_source_input_type_t source_type, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { + tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) +{ int ret = -1; int params; int level; @@ -763,7 +790,8 @@ int CVpp::Vpp_SetBrightness(int value, tv_source_input_type_t source_type, tvin_ return ret; } -int CVpp::VPP_SetVideoBrightness(int value) { +int CVpp::VPP_SetVideoBrightness(int value) +{ FILE *fp = NULL; fp = fopen("/sys/class/amvecm/brightness", "w"); @@ -783,7 +811,8 @@ int CVpp::VPP_SetVideoBrightness(int value) { } int CVpp::SetBrightness(int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, - tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save) { + tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save) +{ tvin_port_t source_port = CTvin::Tvin_GetSourcePortBySourceType(source_type); if (0 == Vpp_SetBrightness(value, source_type, source_port, sig_fmt, is3d, trans_fmt)) { @@ -799,7 +828,8 @@ int CVpp::SetBrightness(int value, tv_source_input_type_t source_type, tvin_sig_ return 0; } -int CVpp::GetBrightness(tv_source_input_type_t source_type) { +int CVpp::GetBrightness(tv_source_input_type_t source_type) +{ int data = 50; vpp_pq_para_t pq_para; vpp_picture_mode_t pq_mode = GetPQMode(source_type); @@ -820,7 +850,8 @@ int CVpp::GetBrightness(tv_source_input_type_t source_type) { } int CVpp::Vpp_SetContrast(int value, tv_source_input_type_t source_type, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { + tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) +{ int ret = -1; int params; int level; @@ -842,7 +873,8 @@ int CVpp::Vpp_SetContrast(int value, tv_source_input_type_t source_type, tvin_po return ret; } -int CVpp::VPP_SetVideoContrast(int value) { +int CVpp::VPP_SetVideoContrast(int value) +{ FILE *fp = NULL; fp = fopen("/sys/class/amvecm/contrast", "w"); @@ -861,7 +893,8 @@ int CVpp::VPP_SetVideoContrast(int value) { } int CVpp::SetContrast(int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, - tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save) { + tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save) +{ tvin_port_t source_port = CTvin::Tvin_GetSourcePortBySourceType(source_type); if (0 == Vpp_SetContrast(value, source_type, source_port, sig_fmt, is3d, trans_fmt)) { @@ -876,7 +909,8 @@ int CVpp::SetContrast(int value, tv_source_input_type_t source_type, tvin_sig_fm } } -int CVpp::GetContrast(tv_source_input_type_t source_type) { +int CVpp::GetContrast(tv_source_input_type_t source_type) +{ int data = 50; vpp_pq_para_t pq_para; vpp_picture_mode_t pq_mode = GetPQMode(source_type); @@ -897,7 +931,8 @@ int CVpp::GetContrast(tv_source_input_type_t source_type) { } int CVpp::Vpp_SetSaturation(int value, tv_source_input_type_t source_type, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { + tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) +{ int ret = -1; int params; int level; @@ -919,7 +954,8 @@ int CVpp::Vpp_SetSaturation(int value, tv_source_input_type_t source_type, tvin_ } int CVpp::SetSaturation(int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, - tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save) { + tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save) +{ tvin_port_t source_port = CTvin::Tvin_GetSourcePortBySourceType(source_type); if (0 == Vpp_SetSaturation(value, source_type, source_port, sig_fmt, is3d, trans_fmt)) { @@ -934,7 +970,8 @@ int CVpp::SetSaturation(int value, tv_source_input_type_t source_type, tvin_sig_ } } -int CVpp::GetSaturation(tv_source_input_type_t source_type) { +int CVpp::GetSaturation(tv_source_input_type_t source_type) +{ int data = 50; vpp_pq_para_t pq_para; vpp_picture_mode_t pq_mode = GetPQMode(source_type); @@ -955,7 +992,8 @@ int CVpp::GetSaturation(tv_source_input_type_t source_type) { } int CVpp::Vpp_SetHue(int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, - tvin_port_t source_port, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { + tvin_port_t source_port, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) +{ int ret = -1; int params, saturation_params; int level, saturation_level; @@ -971,7 +1009,7 @@ int CVpp::Vpp_SetHue(int value, tv_source_input_type_t source_type, tvin_sig_fmt saturation_level = GetSaturation(source_type); if (mpPqData->PQ_GetSaturationParams(source_port, sig_fmt, is3d, trans_fmt, - saturation_level, &saturation_params) == 0) { + saturation_level, &saturation_params) == 0) { } else { saturation_params = -20; } @@ -988,7 +1026,8 @@ int CVpp::Vpp_SetHue(int value, tv_source_input_type_t source_type, tvin_sig_fmt } int CVpp::SetHue(int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, - tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save) { + tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save) +{ tvin_port_t source_port = CTvin::Tvin_GetSourcePortBySourceType(source_type); if (0 == Vpp_SetHue(value, source_type, sig_fmt, source_port, is3d, trans_fmt)) { @@ -1005,7 +1044,8 @@ int CVpp::SetHue(int value, tv_source_input_type_t source_type, tvin_sig_fmt_t s return 0; } -int CVpp::GetHue(tv_source_input_type_t source_type) { +int CVpp::GetHue(tv_source_input_type_t source_type) +{ int data = 50; vpp_pq_para_t pq_para; vpp_picture_mode_t pq_mode = GetPQMode(source_type); @@ -1026,7 +1066,8 @@ int CVpp::GetHue(tv_source_input_type_t source_type) { } int CVpp::Vpp_SetSharpness(int value, tv_source_input_type_t source_type, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { + tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) +{ int ret = -1; am_regs_t regs, regs_l; int level; @@ -1051,7 +1092,8 @@ int CVpp::Vpp_SetSharpness(int value, tv_source_input_type_t source_type, tvin_p } int CVpp::SetSharpness(int value, tv_source_input_type_t source_type, int is_enable, - is_3d_type_t is3d, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, int is_save) { + is_3d_type_t is3d, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, int is_save) +{ tvin_port_t source_port = CTvin::Tvin_GetSourcePortBySourceType(source_type); if (Vpp_SetSharpness(value, source_type, source_port, sig_fmt, is3d, trans_fmt) < 0) { @@ -1069,7 +1111,8 @@ int CVpp::SetSharpness(int value, tv_source_input_type_t source_type, int is_ena return 0; } -int CVpp::GetSharpness(tv_source_input_type_t source_type) { +int CVpp::GetSharpness(tv_source_input_type_t source_type) +{ int data = 50; vpp_pq_para_t pq_para; vpp_picture_mode_t pq_mode = GetPQMode(source_type); @@ -1090,7 +1133,8 @@ int CVpp::GetSharpness(tv_source_input_type_t source_type) { return data; } -int CVpp::SetColorSpaceMode(vpp_color_space_type_t colorSpace) { +int CVpp::SetColorSpaceMode(vpp_color_space_type_t colorSpace) +{ int ret = -1, fileRet = -1; SSMSaveColorSpaceStart(colorSpace); @@ -1117,14 +1161,15 @@ int CVpp::SetColorSpaceMode(vpp_color_space_type_t colorSpace) { } int CVpp::Vpp_SetNoiseReductionMode(vpp_noise_reduction_mode_t nr_mode, - tv_source_input_type_t source_type, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { + tv_source_input_type_t source_type, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, + is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) +{ int ret = -1; am_regs_t regs; if (mbVppCfg_new_nr) { if (mpPqData->PQ_GetNR2Params((vpp_noise_reduction2_mode_t) nr_mode, source_port, sig_fmt, - is3d, trans_fmt, ®s) == 0) { + is3d, trans_fmt, ®s) == 0) { ret = Vpp_LoadRegs(regs); } else { LOGE("PQ_GetNR2Params failed!\n"); @@ -1135,14 +1180,16 @@ int CVpp::Vpp_SetNoiseReductionMode(vpp_noise_reduction_mode_t nr_mode, } int CVpp::SaveNoiseReductionMode(vpp_noise_reduction_mode_t nr_mode, - tv_source_input_type_t source_type) { + tv_source_input_type_t source_type) +{ int tmp_save_noisereduction_mode = (int) nr_mode; return SSMSaveNoiseReduction(source_type, tmp_save_noisereduction_mode); } int CVpp::SetNoiseReductionMode(vpp_noise_reduction_mode_t nr_mode, - tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, - tvin_trans_fmt_t trans_fmt, int is_save) { + tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, + tvin_trans_fmt_t trans_fmt, int is_save) +{ tvin_port_t source_port = CTvin::Tvin_GetSourcePortBySourceType(source_type); if (0 == Vpp_SetNoiseReductionMode(nr_mode, source_type, source_port, sig_fmt, is3d, trans_fmt)) { if (is_save == 1) { @@ -1156,7 +1203,8 @@ int CVpp::SetNoiseReductionMode(vpp_noise_reduction_mode_t nr_mode, return -1; } -vpp_noise_reduction_mode_t CVpp::GetNoiseReductionMode(tv_source_input_type_t source_type) { +vpp_noise_reduction_mode_t CVpp::GetNoiseReductionMode(tv_source_input_type_t source_type) +{ vpp_noise_reduction_mode_t data = VPP_NOISE_REDUCTION_MODE_MID; int tmp_nr_mode = 0; @@ -1171,8 +1219,9 @@ vpp_noise_reduction_mode_t CVpp::GetNoiseReductionMode(tv_source_input_type_t so } int CVpp::Vpp_SetXVYCCMode(vpp_xvycc_mode_t xvycc_mode, tv_source_input_type_t source_type, - tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, - tvin_trans_fmt_t trans_fmt) { + tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, + tvin_trans_fmt_t trans_fmt) +{ int ret = -1; am_regs_t regs, regs_1; char prop_value[PROPERTY_VALUE_MAX]; @@ -1183,7 +1232,7 @@ int CVpp::Vpp_SetXVYCCMode(vpp_xvycc_mode_t xvycc_mode, tv_source_input_type_t s if (strcmp(config_value, "enable") == 0) { if (mpPqData->PQ_GetXVYCCParams((vpp_xvycc_mode_t) xvycc_mode, source_port, sig_fmt, is3d, - trans_fmt, ®s, ®s_1) == 0) { + trans_fmt, ®s, ®s_1) == 0) { ret = Vpp_LoadRegs(regs); ret |= Vpp_LoadRegs(regs_1); } else { @@ -1196,13 +1245,14 @@ int CVpp::Vpp_SetXVYCCMode(vpp_xvycc_mode_t xvycc_mode, tv_source_input_type_t s } int CVpp::Vpp_SetMCDIMode(vpp_mcdi_mode_t mcdi_mode, tv_source_input_type_t source_type, - tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, - tvin_trans_fmt_t trans_fmt) { + tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, + tvin_trans_fmt_t trans_fmt) +{ int ret = -1; am_regs_t regs; if (mpPqData->PQ_GetMCDIParams((vpp_mcdi_mode_t) mcdi_mode, source_port, sig_fmt, is3d, - trans_fmt, ®s) == 0) { + trans_fmt, ®s) == 0) { ret = Vpp_LoadRegs(regs); } else { LOGE("%s, PQ_GetMCDIParams failed!\n", __FUNCTION__); @@ -1211,7 +1261,7 @@ int CVpp::Vpp_SetMCDIMode(vpp_mcdi_mode_t mcdi_mode, tv_source_input_type_t sour } int CVpp::Vpp_SetDeblockMode(vpp_deblock_mode_t mode, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) + tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { int ret = -1; am_regs_t regs; @@ -1224,7 +1274,8 @@ int CVpp::Vpp_SetDeblockMode(vpp_deblock_mode_t mode, tvin_port_t source_port, return ret; } -int CVpp::Vpp_LoadGammaDefault(tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt) { +int CVpp::Vpp_LoadGammaDefault(tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt) +{ int ret = -1; int panel_id = 0; tcon_gamma_table_t gamma_r, gamma_g, gamma_b; @@ -1248,7 +1299,8 @@ int CVpp::Vpp_LoadGammaDefault(tv_source_input_type_t source_type, tvin_sig_fmt_ } -int CVpp::Vpp_LoadGammaSpecial(int gammaValue) { +int CVpp::Vpp_LoadGammaSpecial(int gammaValue) +{ int ret = -1; int panel_id = 0; tcon_gamma_table_t gamma_r, gamma_g, gamma_b; @@ -1270,7 +1322,8 @@ int CVpp::Vpp_LoadGammaSpecial(int gammaValue) { } -int CVpp::Vpp_LoadGamma(tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt) { +int CVpp::Vpp_LoadGamma(tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt) +{ int gammaValue = 0, ret = -1; if (SSMReadGammaValue(&gammaValue) < 0) { @@ -1322,7 +1375,8 @@ int CVpp::Vpp_LoadGamma(tv_source_input_type_t source_type, tvin_sig_fmt_t sig_f return ret; }*/ -int CVpp::GetGammaValue() { +int CVpp::GetGammaValue() +{ int gammaValue = 0; if (SSMReadGammaValue(&gammaValue) < 0) { @@ -1344,7 +1398,8 @@ int CVpp::GetGammaValue() { return SetBaseColorMode ( VPP_COLOR_BASE_MODE_DEMO ,source_port,sig_fmt,status,trans_fmt); }*/ -vpp_color_demomode_t CVpp::GetColorDemoMode(void) { +vpp_color_demomode_t CVpp::GetColorDemoMode(void) +{ vpp_color_demomode_t data = VPP_COLOR_DEMO_MODE_ALLON; unsigned char tmp_demo_mode = 0; SSMReadColorDemoMode(&tmp_demo_mode); @@ -1358,13 +1413,14 @@ vpp_color_demomode_t CVpp::GetColorDemoMode(void) { } int CVpp::SetBaseColorModeWithoutSave(vpp_color_basemode_t basemode, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { + tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) +{ int ret = -1; am_regs_t regs; if (mbVppCfg_new_cm) { if (mpPqData->PQ_GetCM2Params((vpp_color_management2_t) basemode, source_port, sig_fmt, - is3d, trans_fmt, ®s) == 0) { + is3d, trans_fmt, ®s) == 0) { ret = Vpp_LoadRegs(regs); } else { LOGE("PQ_GetCM2Params failed!\n"); @@ -1374,7 +1430,8 @@ int CVpp::SetBaseColorModeWithoutSave(vpp_color_basemode_t basemode, tvin_port_t return ret; } -int CVpp::SaveBaseColorMode(vpp_color_basemode_t basemode) { +int CVpp::SaveBaseColorMode(vpp_color_basemode_t basemode) +{ int ret = -1; if (basemode == VPP_COLOR_BASE_MODE_DEMO) { @@ -1387,7 +1444,8 @@ int CVpp::SaveBaseColorMode(vpp_color_basemode_t basemode) { } int CVpp::SetBaseColorMode(vpp_color_basemode_t basemode, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { + tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) +{ if (0 == SetBaseColorModeWithoutSave(basemode, source_port, sig_fmt, is3d, trans_fmt)) { return SaveBaseColorMode(basemode); } else { @@ -1397,7 +1455,8 @@ int CVpp::SetBaseColorMode(vpp_color_basemode_t basemode, tvin_port_t source_por return 0; } -vpp_color_basemode_t CVpp::GetBaseColorMode(void) { +vpp_color_basemode_t CVpp::GetBaseColorMode(void) +{ vpp_color_basemode_t data = VPP_COLOR_BASE_MODE_OFF; unsigned char tmp_base_mode = 0; SSMReadColorBaseMode(&tmp_base_mode); @@ -1411,7 +1470,8 @@ vpp_color_basemode_t CVpp::GetBaseColorMode(void) { } int CVpp::SetColorTempWithoutSave(vpp_color_temperature_mode_t Tempmode, - tv_source_input_type_t source_type) { + tv_source_input_type_t source_type) +{ tcon_rgb_ogo_t rgbogo; int ret = -1; @@ -1431,7 +1491,8 @@ int CVpp::SetColorTempWithoutSave(vpp_color_temperature_mode_t Tempmode, } -int CVpp::SaveColorTemp(vpp_color_temperature_mode_t Tempmode, tv_source_input_type_t source_type) { +int CVpp::SaveColorTemp(vpp_color_temperature_mode_t Tempmode, tv_source_input_type_t source_type) +{ int ret = -1; int tmp_temp_mode = 0; tcon_rgb_ogo_t rgbogo; @@ -1460,7 +1521,8 @@ int CVpp::SaveColorTemp(vpp_color_temperature_mode_t Tempmode, tv_source_input_t } int CVpp::SetColorTemperature(vpp_color_temperature_mode_t Tempmode, - tv_source_input_type_t source_type, int is_save) { + tv_source_input_type_t source_type, int is_save) +{ if (SetColorTempWithoutSave(Tempmode, source_type) < 0) { LOGE("%s, failed!", __FUNCTION__); return -1; @@ -1473,7 +1535,8 @@ int CVpp::SetColorTemperature(vpp_color_temperature_mode_t Tempmode, } } -vpp_color_temperature_mode_t CVpp::GetColorTemperature(tv_source_input_type_t source_type) { +vpp_color_temperature_mode_t CVpp::GetColorTemperature(tv_source_input_type_t source_type) +{ vpp_color_temperature_mode_t data = VPP_COLOR_TEMPERATURE_MODE_STANDARD; int tmp_temp_mode = 0; @@ -1492,12 +1555,13 @@ vpp_color_temperature_mode_t CVpp::GetColorTemperature(tv_source_input_type_t so return data; } -int CVpp::VPP_SetNonLinearFactor(int value) { +int CVpp::VPP_SetNonLinearFactor(int value) +{ FILE *fp = NULL; fp = fopen("/sys/class/video/nonlinear_factor", "w"); LOGD("~~~fopen~~~##VPP_SetNonLinearFactor##%s : %d ##", "/sys/class/video/nonlinear_factor", - value); + value); if (fp == NULL) { LOGE("Open /sys/class/video/nonlinear_factor error(%s)!\n", strerror(errno)); @@ -1512,7 +1576,8 @@ int CVpp::VPP_SetNonLinearFactor(int value) { return 0; } -vpp_display_mode_t CVpp::GetDisplayMode(tv_source_input_type_t source_type) { +vpp_display_mode_t CVpp::GetDisplayMode(tv_source_input_type_t source_type) +{ vpp_display_mode_t data = VPP_DISPLAY_MODE_169; int tmp_dis_mode = 0; @@ -1522,7 +1587,8 @@ vpp_display_mode_t CVpp::GetDisplayMode(tv_source_input_type_t source_type) { return data; } -int CVpp::SetBacklightWithoutSave(int value, tv_source_input_type_t source_type) { +int CVpp::SetBacklightWithoutSave(int value, tv_source_input_type_t source_type) +{ int backlight_value, backlight_reverse = 0; int ret = -1; int tmp_pic_mode = 0; @@ -1542,11 +1608,12 @@ int CVpp::SetBacklightWithoutSave(int value, tv_source_input_type_t source_type) return VPP_SetBackLightLevel(backlight_value); } -int CVpp::VPP_SetBackLightLevel(int value) { +int CVpp::VPP_SetBackLightLevel(int value) +{ FILE *fp = NULL; fp = fopen("/sys/class/backlight/aml-bl/brightness", "w"); LOGD("~~~fopen~~~##VPP_SetBackLightLevel##%s : %d ##", - "/sys/class/backlight/aml-bl/brightness", value); + "/sys/class/backlight/aml-bl/brightness", value); if (fp == NULL) { LOGE("Open /sys/class/backlight/aml-bl/brightness error(%s)!\n", strerror(errno)); @@ -1561,7 +1628,8 @@ int CVpp::VPP_SetBackLightLevel(int value) { return 0; } -int CVpp::SetBacklight(int value, tv_source_input_type_t source_type, int is_save) { +int CVpp::SetBacklight(int value, tv_source_input_type_t source_type, int is_save) +{ static const int MIN_BACKLIGHT_VALUE = 1; if (value >= MIN_BACKLIGHT_VALUE) { if (SetBacklightWithoutSave(value, source_type) < 0) { @@ -1582,7 +1650,8 @@ int CVpp::SetBacklight(int value, tv_source_input_type_t source_type, int is_sav } } -int CVpp::GetBacklight(tv_source_input_type_t source_type) { +int CVpp::GetBacklight(tv_source_input_type_t source_type) +{ int data = 0; vpp_pq_para_t pq_para; @@ -1607,7 +1676,8 @@ int CVpp::GetBacklight(tv_source_input_type_t source_type) { return data; } -int CVpp::SaveBacklight(int value, tv_source_input_type_t source_type) { +int CVpp::SaveBacklight(int value, tv_source_input_type_t source_type) +{ int backlight_value, backlight_reverse = 0; int ret = -1; int tmp_pic_mode = 0; @@ -1625,11 +1695,12 @@ int CVpp::SaveBacklight(int value, tv_source_input_type_t source_type) { return ret; } -int CVpp::VPP_SetBackLight_Switch(int value) { +int CVpp::VPP_SetBackLight_Switch(int value) +{ FILE *fp = NULL; fp = fopen("/sys/class/backlight/aml-bl/bl_power", "w"); LOGD("~~~fopen~~~##VPP_SetBackLight_Switch##%s : %d ##", - "/sys/class/backlight/aml-bl/bl_power", value); + "/sys/class/backlight/aml-bl/bl_power", value); if (fp == NULL) { LOGE("Open /sys/class/backlight/aml-bl/bl_power error(%s)!\n", strerror(errno)); @@ -1644,7 +1715,8 @@ int CVpp::VPP_SetBackLight_Switch(int value) { return 0; } -int CVpp::VPP_GetBackLight_Switch(void) { +int CVpp::VPP_GetBackLight_Switch(void) +{ FILE *fp = NULL; int value; @@ -1657,7 +1729,7 @@ int CVpp::VPP_GetBackLight_Switch(void) { fscanf(fp, "%d", &value); LOGD("~~~fopen~~~##VPP_GetBackLight_Switch##%s : %d ##", - "/sys/class/backlight/aml-bl/bl_power", value); + "/sys/class/backlight/aml-bl/bl_power", value); fclose(fp); fp = NULL; @@ -1669,7 +1741,8 @@ int CVpp::VPP_GetBackLight_Switch(void) { } int CVpp::SetDNLP(tv_source_input_type_t source_type, tvin_port_t source_port, - tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { + tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) +{ unsigned int dnlp_switch = 0; int ret = -1; @@ -1680,13 +1753,13 @@ int CVpp::SetDNLP(tv_source_input_type_t source_type, tvin_port_t source_port, dnlp_switch = 1; if (mpPqData->PQ_GetDNLPParams(source_port, sig_fmt, is3d, trans_fmt, &dnlp, &newdnlp, - &dnlpFlag) == 0) { + &dnlpFlag) == 0) { newdnlp.en = dnlp_switch; LOGE("PQ_GetDNLPParams ok!\n"); LOGE( - "newdnlp.en:%d,newdnlp.method:%d,newdnlp.cliprate:%d,newdnlp.lowrange:%d,newdnlp.hghrange:%d,newdnlp.lowalpha:%d,newdnlp.midalpha:%d,newdnlp.hghalpha:%d\n", - newdnlp.en, newdnlp.method, newdnlp.cliprate, newdnlp.lowrange, newdnlp.hghrange, - newdnlp.lowalpha, newdnlp.midalpha, newdnlp.hghalpha); + "newdnlp.en:%d,newdnlp.method:%d,newdnlp.cliprate:%d,newdnlp.lowrange:%d,newdnlp.hghrange:%d,newdnlp.lowalpha:%d,newdnlp.midalpha:%d,newdnlp.hghalpha:%d\n", + newdnlp.en, newdnlp.method, newdnlp.cliprate, newdnlp.lowrange, newdnlp.hghrange, + newdnlp.lowalpha, newdnlp.midalpha, newdnlp.hghalpha); if (source_type == SOURCE_TYPE_DTV) { SetFileAttrValue("/sys/module/am_vecm/parameters/dnlp_en", "0"); } else { @@ -1701,7 +1774,8 @@ int CVpp::SetDNLP(tv_source_input_type_t source_type, tvin_port_t source_port, return ret; } -int CVpp::VPP_SetVEDNLP(const struct ve_dnlp_s *pDNLP) { +int CVpp::VPP_SetVEDNLP(const struct ve_dnlp_s *pDNLP) +{ int rt = VPP_DeviceIOCtl(AMVECM_IOC_VE_DNLP, pDNLP); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetVEDNLP##AMVECM_IOC_VE_DNLP##"); @@ -1712,7 +1786,8 @@ int CVpp::VPP_SetVEDNLP(const struct ve_dnlp_s *pDNLP) { return rt; } -int CVpp::VPP_SetVENewDNLP(const ve_dnlp_table_t *pDNLP) { +int CVpp::VPP_SetVENewDNLP(const ve_dnlp_table_t *pDNLP) +{ int rt = VPP_DeviceIOCtl(AMVECM_IOC_VE_NEW_DNLP, pDNLP); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetVENewDNLP##AMVECM_IOC_VE_NEW_DNLP##"); @@ -1723,7 +1798,8 @@ int CVpp::VPP_SetVENewDNLP(const ve_dnlp_table_t *pDNLP) { return rt; } -int CVpp::SetDnlp_OFF(void) { +int CVpp::SetDnlp_OFF(void) +{ if (Vpp_SetDnlpOff() < 0) { LOGE("%s failed.\n", __FUNCTION__); return -1; @@ -1733,7 +1809,8 @@ int CVpp::SetDnlp_OFF(void) { return 0; } } -int CVpp::SetDnlp_ON(void) { +int CVpp::SetDnlp_ON(void) +{ if (Vpp_SetDnlpOn() < 0) { LOGE("%s failed.\n", __FUNCTION__); return -1; @@ -1744,7 +1821,8 @@ int CVpp::SetDnlp_ON(void) { } } -int CVpp::Vpp_SetDnlpOff(void) { +int CVpp::Vpp_SetDnlpOff(void) +{ //According linux driver to modify the AMSTREAM_IOC_VE_DNLP_DIS to the AMVECM_IOC_VE_DNLP_DIS. //int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_VE_DNLP_DIS); int rt = VPP_DeviceIOCtl(AMVECM_IOC_VE_DNLP_DIS); @@ -1757,7 +1835,8 @@ int CVpp::Vpp_SetDnlpOff(void) { return rt; } -int CVpp::Vpp_SetDnlpOn(void) { +int CVpp::Vpp_SetDnlpOn(void) +{ //According linux driver to modify the AMSTREAM_IOC_VE_DNLP_DIS to the AMVECM_IOC_VE_DNLP_DIS. //int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_VE_DNLP_EN); int rt = VPP_DeviceIOCtl(AMVECM_IOC_VE_DNLP_EN); @@ -1769,14 +1848,16 @@ int CVpp::Vpp_SetDnlpOn(void) { return rt; } -int CVpp::GetDnlp_Status() { +int CVpp::GetDnlp_Status() +{ unsigned char status = 0; SSMReadDnlpStart(&status); LOGD("%s, %d.", __FUNCTION__, status); return status; } -int CVpp::VPP_SetRGBOGO(const struct tcon_rgb_ogo_s *rgbogo) { +int CVpp::VPP_SetRGBOGO(const struct tcon_rgb_ogo_s *rgbogo) +{ int rt = VPP_DeviceIOCtl(AMVECM_IOC_S_RGB_OGO, rgbogo); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetRGBOGO##AMVECM_IOC_S_RGB_OGO##"); usleep(50 * 1000); @@ -1788,7 +1869,8 @@ int CVpp::VPP_SetRGBOGO(const struct tcon_rgb_ogo_s *rgbogo) { return rt; } -int CVpp::VPP_GetRGBOGO(const struct tcon_rgb_ogo_s *rgbogo) { +int CVpp::VPP_GetRGBOGO(const struct tcon_rgb_ogo_s *rgbogo) +{ int rt = VPP_DeviceIOCtl(AMVECM_IOC_G_RGB_OGO, rgbogo); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_GetRGBOGO##AMVECM_IOC_G_RGB_OGO##"); @@ -1834,16 +1916,17 @@ int CVpp::RGBOffsetValueSSMToRisterMapping(int offsetValue) //-128~127 return mapValue;//-512~512 } -int CVpp::FactorySetPQMode_Brightness(int source_type, int pq_mode, int brightness) { +int CVpp::FactorySetPQMode_Brightness(int source_type, int pq_mode, int brightness) +{ int ret = -1; vpp_pq_para_t pq_para; if (mpPqData->PQ_GetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { pq_para.brightness = brightness; if (mpPqData->PQ_SetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { ret = 0; } else { ret = 1; @@ -1855,27 +1938,29 @@ int CVpp::FactorySetPQMode_Brightness(int source_type, int pq_mode, int brightne return ret; } -int CVpp::FactoryGetPQMode_Brightness(int source_type, int pq_mode) { +int CVpp::FactoryGetPQMode_Brightness(int source_type, int pq_mode) +{ vpp_pq_para_t pq_para; if (mpPqData->PQ_GetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) != 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) != 0) { return -1; } return pq_para.brightness; } -int CVpp::FactorySetPQMode_Contrast(int source_type, int pq_mode, int contrast) { +int CVpp::FactorySetPQMode_Contrast(int source_type, int pq_mode, int contrast) +{ int ret = -1; vpp_pq_para_t pq_para; if (mpPqData->PQ_GetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { pq_para.contrast = contrast; if (mpPqData->PQ_SetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { ret = 0; } else { ret = 1; @@ -1887,27 +1972,29 @@ int CVpp::FactorySetPQMode_Contrast(int source_type, int pq_mode, int contrast) return ret; } -int CVpp::FactoryGetPQMode_Contrast(int source_type, int pq_mode) { +int CVpp::FactoryGetPQMode_Contrast(int source_type, int pq_mode) +{ vpp_pq_para_t pq_para; if (mpPqData->PQ_GetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) != 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) != 0) { return -1; } return pq_para.contrast; } -int CVpp::FactorySetPQMode_Saturation(int source_type, int pq_mode, int saturation) { +int CVpp::FactorySetPQMode_Saturation(int source_type, int pq_mode, int saturation) +{ int ret = -1; vpp_pq_para_t pq_para; if (mpPqData->PQ_GetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { pq_para.saturation = saturation; if (mpPqData->PQ_SetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { ret = 0; } else { ret = 1; @@ -1919,27 +2006,29 @@ int CVpp::FactorySetPQMode_Saturation(int source_type, int pq_mode, int saturati return ret; } -int CVpp::FactoryGetPQMode_Saturation(int source_type, int pq_mode) { +int CVpp::FactoryGetPQMode_Saturation(int source_type, int pq_mode) +{ vpp_pq_para_t pq_para; if (mpPqData->PQ_GetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) != 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) != 0) { return -1; } return pq_para.saturation; } -int CVpp::FactorySetPQMode_Hue(int source_type, int pq_mode, int hue) { +int CVpp::FactorySetPQMode_Hue(int source_type, int pq_mode, int hue) +{ int ret = -1; vpp_pq_para_t pq_para; if (mpPqData->PQ_GetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { pq_para.hue = hue; if (mpPqData->PQ_SetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { ret = 0; } else { ret = 1; @@ -1951,27 +2040,29 @@ int CVpp::FactorySetPQMode_Hue(int source_type, int pq_mode, int hue) { return ret; } -int CVpp::FactoryGetPQMode_Hue(int source_type, int pq_mode) { +int CVpp::FactoryGetPQMode_Hue(int source_type, int pq_mode) +{ vpp_pq_para_t pq_para; if (mpPqData->PQ_GetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) != 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) != 0) { return -1; } return pq_para.hue; } -int CVpp::FactorySetPQMode_Sharpness(int source_type, int pq_mode, int sharpness) { +int CVpp::FactorySetPQMode_Sharpness(int source_type, int pq_mode, int sharpness) +{ int ret = -1; vpp_pq_para_t pq_para; if (mpPqData->PQ_GetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { pq_para.sharpness = sharpness; if (mpPqData->PQ_SetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) == 0) { ret = 0; } else { ret = 1; @@ -1983,18 +2074,20 @@ int CVpp::FactorySetPQMode_Sharpness(int source_type, int pq_mode, int sharpness return ret; } -int CVpp::FactoryGetPQMode_Sharpness(int source_type, int pq_mode) { +int CVpp::FactoryGetPQMode_Sharpness(int source_type, int pq_mode) +{ vpp_pq_para_t pq_para; if (mpPqData->PQ_GetPQModeParams((tv_source_input_type_t) source_type, - (vpp_picture_mode_t) pq_mode, &pq_para) != 0) { + (vpp_picture_mode_t) pq_mode, &pq_para) != 0) { return -1; } return pq_para.sharpness; } -unsigned short CVpp::CalColorTemperatureParamsChecksum(void) { +unsigned short CVpp::CalColorTemperatureParamsChecksum(void) +{ unsigned char data_buf[SSM_CR_RGBOGO_LEN]; unsigned short sum = 0; int cnt; @@ -2013,7 +2106,8 @@ unsigned short CVpp::CalColorTemperatureParamsChecksum(void) { return sum; } -int CVpp::SetColorTempParamsChecksum(void) { +int CVpp::SetColorTempParamsChecksum(void) +{ int ret = 0; USUC usuc; @@ -2025,7 +2119,8 @@ int CVpp::SetColorTempParamsChecksum(void) { return ret; } -unsigned short CVpp::GetColorTempParamsChecksum(void) { +unsigned short CVpp::GetColorTempParamsChecksum(void) +{ USUC usuc; SSMReadRGBOGOValue(SSM_CR_RGBOGO_LEN, SSM_CR_RGBOGO_CHKSUM_LEN, usuc.c); @@ -2036,7 +2131,8 @@ unsigned short CVpp::GetColorTempParamsChecksum(void) { } -int CVpp::CheckTempDataLable(void) { +int CVpp::CheckTempDataLable(void) +{ USUC usuc; USUC ret; @@ -2054,7 +2150,8 @@ int CVpp::CheckTempDataLable(void) { } } -int CVpp::SetTempDataLable(void) { +int CVpp::SetTempDataLable(void) +{ USUC usuc; int ret = 0; @@ -2066,13 +2163,15 @@ int CVpp::SetTempDataLable(void) { return ret; } -int CVpp::GetColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params) { +int CVpp::GetColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params) +{ // CheckColorTemperatureParamAlldata(source_port,sig_fmt,trans_fmt); return ReadColorTemperatureParams(Tempmode, params); } -int CVpp::ReadColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params) { +int CVpp::ReadColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params) +{ SUC suc; USUC usuc; int ret = 0; @@ -2167,13 +2266,14 @@ int CVpp::ReadColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tcon } LOGD("%s, rgain[%d], ggain[%d],bgain[%d],roffset[%d],goffset[%d],boffset[%d]\n", __FUNCTION__, - params->r_gain, params->g_gain, params->b_gain, params->r_post_offset, - params->g_post_offset, params->b_post_offset); + params->r_gain, params->g_gain, params->b_gain, params->r_post_offset, + params->g_post_offset, params->b_post_offset); return ret; } -int CVpp::SetColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params) { +int CVpp::SetColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params) +{ // CheckColorTemperatureParamAlldata(source_port,sig_fmt,trans_fmt); SaveColorTemperatureParams(Tempmode, params); @@ -2182,7 +2282,8 @@ int CVpp::SetColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tcon_ return 0; } -int CVpp::SaveColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params) { +int CVpp::SaveColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params) +{ SUC suc; USUC usuc; int ret = 0; @@ -2279,12 +2380,13 @@ int CVpp::SaveColorTemperatureParams(vpp_color_temperature_mode_t Tempmode, tcon } LOGD("%s, rgain[%d], ggain[%d],bgain[%d],roffset[%d],goffset[%d],boffset[%d]\n", __FUNCTION__, - params.r_gain, params.g_gain, params.b_gain, params.r_post_offset, - params.g_post_offset, params.b_post_offset); + params.r_gain, params.g_gain, params.b_gain, params.r_post_offset, + params.g_post_offset, params.b_post_offset); return ret; } -int CVpp::CheckColorTemperatureParams(void) { +int CVpp::CheckColorTemperatureParams(void) +{ int i = 0; tcon_rgb_ogo_t rgbogo; @@ -2305,7 +2407,8 @@ int CVpp::CheckColorTemperatureParams(void) { } int CVpp::RestoeColorTemperatureParamsFromDB(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - tvin_trans_fmt_t trans_fmt) { + tvin_trans_fmt_t trans_fmt) +{ int i = 0; tcon_rgb_ogo_t rgbogo; @@ -2313,7 +2416,7 @@ int CVpp::RestoeColorTemperatureParamsFromDB(tvin_port_t source_port, tvin_sig_f for (i = 0; i < 3; i++) { mpPqData->PQ_GetColorTemperatureParams((vpp_color_temperature_mode_t) i, source_port, - sig_fmt, trans_fmt, &rgbogo); + sig_fmt, trans_fmt, &rgbogo); SaveColorTemperatureParams((vpp_color_temperature_mode_t) i, rgbogo); } @@ -2323,9 +2426,10 @@ int CVpp::RestoeColorTemperatureParamsFromDB(tvin_port_t source_port, tvin_sig_f } int CVpp::CheckColorTemperatureParamAlldata(tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, - tvin_trans_fmt_t trans_fmt) { + tvin_trans_fmt_t trans_fmt) +{ if (CheckTempDataLable() && (CalColorTemperatureParamsChecksum() - == GetColorTempParamsChecksum())) { + == GetColorTempParamsChecksum())) { LOGD("%s, color temperature param lable & checksum ok.\n", __FUNCTION__); if (CheckColorTemperatureParams() == 0) { @@ -2342,13 +2446,14 @@ int CVpp::CheckColorTemperatureParamAlldata(tvin_port_t source_port, tvin_sig_fm return 0; } -int CVpp::FactorySetColorTemp_Rgain(int source_type, int colortemp_mode, int rgain) { +int CVpp::FactorySetColorTemp_Rgain(int source_type, int colortemp_mode, int rgain) +{ tcon_rgb_ogo_t rgbogo; GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo); rgbogo.r_gain = rgain; LOGD("%s, source_type[%d], colortemp_mode[%d], rgain[%d].", __FUNCTION__, source_type, - colortemp_mode, rgain); + colortemp_mode, rgain); rgbogo.en = 1; if (VPP_SetRGBOGO(&rgbogo) == 0) { @@ -2358,7 +2463,8 @@ int CVpp::FactorySetColorTemp_Rgain(int source_type, int colortemp_mode, int rga return -1; } -int CVpp::FactorySaveColorTemp_Rgain(int source_type, int colortemp_mode, int rgain) { +int CVpp::FactorySaveColorTemp_Rgain(int source_type, int colortemp_mode, int rgain) +{ tcon_rgb_ogo_t rgbogo; if (0 == GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo)) { @@ -2370,7 +2476,8 @@ int CVpp::FactorySaveColorTemp_Rgain(int source_type, int colortemp_mode, int rg return -1; } -int CVpp::FactoryGetColorTemp_Rgain(int source_type, int colortemp_mode) { +int CVpp::FactoryGetColorTemp_Rgain(int source_type, int colortemp_mode) +{ tcon_rgb_ogo_t rgbogo; if (0 == GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo)) { @@ -2381,13 +2488,14 @@ int CVpp::FactoryGetColorTemp_Rgain(int source_type, int colortemp_mode) { return -1; } -int CVpp::FactorySetColorTemp_Ggain(int source_type, int colortemp_mode, int ggain) { +int CVpp::FactorySetColorTemp_Ggain(int source_type, int colortemp_mode, int ggain) +{ tcon_rgb_ogo_t rgbogo; GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo); rgbogo.g_gain = ggain; LOGD("%s, source_type[%d], colortemp_mode[%d], ggain[%d].", __FUNCTION__, source_type, - colortemp_mode, ggain); + colortemp_mode, ggain); rgbogo.en = 1; if (VPP_SetRGBOGO(&rgbogo) == 0) { @@ -2397,7 +2505,8 @@ int CVpp::FactorySetColorTemp_Ggain(int source_type, int colortemp_mode, int gga return -1; } -int CVpp::FactorySaveColorTemp_Ggain(int source_type, int colortemp_mode, int ggain) { +int CVpp::FactorySaveColorTemp_Ggain(int source_type, int colortemp_mode, int ggain) +{ tcon_rgb_ogo_t rgbogo; if (0 == GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo)) { @@ -2409,7 +2518,8 @@ int CVpp::FactorySaveColorTemp_Ggain(int source_type, int colortemp_mode, int gg return -1; } -int CVpp::FactoryGetColorTemp_Ggain(int source_type, int colortemp_mode) { +int CVpp::FactoryGetColorTemp_Ggain(int source_type, int colortemp_mode) +{ tcon_rgb_ogo_t rgbogo; if (0 == GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo)) { @@ -2420,13 +2530,14 @@ int CVpp::FactoryGetColorTemp_Ggain(int source_type, int colortemp_mode) { return -1; } -int CVpp::FactorySetColorTemp_Bgain(int source_type, int colortemp_mode, int bgain) { +int CVpp::FactorySetColorTemp_Bgain(int source_type, int colortemp_mode, int bgain) +{ tcon_rgb_ogo_t rgbogo; GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo); rgbogo.b_gain = bgain; LOGD("%s, source_type[%d], colortemp_mode[%d], bgain[%d].", __FUNCTION__, source_type, - colortemp_mode, bgain); + colortemp_mode, bgain); rgbogo.en = 1; if (VPP_SetRGBOGO(&rgbogo) == 0) { @@ -2436,7 +2547,8 @@ int CVpp::FactorySetColorTemp_Bgain(int source_type, int colortemp_mode, int bga return -1; } -int CVpp::FactorySaveColorTemp_Bgain(int source_type, int colortemp_mode, int bgain) { +int CVpp::FactorySaveColorTemp_Bgain(int source_type, int colortemp_mode, int bgain) +{ tcon_rgb_ogo_t rgbogo; if (0 == GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo)) { @@ -2448,7 +2560,8 @@ int CVpp::FactorySaveColorTemp_Bgain(int source_type, int colortemp_mode, int bg return -1; } -int CVpp::FactoryGetColorTemp_Bgain(int source_type, int colortemp_mode) { +int CVpp::FactoryGetColorTemp_Bgain(int source_type, int colortemp_mode) +{ tcon_rgb_ogo_t rgbogo; if (0 == GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo)) { @@ -2459,13 +2572,14 @@ int CVpp::FactoryGetColorTemp_Bgain(int source_type, int colortemp_mode) { return -1; } -int CVpp::FactorySetColorTemp_Roffset(int source_type, int colortemp_mode, int roffset) { +int CVpp::FactorySetColorTemp_Roffset(int source_type, int colortemp_mode, int roffset) +{ tcon_rgb_ogo_t rgbogo; GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo); rgbogo.r_post_offset = roffset; LOGD("%s, source_type[%d], colortemp_mode[%d], r_post_offset[%d].", __FUNCTION__, source_type, - colortemp_mode, roffset); + colortemp_mode, roffset); rgbogo.en = 1; if (VPP_SetRGBOGO(&rgbogo) == 0) { @@ -2475,7 +2589,8 @@ int CVpp::FactorySetColorTemp_Roffset(int source_type, int colortemp_mode, int r return -1; } -int CVpp::FactorySaveColorTemp_Roffset(int source_type, int colortemp_mode, int roffset) { +int CVpp::FactorySaveColorTemp_Roffset(int source_type, int colortemp_mode, int roffset) +{ tcon_rgb_ogo_t rgbogo; if (0 == GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo)) { @@ -2487,7 +2602,8 @@ int CVpp::FactorySaveColorTemp_Roffset(int source_type, int colortemp_mode, int return -1; } -int CVpp::FactoryGetColorTemp_Roffset(int source_type, int colortemp_mode) { +int CVpp::FactoryGetColorTemp_Roffset(int source_type, int colortemp_mode) +{ tcon_rgb_ogo_t rgbogo; if (0 == GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo)) { @@ -2498,13 +2614,14 @@ int CVpp::FactoryGetColorTemp_Roffset(int source_type, int colortemp_mode) { return -1; } -int CVpp::FactorySetColorTemp_Goffset(int source_type, int colortemp_mode, int goffset) { +int CVpp::FactorySetColorTemp_Goffset(int source_type, int colortemp_mode, int goffset) +{ tcon_rgb_ogo_t rgbogo; GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo); rgbogo.g_post_offset = goffset; LOGD("%s, source_type[%d], colortemp_mode[%d], g_post_offset[%d].", __FUNCTION__, source_type, - colortemp_mode, goffset); + colortemp_mode, goffset); rgbogo.en = 1; if (VPP_SetRGBOGO(&rgbogo) == 0) { @@ -2514,7 +2631,8 @@ int CVpp::FactorySetColorTemp_Goffset(int source_type, int colortemp_mode, int g return -1; } -int CVpp::FactorySaveColorTemp_Goffset(int source_type, int colortemp_mode, int goffset) { +int CVpp::FactorySaveColorTemp_Goffset(int source_type, int colortemp_mode, int goffset) +{ tcon_rgb_ogo_t rgbogo; if (0 == GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo)) { @@ -2526,7 +2644,8 @@ int CVpp::FactorySaveColorTemp_Goffset(int source_type, int colortemp_mode, int return -1; } -int CVpp::FactoryGetColorTemp_Goffset(int source_type, int colortemp_mode) { +int CVpp::FactoryGetColorTemp_Goffset(int source_type, int colortemp_mode) +{ tcon_rgb_ogo_t rgbogo; if (0 == GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo)) { @@ -2537,13 +2656,14 @@ int CVpp::FactoryGetColorTemp_Goffset(int source_type, int colortemp_mode) { return -1; } -int CVpp::FactorySetColorTemp_Boffset(int source_type, int colortemp_mode, int boffset) { +int CVpp::FactorySetColorTemp_Boffset(int source_type, int colortemp_mode, int boffset) +{ tcon_rgb_ogo_t rgbogo; GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo); rgbogo.b_post_offset = boffset; LOGD("%s, source_type[%d], colortemp_mode[%d], b_post_offset[%d].", __FUNCTION__, source_type, - colortemp_mode, boffset); + colortemp_mode, boffset); rgbogo.en = 1; if (VPP_SetRGBOGO(&rgbogo) == 0) { @@ -2553,7 +2673,8 @@ int CVpp::FactorySetColorTemp_Boffset(int source_type, int colortemp_mode, int b return -1; } -int CVpp::FactorySaveColorTemp_Boffset(int source_type, int colortemp_mode, int boffset) { +int CVpp::FactorySaveColorTemp_Boffset(int source_type, int colortemp_mode, int boffset) +{ tcon_rgb_ogo_t rgbogo; if (0 == GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo)) { @@ -2565,7 +2686,8 @@ int CVpp::FactorySaveColorTemp_Boffset(int source_type, int colortemp_mode, int return -1; } -int CVpp::FactoryGetColorTemp_Boffset(int source_type, int colortemp_mode) { +int CVpp::FactoryGetColorTemp_Boffset(int source_type, int colortemp_mode) +{ tcon_rgb_ogo_t rgbogo; if (0 == GetColorTemperatureParams((vpp_color_temperature_mode_t) colortemp_mode, &rgbogo)) { @@ -2576,28 +2698,33 @@ int CVpp::FactoryGetColorTemp_Boffset(int source_type, int colortemp_mode) { return -1; } -int CVpp::FactoryGetTestPattern(void) { +int CVpp::FactoryGetTestPattern(void) +{ unsigned char data = VPP_TEST_PATTERN_NONE; SSMReadTestPattern(&data); return data; } -int CVpp::FactoryResetPQMode(void) { +int CVpp::FactoryResetPQMode(void) +{ mpPqData->PQ_ResetAllPQModeParams(); return 0; } -int CVpp::FactoryResetNonlinear(void) { +int CVpp::FactoryResetNonlinear(void) +{ mpPqData->PQ_ResetAllNoLineParams(); return 0; } -int CVpp::FactoryResetColorTemp(void) { +int CVpp::FactoryResetColorTemp(void) +{ mpPqData->PQ_ResetAllColorTemperatureParams(); return 0; } -int CVpp::FactorySetParamsDefault(void) { +int CVpp::FactorySetParamsDefault(void) +{ FactoryResetPQMode(); FactoryResetNonlinear(); FactoryResetColorTemp(); @@ -2605,7 +2732,8 @@ int CVpp::FactorySetParamsDefault(void) { return 0; } -int CVpp::FactorySetDDRSSC(int step) { +int CVpp::FactorySetDDRSSC(int step) +{ int ret = -1; switch (step) { @@ -2642,22 +2770,25 @@ int CVpp::FactorySetDDRSSC(int step) { return SSMSaveDDRSSC(step); } -int CVpp::FactoryGetDDRSSC(void) { +int CVpp::FactoryGetDDRSSC(void) +{ unsigned char data = 0; SSMReadDDRSSC(&data); return data; } -int CVpp::SetLVDSSSC(int step) { +int CVpp::SetLVDSSSC(int step) +{ int ret = -1; if (step > 4) step = 4; ret = TvMisc_SetLVDSSSC(step); return ret; } -int CVpp::FactorySetLVDSSSC(int step) { +int CVpp::FactorySetLVDSSSC(int step) +{ int ret = -1; - unsigned char data[2] = {0,0}; + unsigned char data[2] = {0, 0}; char cmd_tmp_1[128]; int value = 0, panel_idx = 0, tmp = 0; const char *PanelIdx; @@ -2666,37 +2797,39 @@ int CVpp::FactorySetLVDSSSC(int step) { PanelIdx = config_get_str ( CFG_SECTION_TV, "get.panel.index", "0" ); panel_idx = strtoul(PanelIdx, NULL, 10); - LOGD ("%s, panel_idx = %x",__FUNCTION__, panel_idx); + LOGD ("%s, panel_idx = %x", __FUNCTION__, panel_idx); SSMReadLVDSSSC(data); //every 2 bits represent one panel, use 2 byte store 8 panels - value = (data[1]<<8)|data[0]; - step = step&0x03; - panel_idx = panel_idx*2; + value = (data[1] << 8) | data[0]; + step = step & 0x03; + panel_idx = panel_idx * 2; tmp = 3 << panel_idx; - value = (value&(~tmp)) | (step << panel_idx); + value = (value & (~tmp)) | (step << panel_idx); data[0] = value & 0xFF; - data[1] = (value >> 8)& 0xFF; - LOGD ("%s, tmp = %x, save value = %x",__FUNCTION__, tmp,value); + data[1] = (value >> 8) & 0xFF; + LOGD ("%s, tmp = %x, save value = %x", __FUNCTION__, tmp, value); SetLVDSSSC(step); return SSMSaveLVDSSSC(data); } -int CVpp::FactoryGetLVDSSSC(void) { - unsigned char data[2] = {0,0}; +int CVpp::FactoryGetLVDSSSC(void) +{ + unsigned char data[2] = {0, 0}; int value = 0, panel_idx = 0; const char *PanelIdx = config_get_str ( CFG_SECTION_TV, "get.panel.index", "0" ); panel_idx = strtoul(PanelIdx, NULL, 10); SSMReadLVDSSSC(data); - value = (data[1]<<8)|data[0]; - value = (value >> (2 * panel_idx))&0x03; - LOGD ("%s, panel_idx = %x, value= %d",__FUNCTION__, panel_idx, value); + value = (data[1] << 8) | data[0]; + value = (value >> (2 * panel_idx)) & 0x03; + LOGD ("%s, panel_idx = %x, value= %d", __FUNCTION__, panel_idx, value); return value; } -noline_params_t CVpp::FactoryGetNolineParams(int type, int source_type) { +noline_params_t CVpp::FactoryGetNolineParams(int type, int source_type) +{ int ret = -1; noline_params_t noline_params; @@ -2740,7 +2873,8 @@ noline_params_t CVpp::FactoryGetNolineParams(int type, int source_type) { return noline_params; } -int CVpp::FactorySetNolineParams(int type, int source_type, noline_params_t noline_params) { +int CVpp::FactorySetNolineParams(int type, int source_type, noline_params_t noline_params) +{ int ret = -1; switch (type) { @@ -2784,10 +2918,11 @@ int CVpp::FactorySetNolineParams(int type, int source_type, noline_params_t noli } int CVpp::FactorySetOverscan(int source_type, int fmt, int status_3d, int trans_fmt, - tvin_cutwin_t cutwin_t) { + tvin_cutwin_t cutwin_t) +{ int ret = -1; ret = mpPqData->PQ_SetOverscanParams((tv_source_input_type_t) source_type, - (tvin_sig_fmt_t) fmt, INDEX_2D, (tvin_trans_fmt_t) trans_fmt, cutwin_t); + (tvin_sig_fmt_t) fmt, INDEX_2D, (tvin_trans_fmt_t) trans_fmt, cutwin_t); if (ret == 0) { } else { @@ -2796,7 +2931,8 @@ int CVpp::FactorySetOverscan(int source_type, int fmt, int status_3d, int trans_ return ret; } -tvin_cutwin_t CVpp::FactoryGetOverscan(int source_type, int fmt, is_3d_type_t is3d, int trans_fmt) { +tvin_cutwin_t CVpp::FactoryGetOverscan(int source_type, int fmt, is_3d_type_t is3d, int trans_fmt) +{ int ret = -1; tvin_cutwin_t cutwin_t; memset(&cutwin_t, 0, sizeof(cutwin_t)); @@ -2806,8 +2942,8 @@ tvin_cutwin_t CVpp::FactoryGetOverscan(int source_type, int fmt, is_3d_type_t is } ret = mpPqData->PQ_GetOverscanParams((tv_source_input_type_t) source_type, - (tvin_sig_fmt_t) fmt, is3d, (tvin_trans_fmt_t) trans_fmt, VPP_DISPLAY_MODE_169, - &cutwin_t); + (tvin_sig_fmt_t) fmt, is3d, (tvin_trans_fmt_t) trans_fmt, VPP_DISPLAY_MODE_169, + &cutwin_t); if (ret == 0) { } else { @@ -2817,84 +2953,99 @@ tvin_cutwin_t CVpp::FactoryGetOverscan(int source_type, int fmt, is_3d_type_t is return cutwin_t; } -int CVpp::FactorySetBacklightPWM_Frequency(int freq) { +int CVpp::FactorySetBacklightPWM_Frequency(int freq) +{ LOGD("%s,FactorySetBacklightPWM_Frequency set freq %d .\n", __FUNCTION__, freq); return 1; } -int CVpp::FactoryGetBacklightPWM_Frequency(void) { +int CVpp::FactoryGetBacklightPWM_Frequency(void) +{ int freq = 50; LOGD("%s,FactoryGetBacklightPWM_Frequency set freq %d .\n", CFG_SECTION_TV, freq); return freq; } -int CVpp::FactorySetBacklight_Switch_status(int status) { +int CVpp::FactorySetBacklight_Switch_status(int status) +{ LOGD("%s,FactorySetBacklight_Switch_status set status %d .\n", __FUNCTION__, status); return 1; } -int CVpp::FactoryGetBacklight_Switch_status(void) { +int CVpp::FactoryGetBacklight_Switch_status(void) +{ int status = 1; LOGD("%s,FactoryGetBacklight_Switch_status get status %d .\n", __FUNCTION__, status); return status; } -int CVpp::FactorySetBacklightPWM_Duty(int duty) { +int CVpp::FactorySetBacklightPWM_Duty(int duty) +{ LOGD("%s,FactorySetBacklight_Switch_status set duty %d .\n", __FUNCTION__, duty); return 1; } -int CVpp::FactoryGetBacklightPWM_Duty(void) { +int CVpp::FactoryGetBacklightPWM_Duty(void) +{ int duty = 1; LOGD("%s,FactoryGetBacklight_Switch_status get duty %d .\n", __FUNCTION__, duty); return duty; } -int CVpp::FactorySetLVDS_ColorDepth(int depth) { +int CVpp::FactorySetLVDS_ColorDepth(int depth) +{ LOGD("%s,FactorySetLVDS_ColorDepth set depth %d .\n", CFG_SECTION_TV, depth); return 1; } -int CVpp::FactoryGetLVDS_ColorDepth(void) { +int CVpp::FactoryGetLVDS_ColorDepth(void) +{ int depth = 1; LOGD("%s,FactorySetLVDS_ColorDepth get freq %d .\n", __FUNCTION__, depth); return depth; } -int CVpp::FactorySetLVDS_ColorDither_status(int status) { +int CVpp::FactorySetLVDS_ColorDither_status(int status) +{ LOGD("%s,FactorySetLVDS_ColorDither_status set status %d .\n", __FUNCTION__, status); return 1; } -int CVpp::FactoryGetLVDS_ColorDither_status(void) { +int CVpp::FactoryGetLVDS_ColorDither_status(void) +{ int status = 1; LOGD("%s,FactoryGetLVDS_ColorDither_status get status %d .\n", __FUNCTION__, status); return status; } -int CVpp::FactorySetLVDS_Mapping_status(int status) { +int CVpp::FactorySetLVDS_Mapping_status(int status) +{ LOGD("%s,FactorySetLVDS_Mapping_status set status %d .\n", __FUNCTION__, status); return 1; } -int CVpp::FactoryGetLVDS_Mapping_status(void) { +int CVpp::FactoryGetLVDS_Mapping_status(void) +{ int status = 1; LOGD("%s,FactoryGetLVDS_Mapping_status get status %d .\n", __FUNCTION__, status); return status; } -int CVpp::FactorySetLVDS_PortSwap_status(int status) { +int CVpp::FactorySetLVDS_PortSwap_status(int status) +{ LOGD("%s,FactorySetLVDS_PortSwap_status set status %d .\n", __FUNCTION__, status); return 1; } -int CVpp::FactoryGetLVDS_PortSwap_status(void) { +int CVpp::FactoryGetLVDS_PortSwap_status(void) +{ int status = 1; LOGD("%s,FactoryGetLVDS_PortSwap_status get status %d .\n", __FUNCTION__, status); return status; } -int CVpp::VPPSSMRestoreDefault() { +int CVpp::VPPSSMRestoreDefault() +{ int i = 0, tmp_val = 0; int tmp_panorama_nor = 0, tmp_panorama_full = 0; int offset_r = 0, offset_g = 0, offset_b = 0, gain_r = 1024, gain_g = 1024, gain_b = 1024; @@ -2974,11 +3125,13 @@ int CVpp::VPPSSMRestoreDefault() { return 0; } -int CVpp::VPPSSMFacRestoreDefault() { +int CVpp::VPPSSMFacRestoreDefault() +{ return VPPSSMRestoreDefault(); } -int CVpp::SetRGBValue(vpp_color_temperature_mode_t temp_mode, unsigned char data_buf[]) { +int CVpp::SetRGBValue(vpp_color_temperature_mode_t temp_mode, unsigned char data_buf[]) +{ int8_t r_gain = 0, b_gain = 0, g_gain = 0, r_offset = 0, g_offset = 0, b_offset = 0; int ret = -1; tcon_rgb_ogo_t rgbogo; @@ -3037,7 +3190,8 @@ int CVpp::SetRGBValue(vpp_color_temperature_mode_t temp_mode, unsigned char data return ret; } -int CVpp::GetRGBValue(vpp_color_temperature_mode_t temp_mode, tcon_rgb_ogo_t *p_rgbogo) { +int CVpp::GetRGBValue(vpp_color_temperature_mode_t temp_mode, tcon_rgb_ogo_t *p_rgbogo) +{ int8_t r_gain = 0, b_gain = 0, g_gain = 0, r_offset = 0, g_offset = 0, b_offset = 0; int ret = -1; @@ -3094,11 +3248,12 @@ int CVpp::GetRGBValue(vpp_color_temperature_mode_t temp_mode, tcon_rgb_ogo_t *p_ } #define PI 3.14159265358979 -void CVpp::video_set_saturation_hue(signed char saturation, signed char hue, signed long *mab) { +void CVpp::video_set_saturation_hue(signed char saturation, signed char hue, signed long *mab) +{ signed short ma = (signed short) (cos((float) hue * PI / 128.0) * ((float) saturation / 128.0 - + 1.0) * 256.0); + + 1.0) * 256.0); signed short mb = (signed short) (sin((float) hue * PI / 128.0) * ((float) saturation / 128.0 - + 1.0) * 256.0); + + 1.0) * 256.0); if (ma > 511) { ma = 511; @@ -3119,12 +3274,13 @@ void CVpp::video_set_saturation_hue(signed char saturation, signed char hue, sig *mab = ((ma & 0x3ff) << 16) | (mb & 0x3ff); } -void CVpp::video_get_saturation_hue(signed char *sat, signed char *hue, signed long *mab) { +void CVpp::video_get_saturation_hue(signed char *sat, signed char *hue, signed long *mab) +{ signed long temp = *mab; signed int ma = (signed int) ((temp << 6) >> 22); signed int mb = (signed int) ((temp << 22) >> 22); signed int sat16 = (signed int) ((sqrt( - ((float) ma * (float) ma + (float) mb * (float) mb) / 65536.0) - 1.0) * 128.0); + ((float) ma * (float) ma + (float) mb * (float) mb) / 65536.0) - 1.0) * 128.0); signed int hue16 = (signed int) (atan((float) mb / (float) ma) * 128.0 / PI); if (sat16 > 127) { @@ -3147,13 +3303,14 @@ void CVpp::video_get_saturation_hue(signed char *sat, signed char *hue, signed l *hue = (signed char) hue16; } -int CVpp::VPP_SetVideoSaturationHue(int satVal, int hueVal) { +int CVpp::VPP_SetVideoSaturationHue(int satVal, int hueVal) +{ FILE *fp = NULL; signed long temp; fp = fopen("/sys/class/amvecm/saturation_hue", "w"); LOGD("~~~fopen~~~##VPP_SetVideoSaturationHue##%s : %d %d##", - "/sys/class/amvecm/saturation_hue", satVal, hueVal); + "/sys/class/amvecm/saturation_hue", satVal, hueVal); if (fp == NULL) { LOGE("Open /sys/class/amvecm/saturation_hue error(%s)!\n", strerror(errno)); @@ -3169,12 +3326,13 @@ int CVpp::VPP_SetVideoSaturationHue(int satVal, int hueVal) { return 0; } -int CVpp::VPP_SetVideoSaturation(int saturation) { +int CVpp::VPP_SetVideoSaturation(int saturation) +{ FILE *fp = NULL; fp = fopen("/sys/class/amvecm/saturation_hue", "w"); LOGD("~~~fopen~~~##VPP_SetVideoSaturation##%s : %d ##", "/sys/class/amvecm/saturation_hue", - saturation); + saturation); if (fp == NULL) { LOGE("Open /sys/class/amvecm/saturation_hue error(%s)!\n", strerror(errno)); @@ -3189,7 +3347,8 @@ int CVpp::VPP_SetVideoSaturation(int saturation) { return 0; } -int CVpp::VPP_SetVideoHue(int hue) { +int CVpp::VPP_SetVideoHue(int hue) +{ FILE *fp = NULL; fp = fopen("/sys/class/amvecm/saturation_hue", "w"); @@ -3207,7 +3366,8 @@ int CVpp::VPP_SetVideoHue(int hue) { return 0; } -int CVpp::VPP_SetGammaTbl_R(unsigned short red[256]) { +int CVpp::VPP_SetGammaTbl_R(unsigned short red[256]) +{ struct tcon_gamma_table_s Redtbl; int rt = -1, i = 0; @@ -3225,7 +3385,8 @@ int CVpp::VPP_SetGammaTbl_R(unsigned short red[256]) { return rt; } -int CVpp::VPP_SetGammaTbl_G(unsigned short green[256]) { +int CVpp::VPP_SetGammaTbl_G(unsigned short green[256]) +{ struct tcon_gamma_table_s Greentbl; int rt = -1, i = 0; @@ -3243,7 +3404,8 @@ int CVpp::VPP_SetGammaTbl_G(unsigned short green[256]) { return rt; } -int CVpp::VPP_SetGammaTbl_B(unsigned short blue[256]) { +int CVpp::VPP_SetGammaTbl_B(unsigned short blue[256]) +{ struct tcon_gamma_table_s Bluetbl; int rt = -1, i = 0; @@ -3261,7 +3423,8 @@ int CVpp::VPP_SetGammaTbl_B(unsigned short blue[256]) { return rt; } -int CVpp::VPP_SetGammaOnOff(unsigned char onoff) { +int CVpp::VPP_SetGammaOnOff(unsigned char onoff) +{ int rt = -1; if (onoff == 1) { @@ -3281,7 +3444,8 @@ int CVpp::VPP_SetGammaOnOff(unsigned char onoff) { return rt; } -int CVpp::VPP_SetGrayPattern(int value) { +int CVpp::VPP_SetGrayPattern(int value) +{ FILE *fp = NULL; if (value < 0) { @@ -3306,7 +3470,8 @@ int CVpp::VPP_SetGrayPattern(int value) { return 0; } -int CVpp::VPP_GetGrayPattern() { +int CVpp::VPP_GetGrayPattern() +{ FILE *fp = NULL; int value; fp = fopen("/sys/class/video/test_screen", "r+"); @@ -3333,7 +3498,8 @@ int CVpp::VPP_GetGrayPattern() { } -int CVpp::VPP_SplitScreenEffect(int width, int v_register) { +int CVpp::VPP_SplitScreenEffect(int width, int v_register) +{ FILE *fp = fopen("/sys/class/amlogic/debug", "w"); if (fp == NULL) { @@ -3347,12 +3513,13 @@ int CVpp::VPP_SplitScreenEffect(int width, int v_register) { return 0; } -int CVpp::VPP_SetVideoNoiseReduction(int value) { +int CVpp::VPP_SetVideoNoiseReduction(int value) +{ FILE *fp = NULL; fp = fopen("/sys/class/deinterlace/di0/parameters", "w"); LOGD("~~~fopen~~~##VPP_SetVideoNoiseReduction##%s : %d ##", - "/sys/class/deinterlace/di0/parameters", value); + "/sys/class/deinterlace/di0/parameters", value); if (fp == NULL) { LOGE("Open /sys/class/deinterlace/di0/parameters ERROR(%s)!!\n", strerror(errno)); @@ -3366,16 +3533,17 @@ int CVpp::VPP_SetVideoNoiseReduction(int value) { return 0; } -int CVpp::VPP_SetDeinterlaceMode(int value) { +int CVpp::VPP_SetDeinterlaceMode(int value) +{ FILE *fp = NULL; fp = fopen("/sys/module/deinterlace/parameters/deinterlace_mode", "w"); LOGD("~~~fopen~~~##VPP_SetDeinterlaceMode##%s : %d ##", - "/sys/module/deinterlace/parameters/deinterlace_mode", value); + "/sys/module/deinterlace/parameters/deinterlace_mode", value); if (fp == NULL) { LOGE("Open /sys/module/deinterlace/parameters/deinterlace_mode error(%s)!\n", - strerror(errno)); + strerror(errno)); return -1; } @@ -3387,7 +3555,8 @@ int CVpp::VPP_SetDeinterlaceMode(int value) { return 0; } -int CVpp::GetHistogram_AVE(void) { +int CVpp::GetHistogram_AVE(void) +{ ve_hist_t hist; hist.sum = 0; hist.height = 0; @@ -3403,7 +3572,8 @@ int CVpp::GetHistogram_AVE(void) { return hist.ave; } -int CVpp::Vpp_GetAVGHistogram(struct ve_hist_s *hist) { +int CVpp::Vpp_GetAVGHistogram(struct ve_hist_s *hist) +{ //int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_G_HIST_AVG, hist); int rt = VPP_DeviceIOCtl(AMVECM_IOC_G_HIST_AVG, hist); LOGD("~~~VPP_DeviceIOCtl~~~##Vpp_GetAVGHistogram##AMVECM_IOC_G_HIST_AVG##"); @@ -3415,7 +3585,8 @@ int CVpp::Vpp_GetAVGHistogram(struct ve_hist_s *hist) { return rt; } -int CVpp::VPP_SetVEBlackExtension(const struct ve_bext_s *pBExt) { +int CVpp::VPP_SetVEBlackExtension(const struct ve_bext_s *pBExt) +{ int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_VE_BEXT, pBExt); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetVEBlackExtension##AMSTREAM_IOC_VE_BEXT##"); @@ -3427,7 +3598,8 @@ int CVpp::VPP_SetVEBlackExtension(const struct ve_bext_s *pBExt) { } tvin_cutwin_t CVpp::GetOverscan(tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, - is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) { + is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt) +{ int ret = -1; char tmp_buf[16]; tvin_cutwin_t cutwin_t; @@ -3443,14 +3615,15 @@ tvin_cutwin_t CVpp::GetOverscan(tv_source_input_type_t source_type, tvin_sig_fmt return cutwin_t; } -int CVpp::VPP_SetVideoCrop(int Voffset0, int Hoffset0, int Voffset1, int Hoffset1) { +int CVpp::VPP_SetVideoCrop(int Voffset0, int Hoffset0, int Voffset1, int Hoffset1) +{ int fd = -1; char set_str[32]; fd = open("/sys/class/video/crop", O_RDWR); LOGD("~~~open~~~##VPP_SetVideoCrop##%s : %d %d %d %d##", "/sys/class/video/crop", Voffset0, - Hoffset0, Voffset1, Hoffset1); + Hoffset0, Voffset1, Hoffset1); if (fd < 0) { LOGE("Open /sys/class/video/crop error(%s)!\n", strerror(errno)); @@ -3465,7 +3638,8 @@ int CVpp::VPP_SetVideoCrop(int Voffset0, int Hoffset0, int Voffset1, int Hoffset return 0; } -int CVpp::VPP_SetVESharpness(const struct ve_hsvs_s *pHSVS) { +int CVpp::VPP_SetVESharpness(const struct ve_hsvs_s *pHSVS) +{ int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_VE_HSVS, pHSVS); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetVESharpness##AMSTREAM_IOC_VE_HSVS##"); @@ -3476,7 +3650,8 @@ int CVpp::VPP_SetVESharpness(const struct ve_hsvs_s *pHSVS) { return rt; } -int CVpp::VPP_SetVEChromaCoring(const struct ve_ccor_s *pCCor) { +int CVpp::VPP_SetVEChromaCoring(const struct ve_ccor_s *pCCor) +{ int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_VE_CCOR, pCCor); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetVEChromaCoring##AMSTREAM_IOC_VE_CCOR##"); @@ -3487,7 +3662,8 @@ int CVpp::VPP_SetVEChromaCoring(const struct ve_ccor_s *pCCor) { return rt; } -int CVpp::VPP_SetVEBlueEnh(const struct ve_benh_s *pBEnh) { +int CVpp::VPP_SetVEBlueEnh(const struct ve_benh_s *pBEnh) +{ int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_VE_BENH, pBEnh); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetVEBlueEnh##AMSTREAM_IOC_VE_BENH##"); @@ -3498,7 +3674,8 @@ int CVpp::VPP_SetVEBlueEnh(const struct ve_benh_s *pBEnh) { return rt; } -int CVpp::VPP_SetVEDemo(const struct ve_demo_s *pDemo) { +int CVpp::VPP_SetVEDemo(const struct ve_demo_s *pDemo) +{ int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_VE_DEMO, pDemo); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetVEDemo##AMSTREAM_IOC_VE_DEMO##"); @@ -3509,7 +3686,8 @@ int CVpp::VPP_SetVEDemo(const struct ve_demo_s *pDemo) { return rt; } -int CVpp::VPP_SetVERegisterMap(const struct ve_regmap_s *pRegMap) { +int CVpp::VPP_SetVERegisterMap(const struct ve_regmap_s *pRegMap) +{ int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_VE_REGMAP, pRegMap); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetVERegisterMap##AMSTREAM_IOC_VE_REGMAP##"); @@ -3520,7 +3698,8 @@ int CVpp::VPP_SetVERegisterMap(const struct ve_regmap_s *pRegMap) { return rt; } -int CVpp::VPP_SetVEDebug(const unsigned long long *pLData) { +int CVpp::VPP_SetVEDebug(const unsigned long long *pLData) +{ int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_VE_DEBUG, pLData); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetVEDebug##AMSTREAM_IOC_VE_DEBUG##"); @@ -3531,7 +3710,8 @@ int CVpp::VPP_SetVEDebug(const unsigned long long *pLData) { return rt; } -int CVpp::VPP_SetCMRegion(const struct cm_region_s *pRegion) { +int CVpp::VPP_SetCMRegion(const struct cm_region_s *pRegion) +{ int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_CM_REGION, pRegion); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetCMRegion##AMSTREAM_IOC_CM_REGION##"); @@ -3542,7 +3722,8 @@ int CVpp::VPP_SetCMRegion(const struct cm_region_s *pRegion) { return rt; } -int CVpp::VPP_SetCMTopLayer(const struct cm_top_s *pTop) { +int CVpp::VPP_SetCMTopLayer(const struct cm_top_s *pTop) +{ int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_CM_TOP, pTop); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetCMTopLayer##AMSTREAM_IOC_CM_TOP##"); @@ -3553,7 +3734,8 @@ int CVpp::VPP_SetCMTopLayer(const struct cm_top_s *pTop) { return rt; } -int CVpp::VPP_SetCMDemo(const struct cm_demo_s *pDemo) { +int CVpp::VPP_SetCMDemo(const struct cm_demo_s *pDemo) +{ int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_CM_DEMO, pDemo); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetCMDemo##AMSTREAM_IOC_CM_DEMO##"); @@ -3564,7 +3746,8 @@ int CVpp::VPP_SetCMDemo(const struct cm_demo_s *pDemo) { return rt; } -int CVpp::VPP_SetCMRegisterMap(struct cm_regmap_s *pRegMap) { +int CVpp::VPP_SetCMRegisterMap(struct cm_regmap_s *pRegMap) +{ int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_CM_REGMAP, pRegMap); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetCMRegisterMap##AMSTREAM_IOC_CM_REGMAP##"); @@ -3575,7 +3758,8 @@ int CVpp::VPP_SetCMRegisterMap(struct cm_regmap_s *pRegMap) { return rt; } -int CVpp::VPP_SetCMDebug(const unsigned long long *pLData) { +int CVpp::VPP_SetCMDebug(const unsigned long long *pLData) +{ int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_CM_DEBUG, pLData); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetCMDebug##AMSTREAM_IOC_CM_DEBUG##"); @@ -3586,7 +3770,8 @@ int CVpp::VPP_SetCMDebug(const unsigned long long *pLData) { return rt; } -int CVpp::VPP_SetAVSyncEnable(const unsigned int enable) { +int CVpp::VPP_SetAVSyncEnable(const unsigned int enable) +{ int rt = VPP_DeviceIOCtl(AMSTREAM_IOC_SYNCENABLE, enable); LOGD("~~~VPP_DeviceIOCtl~~~##VPP_SetAVSyncEnable##AMSTREAM_IOC_SYNCENABLE##"); @@ -3596,12 +3781,13 @@ int CVpp::VPP_SetAVSyncEnable(const unsigned int enable) { return rt; } -int CVpp::VPP_SetScalerPathSel(const unsigned int value) { +int CVpp::VPP_SetScalerPathSel(const unsigned int value) +{ FILE *fp = NULL; fp = fopen("/sys/class/video/video_scaler_path_sel", "w"); LOGD("~~~fopen~~~##VPP_SetScalerPathSel##%s : %d ##", "/sys/class/video/video_scaler_path_sel", - value); + value); if (fp == NULL) { LOGE("Open /sys/class/video/video_scaler_path_sel error(%s)!\n", strerror(errno)); return -1; diff --git a/tvapi/libtv/vpp/CVpp.h b/tvapi/libtv/vpp/CVpp.h index 2131815..f1973c7 100644 --- a/tvapi/libtv/vpp/CVpp.h +++ b/tvapi/libtv/vpp/CVpp.h @@ -30,19 +30,19 @@ #define MODE_VPP_3D_TO_2D_R 0x00000400 typedef union tag_suc { - short s; - unsigned char c[2]; + short s; + unsigned char c[2]; } SUC; typedef union tag_usuc { - unsigned short s; - unsigned char c[2]; + unsigned short s; + unsigned char c[2]; } USUC; typedef enum is_3d_type_e { - INDEX_3D_INVALID = -1, - INDEX_2D = 0, - INDEX_3D = 1, + INDEX_3D_INVALID = -1, + INDEX_2D = 0, + INDEX_3D = 1, } is_3d_type_t; typedef enum vpp_deblock_mode_e { @@ -54,398 +54,398 @@ typedef enum vpp_deblock_mode_e { } vpp_deblock_mode_t; typedef enum vpp_panorama_mode_e { - VPP_PANORAMA_MODE_FULL, - VPP_PANORAMA_MODE_NORMAL, - VPP_PANORAMA_MODE_MAX, + VPP_PANORAMA_MODE_FULL, + VPP_PANORAMA_MODE_NORMAL, + VPP_PANORAMA_MODE_MAX, } vpp_panorama_mode_t; typedef enum vpp_color_space_type_e { - VPP_COLOR_SPACE_AUTO, - VPP_COLOR_SPACE_YUV, - VPP_COLOR_SPACE_RGB, + VPP_COLOR_SPACE_AUTO, + VPP_COLOR_SPACE_YUV, + VPP_COLOR_SPACE_RGB, } vpp_color_space_type_t; typedef enum vpp_display_mode_e { - VPP_DISPLAY_MODE_169, - VPP_DISPLAY_MODE_PERSON, - VPP_DISPLAY_MODE_MOVIE, - VPP_DISPLAY_MODE_CAPTION, - VPP_DISPLAY_MODE_MODE43, - VPP_DISPLAY_MODE_FULL, - VPP_DISPLAY_MODE_NORMAL, - VPP_DISPLAY_MODE_NOSCALEUP, - VPP_DISPLAY_MODE_CROP_FULL, - VPP_DISPLAY_MODE_CROP, - VPP_DISPLAY_MODE_ZOOM, - VPP_DISPLAY_MODE_FULL_REAL,//add for N360 by haifeng.liu - VPP_DISPLAY_MODE_MAX, + VPP_DISPLAY_MODE_169, + VPP_DISPLAY_MODE_PERSON, + VPP_DISPLAY_MODE_MOVIE, + VPP_DISPLAY_MODE_CAPTION, + VPP_DISPLAY_MODE_MODE43, + VPP_DISPLAY_MODE_FULL, + VPP_DISPLAY_MODE_NORMAL, + VPP_DISPLAY_MODE_NOSCALEUP, + VPP_DISPLAY_MODE_CROP_FULL, + VPP_DISPLAY_MODE_CROP, + VPP_DISPLAY_MODE_ZOOM, + VPP_DISPLAY_MODE_FULL_REAL,//add for N360 by haifeng.liu + VPP_DISPLAY_MODE_MAX, } vpp_display_mode_t; typedef enum vpp_color_demomode_e { - VPP_COLOR_DEMO_MODE_ALLON, - VPP_COLOR_DEMO_MODE_YOFF, - VPP_COLOR_DEMO_MODE_COFF, - VPP_COLOR_DEMO_MODE_GOFF, - VPP_COLOR_DEMO_MODE_MOFF, - VPP_COLOR_DEMO_MODE_ROFF, - VPP_COLOR_DEMO_MODE_BOFF, - VPP_COLOR_DEMO_MODE_RGBOFF, - VPP_COLOR_DEMO_MODE_YMCOFF, - VPP_COLOR_DEMO_MODE_ALLOFF, - VPP_COLOR_DEMO_MODE_MAX, + VPP_COLOR_DEMO_MODE_ALLON, + VPP_COLOR_DEMO_MODE_YOFF, + VPP_COLOR_DEMO_MODE_COFF, + VPP_COLOR_DEMO_MODE_GOFF, + VPP_COLOR_DEMO_MODE_MOFF, + VPP_COLOR_DEMO_MODE_ROFF, + VPP_COLOR_DEMO_MODE_BOFF, + VPP_COLOR_DEMO_MODE_RGBOFF, + VPP_COLOR_DEMO_MODE_YMCOFF, + VPP_COLOR_DEMO_MODE_ALLOFF, + VPP_COLOR_DEMO_MODE_MAX, } vpp_color_demomode_t; typedef enum vpp_color_basemode_e { - VPP_COLOR_BASE_MODE_OFF, - VPP_COLOR_BASE_MODE_OPTIMIZE, - VPP_COLOR_BASE_MODE_ENHANCE, - VPP_COLOR_BASE_MODE_DEMO, - VPP_COLOR_BASE_MODE_MAX, + VPP_COLOR_BASE_MODE_OFF, + VPP_COLOR_BASE_MODE_OPTIMIZE, + VPP_COLOR_BASE_MODE_ENHANCE, + VPP_COLOR_BASE_MODE_DEMO, + VPP_COLOR_BASE_MODE_MAX, } vpp_color_basemode_t; typedef enum vpp_color_management2_e { - VPP_COLOR_MANAGEMENT2_MODE_OFF, - VPP_COLOR_MANAGEMENT2_MODE_OPTIMIZE, - VPP_COLOR_MANAGEMENT2_MODE_ENHANCE, - VPP_COLOR_MANAGEMENT2_MODE_DEMO, - VPP_COLOR_MANAGEMENT2_MODE_MAX, + VPP_COLOR_MANAGEMENT2_MODE_OFF, + VPP_COLOR_MANAGEMENT2_MODE_OPTIMIZE, + VPP_COLOR_MANAGEMENT2_MODE_ENHANCE, + VPP_COLOR_MANAGEMENT2_MODE_DEMO, + VPP_COLOR_MANAGEMENT2_MODE_MAX, } vpp_color_management2_t; typedef enum vpp_noise_reduction2_mode_e { - VPP_NOISE_REDUCTION2_MODE_OFF, - VPP_NOISE_REDUCTION2_MODE_LOW, - VPP_NOISE_REDUCTION2_MODE_MID, - VPP_NOISE_REDUCTION2_MODE_HIGH, - VPP_NOISE_REDUCTION2_MODE_AUTO, - VPP_NOISE_REDUCTION2_MODE_MAX, + VPP_NOISE_REDUCTION2_MODE_OFF, + VPP_NOISE_REDUCTION2_MODE_LOW, + VPP_NOISE_REDUCTION2_MODE_MID, + VPP_NOISE_REDUCTION2_MODE_HIGH, + VPP_NOISE_REDUCTION2_MODE_AUTO, + VPP_NOISE_REDUCTION2_MODE_MAX, } vpp_noise_reduction2_mode_t; typedef enum vpp_xvycc_mode_e { - VPP_XVYCC_MODE_OFF, - VPP_XVYCC_MODE_STANDARD, - VPP_XVYCC_MODE_ENHANCE, - VPP_XVYCC_MODE_MAX, + VPP_XVYCC_MODE_OFF, + VPP_XVYCC_MODE_STANDARD, + VPP_XVYCC_MODE_ENHANCE, + VPP_XVYCC_MODE_MAX, } vpp_xvycc_mode_t; typedef enum vpp_mcdi_mode_e { - VPP_MCDI_MODE_OFF, - VPP_MCDI_MODE_STANDARD, - VPP_MCDI_MODE_ENHANCE, - VPP_MCDI_MODE_MAX, + VPP_MCDI_MODE_OFF, + VPP_MCDI_MODE_STANDARD, + VPP_MCDI_MODE_ENHANCE, + VPP_MCDI_MODE_MAX, } vpp_mcdi_mode_t; typedef enum vpp_picture_mode_e { - VPP_PICTURE_MODE_STANDARD, - VPP_PICTURE_MODE_BRIGHT, - VPP_PICTURE_MODE_SOFT, - VPP_PICTURE_MODE_USER, - VPP_PICTURE_MODE_MOVIE, - VPP_PICTURE_MODE_COLORFUL, - VPP_PICTURE_MODE_MAX, + VPP_PICTURE_MODE_STANDARD, + VPP_PICTURE_MODE_BRIGHT, + VPP_PICTURE_MODE_SOFT, + VPP_PICTURE_MODE_USER, + VPP_PICTURE_MODE_MOVIE, + VPP_PICTURE_MODE_COLORFUL, + VPP_PICTURE_MODE_MAX, } vpp_picture_mode_t; typedef enum vpp_color_temperature_mode_e { - VPP_COLOR_TEMPERATURE_MODE_STANDARD, - VPP_COLOR_TEMPERATURE_MODE_WARM, - VPP_COLOR_TEMPERATURE_MODE_COLD, - VPP_COLOR_TEMPERATURE_MODE_USER, - VPP_COLOR_TEMPERATURE_MODE_MAX, + VPP_COLOR_TEMPERATURE_MODE_STANDARD, + VPP_COLOR_TEMPERATURE_MODE_WARM, + VPP_COLOR_TEMPERATURE_MODE_COLD, + VPP_COLOR_TEMPERATURE_MODE_USER, + VPP_COLOR_TEMPERATURE_MODE_MAX, } vpp_color_temperature_mode_t; typedef enum vpp_noise_reduction_mode_e { - VPP_NOISE_REDUCTION_MODE_OFF, - VPP_NOISE_REDUCTION_MODE_LOW, - VPP_NOISE_REDUCTION_MODE_MID, - VPP_NOISE_REDUCTION_MODE_HIGH, - VPP_NOISE_REDUCTION_MODE_AUTO, - VPP_NOISE_REDUCTION_MODE_MAX, + VPP_NOISE_REDUCTION_MODE_OFF, + VPP_NOISE_REDUCTION_MODE_LOW, + VPP_NOISE_REDUCTION_MODE_MID, + VPP_NOISE_REDUCTION_MODE_HIGH, + VPP_NOISE_REDUCTION_MODE_AUTO, + VPP_NOISE_REDUCTION_MODE_MAX, } vpp_noise_reduction_mode_t; typedef enum vpp_test_pattern_e { - VPP_TEST_PATTERN_NONE, - VPP_TEST_PATTERN_RED, - VPP_TEST_PATTERN_GREEN, - VPP_TEST_PATTERN_BLUE, - VPP_TEST_PATTERN_WHITE, - VPP_TEST_PATTERN_BLACK, - VPP_TEST_PATTERN_MAX, + VPP_TEST_PATTERN_NONE, + VPP_TEST_PATTERN_RED, + VPP_TEST_PATTERN_GREEN, + VPP_TEST_PATTERN_BLUE, + VPP_TEST_PATTERN_WHITE, + VPP_TEST_PATTERN_BLACK, + VPP_TEST_PATTERN_MAX, } vpp_test_pattern_e; typedef struct vpp_pq_para_s { - int brightness; - int contrast; - int saturation; - int hue; - int sharpness; - int backlight; - int nr; + int brightness; + int contrast; + int saturation; + int hue; + int sharpness; + int backlight; + int nr; } vpp_pq_para_t; typedef enum noline_params_type_e { - NOLINE_PARAMS_TYPE_BRIGHTNESS, - NOLINE_PARAMS_TYPE_CONTRAST, - NOLINE_PARAMS_TYPE_SATURATION, - NOLINE_PARAMS_TYPE_HUE, - NOLINE_PARAMS_TYPE_SHARPNESS, - NOLINE_PARAMS_TYPE_VOLUME, - NOLINE_PARAMS_TYPE_BACKLIGHT, - NOLINE_PARAMS_TYPE_MAX, + NOLINE_PARAMS_TYPE_BRIGHTNESS, + NOLINE_PARAMS_TYPE_CONTRAST, + NOLINE_PARAMS_TYPE_SATURATION, + NOLINE_PARAMS_TYPE_HUE, + NOLINE_PARAMS_TYPE_SHARPNESS, + NOLINE_PARAMS_TYPE_VOLUME, + NOLINE_PARAMS_TYPE_BACKLIGHT, + NOLINE_PARAMS_TYPE_MAX, } noline_params_type_t; typedef struct noline_params_s { - int osd0; - int osd25; - int osd50; - int osd75; - int osd100; + int osd0; + int osd25; + int osd50; + int osd75; + int osd100; } noline_params_t; typedef enum vpp_dream_panel_e { - VPP_DREAM_PANEL_OFF, - VPP_DREAM_PANEL_LIGHT, - VPP_DREAM_PANEL_SCENE, - VPP_DREAM_PANEL_FULL, - VPP_DREAM_PANEL_DEMO, - VPP_DREAM_PANEL_MAX, + VPP_DREAM_PANEL_OFF, + VPP_DREAM_PANEL_LIGHT, + VPP_DREAM_PANEL_SCENE, + VPP_DREAM_PANEL_FULL, + VPP_DREAM_PANEL_DEMO, + VPP_DREAM_PANEL_MAX, } vpp_dream_panel_t; class CPqData; class CVpp { public: - CVpp(); - ~CVpp(); - int doSuspend(); - int doResume(); - int Vpp_Init ( const char *pq_db_path ); - int Vpp_Uninit ( void ); - CPqData *getPqData(); - int Vpp_ResetLastVppSettingsSourceType ( void ); - int Vpp_SetColorDemoMode ( vpp_color_demomode_t demomode ); - int Vpp_SetBaseColorMode ( vpp_color_basemode_t basemode , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt); - int Vpp_SetColorTemperatureUser ( vpp_color_temperature_mode_t temp_mode, tv_source_input_type_t source_type ); - int Vpp_SetColorTemperature ( vpp_color_temperature_mode_t Tempmode, tv_source_input_type_t source_type, tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt); - int Vpp_SetBrightness ( int value, tv_source_input_type_t source_type , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); - int Vpp_SetContrast ( int value, tv_source_input_type_t source_type , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); - int Vpp_SetSaturation ( int value, tv_source_input_type_t source_type , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); - int Vpp_SetHue ( int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, tvin_port_t source_port, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); - int Vpp_SetSharpness ( int value, tv_source_input_type_t source_type , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); - int Vpp_SetPQMode ( vpp_picture_mode_t pq_mode, tv_source_input_type_t source_type, tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); - int Vpp_SetNoiseReductionMode ( vpp_noise_reduction_mode_t nr_mode, tv_source_input_type_t source_type , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); - int Vpp_SetXVYCCMode ( vpp_xvycc_mode_t xvycc_mode, tv_source_input_type_t source_type, tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); + CVpp(); + ~CVpp(); + int doSuspend(); + int doResume(); + int Vpp_Init ( const char *pq_db_path ); + int Vpp_Uninit ( void ); + CPqData *getPqData(); + int Vpp_ResetLastVppSettingsSourceType ( void ); + int Vpp_SetColorDemoMode ( vpp_color_demomode_t demomode ); + int Vpp_SetBaseColorMode ( vpp_color_basemode_t basemode , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt); + int Vpp_SetColorTemperatureUser ( vpp_color_temperature_mode_t temp_mode, tv_source_input_type_t source_type ); + int Vpp_SetColorTemperature ( vpp_color_temperature_mode_t Tempmode, tv_source_input_type_t source_type, tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt); + int Vpp_SetBrightness ( int value, tv_source_input_type_t source_type , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); + int Vpp_SetContrast ( int value, tv_source_input_type_t source_type , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); + int Vpp_SetSaturation ( int value, tv_source_input_type_t source_type , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); + int Vpp_SetHue ( int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, tvin_port_t source_port, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); + int Vpp_SetSharpness ( int value, tv_source_input_type_t source_type , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); + int Vpp_SetPQMode ( vpp_picture_mode_t pq_mode, tv_source_input_type_t source_type, tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); + int Vpp_SetNoiseReductionMode ( vpp_noise_reduction_mode_t nr_mode, tv_source_input_type_t source_type , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); + int Vpp_SetXVYCCMode ( vpp_xvycc_mode_t xvycc_mode, tv_source_input_type_t source_type, tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); int Vpp_SetDeblockMode(vpp_deblock_mode_t mode, tvin_port_t source_port, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt); int Vpp_SetMCDIMode ( vpp_mcdi_mode_t mcdi_mode, tv_source_input_type_t source_type , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt); - int Vpp_SetZoom ( int value ); + int Vpp_SetZoom ( int value ); int Vpp_LoadDI(tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt); int Vpp_LoadBasicRegs ( tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); - int VppRegisterInterface(); - int RGBGainValueSSMToRisterMapping ( int gainValue ); - int RGBOffsetValueSSMToRisterMapping ( int gainValue ); - int SetRGBValue ( vpp_color_temperature_mode_t temp_mode, unsigned char data_buf[] ); - int GetRGBValue ( vpp_color_temperature_mode_t temp_mode, tcon_rgb_ogo_t *p_rgbogo ); - int SetColorSpaceMode ( vpp_color_space_type_t colorSpace ); - //int Tv_SetGammaValue(int gammaValue); - int GetGammaValue(); - //int Tv_SetColorDemoMode ( vpp_color_demomode_t demomode ); - vpp_color_demomode_t GetColorDemoMode ( void ); - - int SetBaseColorMode ( vpp_color_basemode_t basemode , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt); - vpp_color_basemode_t GetBaseColorMode ( void ); - int SetBaseColorModeWithoutSave ( vpp_color_basemode_t basemode , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt); - int SaveBaseColorMode ( vpp_color_basemode_t basemode ); - int SetColorTemperature ( vpp_color_temperature_mode_t Tempmode, tv_source_input_type_t source_type, int is_save ); - vpp_color_temperature_mode_t GetColorTemperature ( tv_source_input_type_t source_type ); - int SetColorTempWithoutSave ( vpp_color_temperature_mode_t Tempmode, tv_source_input_type_t source_type ); - int SaveColorTemp ( vpp_color_temperature_mode_t Tempmode, tv_source_input_type_t source_type ); - int SetBrightness ( int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save ); - int GetBrightness ( tv_source_input_type_t source_type ); - int SetContrast ( int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save ); - int GetContrast ( tv_source_input_type_t source_type ); - int SetSaturation ( int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save ); - int GetSaturation ( tv_source_input_type_t source_type ); - int SetHue ( int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save ); - int GetHue ( tv_source_input_type_t source_type ); - int SetSharpness ( int value, tv_source_input_type_t source_type, int is_enable, is_3d_type_t is3d, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, int is_save ); - int GetSharpness ( tv_source_input_type_t source_type ); - int SetBacklight ( int value, tv_source_input_type_t source_type, int is_save ); - int GetBacklight ( tv_source_input_type_t source_type ); - int SetBacklightWithoutSave ( int value, tv_source_input_type_t source_type ); - int SaveBacklight ( int value, tv_source_input_type_t source_type ); - int SetPQMode ( vpp_picture_mode_t pq_mode, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save ); - vpp_picture_mode_t GetPQMode ( tv_source_input_type_t source_type ); - int SavePQMode ( vpp_picture_mode_t pq_mode, tv_source_input_type_t source_type ); - int SetDisplayMode ( vpp_display_mode_t display_mode, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, int is_save ); - vpp_display_mode_t GetDisplayMode ( tv_source_input_type_t source_type ); - int SaveNoiseReductionMode ( vpp_noise_reduction_mode_t nr_mode, tv_source_input_type_t source_type ); - int SetNoiseReductionMode ( vpp_noise_reduction_mode_t nr_mode, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt, int is_save ); - vpp_noise_reduction_mode_t GetNoiseReductionMode ( tv_source_input_type_t source_type ); - int SetDNLP ( tv_source_input_type_t source_type, tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); - int LoadVppSettings ( tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); - //int Tv_SetVppParamDefault(void); - - - int FactorySetPQMode_Brightness ( int source_type, int pq_mode, int brightness ); - int FactoryGetPQMode_Brightness ( int source_type, int pq_mode ); - int FactorySetPQMode_Contrast ( int source_type, int pq_mode, int contrast ); - int FactoryGetPQMode_Contrast ( int source_type, int pq_mode ); - int FactorySetPQMode_Saturation ( int source_type, int pq_mode, int saturation ); - int FactoryGetPQMode_Saturation ( int source_type, int pq_mode ); - int FactorySetPQMode_Hue ( int source_type, int pq_mode, int hue ); - int FactoryGetPQMode_Hue ( int source_type, int pq_mode ); - int FactorySetPQMode_Sharpness ( int source_type, int pq_mode, int sharpness ); - int FactoryGetPQMode_Sharpness ( int source_type, int pq_mode ); - int FactorySetColorTemp_Rgain ( int source_type, int colortemp_mode, int rgain ); - int FactorySaveColorTemp_Rgain ( int source_type, int colortemp_mode, int rgain ); - int FactoryGetColorTemp_Rgain ( int source_type, int colortemp_mode ); - int FactorySetColorTemp_Ggain ( int source_type, int colortemp_mode, int ggain ); - int FactorySaveColorTemp_Ggain ( int source_type, int colortemp_mode, int ggain ); - int FactoryGetColorTemp_Ggain ( int source_type, int colortemp_mode ); - int FactorySetColorTemp_Bgain ( int source_type, int colortemp_mode, int bgain ); - int FactorySaveColorTemp_Bgain ( int source_type, int colortemp_mode, int bgain ); - int FactoryGetColorTemp_Bgain ( int source_type, int colortemp_mode ); - int FactorySetColorTemp_Roffset ( int source_type, int colortemp_mode, int roffset ); - int FactorySaveColorTemp_Roffset ( int source_type, int colortemp_mode, int roffset ); - int FactoryGetColorTemp_Roffset ( int source_type, int colortemp_mode ); - int FactorySetColorTemp_Goffset ( int source_type, int colortemp_mode, int goffset ); - int FactorySaveColorTemp_Goffset ( int source_type, int colortemp_mode, int goffset ); - int FactoryGetColorTemp_Goffset ( int source_type, int colortemp_mode ); - int FactorySetColorTemp_Boffset ( int source_type, int colortemp_mode, int boffset ); - int FactorySaveColorTemp_Boffset ( int source_type, int colortemp_mode, int boffset ); - int FactoryGetColorTemp_Boffset ( int source_type, int colortemp_mode ); - //int Tv_FactorySaveRGBDatatoAllSrc ( int source_type, int colortemp_mode ); - int FactoryGetTestPattern ( void ); - int FactoryResetPQMode ( void ); - int FactoryResetColorTemp ( void ); - int FactorySetParamsDefault ( void ); - int FactorySetDDRSSC ( int step ); - int FactoryGetDDRSSC(); - int FactorySetLVDSSSC ( int step ); - int FactoryGetLVDSSSC(); - int SetLVDSSSC(int step); - int FactorySetNolineParams ( int type, int source_type, noline_params_t noline_params ); - noline_params_t FactoryGetNolineParams ( int type, int source_type ); - int FactorySetOverscan ( int source_type, int fmt, int status_3d, int trans_fmt, tvin_cutwin_t cutwin_t ); - tvin_cutwin_t FactoryGetOverscan ( int source_type, int fmt, is_3d_type_t is3d, int trans_fmt ); - int FactorySetBacklightPWM_Frequency(int freq); - int FactoryGetBacklightPWM_Frequency ( void ); - int FactorySetBacklight_Switch_status ( int status ); - int FactoryGetBacklight_Switch_status ( void ); - int FactorySetBacklightPWM_Duty ( int duty ); - int FactoryGetBacklightPWM_Duty ( void ); - int FactorySetLVDS_ColorDepth ( int depth ); - int FactoryGetLVDS_ColorDepth ( void ); - int FactorySetLVDS_ColorDither_status ( int status ); - int FactoryGetLVDS_ColorDither_status ( void ); - int FactorySetLVDS_Mapping_status ( int status ); - int FactoryGetLVDS_Mapping_status ( void ); - int FactorySetLVDS_PortSwap_status ( int status ); - int FactoryGetLVDS_PortSwap_status ( void ); - - int VPPSSMRestoreDefault(); - int VPPSSMFacRestoreDefault(); - - - int GetHistogram_AVE(); - int SetDnlp_OFF(); - int SetDnlp_ON ( void ); - int GetDnlp_Status(); - - int GetColorTemperatureParams ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ); - int ReadColorTemperatureParams ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ); - int SetColorTemperatureParams ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params ); - int SaveColorTemperatureParams ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params ); - unsigned short CalColorTemperatureParamsChecksum ( void ); - int SetColorTempParamsChecksum ( void ); - unsigned short GetColorTempParamsChecksum ( void ); - int CheckTempDataLable ( void ); - int SetTempDataLable ( void ); - int CheckColorTemperatureParams ( void ); - int RestoeColorTemperatureParamsFromDB ( tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt ); - int CheckColorTemperatureParamAlldata ( tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt ); - void Tvin_SetVideoScreenColorType ( int type ); - int Vpp_GetVppConfig(); - int Vpp_GetPQModeValue ( tv_source_input_type_t, vpp_picture_mode_t, vpp_pq_para_t * ); - int Vpp_SetPQParams ( tv_source_input_type_t source_type, vpp_picture_mode_t pq_mode, vpp_pq_para_t pq_para , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt); - - int Vpp_LoadGammaDefault ( tv_source_input_type_t, tvin_sig_fmt_t ); - int Vpp_LoadGammaSpecial ( int ); - int Vpp_LoadGamma ( tv_source_input_type_t, tvin_sig_fmt_t ); - int FactoryResetNonlinear(); - tvin_cutwin_t GetOverscan ( tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); - static is_3d_type_t Check2Dor3D ( is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); - //api - int VPP_SetVEBlackExtension ( const struct ve_bext_s *pBExt ); - int VPP_SetVideoCrop ( int Voffset0, int Hoffset0, int Voffset1, int Hoffset1 ); - int VPP_SetNonLinearFactor ( int value ); - int VPP_SetGrayPattern(int value); - int VPP_GetGrayPattern(); - int VPP_SplitScreenEffect(int width, int v_register); - int VPP_SetBackLight_Switch ( int value ); - int VPP_GetBackLight_Switch ( void ); - int VPP_SetScalerPathSel (const unsigned int value); + int VppRegisterInterface(); + int RGBGainValueSSMToRisterMapping ( int gainValue ); + int RGBOffsetValueSSMToRisterMapping ( int gainValue ); + int SetRGBValue ( vpp_color_temperature_mode_t temp_mode, unsigned char data_buf[] ); + int GetRGBValue ( vpp_color_temperature_mode_t temp_mode, tcon_rgb_ogo_t *p_rgbogo ); + int SetColorSpaceMode ( vpp_color_space_type_t colorSpace ); + //int Tv_SetGammaValue(int gammaValue); + int GetGammaValue(); + //int Tv_SetColorDemoMode ( vpp_color_demomode_t demomode ); + vpp_color_demomode_t GetColorDemoMode ( void ); + + int SetBaseColorMode ( vpp_color_basemode_t basemode , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt); + vpp_color_basemode_t GetBaseColorMode ( void ); + int SetBaseColorModeWithoutSave ( vpp_color_basemode_t basemode , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt); + int SaveBaseColorMode ( vpp_color_basemode_t basemode ); + int SetColorTemperature ( vpp_color_temperature_mode_t Tempmode, tv_source_input_type_t source_type, int is_save ); + vpp_color_temperature_mode_t GetColorTemperature ( tv_source_input_type_t source_type ); + int SetColorTempWithoutSave ( vpp_color_temperature_mode_t Tempmode, tv_source_input_type_t source_type ); + int SaveColorTemp ( vpp_color_temperature_mode_t Tempmode, tv_source_input_type_t source_type ); + int SetBrightness ( int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save ); + int GetBrightness ( tv_source_input_type_t source_type ); + int SetContrast ( int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save ); + int GetContrast ( tv_source_input_type_t source_type ); + int SetSaturation ( int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save ); + int GetSaturation ( tv_source_input_type_t source_type ); + int SetHue ( int value, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save ); + int GetHue ( tv_source_input_type_t source_type ); + int SetSharpness ( int value, tv_source_input_type_t source_type, int is_enable, is_3d_type_t is3d, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, int is_save ); + int GetSharpness ( tv_source_input_type_t source_type ); + int SetBacklight ( int value, tv_source_input_type_t source_type, int is_save ); + int GetBacklight ( tv_source_input_type_t source_type ); + int SetBacklightWithoutSave ( int value, tv_source_input_type_t source_type ); + int SaveBacklight ( int value, tv_source_input_type_t source_type ); + int SetPQMode ( vpp_picture_mode_t pq_mode, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt, is_3d_type_t is3d, int is_save ); + vpp_picture_mode_t GetPQMode ( tv_source_input_type_t source_type ); + int SavePQMode ( vpp_picture_mode_t pq_mode, tv_source_input_type_t source_type ); + int SetDisplayMode ( vpp_display_mode_t display_mode, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, int is_save ); + vpp_display_mode_t GetDisplayMode ( tv_source_input_type_t source_type ); + int SaveNoiseReductionMode ( vpp_noise_reduction_mode_t nr_mode, tv_source_input_type_t source_type ); + int SetNoiseReductionMode ( vpp_noise_reduction_mode_t nr_mode, tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt, int is_save ); + vpp_noise_reduction_mode_t GetNoiseReductionMode ( tv_source_input_type_t source_type ); + int SetDNLP ( tv_source_input_type_t source_type, tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); + int LoadVppSettings ( tv_source_input_type_t source_type, tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); + //int Tv_SetVppParamDefault(void); + + + int FactorySetPQMode_Brightness ( int source_type, int pq_mode, int brightness ); + int FactoryGetPQMode_Brightness ( int source_type, int pq_mode ); + int FactorySetPQMode_Contrast ( int source_type, int pq_mode, int contrast ); + int FactoryGetPQMode_Contrast ( int source_type, int pq_mode ); + int FactorySetPQMode_Saturation ( int source_type, int pq_mode, int saturation ); + int FactoryGetPQMode_Saturation ( int source_type, int pq_mode ); + int FactorySetPQMode_Hue ( int source_type, int pq_mode, int hue ); + int FactoryGetPQMode_Hue ( int source_type, int pq_mode ); + int FactorySetPQMode_Sharpness ( int source_type, int pq_mode, int sharpness ); + int FactoryGetPQMode_Sharpness ( int source_type, int pq_mode ); + int FactorySetColorTemp_Rgain ( int source_type, int colortemp_mode, int rgain ); + int FactorySaveColorTemp_Rgain ( int source_type, int colortemp_mode, int rgain ); + int FactoryGetColorTemp_Rgain ( int source_type, int colortemp_mode ); + int FactorySetColorTemp_Ggain ( int source_type, int colortemp_mode, int ggain ); + int FactorySaveColorTemp_Ggain ( int source_type, int colortemp_mode, int ggain ); + int FactoryGetColorTemp_Ggain ( int source_type, int colortemp_mode ); + int FactorySetColorTemp_Bgain ( int source_type, int colortemp_mode, int bgain ); + int FactorySaveColorTemp_Bgain ( int source_type, int colortemp_mode, int bgain ); + int FactoryGetColorTemp_Bgain ( int source_type, int colortemp_mode ); + int FactorySetColorTemp_Roffset ( int source_type, int colortemp_mode, int roffset ); + int FactorySaveColorTemp_Roffset ( int source_type, int colortemp_mode, int roffset ); + int FactoryGetColorTemp_Roffset ( int source_type, int colortemp_mode ); + int FactorySetColorTemp_Goffset ( int source_type, int colortemp_mode, int goffset ); + int FactorySaveColorTemp_Goffset ( int source_type, int colortemp_mode, int goffset ); + int FactoryGetColorTemp_Goffset ( int source_type, int colortemp_mode ); + int FactorySetColorTemp_Boffset ( int source_type, int colortemp_mode, int boffset ); + int FactorySaveColorTemp_Boffset ( int source_type, int colortemp_mode, int boffset ); + int FactoryGetColorTemp_Boffset ( int source_type, int colortemp_mode ); + //int Tv_FactorySaveRGBDatatoAllSrc ( int source_type, int colortemp_mode ); + int FactoryGetTestPattern ( void ); + int FactoryResetPQMode ( void ); + int FactoryResetColorTemp ( void ); + int FactorySetParamsDefault ( void ); + int FactorySetDDRSSC ( int step ); + int FactoryGetDDRSSC(); + int FactorySetLVDSSSC ( int step ); + int FactoryGetLVDSSSC(); + int SetLVDSSSC(int step); + int FactorySetNolineParams ( int type, int source_type, noline_params_t noline_params ); + noline_params_t FactoryGetNolineParams ( int type, int source_type ); + int FactorySetOverscan ( int source_type, int fmt, int status_3d, int trans_fmt, tvin_cutwin_t cutwin_t ); + tvin_cutwin_t FactoryGetOverscan ( int source_type, int fmt, is_3d_type_t is3d, int trans_fmt ); + int FactorySetBacklightPWM_Frequency(int freq); + int FactoryGetBacklightPWM_Frequency ( void ); + int FactorySetBacklight_Switch_status ( int status ); + int FactoryGetBacklight_Switch_status ( void ); + int FactorySetBacklightPWM_Duty ( int duty ); + int FactoryGetBacklightPWM_Duty ( void ); + int FactorySetLVDS_ColorDepth ( int depth ); + int FactoryGetLVDS_ColorDepth ( void ); + int FactorySetLVDS_ColorDither_status ( int status ); + int FactoryGetLVDS_ColorDither_status ( void ); + int FactorySetLVDS_Mapping_status ( int status ); + int FactoryGetLVDS_Mapping_status ( void ); + int FactorySetLVDS_PortSwap_status ( int status ); + int FactoryGetLVDS_PortSwap_status ( void ); + + int VPPSSMRestoreDefault(); + int VPPSSMFacRestoreDefault(); + + + int GetHistogram_AVE(); + int SetDnlp_OFF(); + int SetDnlp_ON ( void ); + int GetDnlp_Status(); + + int GetColorTemperatureParams ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ); + int ReadColorTemperatureParams ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t *params ); + int SetColorTemperatureParams ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params ); + int SaveColorTemperatureParams ( vpp_color_temperature_mode_t Tempmode, tcon_rgb_ogo_t params ); + unsigned short CalColorTemperatureParamsChecksum ( void ); + int SetColorTempParamsChecksum ( void ); + unsigned short GetColorTempParamsChecksum ( void ); + int CheckTempDataLable ( void ); + int SetTempDataLable ( void ); + int CheckColorTemperatureParams ( void ); + int RestoeColorTemperatureParamsFromDB ( tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt ); + int CheckColorTemperatureParamAlldata ( tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, tvin_trans_fmt_t trans_fmt ); + void Tvin_SetVideoScreenColorType ( int type ); + int Vpp_GetVppConfig(); + int Vpp_GetPQModeValue ( tv_source_input_type_t, vpp_picture_mode_t, vpp_pq_para_t * ); + int Vpp_SetPQParams ( tv_source_input_type_t source_type, vpp_picture_mode_t pq_mode, vpp_pq_para_t pq_para , tvin_port_t source_port , tvin_sig_fmt_t sig_fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt); + + int Vpp_LoadGammaDefault ( tv_source_input_type_t, tvin_sig_fmt_t ); + int Vpp_LoadGammaSpecial ( int ); + int Vpp_LoadGamma ( tv_source_input_type_t, tvin_sig_fmt_t ); + int FactoryResetNonlinear(); + tvin_cutwin_t GetOverscan ( tv_source_input_type_t source_type, tvin_sig_fmt_t fmt, is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); + static is_3d_type_t Check2Dor3D ( is_3d_type_t is3d, tvin_trans_fmt_t trans_fmt ); + //api + int VPP_SetVEBlackExtension ( const struct ve_bext_s *pBExt ); + int VPP_SetVideoCrop ( int Voffset0, int Hoffset0, int Voffset1, int Hoffset1 ); + int VPP_SetNonLinearFactor ( int value ); + int VPP_SetGrayPattern(int value); + int VPP_GetGrayPattern(); + int VPP_SplitScreenEffect(int width, int v_register); + int VPP_SetBackLight_Switch ( int value ); + int VPP_GetBackLight_Switch ( void ); + int VPP_SetScalerPathSel (const unsigned int value); private: - // - int VPP_OpenModule ( void ); - int VPP_CloseModule ( void ); - int VPP_SetVideoBrightness ( int value ); - int VPP_SetVideoContrast ( int value ); - int VPP_SetVideoSaturationHue ( int satVal, int hueVal ); - int VPP_SetCMRegisterMap ( struct cm_regmap_s *pRegMap ); - int Vpp_LoadRegs ( am_regs_t regs ); - int VPP_SetRGBOGO ( const struct tcon_rgb_ogo_s *rgbogo ); - int VPP_GetRGBOGO ( const struct tcon_rgb_ogo_s *rgbogo ); - int VPP_SetGammaOnOff ( unsigned char onoff ); - int VPP_SetGammaTbl_R ( unsigned short red[256] ); - int VPP_SetGammaTbl_G ( unsigned short green[256] ); - int VPP_SetGammaTbl_B ( unsigned short blue[256] ); - void video_set_saturation_hue ( signed char saturation, signed char hue, signed long *mab ); - void video_get_saturation_hue ( signed char *sat, signed char *hue, signed long *mab ); - int VPP_SetBackLightLevel ( int value ); - int VPP_SetVEDNLP ( const struct ve_dnlp_s *pDNLP ); - int VPP_SetVENewDNLP ( const ve_dnlp_table_t *pDNLP ); - int Vpp_GetAVGHistogram ( struct ve_hist_s *hist ); - int Vpp_SetDnlpOff ( void ); - int Vpp_SetDnlpOn ( void ); - int VPP_SetVESharpness ( const ve_hsvs_s * ); - int VPP_SetVEChromaCoring ( const ve_ccor_s * ); - int VPP_SetVEBlueEnh ( const ve_benh_s * ); - int VPP_SetVEDemo ( const ve_demo_s * ); - int VPP_SetVERegisterMap ( const ve_regmap_s * ); - int VPP_SetVEDebug ( const long long unsigned int * ); - int VPP_SetCMRegion ( const cm_region_s * ); - int VPP_SetCMTopLayer ( const cm_top_s * ); - int VPP_SetCMDemo ( const cm_demo_s * ); - - int VPP_DeviceIOCtl ( int request, ... ); - int VPP3D_DeviceIOCtl ( int, ... ); - int VPP_SetCMDebug ( const long long unsigned int * ); - int VPP_SetAVSyncEnable ( unsigned int ); - int VPP_SetVideoNoiseReduction ( int ); - int VPP_SetVideoSaturation ( int ); - int VPP_SetVideoHue ( int ); - int VPP_SetDeinterlaceMode ( int ); + // + int VPP_OpenModule ( void ); + int VPP_CloseModule ( void ); + int VPP_SetVideoBrightness ( int value ); + int VPP_SetVideoContrast ( int value ); + int VPP_SetVideoSaturationHue ( int satVal, int hueVal ); + int VPP_SetCMRegisterMap ( struct cm_regmap_s *pRegMap ); + int Vpp_LoadRegs ( am_regs_t regs ); + int VPP_SetRGBOGO ( const struct tcon_rgb_ogo_s *rgbogo ); + int VPP_GetRGBOGO ( const struct tcon_rgb_ogo_s *rgbogo ); + int VPP_SetGammaOnOff ( unsigned char onoff ); + int VPP_SetGammaTbl_R ( unsigned short red[256] ); + int VPP_SetGammaTbl_G ( unsigned short green[256] ); + int VPP_SetGammaTbl_B ( unsigned short blue[256] ); + void video_set_saturation_hue ( signed char saturation, signed char hue, signed long *mab ); + void video_get_saturation_hue ( signed char *sat, signed char *hue, signed long *mab ); + int VPP_SetBackLightLevel ( int value ); + int VPP_SetVEDNLP ( const struct ve_dnlp_s *pDNLP ); + int VPP_SetVENewDNLP ( const ve_dnlp_table_t *pDNLP ); + int Vpp_GetAVGHistogram ( struct ve_hist_s *hist ); + int Vpp_SetDnlpOff ( void ); + int Vpp_SetDnlpOn ( void ); + int VPP_SetVESharpness ( const ve_hsvs_s * ); + int VPP_SetVEChromaCoring ( const ve_ccor_s * ); + int VPP_SetVEBlueEnh ( const ve_benh_s * ); + int VPP_SetVEDemo ( const ve_demo_s * ); + int VPP_SetVERegisterMap ( const ve_regmap_s * ); + int VPP_SetVEDebug ( const long long unsigned int * ); + int VPP_SetCMRegion ( const cm_region_s * ); + int VPP_SetCMTopLayer ( const cm_top_s * ); + int VPP_SetCMDemo ( const cm_demo_s * ); + + int VPP_DeviceIOCtl ( int request, ... ); + int VPP3D_DeviceIOCtl ( int, ... ); + int VPP_SetCMDebug ( const long long unsigned int * ); + int VPP_SetAVSyncEnable ( unsigned int ); + int VPP_SetVideoNoiseReduction ( int ); + int VPP_SetVideoSaturation ( int ); + int VPP_SetVideoHue ( int ); + int VPP_SetDeinterlaceMode ( int ); int isPreviewWindow(); - tv_source_input_type_t vpp_setting_last_source_type; - tvin_sig_fmt_t vpp_setting_last_sig_fmt; - tvin_trans_fmt_t vpp_setting_last_trans_fmt; - //cfg - bool mbVppCfg_backlight_reverse; - bool mbVppCfg_backlight_init; - bool mbVppCfg_pqmode_without_hue; - bool mbVppCfg_hue_reverse; - bool mbVppCfg_gamma_onoff; - bool mbVppCfg_whitebalance_sameparam; - bool mbVppCfg_new_cm; - bool mbVppCfg_new_nr; - bool mbVppCfg_panorama_switch; - bool mbVppCfg_pqmode_depend_bklight; - bool mbVppCfg_colortemp_by_source; - - CPqData *mpPqData; - - int vpp_amvideo_fd; - int vpp_amvideo_3d_fd; + tv_source_input_type_t vpp_setting_last_source_type; + tvin_sig_fmt_t vpp_setting_last_sig_fmt; + tvin_trans_fmt_t vpp_setting_last_trans_fmt; + //cfg + bool mbVppCfg_backlight_reverse; + bool mbVppCfg_backlight_init; + bool mbVppCfg_pqmode_without_hue; + bool mbVppCfg_hue_reverse; + bool mbVppCfg_gamma_onoff; + bool mbVppCfg_whitebalance_sameparam; + bool mbVppCfg_new_cm; + bool mbVppCfg_new_nr; + bool mbVppCfg_panorama_switch; + bool mbVppCfg_pqmode_depend_bklight; + bool mbVppCfg_colortemp_by_source; + + CPqData *mpPqData; + + int vpp_amvideo_fd; + int vpp_amvideo_3d_fd; }; #endif diff --git a/tvapi/libtv/vpp/pqdata.cpp b/tvapi/libtv/vpp/pqdata.cpp index c5dc6b5..a005245 100644 --- a/tvapi/libtv/vpp/pqdata.cpp +++ b/tvapi/libtv/vpp/pqdata.cpp @@ -2,142 +2,142 @@ //vpp unsigned long DemoColorYOffRegMap[CM_REG_NUM] = { - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x80ff807f, 0x00800800, 0x00001000, 0x1077f010, - 0xf077ff10, 0x7777ff10, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x80ff807f, 0x00800800, 0x00001000, 0x1077f010, + 0xf077ff10, 0x7777ff10, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, }; //vpp unsigned long DemoColorCOffRegMap[CM_REG_NUM] = { - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x80ff807f, 0x00802800, - 0x00001000, 0x1077f010, 0xf077ff10, 0x7777ff10, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x80ff807f, 0x00802800, + 0x00001000, 0x1077f010, 0xf077ff10, 0x7777ff10, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, }; unsigned long DemoColorGOffRegMap[CM_REG_NUM] = { - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x80ff807f, 0x00801800, 0x00001000, - 0x1077f010, 0xf077ff10, 0x7777ff10, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x80ff807f, 0x00801800, 0x00001000, + 0x1077f010, 0xf077ff10, 0x7777ff10, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, }; unsigned long DemoColorMOffRegMap[CM_REG_NUM] = { - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x80ff807f, 0x00804800, 0x00001000, 0x1077f010, 0xf077ff10, - 0x7777ff10, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x80ff807f, 0x00804800, 0x00001000, 0x1077f010, 0xf077ff10, + 0x7777ff10, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, }; unsigned long DemoColorROffRegMap[CM_REG_NUM] = { - 0x80ff807f, 0x00805800, 0x00001000, 0x1077f010, 0xf077ff10, - 0x7777ff10, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, + 0x80ff807f, 0x00805800, 0x00001000, 0x1077f010, 0xf077ff10, + 0x7777ff10, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, }; unsigned long DemoColorBOffRegMap[CM_REG_NUM] = { - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80ff807f, - 0x00803800, 0x00001000, 0x1077f010, 0xf077ff10, 0x7777ff10, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000 + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80ff807f, + 0x00803800, 0x00001000, 0x1077f010, 0xf077ff10, 0x7777ff10, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000 }; unsigned long DemoColorRGBOffRegMap[CM_REG_NUM] = { - 0x80ff807f, 0x00805800, 0x00001000, 0x1077f010, 0xf077ff10, - 0x7777ff10, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x80ff807f, 0x00801800, 0x00001000, - 0x1077f010, 0xf077ff10, 0x7777ff10, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80ff807f, - 0x00803800, 0x00001000, 0x1077f010, 0xf077ff10, 0x7777ff10, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, + 0x80ff807f, 0x00805800, 0x00001000, 0x1077f010, 0xf077ff10, + 0x7777ff10, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x80ff807f, 0x00801800, 0x00001000, + 0x1077f010, 0xf077ff10, 0x7777ff10, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80ff807f, + 0x00803800, 0x00001000, 0x1077f010, 0xf077ff10, 0x7777ff10, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, }; unsigned long DemoColorYMCOffRegMap[CM_REG_NUM] = { - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x80ff807f, 0x00800800, 0x00001000, 0x1077f010, - 0xf077ff10, 0x7777ff10, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x80ff807f, 0x00802800, - 0x00001000, 0x1077f010, 0xf077ff10, 0x7777ff10, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x80ff807f, 0x00804800, 0x00001000, 0x1077f010, 0xf077ff10, - 0x7777ff10, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x80ff807f, 0x00800800, 0x00001000, 0x1077f010, + 0xf077ff10, 0x7777ff10, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x80ff807f, 0x00802800, + 0x00001000, 0x1077f010, 0xf077ff10, 0x7777ff10, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x80ff807f, 0x00804800, 0x00001000, 0x1077f010, 0xf077ff10, + 0x7777ff10, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, }; unsigned long DemoColorALLOffRegMap[CM_REG_NUM] = { - 0x81ff8080, 0x00805800, 0x00001000, 0x0077ff00, 0xff77ff00, - 0x7777ff00, 0x80ff8080, 0x00800800, 0x00001000, 0x0077ff00, - 0xff77ff00, 0x7777ff00, 0x80ff8080, 0x00a01800, 0x00000ccd, - 0x0077ff00, 0xff77ff00, 0x7777ff00, 0x80ff8080, 0x00ff2800, - 0x00000800, 0x0077ff00, 0xff77ff00, 0x7777ff00, 0x80ff8080, - 0x00ff3c00, 0x00000800, 0x0077ff00, 0xff77ff00, 0x7777ff00, - 0x80ff8080, 0x00ff4c00, 0x00000800, 0x0077ff00, 0x00000000, - 0x7777ff00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0xff77ff00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, + 0x81ff8080, 0x00805800, 0x00001000, 0x0077ff00, 0xff77ff00, + 0x7777ff00, 0x80ff8080, 0x00800800, 0x00001000, 0x0077ff00, + 0xff77ff00, 0x7777ff00, 0x80ff8080, 0x00a01800, 0x00000ccd, + 0x0077ff00, 0xff77ff00, 0x7777ff00, 0x80ff8080, 0x00ff2800, + 0x00000800, 0x0077ff00, 0xff77ff00, 0x7777ff00, 0x80ff8080, + 0x00ff3c00, 0x00000800, 0x0077ff00, 0xff77ff00, 0x7777ff00, + 0x80ff8080, 0x00ff4c00, 0x00000800, 0x0077ff00, 0x00000000, + 0x7777ff00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0xff77ff00, 0x00000000, 0x00000000, 0x00000000, 0x00000000, + 0x00000000, 0x00000000, 0x00000000, 0x80700124, 0x00000000, }; unsigned long DemoColorSplit4_3RegMap[CM_REG_NUM] = { - 0x8A58821E, 0x00525911, 0x000018FA, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8A3F8A14, 0x002803BB, 0x00003333, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8A6C8A24, 0x00130911, 0x00006BCA, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8AA48A50, 0x00440BBB, 0x00001E1E, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8ACC8221, 0x00AA1488, 0x00000C0C, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8AF48A24, 0x00632A22, 0x000014B0, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8AFF8A4C, 0x008536EE, 0x00000F66, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8AC68244, 0x00854800, 0x00000F66, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8492D024, 0x81000000 + 0x8A58821E, 0x00525911, 0x000018FA, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8A3F8A14, 0x002803BB, 0x00003333, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8A6C8A24, 0x00130911, 0x00006BCA, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8AA48A50, 0x00440BBB, 0x00001E1E, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8ACC8221, 0x00AA1488, 0x00000C0C, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8AF48A24, 0x00632A22, 0x000014B0, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8AFF8A4C, 0x008536EE, 0x00000F66, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8AC68244, 0x00854800, 0x00000F66, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8492D024, 0x81000000 }; unsigned long DemoColorSplitRegMap[CM_REG_NUM] = { - 0x8A58821E, 0x00525911, 0x000018FA, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8A3F8A14, 0x002803BB, 0x00003333, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8A6C8A24, 0x00130911, 0x00006BCA, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8AA48A50, 0x00440BBB, 0x00001E1E, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8ACC8221, 0x00AA1488, 0x00000C0C, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8AF48A24, 0x00632A22, 0x000014B0, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8AFF8A4C, 0x008536EE, 0x00000F66, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8AC68244, 0x00854800, 0x00000F66, 0x1033E010, 0xE033F50A, 0x3333E010, - 0x8493C024, 0x81000000 + 0x8A58821E, 0x00525911, 0x000018FA, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8A3F8A14, 0x002803BB, 0x00003333, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8A6C8A24, 0x00130911, 0x00006BCA, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8AA48A50, 0x00440BBB, 0x00001E1E, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8ACC8221, 0x00AA1488, 0x00000C0C, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8AF48A24, 0x00632A22, 0x000014B0, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8AFF8A4C, 0x008536EE, 0x00000F66, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8AC68244, 0x00854800, 0x00000F66, 0x1033E010, 0xE033F50A, 0x3333E010, + 0x8493C024, 0x81000000 }; diff --git a/tvapi/tvtests/comm_test.cpp b/tvapi/tvtests/comm_test.cpp index 27d21b3..c719cc1 100644 --- a/tvapi/tvtests/comm_test.cpp +++ b/tvapi/tvtests/comm_test.cpp @@ -3,31 +3,31 @@ void usage(char *processname) { - fprintf(stderr, "Usage: %s <cmd num> [arg1]... [argn]\n", processname); - return; + fprintf(stderr, "Usage: %s <cmd num> [arg1]... [argn]\n", processname); + return; } int main(int argc, char **argv) { - int cmd, go = 1; - LOGD("---------------0------------------------"); - CFbcCommunication fbc; - LOGD("---------------1-------------------------"); - fbc.run(); - LOGD("------------------2----------------------"); + int cmd, go = 1; + LOGD("---------------0------------------------"); + CFbcCommunication fbc; + LOGD("---------------1-------------------------"); + fbc.run(); + LOGD("------------------2----------------------"); - while (go) { - scanf("%d", &cmd); - switch (cmd) { - case 1: - go = 0; - fbc.closeAll(); - break; - case 2: - break; - default: - break; - } - } + while (go) { + scanf("%d", &cmd); + switch (cmd) { + case 1: + go = 0; + fbc.closeAll(); + break; + case 2: + break; + default: + break; + } + } } diff --git a/tvapi/tvtests/ssm_test.cpp b/tvapi/tvtests/ssm_test.cpp index 1ac0e8f..5ed4110 100644 --- a/tvapi/tvtests/ssm_test.cpp +++ b/tvapi/tvtests/ssm_test.cpp @@ -17,23 +17,23 @@ #if 1 // memory aligned with 1 Bytes typedef struct tagS_TEST_STRUCT { - char tmp_ch0; - char tmp_ch1; - int tmp_val0; - unsigned char tmp_ch2; - unsigned char tmp_ch3; - unsigned char tmp_ch4; - short tmp_short0; + char tmp_ch0; + char tmp_ch1; + int tmp_val0; + unsigned char tmp_ch2; + unsigned char tmp_ch3; + unsigned char tmp_ch4; + short tmp_short0; } __attribute__((packed)) S_TEST_STRUCT; #else // memory aligned with 4 Bytes typedef struct tagS_TEST_STRUCT { - char tmp_ch0; - char tmp_ch1; - int tmp_val0; - unsigned char tmp_ch2; - unsigned char tmp_ch3; - unsigned char tmp_ch4; - short tmp_short0; + char tmp_ch0; + char tmp_ch1; + int tmp_val0; + unsigned char tmp_ch2; + unsigned char tmp_ch3; + unsigned char tmp_ch4; + short tmp_short0; } S_TEST_STRUCT; #endif @@ -43,168 +43,168 @@ static void TestRWOneStruct(int tmp_rw_offset); int main() { - TestRWOneByte(0, 1, -1); - TestRWOneByte(1, 2, -2); - TestRWOneByte(30, 3, -3); - TestRWOneByte(31, -1, 1); - TestRWOneByte(32, -2, 2); - TestRWOneByte(33, -3, 3); + TestRWOneByte(0, 1, -1); + TestRWOneByte(1, 2, -2); + TestRWOneByte(30, 3, -3); + TestRWOneByte(31, -1, 1); + TestRWOneByte(32, -2, 2); + TestRWOneByte(33, -3, 3); - TestRWNBytes(31); + TestRWNBytes(31); - TestRWOneStruct(0); + TestRWOneStruct(0); } static void TestRWOneByte(int tmp_rw_offset, int tmp_w_val, unsigned char tmp_w_ch) { - int tmp_r_val = 0; - unsigned char tmp_r_ch = 0; + int tmp_r_val = 0; + unsigned char tmp_r_ch = 0; - LOGD("\n\n"); - LOGD("**************Test R/W One Byte **************\n\n"); + LOGD("\n\n"); + LOGD("**************Test R/W One Byte **************\n\n"); - LOGD("tmp_rw_offset = %d.\n", tmp_rw_offset); + LOGD("tmp_rw_offset = %d.\n", tmp_rw_offset); - SSMWriteOneByte(tmp_rw_offset, tmp_w_ch); - SSMReadOneByte(tmp_rw_offset, &tmp_r_ch); - LOGD("tmp_w_ch = %d, tmp_r_ch = %d.\n", tmp_w_ch, tmp_r_ch); + SSMWriteOneByte(tmp_rw_offset, tmp_w_ch); + SSMReadOneByte(tmp_rw_offset, &tmp_r_ch); + LOGD("tmp_w_ch = %d, tmp_r_ch = %d.\n", tmp_w_ch, tmp_r_ch); - SSMWriteOneByte(tmp_rw_offset, tmp_w_val); - SSMReadOneByte(tmp_rw_offset, &tmp_r_val); - LOGD("tmp_w_val = %d, tmp_r_val = %d.\n", tmp_w_val, tmp_r_val); + SSMWriteOneByte(tmp_rw_offset, tmp_w_val); + SSMReadOneByte(tmp_rw_offset, &tmp_r_val); + LOGD("tmp_w_val = %d, tmp_r_val = %d.\n", tmp_w_val, tmp_r_val); } static void TestRWNBytes(int tmp_rw_offset) { - int i = 0, tmp_op_buf_size = 0; - int device_size = 0, tmp_w_page_size = 0, tmp_r_page_size = 0; - int *tmp_op_int_w_buf = NULL, *tmp_op_int_r_buf = NULL; - unsigned char *tmp_op_char_w_buf = NULL, *tmp_op_char_r_buf = NULL; - - LOGD("\n\n"); - LOGD("**************Test R/W N Bytes **************\n\n"); - - SSMGetDeviceTotalSize(&device_size); - SSMGetDeviceWritePageSize(&tmp_w_page_size); - SSMGetDeviceReadPageSize(&tmp_r_page_size); - - if (tmp_w_page_size < tmp_r_page_size) { - tmp_op_buf_size = tmp_w_page_size * 2 / 3; - } else if (tmp_r_page_size < tmp_w_page_size) { - tmp_op_buf_size = tmp_r_page_size * 2 / 3; - } else { - tmp_op_buf_size = tmp_w_page_size; - } - - if (tmp_op_buf_size > device_size) { - tmp_op_buf_size = device_size; - } - - if (tmp_op_buf_size > 0) { - LOGD("tmp_rw_offset = %d.\n", tmp_rw_offset); - - tmp_op_char_w_buf = new unsigned char[tmp_op_buf_size]; - if (tmp_op_char_w_buf != NULL) { - tmp_op_char_r_buf = new unsigned char[tmp_op_buf_size]; - if (tmp_op_char_r_buf != NULL) { - for (i = 0; i < tmp_op_buf_size; i++) { - tmp_op_char_w_buf[i] = (tmp_op_buf_size / 2) - i; - LOGD("tmp_op_char_w_buf[%d] = %d\n", i, tmp_op_char_w_buf[i]); - } - SSMWriteNTypes(tmp_rw_offset, tmp_op_buf_size, tmp_op_char_w_buf); - - for (i = 0; i < tmp_op_buf_size; i++) { - tmp_op_char_r_buf[i] = 0; - } - SSMReadNTypes(tmp_rw_offset, tmp_op_buf_size, tmp_op_char_r_buf); - - for (i = 0; i < tmp_op_buf_size; i++) { - LOGD("tmp_op_char_r_buf[%d] = %d\n", i, tmp_op_char_r_buf[i]); - } - - delete tmp_op_char_r_buf; - tmp_op_char_r_buf = NULL; - } - - delete tmp_op_char_w_buf; - tmp_op_char_w_buf = NULL; - } - - tmp_op_int_w_buf = new int[tmp_op_buf_size]; - if (tmp_op_int_w_buf != NULL) { - tmp_op_int_r_buf = new int[tmp_op_buf_size]; - if (tmp_op_int_r_buf != NULL) { - for (i = 0; i < tmp_op_buf_size; i++) { - tmp_op_int_w_buf[i] = (tmp_op_buf_size / 2) - i; - LOGD("tmp_op_int_w_buf[%d] = %d\n", i, tmp_op_int_w_buf[i]); - } - SSMWriteNTypes(tmp_rw_offset, tmp_op_buf_size, tmp_op_int_w_buf); - - for (i = 0; i < tmp_op_buf_size; i++) { - tmp_op_int_r_buf[i] = 0; - } - SSMReadNTypes(tmp_rw_offset, tmp_op_buf_size, tmp_op_int_r_buf); - - for (i = 0; i < tmp_op_buf_size; i++) { - LOGD("tmp_op_int_r_buf[%d] = %d\n", i, tmp_op_int_r_buf[i]); - } - - delete tmp_op_int_r_buf; - tmp_op_int_r_buf = NULL; - } - - delete tmp_op_int_w_buf; - tmp_op_int_w_buf = NULL; - } - } + int i = 0, tmp_op_buf_size = 0; + int device_size = 0, tmp_w_page_size = 0, tmp_r_page_size = 0; + int *tmp_op_int_w_buf = NULL, *tmp_op_int_r_buf = NULL; + unsigned char *tmp_op_char_w_buf = NULL, *tmp_op_char_r_buf = NULL; + + LOGD("\n\n"); + LOGD("**************Test R/W N Bytes **************\n\n"); + + SSMGetDeviceTotalSize(&device_size); + SSMGetDeviceWritePageSize(&tmp_w_page_size); + SSMGetDeviceReadPageSize(&tmp_r_page_size); + + if (tmp_w_page_size < tmp_r_page_size) { + tmp_op_buf_size = tmp_w_page_size * 2 / 3; + } else if (tmp_r_page_size < tmp_w_page_size) { + tmp_op_buf_size = tmp_r_page_size * 2 / 3; + } else { + tmp_op_buf_size = tmp_w_page_size; + } + + if (tmp_op_buf_size > device_size) { + tmp_op_buf_size = device_size; + } + + if (tmp_op_buf_size > 0) { + LOGD("tmp_rw_offset = %d.\n", tmp_rw_offset); + + tmp_op_char_w_buf = new unsigned char[tmp_op_buf_size]; + if (tmp_op_char_w_buf != NULL) { + tmp_op_char_r_buf = new unsigned char[tmp_op_buf_size]; + if (tmp_op_char_r_buf != NULL) { + for (i = 0; i < tmp_op_buf_size; i++) { + tmp_op_char_w_buf[i] = (tmp_op_buf_size / 2) - i; + LOGD("tmp_op_char_w_buf[%d] = %d\n", i, tmp_op_char_w_buf[i]); + } + SSMWriteNTypes(tmp_rw_offset, tmp_op_buf_size, tmp_op_char_w_buf); + + for (i = 0; i < tmp_op_buf_size; i++) { + tmp_op_char_r_buf[i] = 0; + } + SSMReadNTypes(tmp_rw_offset, tmp_op_buf_size, tmp_op_char_r_buf); + + for (i = 0; i < tmp_op_buf_size; i++) { + LOGD("tmp_op_char_r_buf[%d] = %d\n", i, tmp_op_char_r_buf[i]); + } + + delete tmp_op_char_r_buf; + tmp_op_char_r_buf = NULL; + } + + delete tmp_op_char_w_buf; + tmp_op_char_w_buf = NULL; + } + + tmp_op_int_w_buf = new int[tmp_op_buf_size]; + if (tmp_op_int_w_buf != NULL) { + tmp_op_int_r_buf = new int[tmp_op_buf_size]; + if (tmp_op_int_r_buf != NULL) { + for (i = 0; i < tmp_op_buf_size; i++) { + tmp_op_int_w_buf[i] = (tmp_op_buf_size / 2) - i; + LOGD("tmp_op_int_w_buf[%d] = %d\n", i, tmp_op_int_w_buf[i]); + } + SSMWriteNTypes(tmp_rw_offset, tmp_op_buf_size, tmp_op_int_w_buf); + + for (i = 0; i < tmp_op_buf_size; i++) { + tmp_op_int_r_buf[i] = 0; + } + SSMReadNTypes(tmp_rw_offset, tmp_op_buf_size, tmp_op_int_r_buf); + + for (i = 0; i < tmp_op_buf_size; i++) { + LOGD("tmp_op_int_r_buf[%d] = %d\n", i, tmp_op_int_r_buf[i]); + } + + delete tmp_op_int_r_buf; + tmp_op_int_r_buf = NULL; + } + + delete tmp_op_int_w_buf; + tmp_op_int_w_buf = NULL; + } + } } static void TestRWOneStruct(int tmp_rw_offset) { - S_TEST_STRUCT TestWriteStruct, TestReadStruct; - - LOGD("\n\n"); - LOGD("**************Test R/W One Struct **************\n\n"); - - LOGD("tmp_rw_offset = %d.\n", tmp_rw_offset); - - TestWriteStruct.tmp_ch0 = -9; - TestWriteStruct.tmp_ch1 = -8; - TestWriteStruct.tmp_val0 = 9; - TestWriteStruct.tmp_ch2 = 255; - TestWriteStruct.tmp_ch3 = 254; - TestWriteStruct.tmp_ch4 = 250; - TestWriteStruct.tmp_short0 = -9; - - SSMWriteNTypes(tmp_rw_offset, sizeof(S_TEST_STRUCT), (unsigned char *) &TestWriteStruct); - - LOGD("\n\n"); - LOGD("write struct length = %d.\n", sizeof(S_TEST_STRUCT)); - LOGD("TestWriteStruct.tmp_ch0 = %d.\n", TestWriteStruct.tmp_ch0); - LOGD("TestWriteStruct.tmp_ch1 = %d.\n", TestWriteStruct.tmp_ch1); - LOGD("TestWriteStruct.tmp_val0 = %d.\n", TestWriteStruct.tmp_val0); - LOGD("TestWriteStruct.tmp_ch2 = %d.\n", TestWriteStruct.tmp_ch2); - LOGD("TestWriteStruct.tmp_ch3 = %d.\n", TestWriteStruct.tmp_ch3); - LOGD("TestWriteStruct.tmp_ch4 = %d.\n", TestWriteStruct.tmp_ch4); - LOGD("TestWriteStruct.tmp_short0 = %d.\n", TestWriteStruct.tmp_short0); - - TestReadStruct.tmp_ch0 = 0; - TestReadStruct.tmp_ch1 = 0; - TestReadStruct.tmp_val0 = 0; - TestReadStruct.tmp_ch2 = 0; - TestReadStruct.tmp_ch3 = 0; - TestWriteStruct.tmp_ch4 = 0; - TestWriteStruct.tmp_short0 = 0; - - SSMReadNTypes(tmp_rw_offset, sizeof(S_TEST_STRUCT), (unsigned char *) &TestReadStruct); - - LOGD("\n\n"); - LOGD("read struct length = %d.\n", sizeof(S_TEST_STRUCT)); - LOGD("TestReadStruct.tmp_ch0 = %d.\n", TestReadStruct.tmp_ch0); - LOGD("TestReadStruct.tmp_ch1 = %d.\n", TestReadStruct.tmp_ch1); - LOGD("TestReadStruct.tmp_val0 = %d.\n", TestReadStruct.tmp_val0); - LOGD("TestReadStruct.tmp_ch2 = %d.\n", TestReadStruct.tmp_ch2); - LOGD("TestReadStruct.tmp_ch3 = %d.\n", TestReadStruct.tmp_ch3); - LOGD("TestReadStruct.tmp_ch4 = %d.\n", TestReadStruct.tmp_ch4); - LOGD("TestReadStruct.tmp_short0 = %d.\n", TestReadStruct.tmp_short0); + S_TEST_STRUCT TestWriteStruct, TestReadStruct; + + LOGD("\n\n"); + LOGD("**************Test R/W One Struct **************\n\n"); + + LOGD("tmp_rw_offset = %d.\n", tmp_rw_offset); + + TestWriteStruct.tmp_ch0 = -9; + TestWriteStruct.tmp_ch1 = -8; + TestWriteStruct.tmp_val0 = 9; + TestWriteStruct.tmp_ch2 = 255; + TestWriteStruct.tmp_ch3 = 254; + TestWriteStruct.tmp_ch4 = 250; + TestWriteStruct.tmp_short0 = -9; + + SSMWriteNTypes(tmp_rw_offset, sizeof(S_TEST_STRUCT), (unsigned char *) &TestWriteStruct); + + LOGD("\n\n"); + LOGD("write struct length = %d.\n", sizeof(S_TEST_STRUCT)); + LOGD("TestWriteStruct.tmp_ch0 = %d.\n", TestWriteStruct.tmp_ch0); + LOGD("TestWriteStruct.tmp_ch1 = %d.\n", TestWriteStruct.tmp_ch1); + LOGD("TestWriteStruct.tmp_val0 = %d.\n", TestWriteStruct.tmp_val0); + LOGD("TestWriteStruct.tmp_ch2 = %d.\n", TestWriteStruct.tmp_ch2); + LOGD("TestWriteStruct.tmp_ch3 = %d.\n", TestWriteStruct.tmp_ch3); + LOGD("TestWriteStruct.tmp_ch4 = %d.\n", TestWriteStruct.tmp_ch4); + LOGD("TestWriteStruct.tmp_short0 = %d.\n", TestWriteStruct.tmp_short0); + + TestReadStruct.tmp_ch0 = 0; + TestReadStruct.tmp_ch1 = 0; + TestReadStruct.tmp_val0 = 0; + TestReadStruct.tmp_ch2 = 0; + TestReadStruct.tmp_ch3 = 0; + TestWriteStruct.tmp_ch4 = 0; + TestWriteStruct.tmp_short0 = 0; + + SSMReadNTypes(tmp_rw_offset, sizeof(S_TEST_STRUCT), (unsigned char *) &TestReadStruct); + + LOGD("\n\n"); + LOGD("read struct length = %d.\n", sizeof(S_TEST_STRUCT)); + LOGD("TestReadStruct.tmp_ch0 = %d.\n", TestReadStruct.tmp_ch0); + LOGD("TestReadStruct.tmp_ch1 = %d.\n", TestReadStruct.tmp_ch1); + LOGD("TestReadStruct.tmp_val0 = %d.\n", TestReadStruct.tmp_val0); + LOGD("TestReadStruct.tmp_ch2 = %d.\n", TestReadStruct.tmp_ch2); + LOGD("TestReadStruct.tmp_ch3 = %d.\n", TestReadStruct.tmp_ch3); + LOGD("TestReadStruct.tmp_ch4 = %d.\n", TestReadStruct.tmp_ch4); + LOGD("TestReadStruct.tmp_short0 = %d.\n", TestReadStruct.tmp_short0); } diff --git a/tvapi/tvtests/tvconfig_test.cpp b/tvapi/tvtests/tvconfig_test.cpp index 5bfe97f..ea90dd7 100644 --- a/tvapi/tvtests/tvconfig_test.cpp +++ b/tvapi/tvtests/tvconfig_test.cpp @@ -24,334 +24,334 @@ static int GetAudioAVOutMuteGPIOCFG(char gpio_grp_str[], int *mute_gpio_addr, in static int GetWriteProtectGPIOCFG(char gpio_grp_str[], int *protect_gpio_addr, int *protect_on_val, int *protect_off_val); typedef struct tagTvServerInfo { - int power_on_off_channel; - int last_source_select; - int system_language; + int power_on_off_channel; + int last_source_select; + int system_language; } TvServerInfo; int main(int argc, char **argv) { - int i, j; - char key_buf[CC_CFG_KEY_STR_MAX_LEN]; - char cfg_buf[CC_CFG_VALUE_STR_MAX_LEN]; + int i, j; + char key_buf[CC_CFG_KEY_STR_MAX_LEN]; + char cfg_buf[CC_CFG_VALUE_STR_MAX_LEN]; - config_set_log_level (CC_LOG_LEVEL_ALL); + config_set_log_level (CC_LOG_LEVEL_ALL); - config_init((char *) "tvconfig.conf"); + config_init((char *) "tvconfig.conf"); - strcpy(key_buf, "media.amplayer.enable-acodecs"); - config_get(key_buf, cfg_buf, (char *) ""); - LOGD("file(%s)'s function(%s), key string \"%s\", value string \"%s\".\n", __FILE__, "TV", key_buf, cfg_buf); + strcpy(key_buf, "media.amplayer.enable-acodecs"); + config_get(key_buf, cfg_buf, (char *) ""); + LOGD("file(%s)'s function(%s), key string \"%s\", value string \"%s\".\n", __FILE__, "TV", key_buf, cfg_buf); - strcpy(key_buf, "media.amplayer.enable-acodecs"); - strcpy(cfg_buf, "shorthoho"); - config_set(key_buf, cfg_buf); + strcpy(key_buf, "media.amplayer.enable-acodecs"); + strcpy(cfg_buf, "shorthoho"); + config_set(key_buf, cfg_buf); - strcpy(key_buf, "media.amplayer.enable-acodecs"); - config_get(key_buf, cfg_buf, (char *) ""); - LOGD("file(%s)'s function(%s), key string \"%s\", value string \"%s\".\n", __FILE__, "TV", key_buf, cfg_buf); + strcpy(key_buf, "media.amplayer.enable-acodecs"); + config_get(key_buf, cfg_buf, (char *) ""); + LOGD("file(%s)'s function(%s), key string \"%s\", value string \"%s\".\n", __FILE__, "TV", key_buf, cfg_buf); - strcpy(key_buf, "media.amplayer.enable-acodecs"); - config_get(key_buf, cfg_buf, (char *) ""); - LOGD("file(%s)'s function(%s), key string \"%s\", value string \"%s\".\n", __FILE__, "TV", key_buf, cfg_buf); + strcpy(key_buf, "media.amplayer.enable-acodecs"); + config_get(key_buf, cfg_buf, (char *) ""); + LOGD("file(%s)'s function(%s), key string \"%s\", value string \"%s\".\n", __FILE__, "TV", key_buf, cfg_buf); - strcpy(key_buf, "media.amplayer.enable-acodecs"); - strcpy(cfg_buf, "asf,wav,aac,mp3,m4a,ape,flac,alac,hohoho"); - config_set(key_buf, cfg_buf); + strcpy(key_buf, "media.amplayer.enable-acodecs"); + strcpy(cfg_buf, "asf,wav,aac,mp3,m4a,ape,flac,alac,hohoho"); + config_set(key_buf, cfg_buf); - strcpy(key_buf, "media.amplayer.enable-acodecs"); - config_get(key_buf, cfg_buf, (char *) ""); - LOGD("file(%s)'s function(%s), key string \"%s\", value string \"%s\".\n", __FILE__, "TV", key_buf, cfg_buf); + strcpy(key_buf, "media.amplayer.enable-acodecs"); + config_get(key_buf, cfg_buf, (char *) ""); + LOGD("file(%s)'s function(%s), key string \"%s\", value string \"%s\".\n", __FILE__, "TV", key_buf, cfg_buf); - strcpy(key_buf, "shoufu.zhao.test"); - config_get(key_buf, cfg_buf, (char *) ""); - LOGD("file(%s)'s function(%s), key string \"%s\", value string \"%s\".\n", __FILE__, "TV", key_buf, cfg_buf); + strcpy(key_buf, "shoufu.zhao.test"); + config_get(key_buf, cfg_buf, (char *) ""); + LOGD("file(%s)'s function(%s), key string \"%s\", value string \"%s\".\n", __FILE__, "TV", key_buf, cfg_buf); - strcpy(key_buf, "shoufu.zhao.test"); - strcpy(cfg_buf, "test hohoho"); - config_set(key_buf, cfg_buf); + strcpy(key_buf, "shoufu.zhao.test"); + strcpy(cfg_buf, "test hohoho"); + config_set(key_buf, cfg_buf); - strcpy(key_buf, "shoufu.zhao.test"); - config_get(key_buf, cfg_buf, (char *) ""); - LOGD("file(%s)'s function(%s), key string \"%s\", value string \"%s\".\n", __FILE__, "TV", key_buf, cfg_buf); + strcpy(key_buf, "shoufu.zhao.test"); + config_get(key_buf, cfg_buf, (char *) ""); + LOGD("file(%s)'s function(%s), key string \"%s\", value string \"%s\".\n", __FILE__, "TV", key_buf, cfg_buf); - int biquad_count = 0, biquad_item_count = 0; - int biquad_data_buf00[128] = { 0 }; - int biquad_data_buf01[128] = { 0 }; + int biquad_count = 0, biquad_item_count = 0; + int biquad_data_buf00[128] = { 0 }; + int biquad_data_buf01[128] = { 0 }; - GetAudioAmplifierBiquadsDataBuffer00(&biquad_count, &biquad_item_count, biquad_data_buf00); - for (i = 0; i < biquad_count; i++) { - for (j = 0; j < biquad_item_count; j++) { - LOGD("0x%x\n", biquad_data_buf00[i * biquad_item_count + j]); - } + GetAudioAmplifierBiquadsDataBuffer00(&biquad_count, &biquad_item_count, biquad_data_buf00); + for (i = 0; i < biquad_count; i++) { + for (j = 0; j < biquad_item_count; j++) { + LOGD("0x%x\n", biquad_data_buf00[i * biquad_item_count + j]); + } - LOGD("\n"); - } + LOGD("\n"); + } - GetAudioAmplifierBiquadsDataBuffer01(&biquad_count, &biquad_item_count, biquad_data_buf01); - for (i = 0; i < biquad_count; i++) { - for (j = 0; j < biquad_item_count; j++) { - LOGD("0x%x\n", biquad_data_buf01[i * biquad_item_count + j]); - } + GetAudioAmplifierBiquadsDataBuffer01(&biquad_count, &biquad_item_count, biquad_data_buf01); + for (i = 0; i < biquad_count; i++) { + for (j = 0; j < biquad_item_count; j++) { + LOGD("0x%x\n", biquad_data_buf01[i * biquad_item_count + j]); + } - LOGD("\n"); - } + LOGD("\n"); + } - char tv_card_id_buf[64] = { 0 }; - char tv_card_name_buf[64] = { 0 }; + char tv_card_id_buf[64] = { 0 }; + char tv_card_name_buf[64] = { 0 }; - GetTvAudioCardID(tv_card_id_buf); + GetTvAudioCardID(tv_card_id_buf); - GetTvAudioCardName(tv_card_name_buf); + GetTvAudioCardName(tv_card_name_buf); - printf("tvservice log cfg value = %d\n", config_log_cfg_get(CC_LOG_MODULE_TVSERVICE)); - printf("vpp log cfg value = %d\n", config_log_cfg_get(CC_LOG_MODULE_VPP)); + printf("tvservice log cfg value = %d\n", config_log_cfg_get(CC_LOG_MODULE_TVSERVICE)); + printf("vpp log cfg value = %d\n", config_log_cfg_get(CC_LOG_MODULE_VPP)); - int chan_cnt = 0, item_cnt = 0; - int chan_data_buf[256] = { 0 }; + int chan_cnt = 0, item_cnt = 0; + int chan_data_buf[256] = { 0 }; - ATVGetFacRestoreChanInfo(&chan_cnt, &item_cnt, chan_data_buf); + ATVGetFacRestoreChanInfo(&chan_cnt, &item_cnt, chan_data_buf); - for (i = 0; i < chan_cnt; i++) { - for (j = 0; j < item_cnt; j++) { - LOGD("%d\n", chan_data_buf[i * item_cnt + j]); - } + for (i = 0; i < chan_cnt; i++) { + for (j = 0; j < item_cnt; j++) { + LOGD("%d\n", chan_data_buf[i * item_cnt + j]); + } - LOGD("\n"); - } + LOGD("\n"); + } - char gpio_grp_str[32] = { 0 }; - int gpio_addr, gpio_on_val; + char gpio_grp_str[32] = { 0 }; + int gpio_addr, gpio_on_val; - int cfg_info_item_count = 0; - GPIOCFGInfo cfg_info_buf[64]; + int cfg_info_item_count = 0; + GPIOCFGInfo cfg_info_buf[64]; - if (cfg_get_one_gpio_data("audio.avout.mute.gpio", gpio_grp_str, &gpio_addr, &gpio_on_val) == 0) { - cfg_info_item_count = 1; + if (cfg_get_one_gpio_data("audio.avout.mute.gpio", gpio_grp_str, &gpio_addr, &gpio_on_val) == 0) { + cfg_info_item_count = 1; - strcpy(cfg_info_buf[0].gpio_grp_str, gpio_grp_str); - cfg_info_buf[0].gpio_addr = gpio_addr; - cfg_info_buf[0].gpio_val = gpio_on_val; + strcpy(cfg_info_buf[0].gpio_grp_str, gpio_grp_str); + cfg_info_buf[0].gpio_addr = gpio_addr; + cfg_info_buf[0].gpio_val = gpio_on_val; - PrintGPIOCfgData(cfg_info_item_count, &cfg_info_buf[0]); - } + PrintGPIOCfgData(cfg_info_item_count, &cfg_info_buf[0]); + } - if (cfg_get_gpio_data("audio.avout.mute.gpio", &cfg_info_item_count, cfg_info_buf) == 0) { - PrintGPIOCfgData(cfg_info_item_count, cfg_info_buf); - } + if (cfg_get_gpio_data("audio.avout.mute.gpio", &cfg_info_item_count, cfg_info_buf) == 0) { + PrintGPIOCfgData(cfg_info_item_count, cfg_info_buf); + } - cfg_info_item_count = 64; - if (cfg_get_gpio_data("audio.initaudio.gpioctl", &cfg_info_item_count, cfg_info_buf) == 0) { - PrintGPIOCfgData(cfg_info_item_count, cfg_info_buf); - } + cfg_info_item_count = 64; + if (cfg_get_gpio_data("audio.initaudio.gpioctl", &cfg_info_item_count, cfg_info_buf) == 0) { + PrintGPIOCfgData(cfg_info_item_count, cfg_info_buf); + } - char tmp_buf[32] = { 0 }; - int mute_gpio_addr, mute_on_gpio_val, mute_off_gpio_val; + char tmp_buf[32] = { 0 }; + int mute_gpio_addr, mute_on_gpio_val, mute_off_gpio_val; - if (GetAudioAnalogAmplifierMuteGPIOCFG(gpio_grp_str, &mute_gpio_addr, &mute_on_gpio_val, &mute_off_gpio_val) == 0) { - sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_on_gpio_val); - LOGD("%s, mute on write command %s\n", "GetAudioAnalogAmplifierMuteGPIOCFG", tmp_buf); + if (GetAudioAnalogAmplifierMuteGPIOCFG(gpio_grp_str, &mute_gpio_addr, &mute_on_gpio_val, &mute_off_gpio_val) == 0) { + sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_on_gpio_val); + LOGD("%s, mute on write command %s\n", "GetAudioAnalogAmplifierMuteGPIOCFG", tmp_buf); - sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_off_gpio_val); - LOGD("%s, mute off write command %s\n", "GetAudioAnalogAmplifierMuteGPIOCFG", tmp_buf); - } + sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_off_gpio_val); + LOGD("%s, mute off write command %s\n", "GetAudioAnalogAmplifierMuteGPIOCFG", tmp_buf); + } - if (GetAudioHeadSetMuteGPIOCFG(gpio_grp_str, &mute_gpio_addr, &mute_on_gpio_val, &mute_off_gpio_val) == 0) { - sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_on_gpio_val); - LOGD("%s, mute on write command %s\n", "GetAudioHeadSetMuteGPIOCFG", tmp_buf); + if (GetAudioHeadSetMuteGPIOCFG(gpio_grp_str, &mute_gpio_addr, &mute_on_gpio_val, &mute_off_gpio_val) == 0) { + sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_on_gpio_val); + LOGD("%s, mute on write command %s\n", "GetAudioHeadSetMuteGPIOCFG", tmp_buf); - sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_off_gpio_val); - LOGD("%s, mute off write command %s\n", "GetAudioHeadSetMuteGPIOCFG", tmp_buf); - } + sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_off_gpio_val); + LOGD("%s, mute off write command %s\n", "GetAudioHeadSetMuteGPIOCFG", tmp_buf); + } - if (GetAudioAVOutMuteGPIOCFG(gpio_grp_str, &mute_gpio_addr, &mute_on_gpio_val, &mute_off_gpio_val) == 0) { - sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_on_gpio_val); - LOGD("%s, mute on write command %s\n", "GetAudioAVOutMuteGPIOCFG", tmp_buf); + if (GetAudioAVOutMuteGPIOCFG(gpio_grp_str, &mute_gpio_addr, &mute_on_gpio_val, &mute_off_gpio_val) == 0) { + sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_on_gpio_val); + LOGD("%s, mute on write command %s\n", "GetAudioAVOutMuteGPIOCFG", tmp_buf); - sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_off_gpio_val); - LOGD("%s, mute off write command %s\n", "GetAudioAVOutMuteGPIOCFG", tmp_buf); - } + sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_off_gpio_val); + LOGD("%s, mute off write command %s\n", "GetAudioAVOutMuteGPIOCFG", tmp_buf); + } - if (GetWriteProtectGPIOCFG(gpio_grp_str, &mute_gpio_addr, &mute_on_gpio_val, &mute_off_gpio_val) == 0) { - sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_on_gpio_val); - LOGD("%s, protect on write command %s\n", "GetWriteProtectGPIOCFG", tmp_buf); + if (GetWriteProtectGPIOCFG(gpio_grp_str, &mute_gpio_addr, &mute_on_gpio_val, &mute_off_gpio_val) == 0) { + sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_on_gpio_val); + LOGD("%s, protect on write command %s\n", "GetWriteProtectGPIOCFG", tmp_buf); - sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_off_gpio_val); - LOGD("%s, protect off write command %s\n", "GetWriteProtectGPIOCFG", tmp_buf); - } + sprintf(tmp_buf, "w %s %d %d", gpio_grp_str, mute_gpio_addr, mute_off_gpio_val); + LOGD("%s, protect off write command %s\n", "GetWriteProtectGPIOCFG", tmp_buf); + } - tmpInfo.power_on_off_channel = 0; - tmpInfo.last_source_select = 0; - tmpInfo.system_language = 1; + tmpInfo.power_on_off_channel = 0; + tmpInfo.last_source_select = 0; + tmpInfo.system_language = 1; - for (i = 0; i < 12; i++) { - tmpInfo.last_source_select = i; - } + for (i = 0; i < 12; i++) { + tmpInfo.last_source_select = i; + } - char item_buf[128] = { 0 }; + char item_buf[128] = { 0 }; - for (i = 0; i < 16; i++) { - cfg_get_one_item("misc.lastselsrc.show.cfg", i, item_buf); - LOGD("item %d = %s\n", i, item_buf); - } + for (i = 0; i < 16; i++) { + cfg_get_one_item("misc.lastselsrc.show.cfg", i, item_buf); + LOGD("item %d = %s\n", i, item_buf); + } - config_uninit(); + config_uninit(); - LOGD("file(%s)'s function(%s) exiting.\n", __FILE__, "TV"); - return 0; + LOGD("file(%s)'s function(%s) exiting.\n", __FILE__, "TV"); + return 0; } static int RealGetAudioAmplifierBiquadsDataBuffer(const char *key_str, int *biquad_count, int *biquad_item_count, int biquad_data_buf[]) { - int cfg_item_count = 0, tmpTotalItemCount = 0; - char *token = NULL; - const char *strDelimit = ","; - char prop_value[CC_CFG_VALUE_STR_MAX_LEN]; - - memset(prop_value, '\0', CC_CFG_VALUE_STR_MAX_LEN); - - config_get(key_str, prop_value, "null"); - if (strcasecmp(prop_value, "null") == 0) { - LOGE("%s, can't get config \"%s\"!!!\n", "TV", key_str); - *biquad_count = 0; - *biquad_item_count = 0; - return -1; - } - - tmpTotalItemCount = 0; - - token = strtok(prop_value, strDelimit); - while (token != NULL) { - if (cfg_item_count == 0) { - *biquad_count = strtoul(token, NULL, 16); - } else if (cfg_item_count == 1) { - *biquad_item_count = strtoul(token, NULL, 16); - } else if (cfg_item_count >= 2) { - biquad_data_buf[tmpTotalItemCount] = strtoul(token, NULL, 16); - tmpTotalItemCount += 1; - } - - token = strtok(NULL, strDelimit); - cfg_item_count += 1; - } - - if ((*biquad_count) * (*biquad_item_count) != tmpTotalItemCount) { - LOGE("%s, get item count error!!! should be %d, real is %d.\n", "TV", (*biquad_count) * (*biquad_item_count), tmpTotalItemCount); - *biquad_count = 0; - *biquad_item_count = 0; - return -1; - } - - LOGD("%s, biquad count = %d, biquad item count = %d.\n", "TV", *biquad_count, *biquad_item_count); - - return 0; + int cfg_item_count = 0, tmpTotalItemCount = 0; + char *token = NULL; + const char *strDelimit = ","; + char prop_value[CC_CFG_VALUE_STR_MAX_LEN]; + + memset(prop_value, '\0', CC_CFG_VALUE_STR_MAX_LEN); + + config_get(key_str, prop_value, "null"); + if (strcasecmp(prop_value, "null") == 0) { + LOGE("%s, can't get config \"%s\"!!!\n", "TV", key_str); + *biquad_count = 0; + *biquad_item_count = 0; + return -1; + } + + tmpTotalItemCount = 0; + + token = strtok(prop_value, strDelimit); + while (token != NULL) { + if (cfg_item_count == 0) { + *biquad_count = strtoul(token, NULL, 16); + } else if (cfg_item_count == 1) { + *biquad_item_count = strtoul(token, NULL, 16); + } else if (cfg_item_count >= 2) { + biquad_data_buf[tmpTotalItemCount] = strtoul(token, NULL, 16); + tmpTotalItemCount += 1; + } + + token = strtok(NULL, strDelimit); + cfg_item_count += 1; + } + + if ((*biquad_count) * (*biquad_item_count) != tmpTotalItemCount) { + LOGE("%s, get item count error!!! should be %d, real is %d.\n", "TV", (*biquad_count) * (*biquad_item_count), tmpTotalItemCount); + *biquad_count = 0; + *biquad_item_count = 0; + return -1; + } + + LOGD("%s, biquad count = %d, biquad item count = %d.\n", "TV", *biquad_count, *biquad_item_count); + + return 0; } static int GetAudioAmplifierBiquadsDataBuffer00(int *biquad_count, int *biquad_item_count, int biquad_data_buf[]) { - return RealGetAudioAmplifierBiquadsDataBuffer("audio.amplifier.biquad00.data", biquad_count, biquad_item_count, biquad_data_buf); + return RealGetAudioAmplifierBiquadsDataBuffer("audio.amplifier.biquad00.data", biquad_count, biquad_item_count, biquad_data_buf); } static int GetAudioAmplifierBiquadsDataBuffer01(int *biquad_count, int *biquad_item_count, int biquad_data_buf[]) { - return RealGetAudioAmplifierBiquadsDataBuffer("audio.amplifier.biquad01.data", biquad_count, biquad_item_count, biquad_data_buf); + return RealGetAudioAmplifierBiquadsDataBuffer("audio.amplifier.biquad01.data", biquad_count, biquad_item_count, biquad_data_buf); } static int GetTvAudioCardID(char tv_card_id_buf[]) { - config_get("audio.tv.card.id", tv_card_id_buf, "null"); - LOGD("%s, get card id is \"%s\".\n", "TV", tv_card_id_buf); + config_get("audio.tv.card.id", tv_card_id_buf, "null"); + LOGD("%s, get card id is \"%s\".\n", "TV", tv_card_id_buf); - if (strcmp(tv_card_id_buf, "null") == 0) { - strcpy(tv_card_id_buf, "hw:AMLM2"); - LOGD("%s, card id not config, we set to default \"%s\".\n", "TV", "hw:AMLM2"); - } + if (strcmp(tv_card_id_buf, "null") == 0) { + strcpy(tv_card_id_buf, "hw:AMLM2"); + LOGD("%s, card id not config, we set to default \"%s\".\n", "TV", "hw:AMLM2"); + } - return 0; + return 0; } static int GetTvAudioCardName(char tv_card_name_buf[]) { - config_get("audio.tv.card.name", tv_card_name_buf, "null"); - LOGD("%s, get card name is \"%s\".\n", "TV", tv_card_name_buf); + config_get("audio.tv.card.name", tv_card_name_buf, "null"); + LOGD("%s, get card name is \"%s\".\n", "TV", tv_card_name_buf); - if (strcmp(tv_card_name_buf, "null") == 0) { - strcpy(tv_card_name_buf, "AML-M2"); - LOGD("%s, card name not config, we set to default \"%s\".\n", "TV", "AML-M2"); - } + if (strcmp(tv_card_name_buf, "null") == 0) { + strcpy(tv_card_name_buf, "AML-M2"); + LOGD("%s, card name not config, we set to default \"%s\".\n", "TV", "AML-M2"); + } - return 0; + return 0; } static int ATVGetFacRestoreChanInfo(int *chan_cnt, int *item_cnt, int chan_data_buf[]) { - int cfg_item_count = 0, tmpTotalItemCount = 0; - char *token = NULL; - const char *strDelimit = ","; - const char *key_str = "atv.fac.defchaninfo"; - char prop_value[CC_CFG_VALUE_STR_MAX_LEN]; - - memset(prop_value, '\0', CC_CFG_VALUE_STR_MAX_LEN); - - config_get(key_str, prop_value, "null"); - if (strcasecmp(prop_value, "null") == 0) { - LOGE("%s, can't get config \"%s\"!!!\n", "TV", key_str); - *chan_cnt = 0; - *item_cnt = 0; - return -1; - } - - tmpTotalItemCount = 0; - - token = strtok(prop_value, strDelimit); - while (token != NULL) { - if (cfg_item_count == 0) { - *chan_cnt = strtoul(token, NULL, 10); - } else if (cfg_item_count == 1) { - *item_cnt = strtoul(token, NULL, 10); - } else if (cfg_item_count >= 2) { - chan_data_buf[tmpTotalItemCount] = strtoul(token, NULL, 10); - tmpTotalItemCount += 1; - } - - token = strtok(NULL, strDelimit); - cfg_item_count += 1; - } - - if ((*chan_cnt) * (*item_cnt) != tmpTotalItemCount) { - LOGE("%s, get item count error!!! should be %d, real is %d.\n", "TV", (*chan_cnt) * (*item_cnt), tmpTotalItemCount); - *chan_cnt = 0; - *item_cnt = 0; - return -1; - } - - LOGD("%s, channel count = %d, channel item count = %d.\n", "TV", *chan_cnt, *item_cnt); - - return 0; + int cfg_item_count = 0, tmpTotalItemCount = 0; + char *token = NULL; + const char *strDelimit = ","; + const char *key_str = "atv.fac.defchaninfo"; + char prop_value[CC_CFG_VALUE_STR_MAX_LEN]; + + memset(prop_value, '\0', CC_CFG_VALUE_STR_MAX_LEN); + + config_get(key_str, prop_value, "null"); + if (strcasecmp(prop_value, "null") == 0) { + LOGE("%s, can't get config \"%s\"!!!\n", "TV", key_str); + *chan_cnt = 0; + *item_cnt = 0; + return -1; + } + + tmpTotalItemCount = 0; + + token = strtok(prop_value, strDelimit); + while (token != NULL) { + if (cfg_item_count == 0) { + *chan_cnt = strtoul(token, NULL, 10); + } else if (cfg_item_count == 1) { + *item_cnt = strtoul(token, NULL, 10); + } else if (cfg_item_count >= 2) { + chan_data_buf[tmpTotalItemCount] = strtoul(token, NULL, 10); + tmpTotalItemCount += 1; + } + + token = strtok(NULL, strDelimit); + cfg_item_count += 1; + } + + if ((*chan_cnt) * (*item_cnt) != tmpTotalItemCount) { + LOGE("%s, get item count error!!! should be %d, real is %d.\n", "TV", (*chan_cnt) * (*item_cnt), tmpTotalItemCount); + *chan_cnt = 0; + *item_cnt = 0; + return -1; + } + + LOGD("%s, channel count = %d, channel item count = %d.\n", "TV", *chan_cnt, *item_cnt); + + return 0; } static void PrintGPIOCfgData(int cfg_info_item_count, GPIOCFGInfo cfg_info_buf[]) { - int i = 0; + int i = 0; - LOGD("%s, cfg_info_item_count = %d\n", "TV", cfg_info_item_count); + LOGD("%s, cfg_info_item_count = %d\n", "TV", cfg_info_item_count); - for (i = 0; i < cfg_info_item_count; i++) { - LOGD("%s, %s %d %d %d\n", "TV", cfg_info_buf[i].gpio_grp_str, cfg_info_buf[i].gpio_addr, cfg_info_buf[i].gpio_val, !cfg_info_buf[i].gpio_val); - } + for (i = 0; i < cfg_info_item_count; i++) { + LOGD("%s, %s %d %d %d\n", "TV", cfg_info_buf[i].gpio_grp_str, cfg_info_buf[i].gpio_addr, cfg_info_buf[i].gpio_val, !cfg_info_buf[i].gpio_val); + } - LOGD("\n"); + LOGD("\n"); } static int GetWriteProtectGPIOCFG(char gpio_grp_str[], int *protect_gpio_addr, int *protect_on_val, int *protect_off_val) { - if (cfg_get_one_gpio_data("ssm.writeprotect.gpio", gpio_grp_str, protect_gpio_addr, protect_on_val) < 0) { - return -1; - } + if (cfg_get_one_gpio_data("ssm.writeprotect.gpio", gpio_grp_str, protect_gpio_addr, protect_on_val) < 0) { + return -1; + } - *protect_off_val = !(*protect_on_val); + *protect_off_val = !(*protect_on_val); - return 0; + return 0; } #define CC_AMPLIFIER_ANALOG_MUTE_GPIO_CFG_NAME "audio.amp.analog.mute.gpio" @@ -360,68 +360,68 @@ static int GetWriteProtectGPIOCFG(char gpio_grp_str[], int *protect_gpio_addr, i static int GetAudioAnalogAmplifierMuteGPIOCFG(char gpio_grp_str[], int *mute_gpio_addr, int *mute_on_val, int *mute_off_val) { - if (cfg_get_one_gpio_data(CC_AMPLIFIER_ANALOG_MUTE_GPIO_CFG_NAME, gpio_grp_str, mute_gpio_addr, mute_on_val) < 0) { - return -1; - } + if (cfg_get_one_gpio_data(CC_AMPLIFIER_ANALOG_MUTE_GPIO_CFG_NAME, gpio_grp_str, mute_gpio_addr, mute_on_val) < 0) { + return -1; + } - *mute_off_val = !(*mute_on_val); + *mute_off_val = !(*mute_on_val); - return 0; + return 0; } static int GetAudioHeadSetMuteGPIOCFG(char gpio_grp_str[], int *mute_gpio_addr, int *mute_on_val, int *mute_off_val) { - if (cfg_get_one_gpio_data(CC_HEADSET_MUTE_GPIO_CFG_NAME, gpio_grp_str, mute_gpio_addr, mute_on_val) < 0) { - return -1; - } + if (cfg_get_one_gpio_data(CC_HEADSET_MUTE_GPIO_CFG_NAME, gpio_grp_str, mute_gpio_addr, mute_on_val) < 0) { + return -1; + } - *mute_off_val = !(*mute_on_val); + *mute_off_val = !(*mute_on_val); - return 0; + return 0; } static int GetAudioAVOutMuteGPIOCFG(char gpio_grp_str[], int *mute_gpio_addr, int *mute_on_val, int *mute_off_val) { - if (cfg_get_one_gpio_data(CC_AVOUT_MUTE_GPIO_CFG_NAME, gpio_grp_str, mute_gpio_addr, mute_on_val) < 0) { - return -1; - } - - //Some projects has been volume production. They may not use the newest code, so we do compatible for old config. - //old config 69,0,1 - //new config x,69,0 - - if (gpio_grp_str[0] != 'x' || gpio_grp_str[0] != 'b' || gpio_grp_str[0] != 'd') { - *mute_gpio_addr = strtol(gpio_grp_str, NULL, 10); - gpio_grp_str[0] = 'x'; - gpio_grp_str[1] = '\0'; - *mute_off_val = *mute_on_val; - *mute_on_val = !(*mute_off_val); - } else { - *mute_off_val = !(*mute_on_val); - } - - return 0; + if (cfg_get_one_gpio_data(CC_AVOUT_MUTE_GPIO_CFG_NAME, gpio_grp_str, mute_gpio_addr, mute_on_val) < 0) { + return -1; + } + + //Some projects has been volume production. They may not use the newest code, so we do compatible for old config. + //old config 69,0,1 + //new config x,69,0 + + if (gpio_grp_str[0] != 'x' || gpio_grp_str[0] != 'b' || gpio_grp_str[0] != 'd') { + *mute_gpio_addr = strtol(gpio_grp_str, NULL, 10); + gpio_grp_str[0] = 'x'; + gpio_grp_str[1] = '\0'; + *mute_off_val = *mute_on_val; + *mute_on_val = !(*mute_off_val); + } else { + *mute_off_val = !(*mute_on_val); + } + + return 0; } #define PROPERTY_VALUE_MAX (92) typedef enum tvin_source_input_e { - SOURCE_TV, - SOURCE_AV1, - SOURCE_AV2, - SOURCE_YPBPR1, - SOURCE_YPBPR2, - SOURCE_HDMI1, - SOURCE_HDMI2, - SOURCE_HDMI3, - SOURCE_VGA, - SOURCE_MPEG, - SOURCE_DTV, - SOURCE_MAX, + SOURCE_TV, + SOURCE_AV1, + SOURCE_AV2, + SOURCE_YPBPR1, + SOURCE_YPBPR2, + SOURCE_HDMI1, + SOURCE_HDMI2, + SOURCE_HDMI3, + SOURCE_VGA, + SOURCE_MPEG, + SOURCE_DTV, + SOURCE_MAX, } tv_source_input_t; static int property_set(const char *key_value, char *prop_value) { - LOGD("%s, %s = %s\n", "TV", key_value, prop_value); - return 0; + LOGD("%s, %s = %s\n", "TV", key_value, prop_value); + return 0; } |