summaryrefslogtreecommitdiff
path: root/tvapi/libtv/tv/CFbcCommunication.h (plain)
blob: 6bfb0557a97a155625debc714e2380e692e9b2e8
1#ifndef C_FBC_COMMUNICATION_H
2#define C_FBC_COMMUNICATION_H
3#include "tvutils/CHdmiCecCmd.h"
4#include "tvutils/CSerialPort.h"
5#include "tvutils/zepoll.h"
6#include "tvutils/CThread.h"
7#include <sys/time.h>
8#include "tvutils//CTvInput.h"
9#include "../tvutils/CMsgQueue.h"
10typedef enum COMM_DEV_TYPE_NO {
11 COMM_DEV_CEC = 0,
12 COMM_DEV_SERIAL = 1,
13} COMM_DEV_TYPE_E;
14typedef enum vpu_modules_e {
15 VPU_MODULE_NULL = 0,
16 VPU_MODULE_VPU, //vpu uint
17 VPU_MODULE_TIMGEN,
18 VPU_MODULE_PATGEN,
19 VPU_MODULE_GAMMA,
20 VPU_MODULE_WB, //WhiteBalance
21 VPU_MODULE_BC, //Brightness&Contrast
22 VPU_MODULE_BCRGB, //RGB Brightness&Contrast
23 VPU_MODULE_CM2,
24 VPU_MODULE_CSC1,
25 VPU_MODULE_DNLP,
26 VPU_MODULE_CSC0,
27 VPU_MODULE_OSD,
28 VPU_MODULE_BLEND,
29 VPU_MODULE_DEMURE, //15
30 VPU_MODULE_OUTPUT, //LVDS/VX1 output
31 VPU_MODULE_OSDDEC, //OSD decoder
32 VPU_MODULE_MAX,
33} vpu_modules_t;
34
35typedef enum fbc_command_e {
36 VPU_CMD_NULL = 0,
37 FBC_REBOOT_UPGRADE = 0x1,
38 FBC_USER_SETTING_DEFAULT = 0x02,
39 FBC_USER_SETTING_SET,
40 FBC_GET_HDCP_KEY,
41 FBC_PANEL_POWER,
42 FBC_SUSPEND_POWER,
43 //TOP CMD num:6
44 VPU_CMD_INIT = 0x8, //parameter num 0
45 VPU_CMD_ENABLE, //parameter num 1;bit0~6:module;bit7:enable(1) or disable(0)
46 VPU_CMD_BYPASS, //parameter num 1;bit0~6:module;bit7:bypass(1) or not(0)
47 VPU_CMD_OUTPUT_MUX, //parameter num 1;1:lvds;2:vx1;3:minilvds
48 VPU_CMD_TIMING, //parameter num 1;reference vpu_timing_t
49 VPU_CMD_SOURCE, //parameter num 1;reference vpu_source_t
50 VPU_CMD_GAMMA_MOD, //parameter num 1;reference vpu_gammamod_t
51 VPU_CMD_D2D3 = 0xf, //0xf:D2D3
52 //
53
54 CMD_BRIDGE_SW_VER = 0x10,
55 CMD_DEVICE_ID,
56 CMD_CLIENT_TYPE,
57 CMD_DEVICE_NUM,
58 CMD_ACTIVE_KEY,
59 CMD_ACTIVE_STATUS,
60 CMD_PANEL_INFO,
61 CMD_LVDS_SSG_SET,
62
63 CMD_DBG_REGISTER_ACCESS = 0x18,
64 CMD_DBG_MEMORY_ACCESS,
65 CMD_DBG_SPI_ACCESS,
66 CMD_DBG_VPU_MEMORY_ACCESS,
67 CMD_DBG_MEMORY_TRANSFER,
68 CMD_INPUT_DOWN,
69 CMD_INPUT_UP,
70 CMD_FBC_MAIN_CODE_VERSION,
71
72 //0x1f reserved
73 //PQ+debug CMD num:32
74 VPU_CMD_NATURE_LIGHT_EN = 0x20, //0 or 1;on or off ????
75 VPU_CMD_BACKLIGHT_EN, //0 or 1;on or off
76 VPU_CMD_BRIGHTNESS, //parameter num 2;parameter1:distinguish two modules;parameter2:ui value
77 VPU_CMD_CONTRAST, //parameter num 2;parameter1:distinguish two modules;parameter2:ui value
78 VPU_CMD_BACKLIGHT, //parameter num 1;
79 VPU_CMD_RES1, //reserved
80 VPU_CMD_SATURATION, //parameter num 1;
81 VPU_CMD_DYNAMIC_CONTRAST, //0 or 1;??
82 VPU_CMD_PICTURE_MODE, //??
83 VPU_CMD_PATTERN_EN, //0 or 1;on or off
84 VPU_CMD_PATTEN_SEL, //0x2a parameter num 1;PATTEN SELECT
85 VPU_CMD_RES2,
86 VPU_CMD_RES3,
87 VPU_CMD_RES4,
88 VPU_CMD_RES5,
89 VPU_CMD_USER_VMUTE = 0x2e,
90 VPU_CMD_USER_GAMMA ,
91 //0x30:sound_mode_def
92 VPU_CMD_COLOR_TEMPERATURE_DEF = 0x31, //def:factory setting
93 VPU_CMD_BRIGHTNESS_DEF,
94 VPU_CMD_CONTRAST_DEF,
95 VPU_CMD_COLOR_DEF,
96 VPU_CMD_HUE_DEF,
97 VPU_CMD_BACKLIGHT_DEF,
98 VPU_CMD_RES7,
99 VPU_CMD_AUTO_LUMA_EN = 0x38,//0 or 1;on or off;appoint to backlight?
100 VPU_CMD_HIST, //parameter num 0;read hist info
101 VPU_CMD_BLEND, //parameter num ?;
102 VPU_CMD_DEMURA, //parameter num ?;
103 VPU_CMD_CSC, //parameter num ?;
104 VPU_CMD_CM2, //parameter num 1;index
105 VPU_CMD_GAMMA, //parameter num 1;index
106 VPU_CMD_SRCIF,
107 //WB CMD num:10
108 VPU_CMD_RED_GAIN_DEF = 0x40,
109 VPU_CMD_GREEN_GAIN_DEF,
110 VPU_CMD_BLUE_GAIN_DEF,
111 VPU_CMD_PRE_RED_OFFSET_DEF,
112 VPU_CMD_PRE_GREEN_OFFSET_DEF,
113 VPU_CMD_PRE_BLUE_OFFSET_DEF,
114 VPU_CMD_POST_RED_OFFSET_DEF,
115 VPU_CMD_POST_GREEN_OFFSET_DEF,
116 VPU_CMD_POST_BLUE_OFFSET_DEF,
117 VPU_CMD_RES9,
118 VPU_CMD_WB = 0x4a,
119 //DNLP PARM
120 VPU_CMD_DNLP_PARM,
121 VPU_CMD_WB_VALUE,
122 VPU_CMD_GRAY_PATTERN,
123 VPU_CMD_BURN,
124 CMD_HDMI_STAT,
125 VPU_CMD_READ = 0x80,
126 //VPU_CMD_HUE_ADJUST, //parameter num 1;
127 //VPU_CMD_WB, //parameter num 3;one parameter include two items so that six items can all be included
128 VPU_CMD_MAX = 50,//temp define 50 //
129
130 //audio cmd
131 AUDIO_CMD_SET_SOURCE = 0x50,
132 AUDIO_CMD_SET_MASTER_VOLUME,
133 AUDIO_CMD_SET_CHANNEL_VOLUME,
134 AUDIO_CMD_SET_SUBCHANNEL_VOLUME,
135 AUDIO_CMD_SET_MASTER_VOLUME_GAIN,
136 AUDIO_CMD_SET_CHANNEL_VOLUME_INDEX,
137 AUDIO_CMD_SET_VOLUME_BAR,
138 AUDIO_CMD_SET_MUTE,
139 AUDIO_CMD_SET_EQ_MODE,
140 AUDIO_CMD_SET_BALANCE,
141 AUDIO_CMD_GET_SOURCE,
142 AUDIO_CMD_GET_MASTER_VOLUME,
143 AUDIO_CMD_GET_CHANNEL_VOLUME,
144 AUDIO_CMD_GET_SUBCHANNEL_VOLUME,
145 AUDIO_CMD_GET_MASTER_VOLUME_GAIN,
146 AUDIO_CMD_GET_CHANNEL_VOLUME_INDEX,
147 AUDIO_CMD_GET_VOLUME_BAR,
148 AUDIO_CMD_GET_MUTE,
149 AUDIO_CMD_GET_EQ_MODE,
150 AUDIO_CMD_GET_BALANCE,
151
152 VPU_CMD_SET_ELEC_MODE = 0x64,
153 CMD_SET_LED_MODE = 0x65,
154
155 CMD_SET_FACTORY_SN = 0x66,
156 CMD_GET_FACTORY_SN,
157 CMD_COMMUNICATION_TEST,
158 CMD_CLR_SETTINGS_DEFAULT,
159 CMD_BLUETOOTH_I2S_STATUS = 0x6a,
160 CMD_PANEL_ON_OFF = 0x6b,
161
162 CMD_HDMI_REG = 0x70,
163 CMD_SET_PROJECT_SELECT = 0x71,
164 CMD_GET_PROJECT_SELECT = 0x72,
165 CMD_SET_LOCKN_DISABLE = 0x73, //0x73
166 CMD_SET_SPLIT_SCREEN_DEMO = 0X74,
167 CMD_SET_UBOOT_STAGE = 0x7b,
168
169 CMD_SET_AUTO_BACKLIGHT_ONFF = 0x85,
170 CMD_GET_AUTO_BACKLIGHT_ONFF = 0x86,
171} fbc_command_t;
172
173typedef struct REQUEST_REPLY_CMD {
174 CCondition WaitReplyCondition;
175 int WaitDevNo;
176 int WaitCmd;
177 int WaitTimeOut;
178 unsigned char *replyData;
179 int reDataLen;
180} REQUEST_REPLY_S;
181class CFbcCommunication: public CThread {
182public:
183 static const unsigned char CEC_CMD_WIFI = 0x01;
184 static const unsigned char CEC_CMD_ETHERNET = 0x02;
185 static const unsigned char CEC_CMD_3D_TIMING = 0x03;
186 static const unsigned char CEC_CMD_PANEL_REVERSE = 0x04;
187 static const unsigned char CEC_CMD_VPU_INIT = 0x08;
188 static const unsigned char CEC_CMD_VPU_ENABLE = 0x09;
189 static const unsigned char CEC_CMD_VPU_BYPASS = 0x0a;
190 static const unsigned char CEC_CMD_VPU_OUTPUT_MUX = 0x0b;
191 static const unsigned char CEC_CMD_VPU_TIMING = 0x0c;
192 static const unsigned char CEC_CMD_VPU_SOURCE = 0x0d;
193 static const unsigned char CEC_CMD_BRIDGE_SW_VER = 0x10;
194 static const unsigned char CEC_CMD_DEVICE_ID = 0x11;
195 static const unsigned char CEC_CMD_CLIENT_TYPE = 0x12;
196 static const unsigned char CEC_CMD_DEVICE_NUM = 0x13;
197 static const unsigned char CEC_CMD_ACTIVE_KEY = 0x14;
198 static const unsigned char CEC_CMD_ACTIVE_STATUS = 0x15;
199
200
201 static const unsigned char CEC_CMD_DBG_REGISTER_ACCESS = 0x18;
202 static const unsigned char CEC_CMD_DBG_MEMORY_ACCESS = 0x19;
203 static const unsigned char CEC_CMD_DBG_SPI_ACCESS = 0x1a;
204 static const unsigned char CEC_CMD_DBG_VPU_MEMORY_ACCESS = 0x1b;
205 static const unsigned char CEC_CMD_DBG_MEMORY_TRANSFER = 0x1c;
206 static const unsigned char CEC_CMD_INPUT_KEY_DOWN = 0x1d;
207 static const unsigned char CEC_CMD_INPUT_KEY_UP = 0x1e;
208 static const unsigned char CEC_CMD_REBOOT = 0x1f;
209 static const unsigned char CEC_CMD_NATURE_LIGHT_ONOFF = 0x20;
210 static const unsigned char CEC_CMD_USR_BACKLIGHT_ONOFF = 0x21;
211 static const unsigned char CEC_CMD_USR_BRIGHTNESS = 0x22;
212 static const unsigned char CEC_CMD_USR_CONTRAST = 0x23;
213 static const unsigned char CEC_CMD_USR_BACKLIGHT = 0x24;
214 static const unsigned char CEC_CMD_USR_SATURATION = 0x26;
215 static const unsigned char CEC_CMD_USR_DYNAMIC_CONTRAST = 0x27;
216 static const unsigned char CEC_CMD_USR_PICTURE_MODE = 0x28;
217 static const unsigned char CEC_CMD_TEST_PATTERN_ONOFF = 0x29;
218 static const unsigned char CEC_CMD_TEST_PATTERN_SELECT = 0x2a;
219 static const unsigned char CEC_CMD_USER_GAMMA = 0x2f;
220 static const unsigned char CEC_CMD_DEF_SOUND_MODE = 0x30;
221 static const unsigned char CEC_CMD_DEF_COLOR_TEMPERATURE = 0x31;
222 static const unsigned char CEC_CMD_DEF_BRIGHTNESS = 0x32;
223 static const unsigned char CEC_CMD_DEF_CONTRAST = 0x33;
224 static const unsigned char CEC_CMD_DEF_COLOR = 0x34;
225 static const unsigned char CEC_CMD_DEF_BACKLIGHT = 0x36;
226 static const unsigned char CEC_CMD_AUTO_LUMA_ONOFF = 0x38;
227 static const unsigned char CEC_CMD_HISTOGRAM = 0x39;
228 static const unsigned char CEC_CMD_BLEND = 0x3a;
229 static const unsigned char CEC_CMD_DEMULA = 0x3b;
230 static const unsigned char CEC_CMD_COLOR_SPACE_CONVERSION = 0x3c;
231 static const unsigned char CEC_CMD_CM2 = 0x3d;
232 static const unsigned char CEC_CMD_DEF_RED_GAIN = 0x40;
233 static const unsigned char CEC_CMD_DEF_GREEN_GAIN = 0x41;
234 static const unsigned char CEC_CMD_DEF_BLUE_GAIN = 0x42;
235 static const unsigned char CEC_CMD_DEF_RED_OFFSET = 0x43;
236 static const unsigned char CEC_CMD_DEF_GREEN_OFFSET = 0x44;
237 static const unsigned char CEC_CMD_DEF_BLUE_OFFSET = 0x45;
238 static const unsigned char CEC_CMD_DEF_PRE_RED_OFFSET = 0x46;
239 static const unsigned char CEC_CMD_DEF_PRE_GREEN_OFFSET = 0x47;
240 static const unsigned char CEC_CMD_DEF_PRE_BLUE_OFFSET = 0x48;
241 static const unsigned char CEC_CMD_WHITEBALANCE = 0x4a;
242 static const unsigned char CEC_CMD_SET_SW_VERSION = 0x57;
243 static const unsigned char CEC_CMD_3D = 0xd0;
244
245 friend class CTvMsgQueue;
246 class CFbcMsgQueue: public CMsgQueueThread {
247 public:
248 static const int TV_MSG_COMMON = 0;
249 static const int TV_MSG_SEND_KEY = 1;
250 private:
251 virtual void handleMessage ( CMessage &msg );
252 };
253 CFbcCommunication();
254 ~CFbcCommunication();
255 int start();
256 //---------------------------------------------
257
258 //---------------------------------------------
259 void testUart();
260 int handleCmd(COMM_DEV_TYPE_E fromDev, int cmd[], int *pRetValue);
261 int sendDataOneway(int devno, unsigned char *pData, int dataLen, int flags);
262 int sendDataAndWaitReply(int devno, int waitForDevno, int waitForCmd, unsigned char *pData, int dataLen, int timeout, unsigned char *pReData, int *reDataLen, int flags);
263 int closeAll();
264 int SetUpgradeFlag(int flag);
265 int uartReadStream(unsigned char *retData, int rd_max_len, int timeout);
266 unsigned int Calcrc32(unsigned int crc, const unsigned char *ptr, unsigned int buf_len);
267 int cfbc_Set_Gain_Red(COMM_DEV_TYPE_E fromDev, int value);
268 int cfbc_Get_Gain_Red(COMM_DEV_TYPE_E fromDev, int *value);
269 int cfbc_Set_Gain_Green(COMM_DEV_TYPE_E fromDev, int value);
270 int cfbc_Get_Gain_Green(COMM_DEV_TYPE_E fromDev, int *value);
271 int cfbc_Set_Gain_Blue(COMM_DEV_TYPE_E fromDev, int value);
272 int cfbc_Get_Gain_Blue(COMM_DEV_TYPE_E fromDev, int *value);
273 int cfbc_Set_Offset_Red(COMM_DEV_TYPE_E fromDev, int value);
274 int cfbc_Get_Offset_Red(COMM_DEV_TYPE_E fromDev, int *value);
275 int cfbc_Set_Offset_Green(COMM_DEV_TYPE_E fromDev, int value);
276 int cfbc_Get_Offset_Green(COMM_DEV_TYPE_E fromDev, int *value);
277 int cfbc_Set_Offset_Blue(COMM_DEV_TYPE_E fromDev, int value);
278 int cfbc_Get_Offset_Blue(COMM_DEV_TYPE_E fromDev, int *value);
279 int cfbc_Set_WB_Initial(COMM_DEV_TYPE_E fromDev, int value);
280 int cfbc_Get_WB_Initial(COMM_DEV_TYPE_E fromDev, int *value);
281 int cfbc_Set_ColorTemp_Mode(COMM_DEV_TYPE_E fromDev, int value);
282 int cfbc_Get_ColorTemp_Mode(COMM_DEV_TYPE_E fromDev, int *value);
283 int cfbc_Set_Test_Pattern(COMM_DEV_TYPE_E fromDev, int value);
284 int cfbc_Get_Test_Pattern(COMM_DEV_TYPE_E fromDev, int *value);
285 int cfbc_Set_Picture_Mode(COMM_DEV_TYPE_E fromDev, int value);
286 int cfbc_Get_Picture_Mode(COMM_DEV_TYPE_E fromDev, int *value);
287 int cfbc_Set_Contrast(COMM_DEV_TYPE_E fromDev, int value);
288 int cfbc_Get_Contrast(COMM_DEV_TYPE_E fromDev, int *value);
289 int cfbc_Set_Brightness(COMM_DEV_TYPE_E fromDev, int value);
290 int cfbc_Get_Brightness(COMM_DEV_TYPE_E fromDev, int *value);
291 int cfbc_Set_Saturation(COMM_DEV_TYPE_E fromDev, int value);
292 int cfbc_Get_Saturation(COMM_DEV_TYPE_E fromDev, int *value);
293 int cfbc_Set_HueColorTint(COMM_DEV_TYPE_E fromDev, int value);
294 int cfbc_Get_HueColorTint(COMM_DEV_TYPE_E fromDev, int *value);
295 int cfbc_Set_Backlight(COMM_DEV_TYPE_E fromDev, int value);
296 int cfbc_Get_Backlight(COMM_DEV_TYPE_E fromDev, int *value);
297 int cfbc_Set_Source(COMM_DEV_TYPE_E fromDev, int value);
298 int cfbc_Get_Source(COMM_DEV_TYPE_E fromDev, int *value);
299 int cfbc_Set_Mute(COMM_DEV_TYPE_E fromDev, int value);
300 int cfbc_Get_Mute(COMM_DEV_TYPE_E fromDev, int *value);
301 int cfbc_Set_Volume_Bar(COMM_DEV_TYPE_E fromDev, int value);
302 int cfbc_Get_Volume_Bar(COMM_DEV_TYPE_E fromDev, int *value);
303 int cfbc_Set_Balance(COMM_DEV_TYPE_E fromDev, int value);
304 int cfbc_Get_Balance(COMM_DEV_TYPE_E fromDev, int *value);
305 int cfbc_Set_Master_Volume(COMM_DEV_TYPE_E fromDev, int value);
306 int cfbc_Get_Master_Volume(COMM_DEV_TYPE_E fromDev, int *value);
307 int cfbc_Set_CM(COMM_DEV_TYPE_E fromDev, unsigned char value);
308 int cfbc_Get_CM(COMM_DEV_TYPE_E fromDev, int *value);
309 int cfbc_Set_DNLP(COMM_DEV_TYPE_E fromDev, unsigned char value);
310 int cfbc_Get_DNLP(COMM_DEV_TYPE_E fromDev, int *value);
311 int cfbc_Set_Gamma(COMM_DEV_TYPE_E fromDev, unsigned char value);
312 int cfbc_Get_Gamma(COMM_DEV_TYPE_E fromDev, int *value);
313 int cfbc_Set_WhiteBalance_OnOff(COMM_DEV_TYPE_E fromDev, unsigned char value);
314 int cfbc_Get_WhiteBalance_OnOff(COMM_DEV_TYPE_E fromDev, int *value);
315 int cfbc_Set_Auto_Backlight_OnOff(COMM_DEV_TYPE_E fromDev, unsigned char value);
316 int cfbc_Get_Auto_Backlight_OnOff(COMM_DEV_TYPE_E fromDev, int *value);
317 int cfbc_WhiteBalance_GrayPattern_OnOff(COMM_DEV_TYPE_E fromDev, int onOff);
318 int cfbc_TestPattern_Select(COMM_DEV_TYPE_E fromDev, int value);
319 int cfbc_WhiteBalance_SetGrayPattern(COMM_DEV_TYPE_E fromDev, unsigned char value);
320 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);
321 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);
322 int cfbc_Set_backlight_onoff(COMM_DEV_TYPE_E fromDev, int value);
323 int cfbc_Get_backlight_onoff(COMM_DEV_TYPE_E fromDev, int *value);
324 int cfbc_Set_LVDS_SSG_Set(COMM_DEV_TYPE_E fromDev, int value);
325 int cfbc_Set_AUTO_ELEC_MODE(COMM_DEV_TYPE_E fromDev, int value);
326 int cfbc_Get_AUTO_ELEC_MODE(COMM_DEV_TYPE_E fromDev, int *value);
327 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[]);
328 int cfbc_Get_FBC_Get_PANel_INFO(COMM_DEV_TYPE_E fromDev, char panel_model[]);
329 int cfbc_Set_FBC_panel_power_switch(COMM_DEV_TYPE_E fromDev, int switch_val);
330 int cfbc_Set_FBC_suspend(COMM_DEV_TYPE_E fromDev, int switch_val);
331 int cfbc_FBC_Send_Key_To_Fbc(COMM_DEV_TYPE_E fromDev, int keycode, int param);
332 int cfbc_Get_FBC_PANEL_REVERSE(COMM_DEV_TYPE_E fromDev, int *value);
333 int cfbc_Get_FBC_PANEL_OUTPUT(COMM_DEV_TYPE_E fromDev, int *value);
334 int cfbc_Set_FBC_project_id(COMM_DEV_TYPE_E fromDev, int prj_id);
335 int cfbc_Get_FBC_project_id(COMM_DEV_TYPE_E fromDev, int *prj_id);
336 int cfbc_SendRebootToUpgradeCmd(COMM_DEV_TYPE_E fromDev, int value);
337 int cfbc_Set_FBC_User_Setting_Default(COMM_DEV_TYPE_E fromDev, int param);
338 int cfbc_Set_FBC_Factory_SN(COMM_DEV_TYPE_E fromDev, const char *pSNval) ;
339 int cfbc_Get_FBC_Factory_SN(COMM_DEV_TYPE_E fromDev, char FactorySN[]);
340 int cfbc_Set_FBC_Audio_Source(COMM_DEV_TYPE_E fromDev, int value);
341
342 int cfbc_Set_Thermal_state(COMM_DEV_TYPE_E fromDev, int value);
343 int cfbc_Set_LightSensor_N310(COMM_DEV_TYPE_E fromDev, int value);
344 int cfbc_Get_LightSensor_N310(COMM_DEV_TYPE_E fromDev, int *value);
345 int cfbc_Set_Dream_Panel_N310(COMM_DEV_TYPE_E fromDev, int value);
346 int cfbc_Get_Dream_Panel_N310(COMM_DEV_TYPE_E fromDev, int *value);
347 int cfbc_Set_MULT_PQ_N310(COMM_DEV_TYPE_E fromDev, int value);
348 int cfbc_Get_MULT_PQ_N310(COMM_DEV_TYPE_E fromDev, int *value);
349 int cfbc_Set_MEMC_N310(COMM_DEV_TYPE_E fromDev, int value);
350 int cfbc_Get_MEMC_N310(COMM_DEV_TYPE_E fromDev, int *value);
351 int cfbc_Set_LockN_state(COMM_DEV_TYPE_E fromDev, int value);
352 int cfbc_Set_VMute(COMM_DEV_TYPE_E fromDev, unsigned char value);
353 int cfbc_SET_SPLIT_SCREEN_DEMO(COMM_DEV_TYPE_E fromDev, int value);
354 int cfbc_Set_Bluetooth_IIS_onoff(COMM_DEV_TYPE_E fromDev, int value);
355 int cfbc_Get_Bluetooth_IIS_onoff(COMM_DEV_TYPE_E fromDev, int *value);
356 int cfbc_Set_Led_onoff(COMM_DEV_TYPE_E fromDev, int val_1, int val_2, int val_3);
357 int cfbc_Set_AP_STANDBY_N310(COMM_DEV_TYPE_E fromDev, int value);
358 int cfbc_Get_AP_STANDBY_N310(COMM_DEV_TYPE_E fromDev, int *value);
359 virtual int cfbc_Set_Fbc_Uboot_Stage(COMM_DEV_TYPE_E fromDev, int value);
360
361private:
362 //now,just one item in list,haha...
363 void showTime(struct timeval *_time);
364 long getTime(void);
365 int rmFromRequestList();
366 int addToRequestList();
367 void initCrc32Table();
368 void sendAckCmd(bool isOk);
369 unsigned int GetCrc32(unsigned char *InStr, unsigned int len);
370 int processData(COMM_DEV_TYPE_E fromDev, unsigned char *PData, int dataLen);
371 int uartReadData(unsigned char *retData, int *retLen);
372 int Fbc_Set_Value_INT8(COMM_DEV_TYPE_E toDev, int cmd_type, int value);
373 int Fbc_Get_Value_INT8(COMM_DEV_TYPE_E fromDev, int cmd_type, int *value);
374 int Fbc_Set_Value_INT32(COMM_DEV_TYPE_E toDev, int cmd_type, int value);
375 int Fbc_Get_BatchValue(COMM_DEV_TYPE_E toDev, unsigned char *cmd_buf, int count);
376 int Fbc_Set_BatchValue(COMM_DEV_TYPE_E fromDev, unsigned char *cmd_buf, int count);
377 int cfbc_Set_Get_BatchValue(COMM_DEV_TYPE_E fromDev, unsigned char *cmd_buf, int count, int isSet);
378 bool threadLoop();
379
380 int mUpgradeFlag;
381 CHdmiCec mHdmiCec;
382 CSerialPort mSerialPort;
383 Epoll mEpoll;
384 mutable CMutex mLock;
385 REQUEST_REPLY_S mReplyList;
386 //list
387 epoll_event m_event;
388 unsigned char *mpRevDataBuf;
389 unsigned int mCrc32Table[256];
390 bool mbSendKeyCode;
391 CTvInput mTvInput;
392 CFbcMsgQueue mFbcMsgQueue;
393 int mbDownHaveSend;
394
395 int mbFbcKeyEnterDown;
396 nsecs_t mFbcEnterKeyDownTime;
397};
398
399extern CFbcCommunication *GetSingletonFBC();
400
401#endif
402