summaryrefslogtreecommitdiff
path: root/tvapi/libtv/tv/CFbcCommunication.h (plain)
blob: 40f5d3bd2c77afc91685a93a2ec890a3ffe534c0
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_GAMMA = 0x2f,
90 //0x30:sound_mode_def
91 VPU_CMD_COLOR_TEMPERATURE_DEF = 0x31, //def:factory setting
92 VPU_CMD_BRIGHTNESS_DEF,
93 VPU_CMD_CONTRAST_DEF,
94 VPU_CMD_COLOR_DEF,
95 VPU_CMD_HUE_DEF,
96 VPU_CMD_BACKLIGHT_DEF,
97 VPU_CMD_RES7,
98 VPU_CMD_AUTO_LUMA_EN = 0x38,//0 or 1;on or off;appoint to backlight?
99 VPU_CMD_HIST, //parameter num 0;read hist info
100 VPU_CMD_BLEND, //parameter num ?;
101 VPU_CMD_DEMURA, //parameter num ?;
102 VPU_CMD_CSC, //parameter num ?;
103 VPU_CMD_CM2, //parameter num 1;index
104 VPU_CMD_GAMMA, //parameter num 1;index
105 VPU_CMD_SRCIF,
106 //WB CMD num:10
107 VPU_CMD_RED_GAIN_DEF = 0x40,
108 VPU_CMD_GREEN_GAIN_DEF,
109 VPU_CMD_BLUE_GAIN_DEF,
110 VPU_CMD_PRE_RED_OFFSET_DEF,
111 VPU_CMD_PRE_GREEN_OFFSET_DEF,
112 VPU_CMD_PRE_BLUE_OFFSET_DEF,
113 VPU_CMD_POST_RED_OFFSET_DEF,
114 VPU_CMD_POST_GREEN_OFFSET_DEF,
115 VPU_CMD_POST_BLUE_OFFSET_DEF,
116 VPU_CMD_RES9,
117 VPU_CMD_WB = 0x4a,
118 //DNLP PARM
119 VPU_CMD_DNLP_PARM,
120 VPU_CMD_WB_VALUE,
121 VPU_CMD_GRAY_PATTERN,
122 VPU_CMD_BURN,
123 CMD_HDMI_STAT,
124 VPU_CMD_READ = 0x80,
125 //VPU_CMD_HUE_ADJUST, //parameter num 1;
126 //VPU_CMD_WB, //parameter num 3;one parameter include two items so that six items can all be included
127 VPU_CMD_MAX = 50,//temp define 50 //
128
129 //audio cmd
130 AUDIO_CMD_SET_SOURCE = 0x50,
131 AUDIO_CMD_SET_MASTER_VOLUME,
132 AUDIO_CMD_SET_CHANNEL_VOLUME,
133 AUDIO_CMD_SET_SUBCHANNEL_VOLUME,
134 AUDIO_CMD_SET_MASTER_VOLUME_GAIN,
135 AUDIO_CMD_SET_CHANNEL_VOLUME_INDEX,
136 AUDIO_CMD_SET_VOLUME_BAR,
137 AUDIO_CMD_SET_MUTE,
138 AUDIO_CMD_SET_EQ_MODE,
139 AUDIO_CMD_SET_BALANCE,
140 AUDIO_CMD_GET_SOURCE,
141 AUDIO_CMD_GET_MASTER_VOLUME,
142 AUDIO_CMD_GET_CHANNEL_VOLUME,
143 AUDIO_CMD_GET_SUBCHANNEL_VOLUME,
144 AUDIO_CMD_GET_MASTER_VOLUME_GAIN,
145 AUDIO_CMD_GET_CHANNEL_VOLUME_INDEX,
146 AUDIO_CMD_GET_VOLUME_BAR,
147 AUDIO_CMD_GET_MUTE,
148 AUDIO_CMD_GET_EQ_MODE,
149 AUDIO_CMD_GET_BALANCE,
150
151 VPU_CMD_SET_ELEC_MODE = 0x64,
152 VPU_CMD_GET_ELEC_MODE,
153
154 CMD_SET_FACTORY_SN = 0x66,
155 CMD_GET_FACTORY_SN,
156 CMD_COMMUNICATION_TEST,
157 CMD_CLR_SETTINGS_DEFAULT,
158
159 CMD_HDMI_REG = 0x70,
160 CMD_SET_PROJECT_SELECT = 0x71,
161 CMD_GET_PROJECT_SELECT = 0x72,
162} fbc_command_t;
163
164typedef struct REQUEST_REPLY_CMD {
165 CCondition WaitReplyCondition;
166 int WaitDevNo;
167 int WaitCmd;
168 int WaitTimeOut;
169 unsigned char *replyData;
170 int reDataLen;
171} REQUEST_REPLY_S;
172class CFbcCommunication: public CThread
173{
174public:
175 static const unsigned char CEC_CMD_WIFI = 0x01;
176 static const unsigned char CEC_CMD_ETHERNET = 0x02;
177 static const unsigned char CEC_CMD_3D_TIMING = 0x03;
178 static const unsigned char CEC_CMD_PANEL_REVERSE = 0x04;
179 static const unsigned char CEC_CMD_VPU_INIT = 0x08;
180 static const unsigned char CEC_CMD_VPU_ENABLE = 0x09;
181 static const unsigned char CEC_CMD_VPU_BYPASS = 0x0a;
182 static const unsigned char CEC_CMD_VPU_OUTPUT_MUX = 0x0b;
183 static const unsigned char CEC_CMD_VPU_TIMING = 0x0c;
184 static const unsigned char CEC_CMD_VPU_SOURCE = 0x0d;
185 static const unsigned char CEC_CMD_BRIDGE_SW_VER = 0x10;
186 static const unsigned char CEC_CMD_DEVICE_ID = 0x11;
187 static const unsigned char CEC_CMD_CLIENT_TYPE = 0x12;
188 static const unsigned char CEC_CMD_DEVICE_NUM = 0x13;
189 static const unsigned char CEC_CMD_ACTIVE_KEY = 0x14;
190 static const unsigned char CEC_CMD_ACTIVE_STATUS = 0x15;
191
192
193 static const unsigned char CEC_CMD_DBG_REGISTER_ACCESS = 0x18;
194 static const unsigned char CEC_CMD_DBG_MEMORY_ACCESS = 0x19;
195 static const unsigned char CEC_CMD_DBG_SPI_ACCESS = 0x1a;
196 static const unsigned char CEC_CMD_DBG_VPU_MEMORY_ACCESS = 0x1b;
197 static const unsigned char CEC_CMD_DBG_MEMORY_TRANSFER = 0x1c;
198 static const unsigned char CEC_CMD_INPUT_KEY_DOWN = 0x1d;
199 static const unsigned char CEC_CMD_INPUT_KEY_UP = 0x1e;
200 static const unsigned char CEC_CMD_REBOOT = 0x1f;
201 static const unsigned char CEC_CMD_NATURE_LIGHT_ONOFF = 0x20;
202 static const unsigned char CEC_CMD_USR_BACKLIGHT_ONOFF = 0x21;
203 static const unsigned char CEC_CMD_USR_BRIGHTNESS = 0x22;
204 static const unsigned char CEC_CMD_USR_CONTRAST = 0x23;
205 static const unsigned char CEC_CMD_USR_BACKLIGHT = 0x24;
206 static const unsigned char CEC_CMD_USR_SATURATION = 0x26;
207 static const unsigned char CEC_CMD_USR_DYNAMIC_CONTRAST = 0x27;
208 static const unsigned char CEC_CMD_USR_PICTURE_MODE = 0x28;
209 static const unsigned char CEC_CMD_TEST_PATTERN_ONOFF = 0x29;
210 static const unsigned char CEC_CMD_TEST_PATTERN_SELECT = 0x2a;
211 static const unsigned char CEC_CMD_USER_GAMMA = 0x2f;
212 static const unsigned char CEC_CMD_DEF_SOUND_MODE = 0x30;
213 static const unsigned char CEC_CMD_DEF_COLOR_TEMPERATURE = 0x31;
214 static const unsigned char CEC_CMD_DEF_BRIGHTNESS = 0x32;
215 static const unsigned char CEC_CMD_DEF_CONTRAST = 0x33;
216 static const unsigned char CEC_CMD_DEF_COLOR = 0x34;
217 static const unsigned char CEC_CMD_DEF_BACKLIGHT = 0x36;
218 static const unsigned char CEC_CMD_AUTO_LUMA_ONOFF = 0x38;
219 static const unsigned char CEC_CMD_HISTOGRAM = 0x39;
220 static const unsigned char CEC_CMD_BLEND = 0x3a;
221 static const unsigned char CEC_CMD_DEMULA = 0x3b;
222 static const unsigned char CEC_CMD_COLOR_SPACE_CONVERSION = 0x3c;
223 static const unsigned char CEC_CMD_CM2 = 0x3d;
224 static const unsigned char CEC_CMD_DEF_RED_GAIN = 0x40;
225 static const unsigned char CEC_CMD_DEF_GREEN_GAIN = 0x41;
226 static const unsigned char CEC_CMD_DEF_BLUE_GAIN = 0x42;
227 static const unsigned char CEC_CMD_DEF_RED_OFFSET = 0x43;
228 static const unsigned char CEC_CMD_DEF_GREEN_OFFSET = 0x44;
229 static const unsigned char CEC_CMD_DEF_BLUE_OFFSET = 0x45;
230 static const unsigned char CEC_CMD_DEF_PRE_RED_OFFSET = 0x46;
231 static const unsigned char CEC_CMD_DEF_PRE_GREEN_OFFSET = 0x47;
232 static const unsigned char CEC_CMD_DEF_PRE_BLUE_OFFSET = 0x48;
233 static const unsigned char CEC_CMD_WHITEBALANCE = 0x4a;
234 static const unsigned char CEC_CMD_SET_SW_VERSION = 0x57;
235 static const unsigned char CEC_CMD_3D = 0xd0;
236
237 friend class CTvMsgQueue;
238 class CFbcMsgQueue: public CMsgQueueThread
239 {
240 public:
241 static const int TV_MSG_COMMON = 0;
242 static const int TV_MSG_SEND_KEY = 1;
243 private:
244 virtual void handleMessage ( CMessage &msg );
245 };
246 CFbcCommunication();
247 ~CFbcCommunication();
248 int start();
249 //---------------------------------------------
250
251 //---------------------------------------------
252 void testUart();
253 int handleCmd(COMM_DEV_TYPE_E fromDev, int cmd[], int *pRetValue);
254 int sendDataOneway(int devno, unsigned char *pData, int dataLen, int flags);
255 int sendDataAndWaitReply(int devno, int waitForDevno, int waitForCmd, unsigned char *pData, int dataLen, int timeout, unsigned char *pReData, int *reDataLen, int flags);
256 int closeAll();
257 int SetUpgradeFlag(int flag);
258 int uartReadStream(unsigned char *retData, int rd_max_len, int timeout);
259 unsigned int Calcrc32(unsigned int crc, const unsigned char *ptr, unsigned int buf_len);
260 int cfbc_Set_Gain_Red(COMM_DEV_TYPE_E fromDev, int value);
261 int cfbc_Get_Gain_Red(COMM_DEV_TYPE_E fromDev, int *value);
262 int cfbc_Set_Gain_Green(COMM_DEV_TYPE_E fromDev, int value);
263 int cfbc_Get_Gain_Green(COMM_DEV_TYPE_E fromDev, int *value);
264 int cfbc_Set_Gain_Blue(COMM_DEV_TYPE_E fromDev, int value);
265 int cfbc_Get_Gain_Blue(COMM_DEV_TYPE_E fromDev, int *value);
266 int cfbc_Set_Offset_Red(COMM_DEV_TYPE_E fromDev, int value);
267 int cfbc_Get_Offset_Red(COMM_DEV_TYPE_E fromDev, int *value);
268 int cfbc_Set_Offset_Green(COMM_DEV_TYPE_E fromDev, int value);
269 int cfbc_Get_Offset_Green(COMM_DEV_TYPE_E fromDev, int *value);
270 int cfbc_Set_Offset_Blue(COMM_DEV_TYPE_E fromDev, int value);
271 int cfbc_Get_Offset_Blue(COMM_DEV_TYPE_E fromDev, int *value);
272 int cfbc_Set_WB_Initial(COMM_DEV_TYPE_E fromDev, int value);
273 int cfbc_Get_WB_Initial(COMM_DEV_TYPE_E fromDev, int *value);
274 int cfbc_Set_ColorTemp_Mode(COMM_DEV_TYPE_E fromDev, int value);
275 int cfbc_Get_ColorTemp_Mode(COMM_DEV_TYPE_E fromDev, int *value);
276 int cfbc_Set_Test_Pattern(COMM_DEV_TYPE_E fromDev, int value);
277 int cfbc_Get_Test_Pattern(COMM_DEV_TYPE_E fromDev, int *value);
278 int cfbc_Set_Picture_Mode(COMM_DEV_TYPE_E fromDev, int value);
279 int cfbc_Get_Picture_Mode(COMM_DEV_TYPE_E fromDev, int *value);
280 int cfbc_Set_Contrast(COMM_DEV_TYPE_E fromDev, int value);
281 int cfbc_Get_Contrast(COMM_DEV_TYPE_E fromDev, int *value);
282 int cfbc_Set_Brightness(COMM_DEV_TYPE_E fromDev, int value);
283 int cfbc_Get_Brightness(COMM_DEV_TYPE_E fromDev, int *value);
284 int cfbc_Set_Saturation(COMM_DEV_TYPE_E fromDev, int value);
285 int cfbc_Get_Saturation(COMM_DEV_TYPE_E fromDev, int *value);
286 int cfbc_Set_HueColorTint(COMM_DEV_TYPE_E fromDev, int value);
287 int cfbc_Get_HueColorTint(COMM_DEV_TYPE_E fromDev, int *value);
288 int cfbc_Set_Backlight(COMM_DEV_TYPE_E fromDev, int value);
289 int cfbc_Get_Backlight(COMM_DEV_TYPE_E fromDev, int *value);
290 int cfbc_Set_Source(COMM_DEV_TYPE_E fromDev, int value);
291 int cfbc_Get_Source(COMM_DEV_TYPE_E fromDev, int *value);
292 int cfbc_Set_Mute(COMM_DEV_TYPE_E fromDev, int value);
293 int cfbc_Get_Mute(COMM_DEV_TYPE_E fromDev, int *value);
294 int cfbc_Set_Volume_Bar(COMM_DEV_TYPE_E fromDev, int value);
295 int cfbc_Get_Volume_Bar(COMM_DEV_TYPE_E fromDev, int *value);
296 int cfbc_Set_Balance(COMM_DEV_TYPE_E fromDev, int value);
297 int cfbc_Get_Balance(COMM_DEV_TYPE_E fromDev, int *value);
298 int cfbc_Set_Master_Volume(COMM_DEV_TYPE_E fromDev, int value);
299 int cfbc_Get_Master_Volume(COMM_DEV_TYPE_E fromDev, int *value);
300 int cfbc_Set_CM(COMM_DEV_TYPE_E fromDev, unsigned char value);
301 int cfbc_Get_CM(COMM_DEV_TYPE_E fromDev, int *value);
302 int cfbc_Set_DNLP(COMM_DEV_TYPE_E fromDev, unsigned char value);
303 int cfbc_Get_DNLP(COMM_DEV_TYPE_E fromDev, int *value);
304 int cfbc_Set_Gamma(COMM_DEV_TYPE_E fromDev, unsigned char value);
305 int cfbc_Get_Gamma(COMM_DEV_TYPE_E fromDev, int *value);
306 int cfbc_Set_WhiteBalance_OnOff(COMM_DEV_TYPE_E fromDev, unsigned char value);
307 int cfbc_Get_WhiteBalance_OnOff(COMM_DEV_TYPE_E fromDev, int *value);
308 int cfbc_WhiteBalance_GrayPattern_OnOff(COMM_DEV_TYPE_E fromDev, int onOff);
309 int cfbc_WhiteBalance_SetGrayPattern(COMM_DEV_TYPE_E fromDev, unsigned char value);
310 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);
311 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);
312 int cfbc_Set_backlight_onoff(COMM_DEV_TYPE_E fromDev, int value);
313 int cfbc_Get_backlight_onoff(COMM_DEV_TYPE_E fromDev, int *value);
314 int cfbc_Set_LVDS_SSG_Set(COMM_DEV_TYPE_E fromDev, int value);
315 int cfbc_Set_AUTO_ELEC_MODE(COMM_DEV_TYPE_E fromDev, int value);
316 int cfbc_Get_AUTO_ELEC_MODE(COMM_DEV_TYPE_E fromDev, int *value);
317 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[]);
318 int cfbc_Get_FBC_Get_PANel_INFO(COMM_DEV_TYPE_E fromDev, char panel_model[]);
319 int cfbc_Set_FBC_panel_power_switch(COMM_DEV_TYPE_E fromDev, int switch_val);
320 int cfbc_Set_FBC_suspend(COMM_DEV_TYPE_E fromDev, int switch_val);
321 int cfbc_FBC_Send_Key_To_Fbc(COMM_DEV_TYPE_E fromDev, int keycode, int param);
322 int cfbc_Get_FBC_PANEL_REVERSE(COMM_DEV_TYPE_E fromDev, int *value);
323 int cfbc_Get_FBC_PANEL_OUTPUT(COMM_DEV_TYPE_E fromDev, int *value);
324 int cfbc_Set_FBC_project_id(COMM_DEV_TYPE_E fromDev, int prj_id);
325 int cfbc_Get_FBC_project_id(COMM_DEV_TYPE_E fromDev, int *prj_id);
326 int cfbc_SendRebootToUpgradeCmd(COMM_DEV_TYPE_E fromDev, int value);
327 int cfbc_Set_FBC_User_Setting_Default(COMM_DEV_TYPE_E fromDev, int param);
328 int cfbc_Set_FBC_Factory_SN(COMM_DEV_TYPE_E fromDev, const char *pSNval) ;
329 int cfbc_Get_FBC_Factory_SN(COMM_DEV_TYPE_E fromDev, char FactorySN[]);
330 int cfbc_Set_FBC_Audio_Source(COMM_DEV_TYPE_E fromDev, int value);
331
332 int cfbc_Set_Thermal_state(COMM_DEV_TYPE_E fromDev, int value);
333 int cfbc_Set_LightSensor_N310(COMM_DEV_TYPE_E fromDev, int value);
334 int cfbc_Get_LightSensor_N310(COMM_DEV_TYPE_E fromDev, int *value);
335 int cfbc_Set_Dream_Panel_N310(COMM_DEV_TYPE_E fromDev, int value);
336 int cfbc_Get_Dream_Panel_N310(COMM_DEV_TYPE_E fromDev, int *value);
337 int cfbc_Set_MULT_PQ_N310(COMM_DEV_TYPE_E fromDev, int value);
338 int cfbc_Get_MULT_PQ_N310(COMM_DEV_TYPE_E fromDev, int *value);
339 int cfbc_Set_MEMC_N310(COMM_DEV_TYPE_E fromDev, int value);
340 int cfbc_Get_MEMC_N310(COMM_DEV_TYPE_E fromDev, int *value);
341
342private:
343 //now,just one item in list,haha...
344 void showTime(struct timeval *_time);
345 long getTime(void);
346 int rmFromRequestList();
347 int addToRequestList();
348 void initCrc32Table();
349 void sendAckCmd(bool isOk);
350 unsigned int GetCrc32(unsigned char *InStr, unsigned int len);
351 int processData(COMM_DEV_TYPE_E fromDev, unsigned char *PData, int dataLen);
352 int uartReadData(unsigned char *retData, int *retLen);
353 int Fbc_Set_Value_INT8(COMM_DEV_TYPE_E toDev, int cmd_type, int value);
354 int Fbc_Get_Value_INT8(COMM_DEV_TYPE_E fromDev, int cmd_type, int *value);
355 int Fbc_Set_Value_INT32(COMM_DEV_TYPE_E toDev, int cmd_type, int value);
356 int Fbc_Get_BatchValue(COMM_DEV_TYPE_E toDev, unsigned char *cmd_buf, int count);
357 int Fbc_Set_BatchValue(COMM_DEV_TYPE_E fromDev, unsigned char *cmd_buf, int count);
358 int cfbc_Set_Get_BatchValue(COMM_DEV_TYPE_E fromDev, unsigned char *cmd_buf, int count, int isSet);
359 bool threadLoop();
360
361 int mUpgradeFlag;
362 CHdmiCec mHdmiCec;
363 CSerialPort mSerialPort;
364 Epoll mEpoll;
365 mutable CMutex mLock;
366 REQUEST_REPLY_S mReplyList;
367 //list
368 epoll_event m_event;
369 unsigned char *mpRevDataBuf;
370 unsigned int mCrc32Table[256];
371 bool mbSendKeyCode;
372 CTvInput mTvInput;
373 CFbcMsgQueue mFbcMsgQueue;
374 int mbDownHaveSend;
375
376 int mbFbcKeyEnterDown;
377 nsecs_t mFbcEnterKeyDownTime;
378};
379
380extern CFbcCommunication *GetSingletonFBC();
381
382#endif
383