source: svn/newcon3bcm2_21bu/dst/dmw/src/cc/app_cc.c @ 45

Last change on this file since 45 was 45, checked in by megakiss, 11 years ago
  • Property svn:executable set to *
File size: 3.0 KB
Line 
1
2#include "DHL_OSAL.h"
3#include "cc_api.h"
4
5enum {
6        eCC_DISPLAY_ON=0x0,
7        eCC_SERVICE,
8        eCC_OPTION,
9        eCC_FONT_SIZE,
10        eCC_FONT_STYLE,
11        eCC_FONT_COLOR,
12        eCC_TEXT_OPACITY,
13        eCC_BG_COLOR,
14        eCC_BG_OPACITY,
15        eCC_EDGE_TYPE,
16        eCC_EDGE_COLOR,
17        eCC_PEN_ITALIC,
18        eCC_PEN_UNDERLINE,
19        eCC_WIN_POS
20};
21
22
23typedef struct {
24        BOOL display_on;
25        UINT8 service;
26        BOOL option;
27        UINT8 font_size;
28        UINT8 font_style;
29        UINT8 font_color;
30        UINT8 text_opacity;
31        UINT8 bg_color;
32        UINT8 bg_opacity;
33        UINT8 edge_type;
34        UINT8 edge_color;
35        UINT8 italic;
36        UINT8 underline;
37        UINT32 win_pos;
38} tCC_Config;
39
40
41static BOOL is_cc_on;
42
43
44static void p_cc_start()
45{
46        DCC_Start();
47}
48
49
50static void p_cc_stop()
51{
52        DCC_Stop();
53}
54
55
56
57
58void App_CCInit()
59{
60        tDCC_Config cfg;
61        tDCC_ColorMap p_cm={247,243,241,245,240,244,242,246,255,251,249,253,248,252,250,254,239,0};
62               
63        cfg.is_cc_wide=FALSE;
64        cfg.is_korean=FALSE;
65        cfg.is_unicode=FALSE;
66        cfg.resolution=eDCC_R_480;
67        cfg.color_map=&p_cm;
68       
69        DCC_Init(&cfg);
70       
71        DCC_SetService(1);
72       
73        is_cc_on=TRUE;
74       
75        p_cc_start();
76}
77
78void App_CCReset(BOOL is_cc_wide, UINT8 resolution)
79{
80        tDCC_Config cfg;
81       
82        cfg.is_cc_wide=is_cc_wide;
83        cfg.resolution=resolution;
84        cfg.color_map=NULL;
85       
86        DCC_Init(&cfg);
87}
88
89void App_CCStart()
90{
91        if(is_cc_on) return;
92        is_cc_on=TRUE;
93       
94        p_cc_start();
95}
96
97void App_CCStop()
98{
99        if(!is_cc_on) return;
100        is_cc_on=FALSE;
101       
102        p_cc_stop();
103}
104
105void App_CCSetService(UINT8 service)
106{
107        if(is_cc_on)
108                DCC_Stop();
109       
110        DCC_SetService(service);
111       
112        if(is_cc_on)
113                DCC_Start();
114}
115
116void App_CCSetOption(BOOL is_user)
117{
118        DCC_SetOption(is_user);
119}
120
121void App_CCConfig(UINT8 attr, UINT32 value)
122{
123        tDCC_PenUserAttr pattr;
124        DCC_GetPenUserAttr(&pattr);
125       
126        switch(attr) {
127               
128                case eCC_DISPLAY_ON :
129                        if(value) App_CCStart();
130                        else      App_CCStop();
131                        break;
132               
133                case eCC_SERVICE :
134                        App_CCSetService(value);
135                        break;
136                       
137                case eCC_OPTION :
138                        App_CCSetOption(value?TRUE:FALSE);
139                        break;
140               
141                case eCC_FONT_SIZE :
142                        pattr.s=value;
143                        break;
144                       
145                case eCC_FONT_STYLE :
146                        pattr.fs=value;
147                        break;
148               
149                case eCC_FONT_COLOR :
150                        pattr.fc=value;
151                        break;
152               
153                case eCC_TEXT_OPACITY :
154                        pattr.fo=value;
155                        break;
156               
157                case eCC_BG_COLOR :
158                        pattr.bc=value;
159                        break;
160               
161                case eCC_BG_OPACITY :
162                        pattr.bo=value;
163                        break;
164               
165                case eCC_EDGE_TYPE :
166                        pattr.et=value;
167                        break;
168               
169                case eCC_EDGE_COLOR :
170                        pattr.ec=value;
171                        break;
172               
173                case eCC_PEN_ITALIC :
174                        pattr.fs=value;
175                        break;
176               
177                case eCC_PEN_UNDERLINE :
178                        pattr.fs=value;
179                        break;
180               
181        }
182       
183        DCC_SetPenUserAttr(&pattr);
184       
185}
186
187
188void flash_fg_test(BOOL bstop)
189{
190        if(bstop) {
191                App_CCConfig(eCC_TEXT_OPACITY, DCC_AUTO_SET);
192        }
193        else {
194                App_CCConfig(eCC_OPTION, TRUE);
195                App_CCConfig(eCC_TEXT_OPACITY, eDCC_O_FLASH);
196        }
197}
198
199void flash_bg_test(BOOL bstop)
200{
201        if(bstop)
202                App_CCConfig(eCC_BG_OPACITY, DCC_AUTO_SET);
203        else {
204                App_CCConfig(eCC_OPTION, TRUE);
205                App_CCConfig(eCC_BG_OPACITY, eDCC_O_FLASH);
206        }
207}
Note: See TracBrowser for help on using the repository browser.