source: svn/newcon3bcm2_21bu/dst/dmw/src/cc/cc_def.h

Last change on this file was 76, checked in by megakiss, 10 years ago

1W 대기전력을 만족시키기 위하여 POWEROFF시 튜너를 Standby 상태로 함

  • Property svn:executable set to *
File size: 10.6 KB
Line 
1
2
3#ifndef __CC_DEF_H__
4#define __CC_DEF_H__
5
6#include "DHL_Types.h"
7
8#if 0
9__Configuration__() {}
10#endif
11
12#define MAX_NUM_WIDE_COL 42
13#define MAX_NUM_4X3_COL 32
14#define MAX_NUM_ROW 15
15#define MAX_NUM_KOR_WIDE_COL 52
16#define MAX_NUM_KOR_4X3_COL 40
17#define MAX_NUM_KOR_ROW 12
18
19//font size°¡ ÀÛÀº °æ¿ì ÃÖ´ë »çÀÌÁî ÀÌ»óÀÇ ±ÛÀÚ°¡ µé¾î°¥ ¼ö Àֱ⠋š¹®¿¡,
20//8Á¤µµÀÇ ¿©À¯ºÐÀ» µÐ´Ù.
21#if USE_KOR_CC
22#define MAX_NUM_COL (MAX_NUM_KOR_WIDE_COL+8)
23#else
24#define MAX_NUM_COL (MAX_NUM_WIDE_COL+8)
25#endif
26
27
28#define DCC_AUTO_SET 0xff
29#define DCC_TRP_CODE 0x520
30#define MAX_SIZE_PIC_UD 108
31        //ATSC id(4) + typecode(1) + cc data(98) + ¿©À¯
32        //ccdata = hdr(2) + cccnt max 32 * 3
33
34
35#define DCC_SET_RECT(r,a,b,c,d) (r)->x=a,(r)->y=b,(r)->w=c,(r)->h=d
36
37#if 0
38__Picture_User_Data__() {}
39#endif
40
41
42typedef enum {
43        eDCC_PIC_CT_UNKNOWN=0x0,
44        eDCC_PIC_CT_I=0x1,
45        eDCC_PIC_CT_P=0x2,
46        eDCC_PIC_CT_B=0x3,
47} tDCC_PicCodingType; /* coding type */
48
49
50typedef enum {
51        eDCC_UD_TC_UNKNOWN=0x0,
52        eDCC_UD_TC_708=0x3,
53        eDCC_UD_TC_608=0x4,
54        eDCC_UD_TC_SCTE2X=0x5
55} tDCC_UDTypeCode;
56
57
58#if 0
59__708_Spec_Def__() {}
60#endif
61
62typedef enum {
63        eDCC_S_NONE=0,
64        eDCC_S_CC1,
65        eDCC_S_CC2,
66        eDCC_S_CC3,
67        eDCC_S_CC4,
68        eDCC_S_T1,
69        eDCC_S_T2,
70        eDCC_S_T3,
71        eDCC_S_T4,
72        eDCC_S_CS1,
73        eDCC_S_CS2,
74        eDCC_S_CS3,
75        eDCC_S_CS4,
76        eDCC_S_CS5,
77        eDCC_S_CS6,
78        eDCC_S_CSEXT,
79        eDCC_S_NUM
80} tDCC_Service;
81
82#define CC_SERVICE_NAME(s) \
83        s==eDCC_S_CC1?"CC1":\
84        s==eDCC_S_CC2?"CC2":\
85        s==eDCC_S_CC3?"CC3":\
86        s==eDCC_S_CC4?"CC4":\
87        s==eDCC_S_T1?"T1":\
88        s==eDCC_S_T2?"T2":\
89        s==eDCC_S_T3?"T3":\
90        s==eDCC_S_T4?"T4":\
91        s==eDCC_S_CS1?"CS1":\
92        s==eDCC_S_CS2?"CS2":\
93        s==eDCC_S_CS3?"CS3":\
94        s==eDCC_S_CS4?"CS4":\
95        s==eDCC_S_CS5?"CS5":\
96        s==eDCC_S_CS6?"CS6":"None"
97
98
99typedef enum {
100        eDCC_C0_NUL=0x00,
101        eDCC_C0_ETX=0x03,
102        eDCC_C0_BS=0x08,
103        eDCC_C0_FF=0x0C,
104        eDCC_C0_CR=0x0D,
105        eDCC_C0_HCR=0x0E,
106        eDCC_C0_EXT1=0x10,
107        eDCC_C0_P16=0x18
108} tDCC_C0;
109
110#define CC_C0_NAME(c) \
111        c==eDCC_C0_NUL?"NUL":\
112        c==eDCC_C0_ETX?"ETX":\
113        c==eDCC_C0_BS?"BS":\
114        c==eDCC_C0_FF?"FF":\
115        c==eDCC_C0_CR?"CR":\
116        c==eDCC_C0_HCR?"HCR":\
117        c==eDCC_C0_EXT1?"EXT1":\
118        c==eDCC_C0_P16?"P16":"Unknown"
119
120
121typedef enum {
122        eDCC_C1_CW0=0x80,
123        eDCC_C1_CW1,
124        eDCC_C1_CW2,
125        eDCC_C1_CW3,
126        eDCC_C1_CW4,
127        eDCC_C1_CW5,
128        eDCC_C1_CW6,
129        eDCC_C1_CW7,
130        eDCC_C1_CLW,
131        eDCC_C1_DSW,
132        eDCC_C1_HDW,
133        eDCC_C1_TGW,
134        eDCC_C1_DLW,
135        eDCC_C1_DLY,
136        eDCC_C1_DLC,
137        eDCC_C1_RST,
138        eDCC_C1_SPA=0x90,
139        eDCC_C1_SPC,
140        eDCC_C1_SPL,
141        eDCC_C1_SWA=0x97,
142        eDCC_C1_DF0,
143        eDCC_C1_DF1,
144        eDCC_C1_DF2,
145        eDCC_C1_DF3,
146        eDCC_C1_DF4,
147        eDCC_C1_DF5,
148        eDCC_C1_DF6,
149        eDCC_C1_DF7
150} tDCC_C1;
151
152
153#define CC_C1_NAME(c) \
154        c==eDCC_C1_CW0?"CW0":\
155        c==eDCC_C1_CW1?"CW1":\
156        c==eDCC_C1_CW2?"CW2":\
157        c==eDCC_C1_CW3?"CW3":\
158        c==eDCC_C1_CW4?"CW4":\
159        c==eDCC_C1_CW5?"CW5":\
160        c==eDCC_C1_CW6?"CW6":\
161        c==eDCC_C1_CW7?"CW7":\
162        c==eDCC_C1_CLW?"CLW":\
163        c==eDCC_C1_DSW?"DSW":\
164        c==eDCC_C1_HDW?"HDW":\
165        c==eDCC_C1_TGW?"TGW":\
166        c==eDCC_C1_DLW?"DLW":\
167        c==eDCC_C1_DLY?"DLY":\
168        c==eDCC_C1_DLC?"DLC":\
169        c==eDCC_C1_RST?"RST":\
170        c==eDCC_C1_SPA?"SPA":\
171        c==eDCC_C1_SPC?"SPC":\
172        c==eDCC_C1_SPL?"SPL":\
173        c==eDCC_C1_SWA?"SWA":\
174        c==eDCC_C1_DF0?"DF0":\
175        c==eDCC_C1_DF1?"DF1":\
176        c==eDCC_C1_DF2?"DF2":\
177        c==eDCC_C1_DF3?"DF3":\
178        c==eDCC_C1_DF4?"DF4":\
179        c==eDCC_C1_DF5?"DF5":\
180        c==eDCC_C1_DF6?"DF6":\
181        c==eDCC_C1_DF7?"DF7":"Unknown"
182
183
184typedef enum {
185        eDCC_CR_C0=0,
186        eDCC_CR_G0,
187        eDCC_CR_C1,
188        eDCC_CR_G1,
189        eDCC_CR_C2,
190        eDCC_CR_G2,
191        eDCC_CR_C3,
192        eDCC_CR_G3
193} tDCC_CR;
194
195
196#define CC_CR_NAME(c) \
197        c==eDCC_CR_C0?"C0":\
198        c==eDCC_CR_G0?"G0":\
199        c==eDCC_CR_C1?"C1":\
200        c==eDCC_CR_G1?"G1":\
201        c==eDCC_CR_C2?"C2":\
202        c==eDCC_CR_G2?"G2":\
203        c==eDCC_CR_C3?"C3":\
204        c==eDCC_CR_G3?"G3":"Unknown"
205
206
207typedef enum {
208        eDCC_J_LEFT=0,
209        eDCC_J_RIGHT,
210        eDCC_J_CENTER,
211        eDCC_J_FULL
212} tDCC_Justification;
213
214
215
216typedef enum {
217        eDCC_D_LTTORT=0,
218        eDCC_D_RTTOLT,
219        eDCC_D_TPTOBT,
220        eDCC_D_BTTOTP
221} tDCC_Direction;
222
223
224typedef enum {
225        eDCC_O_SOLID=0,
226        eDCC_O_FLASH,
227        eDCC_O_TRANSLUCENT,
228        eDCC_O_TRANSPARENT
229} tDCC_Opacity;
230
231
232typedef enum {
233        eDCC_S_SMALL=0,
234        eDCC_S_STANDARD,
235        eDCC_S_LARGE
236} tDCC_Size;
237
238
239typedef enum {
240        eDCC_O_SUBSCRIPT=0,
241        eDCC_O_NORMAL,
242        eDCC_O_SUPERSCRIPT
243} tDCC_Offset;
244
245
246typedef enum {
247        eDCC_ET_NONE=0,
248        eDCC_ET_RAISED,
249        eDCC_ET_DEPRESSED,
250        eDCC_ET_UNIFORM,
251        eDCC_ET_LEFT_DROP_SHADOW,
252        eDCC_ET_RIGHT_DROP_SHADOW
253} tDCC_EdgeType;
254
255
256typedef enum {
257        //bit 2:b, 1: g, 0: r
258        eDCC_C_BLACK=0x0,
259        eDCC_C_RED=0x1,
260        eDCC_C_GREEN=0x2,
261        eDCC_C_YELLOW=0x3,
262        eDCC_C_BLUE=0x4,
263        eDCC_C_MAGENTA=0x5,
264        eDCC_C_CYAN=0x6,
265        eDCC_C_WHITE=0x7,
266        eDCC_C_TRANSPARENT=0x10,
267        eDCC_C_NONE=0x11, //¾È±×¸²
268} tDCC_Color;
269
270
271typedef enum {
272        eDCC_FS_DEFAULT=0,
273        eDCC_FS_SERIFMONO,
274        eDCC_FS_SERIF,
275        eDCC_FS_SANSERIFMONO,
276        eDCC_FS_SANSERIF,
277        eDCC_FS_CASUAL,
278        eDCC_FS_CURSIVE,
279        eDCC_FS_SMALLCAPITAL,
280        eDCC_FS_ANALOG, //analog Àü¿ë.
281        eDCC_FS_KOREAN=100,
282       
283} tDCC_FontStyle;
284
285
286typedef struct {
287        UINT8 j;
288        UINT8 pd; //print direction
289        UINT8 sd; //scroll direction
290        UINT8 ww; //word wrap
291        UINT8 de; //display effect
292        UINT8 ed; //effect direction
293        UINT8 es; //effect speed;
294        UINT8 fc; //fr, fg, fb
295        UINT8 fo; //fill opacity
296        UINT8 bt; //border(edge)
297        UINT8 bc; //br, bg, bb
298} tDCC_WinAttr;
299
300
301typedef struct {
302        UINT8 s : 2; //pen size
303        UINT8 fs : 3; //font style
304        UINT8 tt : 4; //text tag
305        UINT8 o : 2; //offset
306        UINT8 u : 1; //underline
307        UINT8 i : 1; //italic
308        UINT8 et : 3; //edge type
309       
310        UINT8 fc : 3; //fr, fg, fb
311        UINT8 fo : 2;
312        UINT8 bc : 3; //br, bb, bg
313        UINT8 bo : 2;
314        UINT8 ec : 3; //er, eg, eb
315       
316        UINT8 p16 : 1; // p16ÀÇ codeÀÎÁö..
317} tDCC_PenAttr;
318
319
320typedef struct {
321        UINT8 s; 
322        UINT8 fs;
323        UINT8 tt;
324        UINT8 o; 
325        UINT8 u; 
326        UINT8 i; 
327        UINT8 et;
328       
329        UINT8 fc;
330        UINT8 fo;
331        UINT8 bc;
332        UINT8 bo;
333        UINT8 ec;
334} tDCC_PenUserAttr;
335
336
337
338#if 0
339__608_Spec_Def__() {}
340#endif
341
342
343typedef enum {
344        eDCC_C_RCL=0x20,
345        eDCC_C_BS,
346        eDCC_C_AOF,
347        eDCC_C_AON,
348        eDCC_C_DER,
349        eDCC_C_RU2,
350        eDCC_C_RU3,
351        eDCC_C_RU4,
352        eDCC_C_FON,
353        eDCC_C_RDC,
354        eDCC_C_TR,
355        eDCC_C_RTD,
356        eDCC_C_EDM,
357        eDCC_C_CR,
358        eDCC_C_ENM,
359        eDCC_C_EOC,
360        eDCC_C_TO1=0x21,
361        eDCC_C_TO2,
362        eDCC_C_TO3
363} tDCC_CtrlCode;
364
365
366typedef enum {
367        eDCC_M_NONE=0x0,
368        eDCC_M_ROLLUP2,
369        eDCC_M_ROLLUP3,
370        eDCC_M_ROLLUP4,
371        eDCC_M_POPON,
372        eDCC_M_PAINTON,
373        eDCC_M_TEXT
374} eDCC_Mode;
375
376
377#if 0
378__User_Define__() {}
379#endif
380
381
382
383
384
385typedef enum {
386        eDCC_R_480=0,
387        eDCC_R_720,
388        eDCC_R_1080,
389        eDCC_R_540,
390        eDCC_R_NUM
391} tDCC_Resoulution;
392
393
394typedef enum {
395        eCMD_SET_TIMER=0,
396        eCMD_TIMER,
397        eCMD_TIMER_RESET,
398        eCMD_SYNC,
399        eCMD_BUF_FULL,
400        eCMD_SERVICE_ON,
401       
402        eCMD_USER_INIT,
403        eCMD_USER_SET_DISPLAY,
404        eCMD_USER_SET_SERVICE,
405        eCMD_USER_SET_KOREAN,
406        eCMD_USER_SET_OPTION,
407        eCMD_USER_SET_ATTR,
408        eCMD_USER_SET_POSITION,
409       
410        eCMD_USER_SET_FEEDING,
411       
412        eCMD_C0, //14
413       
414        eCMD_CWX,
415        eCMD_DFX,
416        eCMD_CLW,
417        eCMD_DLW,
418        eCMD_DSW,
419        eCMD_HDW,
420        eCMD_TGW,
421        eCMD_SWA,
422        eCMD_SPA,
423        eCMD_SPC, //21
424        eCMD_SPL,
425        eCMD_DLY,
426        eCMD_DLC,
427        eCMD_RST,
428       
429        eCMD_GX,
430       
431        eCMD_USER_DATA=0x40,
432        eCMD_CC_DATA_PACKETS
433} tDCC_CmdSet;
434
435
436typedef struct {
437        INT16 x;
438        INT16 y;
439        INT16 w;
440        INT16 h;
441} tDCC_RECT;
442
443
444typedef struct {
445        UINT32 cmd;
446        UINT32 opt;
447        UINT32 param1;
448        UINT32 param2;
449} tDCC_CMD;
450
451
452typedef struct {
453        UINT8 pic_type;
454        UINT8 pic_structure;
455        BOOL top_field_first;
456        BOOL repeat_first_field;
457        int size;
458        UINT8 data[MAX_SIZE_PIC_UD];
459        UINT32 ms_rcv; // for debugging
460        BOOL isUsing;   // overflow¸¦ üũÇϱâ À§ÇØ »ç¿ë (TRUE: ÆÄ½ÌÀ» À§ÇØ ´ë±â Áß ÀÓÀ» ÀǹÌ, FALSE: »ç¿ëÁßÀÌÁö ¾ÊÀ½)
461} tDCC_PicUDRaw;
462
463
464typedef struct {
465        UINT8 ud_type;
466        UINT8 flags; //3°³ÀÇ flag¸¦ ÀúÀå
467        UINT8 cc_count;
468        UINT8 em_data;
469} tDCC_PicUD;
470
471
472typedef struct {
473        UINT16 ch;
474        UINT8 w:6;
475        UINT8 h:6;
476        UINT8 full_ch:1; /* ÇÑ±Û ÀüÀÚ ¹ÝÀÚ¸¦ À§ÇÔ, 1Àº ÀüÀÚ, 0Àº ¹ÝÀÚ */
477        UINT8 pos:1; /* ÇÑ±Û ¹ÝÀÚ,ÀüÀÚ Ã³¸®¸¦ À§ÇÔ, ¹ÝÀÚ´Â ÀÇ¹Ì ¾øÀ½ 0->|0| |, 1->| |0| */
478        tDCC_PenAttr attr;
479} tDCC_Char;
480
481
482typedef struct {
483        UINT16 y;
484        UINT16 h;
485        tDCC_Char str[MAX_NUM_COL+1];
486} tDCC_Line;
487
488
489typedef struct {
490       
491        BOOL bcreated;
492       
493        //¼ö½Å¹ÞÀº attrÀ» ±×´ë·Î ÀúÀåÇÔ.
494        tDCC_WinAttr rcvd_win_attr; 
495        tDCC_PenAttr rcvd_pen_attr;
496       
497        tDCC_WinAttr win_attr; //modifyµÊ
498        tDCC_PenAttr pen_attr;
499       
500        BOOL bswa_rcvd;
501        BOOL bspa_rcvd;
502        BOOL bspc_rcvd;
503       
504        tDCC_RECT win_r;
505       
506        //text.
507        tDCC_Line text[MAX_NUM_ROW];
508        int cur_x;
509        int cur_y;
510       
511        UINT32 id_draw; /* È­¸é¿¡ ±×·ÁÁú ¶§ÀÇ id, ±×·ÁÁø ¼ø¼­´ë·Î ¼øÂ÷ÀûÀÓ */
512       
513        UINT8 overlap_win[8]; //Àڽź¸´Ù À§¿¡ ÀÖ´Â win ³ª¿­. p°¡ ³·Àº ¼ø¼­´ë·Î Á¤·Ä.
514        UINT8 num_overlap_win;
515               
516        UINT8 id;
517        UINT8 p;       
518        UINT8 cl;
519        UINT8 rl;
520        UINT8 v;
521        UINT8 av;
522        UINT8 rp;
523        UINT8 ah;
524        UINT8 rc;
525        UINT8 ap;
526        UINT8 cc;
527        UINT8 ps;
528        UINT8 ws;
529} tDCC_DefWin;
530
531
532typedef struct {
533        //Ãß°¡
534        BOOL b_wide;
535       
536        UINT8 style;
537        UINT8 text_size;
538        UINT8 edge_type;
539        UINT8 pen_type;
540        UINT8 text_color;
541        UINT8 edge_color;
542        UINT8 bg_color;
543        UINT8 hor_pitch;
544        UINT8 ver_pitch;
545        UINT8 ver_align;
546        UINT8 text_delay;
547        UINT8 text_opacity;
548        UINT8 bg_opacity;
549}tDCC_UserAttr;
550
551
552typedef struct {
553        UINT8 ks; //black solid
554        UINT8 rs; //red solid
555        UINT8 gs;
556        UINT8 ys;
557        UINT8 bs;
558        UINT8 ms;
559        UINT8 cs;
560        UINT8 ws;
561
562        UINT8 kt; //black translucent
563        UINT8 rt; //red translucent
564        UINT8 gt;
565        UINT8 yt;
566        UINT8 bt;
567        UINT8 mt;
568        UINT8 ct;
569        UINT8 wt;
570       
571        UINT8 tp; //transparent
572        UINT8 no; //none
573} tDCC_ColorMap;
574
575
576typedef struct {
577        BOOL is_cc_wide;        //cc wide
578        BOOL is_src_wide;       //Ãâ·Â screen wide¿©ºÎ.
579        BOOL is_korean;         //ÇÑ±Û ¿©ºÎ
580        BOOL is_unicode;        //unicode ¿©ºÎ
581        UINT8 resolution;       //±×·¡ÇÈ Ç÷¹ÀÎ ÇØ»óµµ, tDCC_Resoulution
582        tDCC_ColorMap *color_map;       //Ä÷¯ ¸Ê
583} tDCC_Config;
584
585
586typedef enum {
587        eDCC_OPT_P16=0x1,
588        eDCC_OPT_IS608=0x2,
589        eDCC_OPT_TIMER_ONESHOT=0x4,
590        eDCC_OPT_SYNC=0x8,
591       
592        eDCC_OPT_CH_CR=0x10,
593        eDCC_OPT_CH_BS=0x20,
594        eDCC_OPT_FULL_CH=0x40, /* korean cc¸¦ À§ÇÔ */
595       
596        eDCC_OPT_ROW_LOC_MODE=0x80, /* row loc mode 0: Àý´ë ÁÂÇ¥, 1:»ó´ë ÁÂÇ¥ */
597        eDCC_OPT_COL_LOC_MODE=0x100, /* col loc mode 0: Àý´ë ÁÂÇ¥, 1:»ó´ë ÁÂÇ¥ */
598} tDCC_Option;
599
600
601typedef struct {
602        BOOL bready;
603        BOOL bdisplay_on;
604        UINT8 service;
605        BOOL buser_opt;
606        tDCC_Config config;
607        tDCC_PenUserAttr pen_attr;
608        tDCC_WinAttr win_attr;
609        int win_posx;
610        int win_posy;
611        BOOL is_feeding_608;
612} tDCC_Info;
613
614
615typedef enum {//        p1  p2       
616        eDCC_IT_708_CMD,//    ptr x
617        eDCC_IT_708_WIN,//    id  ptr     
618        eDCC_IT_708_WINATTR,//ptr x       
619        eDCC_IT_708_PENATTR,//ptr x       
620        eDCC_IT_CC_DATA_PACKETS, // ptr size
621        eDCC_IT_SCTE20, // (field no.) (cc data)
622} tDCC_InfoType;
623
624//cc info¸¦ app¿¡¼­ ¾ò°íÀÚ ÇÒ ¶§ ÀÌ ÇüÅ´ë·Î »ý¼ºÇÑ´Ù.
625typedef void (*tDCC_InfoCallback)(tDCC_InfoType type, UINT32 opt, UINT32 param1, UINT32 param2);
626
627#endif //__CC_DEF_H__
628
629/* end of file */
630
Note: See TracBrowser for help on using the repository browser.