ark_track.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408
  1. #ifndef __ARK_TRACK_H__
  2. #define __ARK_TRACK_H__
  3. #define TRACK_MAX 100
  4. #define CAR_MAX 10
  5. #define RADAR_MAX 200
  6. #define SIGNAL_MAX 10
  7. #define APPEND1_MAX 10
  8. #define APPEND2_MAX 10
  9. //#define ARK_TRACK_DBG
  10. #ifdef ARK_TRACK_DBG
  11. #define ARKTRACK_DBGPRTK(...) printk(KERN_ALERT __VA_ARGS__)
  12. #else
  13. #define ARKTRACK_DBGPRTK(...)
  14. #endif
  15. #define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24))
  16. #define ARK_IDENTITY MKTAG('R', 'S', 'T', 'K')//0xa1a2a3a4
  17. #define FL_00 0xaa000000
  18. #define FL_01 0x01000000
  19. #define FL_02 0x02000000
  20. #define FL_03 0x03000000
  21. #define FL_04 0x04000000
  22. #define FL_05 0x05000000
  23. #define FL_06 0x06000000
  24. #define FL_10 0x10000000
  25. #define FL_11 0x11000000
  26. #define FL_12 0x12000000
  27. #define FL_13 0x13000000
  28. #define FL_14 0x14000000
  29. #define FL_15 0x15000000
  30. #define FL_16 0x16000000
  31. #define FL_20 0x20000000
  32. #define FL_21 0x21000000
  33. #define FL_22 0x22000000
  34. #define FL_23 0x23000000
  35. #define FL_24 0x24000000
  36. #define FL_25 0x25000000
  37. #define FL_26 0x26000000
  38. #define FL_30 0x30000000
  39. #define FL_31 0x31000000
  40. #define FL_32 0x32000000
  41. #define FL_33 0x33000000
  42. #define FL_34 0x34000000
  43. #define FL_35 0x35000000
  44. #define FL_36 0x36000000
  45. #define FL_40 0x40000000
  46. #define FL_41 0x41000000
  47. #define FL_42 0x42000000
  48. #define FL_43 0x43000000
  49. #define FL_44 0x44000000
  50. #define FL_45 0x45000000
  51. #define FL_46 0x46000000
  52. #define FL_50 0x50000000
  53. #define FL_51 0x51000000
  54. #define FL_52 0x52000000
  55. #define FL_53 0x53000000
  56. #define FL_54 0x54000000
  57. #define FL_55 0x55000000
  58. #define FL_56 0x56000000
  59. #define FL_60 0x60000000
  60. #define FL_61 0x61000000
  61. #define FL_62 0x62000000
  62. #define FL_63 0x63000000
  63. #define FL_64 0x64000000
  64. #define FL_65 0x65000000
  65. #define FL_66 0x66000000
  66. #define FR_00 0x00aa0000
  67. #define FR_01 0x00010000
  68. #define FR_02 0x00020000
  69. #define FR_03 0x00030000
  70. #define FR_04 0x00040000
  71. #define FR_05 0x00050000
  72. #define FR_06 0x00060000
  73. #define FR_10 0x00100000
  74. #define FR_11 0x00110000
  75. #define FR_12 0x00120000
  76. #define FR_13 0x00130000
  77. #define FR_14 0x00140000
  78. #define FR_15 0x00150000
  79. #define FR_16 0x00160000
  80. #define FR_20 0x00200000
  81. #define FR_21 0x00210000
  82. #define FR_22 0x00220000
  83. #define FR_23 0x00230000
  84. #define FR_24 0x00240000
  85. #define FR_25 0x00250000
  86. #define FR_26 0x00260000
  87. #define FR_30 0x00300000
  88. #define FR_31 0x00310000
  89. #define FR_32 0x00320000
  90. #define FR_33 0x00330000
  91. #define FR_34 0x00340000
  92. #define FR_35 0x00350000
  93. #define FR_36 0x00360000
  94. #define FR_40 0x00400000
  95. #define FR_41 0x00410000
  96. #define FR_42 0x00420000
  97. #define FR_43 0x00430000
  98. #define FR_44 0x00440000
  99. #define FR_45 0x00450000
  100. #define FR_46 0x00460000
  101. #define FR_50 0x00500000
  102. #define FR_51 0x00510000
  103. #define FR_52 0x00520000
  104. #define FR_53 0x00530000
  105. #define FR_54 0x00540000
  106. #define FR_55 0x00550000
  107. #define FR_56 0x00560000
  108. #define FR_60 0x00600000
  109. #define FR_61 0x00610000
  110. #define FR_62 0x00620000
  111. #define FR_63 0x00630000
  112. #define FR_64 0x00640000
  113. #define FR_65 0x00650000
  114. #define FR_66 0x00660000
  115. #define RL_00 0x0000aa00
  116. #define RL_01 0x00000100
  117. #define RL_02 0x00000200
  118. #define RL_03 0x00000300
  119. #define RL_04 0x00000400
  120. #define RL_05 0x00000500
  121. #define RL_06 0x00000600
  122. #define RL_10 0x00001000
  123. #define RL_11 0x00001100
  124. #define RL_12 0x00001200
  125. #define RL_13 0x00001300
  126. #define RL_14 0x00001400
  127. #define RL_15 0x00001500
  128. #define RL_16 0x00001600
  129. #define RL_20 0x00002000
  130. #define RL_21 0x00002100
  131. #define RL_22 0x00002200
  132. #define RL_23 0x00002300
  133. #define RL_24 0x00002400
  134. #define RL_25 0x00002500
  135. #define RL_26 0x00002600
  136. #define RL_30 0x00003000
  137. #define RL_31 0x00003100
  138. #define RL_32 0x00003200
  139. #define RL_33 0x00003300
  140. #define RL_34 0x00003400
  141. #define RL_35 0x00003500
  142. #define RL_36 0x00003600
  143. #define RL_40 0x00004000
  144. #define RL_41 0x00004100
  145. #define RL_42 0x00004200
  146. #define RL_43 0x00004300
  147. #define RL_44 0x00004400
  148. #define RL_45 0x00004500
  149. #define RL_46 0x00004600
  150. #define RL_50 0x00005000
  151. #define RL_51 0x00005100
  152. #define RL_52 0x00005200
  153. #define RL_53 0x00005300
  154. #define RL_54 0x00005400
  155. #define RL_55 0x00005500
  156. #define RL_56 0x00005600
  157. #define RL_60 0x00006000
  158. #define RL_61 0x00006100
  159. #define RL_62 0x00006200
  160. #define RL_63 0x00006300
  161. #define RL_64 0x00006400
  162. #define RL_65 0x00006500
  163. #define RL_66 0x00006600
  164. #define RR_00 0x000000aa
  165. #define RR_01 0x00000001
  166. #define RR_02 0x00000002
  167. #define RR_03 0x00000003
  168. #define RR_04 0x00000004
  169. #define RR_05 0x00000005
  170. #define RR_06 0x00000006
  171. #define RR_10 0x00000010
  172. #define RR_11 0x00000011
  173. #define RR_12 0x00000012
  174. #define RR_13 0x00000013
  175. #define RR_14 0x00000014
  176. #define RR_15 0x00000015
  177. #define RR_16 0x00000016
  178. #define RR_20 0x00000020
  179. #define RR_21 0x00000021
  180. #define RR_22 0x00000022
  181. #define RR_23 0x00000023
  182. #define RR_24 0x00000024
  183. #define RR_25 0x00000025
  184. #define RR_26 0x00000026
  185. #define RR_30 0x00000030
  186. #define RR_31 0x00000031
  187. #define RR_32 0x00000032
  188. #define RR_33 0x00000033
  189. #define RR_34 0x00000034
  190. #define RR_35 0x00000035
  191. #define RR_36 0x00000036
  192. #define RR_40 0x00000040
  193. #define RR_41 0x00000041
  194. #define RR_42 0x00000042
  195. #define RR_43 0x00000043
  196. #define RR_44 0x00000044
  197. #define RR_45 0x00000045
  198. #define RR_46 0x00000046
  199. #define RR_50 0x00000050
  200. #define RR_51 0x00000051
  201. #define RR_52 0x00000052
  202. #define RR_53 0x00000053
  203. #define RR_54 0x00000054
  204. #define RR_55 0x00000055
  205. #define RR_56 0x00000056
  206. #define RR_60 0x00000060
  207. #define RR_61 0x00000061
  208. #define RR_62 0x00000062
  209. #define RR_63 0x00000063
  210. #define RR_64 0x00000064
  211. #define RR_65 0x00000065
  212. #define RR_66 0x00000066
  213. #define IMAGE_ID_NONE 0xFFFFFFFF
  214. #define PIXEL_DATA_NONE 0x00FFFFFF
  215. #define PIXEL_DATA_ZERO 0x0
  216. #define PIXEL_ALPHA_ZERO 0x0
  217. #define PIXEL_DATA_SIZE 4
  218. #define RADAR_CHANNEL_FL 0
  219. #define RADAR_CHANNEL_FR 1
  220. #define RADAR_CHANNEL_RL 2
  221. #define RADAR_CHANNEL_RR 3
  222. #define TRACK_STRAIGHT_FORWARD_ID 37
  223. #define CAR_NORMAL_STATUS_ID 0
  224. #define SIGNAL_NORMAL_STATUS_ID 0
  225. #define APPEND1_NORMAL_STATUS_ID 0
  226. #define APPEND2_NORMAL_STATUS_ID 0
  227. #define RADAR_NORMAL_STATUS_ID 0x23322332
  228. #define TRACK2_STRAIGHT_FORWARD_ID 37
  229. enum image_type{
  230. IMAGE_TYPE_TRACK = 1,
  231. IMAGE_TYPE_CAR,
  232. IMAGE_TYPE_RADAR,
  233. IMAGE_TYPE_SIGNAL,
  234. IMAGE_TYPE_APPEND1,
  235. IMAGE_TYPE_APPEND2,
  236. IMAGE_TYPE_TRACK2,
  237. IMAGE_TYPE_MRADAR
  238. };
  239. enum cover_type{
  240. SRC_COVER_DST = 0,
  241. SRC_COVER_DST2,
  242. DST_COVER_SRC2,
  243. };
  244. typedef struct {
  245. unsigned int image_type;
  246. unsigned int image_store_id;
  247. unsigned int image_id;
  248. unsigned int image_offset;
  249. unsigned int image_size;
  250. }item_info;
  251. typedef struct {
  252. unsigned int pos_x;
  253. unsigned int pos_y;
  254. unsigned int width;
  255. unsigned int height;
  256. }rect_info;
  257. typedef struct {
  258. unsigned int identity;
  259. unsigned int file_size;
  260. unsigned int file_type;
  261. unsigned int track_total;
  262. unsigned int car_total;
  263. unsigned int radar_total;
  264. unsigned int signal_total;
  265. unsigned int append1_total;
  266. unsigned int append2_total;
  267. unsigned int track2_total;
  268. rect_info track_rect;
  269. rect_info car_rect;
  270. rect_info radar_rect[4];
  271. rect_info signal_rect;
  272. rect_info append1_rect;
  273. rect_info append2_rect;
  274. rect_info track2_rect;
  275. item_info track[TRACK_MAX];
  276. item_info car[CAR_MAX];
  277. item_info radar[RADAR_MAX];
  278. item_info signal[SIGNAL_MAX];
  279. item_info append1[APPEND1_MAX];
  280. item_info append2[APPEND2_MAX];
  281. item_info track2[TRACK_MAX];
  282. }user_header;
  283. #define MRADAR_MAX 16
  284. #define MRADAR_ITEM_MAX 16
  285. #define HEADER2_FILE_FLAG (1 << 31)
  286. typedef struct {
  287. unsigned int identity;
  288. unsigned int file_size;
  289. unsigned int file_type;//resolve
  290. unsigned int mradar_total[MRADAR_MAX];
  291. rect_info mradar_rect[MRADAR_MAX];
  292. item_info mradar[MRADAR_MAX][MRADAR_ITEM_MAX];
  293. unsigned int reserve[256];
  294. }user2_header;
  295. typedef struct {
  296. char image_name[10];
  297. unsigned int image_id;
  298. int dis_channel;
  299. }idmap_info;
  300. typedef struct {
  301. rect_info track_rect;
  302. rect_info car_rect;
  303. rect_info radar_rect[4];
  304. rect_info signal_rect;
  305. rect_info append1_rect;
  306. rect_info append2_rect;
  307. rect_info track2_rect;
  308. //rect_info mradar_rect[MRADAR_MAX];
  309. }track_param_context;
  310. typedef struct {
  311. rect_info mradar_rect[MRADAR_MAX];
  312. }mradar_param_context;
  313. typedef struct {
  314. user_header* pheader_buf;
  315. unsigned int disp_xpos;
  316. unsigned int disp_ypos;
  317. unsigned int disp_width;
  318. unsigned int disp_height;
  319. unsigned int disp_track_id;
  320. unsigned int disp_car_id;
  321. unsigned int disp_radar_id;
  322. unsigned int disp_signal_id;
  323. unsigned int disp_append1_id;
  324. unsigned int disp_append2_id;
  325. unsigned int disp_track2_id;
  326. unsigned char* disp_track_buf;
  327. unsigned char* disp_car_buf;
  328. unsigned char* disp_radar_buf[4];
  329. unsigned char* disp_signal_buf;
  330. unsigned char* disp_append1_buf;
  331. unsigned char* disp_append2_buf;
  332. unsigned char* disp_track2_buf;
  333. unsigned int disp_track_size;
  334. unsigned int disp_car_size;
  335. unsigned int disp_radar_size;
  336. unsigned int disp_signal_size;
  337. unsigned int disp_append1_size;
  338. unsigned int disp_append2_size;
  339. unsigned int disp_track2_size;
  340. track_param_context track_param;
  341. unsigned int file_type;;
  342. }track_context;
  343. typedef struct {
  344. user2_header* pheader2_buf;
  345. unsigned int file_type;;
  346. mradar_param_context mradar_param;
  347. unsigned char disp_mradar_id[MRADAR_MAX];
  348. unsigned int disp_mradar_id_change;
  349. unsigned char* disp_mradar_buf[MRADAR_MAX];//0-7: fontrear 8-15: center
  350. unsigned int disp_mradar_size[MRADAR_MAX];//0-7: fontrear 8-15: center
  351. }track_context2;
  352. extern int track_paint_init(void);
  353. extern unsigned int track_paint_fill(void *dest, unsigned int width, unsigned int height);
  354. extern void track_paint_deinit(void);
  355. extern int set_disp_track_id(unsigned int image_id);
  356. extern int set_disp_car_id(unsigned int image_id);
  357. extern int set_disp_radar_id(unsigned int image_id);
  358. extern int set_disp_signal_id(unsigned int image_id);
  359. extern int set_disp_append1_id(unsigned int image_id);
  360. extern int set_disp_append2_id(unsigned int image_id);
  361. extern int set_disp_track2_id(unsigned int image_id);
  362. extern int set_disp_mradar_id(unsigned char *pimage_id);
  363. extern int ark_track_no_signal_handle(void);
  364. #endif