source: svn/newcon3bcm2_21bu/dst/app/src/kview/OSD/App_OSD_RRT.c

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

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

  • Property svn:executable set to *
File size: 28.8 KB
Line 
1/* This function is not supported in K-View project */
2
3#include "App_Main.h"
4#include "App_OSD_Common.h"
5#include "App_Res_Menus.h"
6#include "App_Res_Frames.h"
7#include "App_Res_Png.h"
8#include "App_Res_Key.h"
9
10#include "App_OSD_RRT.h"
11
12//#include "App_Fnc_Rating.h"
13#include "App_Fnc_RRT.h"
14
15
16#define FRAME_BG_X 64
17#define FRAME_BG_Y 48
18#define FRAME_BG_W 592
19#define FRAME_BG_H 384
20
21#define COL1_X 84
22#define COL1_W 180
23#define COL2_X (COL1_X+COL1_W)
24#define COL2_W 62
25
26#define ROW_Y 66
27#define ROW_H 41
28
29#define C_GRAY 0xff808080
30#define C_YELLOW 0xfffff003
31#define C_WHITE 0xFF8CE1FF
32#define C_CYAN 0xFF8CE1FF
33
34#define MC_ACTIVE 0xff000000
35#define MC_INACTIVE 0xffffffff
36#define MC_NORMAL 0xff8cffff
37
38static UINT8 p_draw_map[7][7]={ //0Àº useless, 1Àº UNLOCK, 2´Â LOCK
39        {1, 0, 0, 0, 0, 0, 0},
40        {1, 1, 0, 0, 0, 0, 0},
41        {1, 0, 0, 0, 0, 0, 0},
42        {1, 0, 1, 1, 1, 1, 0},
43        {1, 0, 1, 1, 1, 1, 0},
44        {1, 0, 0, 1, 1, 1, 0},
45        {1, 1, 1, 1, 1, 1, 1}
46};
47
48static int prev_row;
49static int prev_col;
50
51static UINT8 cur_rating[6], orig_rating[6];
52
53#define RRT_BIT(in,p) ((in)&(1<<(p)))?2:1
54#define SET_RRT(in,p,v) if((v)==2) (in)|=(1<<(p)); else (in)&=(~(1<<(p)))
55
56static void p_init_lock()
57{
58       
59        /* G */
60        p_draw_map[2][0]=RRT_BIT(cur_rating[0],1);
61       
62        /* PG */
63        p_draw_map[3][0]=RRT_BIT(cur_rating[0],6);
64        p_draw_map[3][2]=RRT_BIT(cur_rating[0],2);
65        p_draw_map[3][3]=RRT_BIT(cur_rating[0],3);
66        p_draw_map[3][4]=RRT_BIT(cur_rating[0],4);
67        p_draw_map[3][5]=RRT_BIT(cur_rating[0],5);
68       
69        /* 14 */
70        p_draw_map[4][0]=RRT_BIT(cur_rating[1],3);
71        p_draw_map[4][2]=RRT_BIT(cur_rating[0],7);
72        p_draw_map[4][3]=RRT_BIT(cur_rating[1],0);
73        p_draw_map[4][4]=RRT_BIT(cur_rating[1],1);
74        p_draw_map[4][5]=RRT_BIT(cur_rating[1],2);
75       
76        /* MA */
77        p_draw_map[5][0]=RRT_BIT(cur_rating[1],7);
78        p_draw_map[5][3]=RRT_BIT(cur_rating[1],4);
79        p_draw_map[5][4]=RRT_BIT(cur_rating[1],5);
80        p_draw_map[5][5]=RRT_BIT(cur_rating[1],6);
81       
82        /* Y/Y7 */
83        p_draw_map[0][0]=RRT_BIT(cur_rating[2],0);
84        p_draw_map[1][0]=RRT_BIT(cur_rating[2],2);
85        p_draw_map[1][1]=RRT_BIT(cur_rating[2],1);
86       
87        /* MPAA */
88        p_draw_map[6][0]=RRT_BIT(cur_rating[3],1);
89        p_draw_map[6][1]=RRT_BIT(cur_rating[3],2);
90        p_draw_map[6][2]=RRT_BIT(cur_rating[3],3);
91        p_draw_map[6][3]=RRT_BIT(cur_rating[3],4);
92        p_draw_map[6][4]=RRT_BIT(cur_rating[3],5);
93        p_draw_map[6][5]=RRT_BIT(cur_rating[3],6);
94        p_draw_map[6][6]=RRT_BIT(cur_rating[3],7);
95       
96}
97
98static void p_flush_lock(BOOL buse_original)
99{
100        UINT8 *prating;
101       
102        prating=buse_original?orig_rating:cur_rating;
103       
104        /* G */
105        SET_RRT(prating[0],1, p_draw_map[2][0]);
106       
107        /* PG */
108        SET_RRT(prating[0],6, p_draw_map[3][0]);
109        SET_RRT(prating[0],2, p_draw_map[3][2]);
110        SET_RRT(prating[0],3, p_draw_map[3][3]);
111        SET_RRT(prating[0],4, p_draw_map[3][4]);
112        SET_RRT(prating[0],5, p_draw_map[3][5]);
113       
114        /* 14 */
115        SET_RRT(prating[1],3, p_draw_map[4][0]);
116        SET_RRT(prating[0],7, p_draw_map[4][2]);
117        SET_RRT(prating[1],0, p_draw_map[4][3]);
118        SET_RRT(prating[1],1, p_draw_map[4][4]);
119        SET_RRT(prating[1],2, p_draw_map[4][5]);
120       
121        /* MA */
122        SET_RRT(prating[1],7, p_draw_map[5][0]);
123        SET_RRT(prating[1],4, p_draw_map[5][3]);
124        SET_RRT(prating[1],5, p_draw_map[5][4]);
125        SET_RRT(prating[1],6, p_draw_map[5][5]);
126       
127        /* Y/Y7 */
128        SET_RRT(prating[2],0, p_draw_map[0][0]);
129        SET_RRT(prating[2],2, p_draw_map[1][0]);
130        SET_RRT(prating[2],1, p_draw_map[1][1]);
131       
132        /* MPAA */
133        SET_RRT(prating[3],1, p_draw_map[6][0]);
134        SET_RRT(prating[3],2, p_draw_map[6][1]);
135        SET_RRT(prating[3],3, p_draw_map[6][2]);
136        SET_RRT(prating[3],4, p_draw_map[6][3]);
137        SET_RRT(prating[3],5, p_draw_map[6][4]);
138        SET_RRT(prating[3],6, p_draw_map[6][5]);
139        SET_RRT(prating[3],7, p_draw_map[6][6]);
140       
141        AppRating_Update766Table(prating, TRUE);
142}
143
144static BOOL p_get_lock(int row, int col)
145{
146        return (p_draw_map[row][col]==2);
147       
148}
149
150static void p_set_lock(int row, int col, BOOL block)
151{
152        if(p_draw_map[row][col]==0) return;
153
154        p_draw_map[row][col]=block?2:1;
155               
156}
157
158
159static char *p_get_rrt_str(int row, int col)
160{
161        static char ret_strs[24];
162       
163        char *row_strs[]={"TV-Y", "TV-Y7", "TV-G", "TV-PG", "TV-14", "TV-MA"};
164        char *col_strs[]={"All", "FV", "D", "L", "S", "V"};
165       
166        if(App_NVM_GetMenuLang()!=0 && col==0) {
167                strcpy(col_strs[0], "Todo");
168        }
169       
170        sprintf(ret_strs, "%s %s", row_strs[row], col_strs[col]);
171       
172        return ret_strs;
173}
174
175
176
177static void draw_rrt(int mode, int row, int col) //mode 0: bg¸¸ ±×¸²,  1: Á¶±×¸¸ ¹Ú½º¸¸ ±×¸².
178{
179        int i,j;
180       
181        if(mode==0) {
182                DMG_EraseRect(FRAME_BG_X, FRAME_BG_Y, FRAME_BG_W, FRAME_BG_H, 0x0);
183       
184                App_OSD_CommonBox1(FRAME_BG_X, FRAME_BG_Y, FRAME_BG_W, FRAME_BG_H, 6, 2, 
185                        CHEDIT_BG_COLOR_1, CHEDIT_BG_COLOR_3, CHEDIT_BG_COLOR_2);
186        }
187       
188        for(i=0; i<7; i++) {
189               
190                if(mode==0) {
191                        App_OSD_CommonBox2(COL1_X, ROW_Y+(i*ROW_H), COL1_W, ROW_H, 2, 
192                                CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
193               
194                        if(i==0) {             
195                                PRINT_STR_EX(COL1_X, ROW_Y+(i*ROW_H)+1, COL1_W, ROW_H, 
196                                        RATING_TV_RATING, C_WHITE, DMG_OPT_A_CT);
197                        }
198                        else {
199                                char *strs[]={"TV-Y", "TV-Y7", "TV-G", "TV-PG", "TV-14", "TV-MA"};
200                                DMG_PrintStrEx(COL1_X, ROW_Y+(i*ROW_H)+1, COL1_W, ROW_H, strs[i-1], 
201                                        C_WHITE, DMG_OPT_A_CT);
202                        }
203                }
204               
205                for(j=0; j<6; j++) {
206                        if(i==0) {
207                                if(mode==0) {
208                                        char *strs[]={"All", "FV", "D", "L", "S", "V"};
209                                       
210                                        App_OSD_CommonBox2(COL2_X+j*COL2_W, ROW_Y+(i*ROW_H), COL2_W, ROW_H, 2, 
211                                                CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, 
212                                                CHEDIT_BG_COLOR_4);
213                                       
214                                        DMG_PrintStrEx(COL2_X+j*COL2_W, ROW_Y+(i*ROW_H)+1, COL2_W, ROW_H, 
215                                                strs[j], C_WHITE, DMG_OPT_A_CT);
216                                }
217                        }
218                        else {
219                                if(p_draw_map[i-1][j] && mode==1) { //lock Á¤º¸¸¦ ¾ò¾î¿Í¼­ º¸¿©Áà¾ß ÇÔ.
220                                        App_OSD_CommonBox2(COL2_X+j*COL2_W, ROW_Y+(i*ROW_H), COL2_W, ROW_H, 2, 
221                                        (row==i-1 && col==j)?C_YELLOW:C_GRAY, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
222                                       
223                                        //ÀÚ¹°¼è ±×¸®±â.
224                                        DRAW_IMAGE(COL2_X+j*COL2_W+3, ROW_Y+(i*ROW_H)+5, 
225                                                p_get_lock(i-1, j)?IMG_RRT_LOCK:IMG_RRT_UNLOCK);
226                                }
227                                else if(mode==0) {
228                                        App_OSD_CommonBox2(COL2_X+j*COL2_W, ROW_Y+(i*ROW_H), COL2_W, ROW_H, 2, 
229                                        CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
230                                }
231                               
232                        }
233                }
234               
235        }
236       
237        if(mode==1) {
238                //ÇÏ´Ü Á¤º¸
239                App_OSD_CommonBox2(COL1_X, 372, FRAME_BG_W-40, ROW_H, 2, 
240                                C_GRAY, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
241               
242                DMG_PrintStrEx(COL1_X+10, 372+1, FRAME_BG_W-40, ROW_H, 
243                        p_get_rrt_str(row, col), C_WHITE, DMG_OPT_A_LT);
244        }
245}
246
247
248#if COMMENT
249__US_TV__() {}
250#endif
251
252void AppO_DrawUsRRT(int row, int col, BOOL bredraw)
253{
254        if(bredraw) {
255                draw_rrt(0, row, col);
256        }
257       
258        draw_rrt(1, row, col); //ÀüüÀûÀ¸·Î ¸ðµÎ ¾÷µ¥ÀÌÆ®ÇÔ.
259       
260        prev_row=row;
261        prev_col=col;
262}
263
264void AppO_ToggleUsRRT()
265{
266        int i, j;
267        BOOL block=1-p_get_lock(prev_row, prev_col);
268       
269        p_set_lock(prev_row, prev_col, block);
270       
271        /* graduated scale */
272        if(prev_row==0) { /* Y */
273                if(block) {
274                        for(i=0; i<2; i++) p_set_lock(1, i, TRUE);
275                }
276        }
277        else if(prev_row==1) { /* Y7 */
278                if(block) {
279                        if(prev_col==0) p_set_lock(1, 1, TRUE);
280                }
281                else {
282                        if(prev_col==0) {
283                                p_set_lock(0, 0, FALSE);
284                                p_set_lock(1, 1, FALSE);
285                        }
286                        else {
287                                p_set_lock(0, 0, FALSE);
288                                p_set_lock(1, 0, FALSE);
289                        }
290                }
291        }
292        else { /* G, PG, 14, MA */
293                if(prev_col==0) {
294                        for(i=1; i<6; i++) p_set_lock(prev_row, i, block);
295                       
296                        if(block) {
297                                for(j=prev_row+1; j<6; j++) {
298                                        for(i=0; i<6; i++) p_set_lock(j, i, TRUE);
299                                }
300                        }
301                        else {
302                                for(j=2; j<prev_row; j++) {
303                                        for(i=0; i<6; i++) p_set_lock(j, i, FALSE);
304                                }
305                        }
306                }
307                else {
308                        if(block) {
309                                for(i=prev_row+1; i<6; i++) p_set_lock(i, prev_col, TRUE);
310                        }
311                        else {
312                                p_set_lock(prev_row, 0, FALSE);
313                               
314                                for(i=2; i<prev_row; i++) {
315                                        p_set_lock(i, prev_col, FALSE);
316                                        p_set_lock(i, 0, FALSE);
317                                }
318                        }
319                }
320        }
321       
322        //Àû¿ëµÇ¾î¾ß ÇÔ.
323        p_flush_lock(FALSE);
324
325        draw_rrt(1, prev_row, prev_col);
326}
327
328void AppO_EraseUsRRT()
329{
330        DMG_EraseRect(FRAME_BG_X, FRAME_BG_Y, FRAME_BG_W, FRAME_BG_H, 0x0);
331}
332
333BOOL AppO_IsValidUsPos(int row, int col)
334{
335        if(row>=6 || col>=6) return FALSE;
336               
337        if(p_draw_map[row][col]) return TRUE;
338       
339        return FALSE;
340}
341
342BOOL AppO_RestoreOrigUsRating()
343{
344        p_flush_lock(TRUE);
345       
346        AppO_DrawUsRRT(prev_row, prev_col, TRUE);
347}
348
349void AppO_InitRating()
350{
351        memcpy(orig_rating, (void *)AppRating_Get766Table(), 6); //6°³¸¦ º¹»çÇÔ.
352        memcpy(cur_rating, (void *)AppRating_Get766Table(), 6);
353       
354        p_init_lock();
355}
356
357
358#if COMMENT
359__US_MPAA__() {}
360#endif
361
362#define FRAME_MPAA_X 170
363#define FRAME_MPAA_Y 95
364#define FRAME_MPAA_W 380
365#define FRAME_MPAA_H 290
366
367#define MPAA_COL1_X 190
368#define MPAA_COL1_Y 113
369#define MPAA_COL1_W 108
370#define MPAA_COL2_W 62
371
372#define MPAA_ROW_H 41
373
374static void p_draw_mpaa_bg()
375{
376        int i;
377        char *strs[]={"G", "PG", "PG-13", "R", "NC-17", "X", "NR"};
378       
379        DMG_EraseRect(FRAME_MPAA_X, FRAME_MPAA_Y, FRAME_MPAA_W, FRAME_MPAA_H, 0x0);
380       
381        App_OSD_CommonBox1(FRAME_MPAA_X, FRAME_MPAA_Y, FRAME_MPAA_W, FRAME_MPAA_H, 
382                6, 2, CHEDIT_BG_COLOR_1, CHEDIT_BG_COLOR_3, CHEDIT_BG_COLOR_2);
383       
384        //»ó´Ü frame.
385        App_OSD_CommonBox2(MPAA_COL1_X, MPAA_COL1_Y, FRAME_MPAA_W-40, MPAA_ROW_H, 2, 
386                CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
387       
388        PRINT_STR_EX(MPAA_COL1_X, MPAA_COL1_Y, FRAME_MPAA_W-40, MPAA_ROW_H, 
389                RATING_MPAA, C_WHITE, DMG_OPT_A_CT);
390                                       
391        for(i=0; i<7; i++) {
392                int x, y;
393               
394                if(i<4) x=MPAA_COL1_X;
395                else    x=MPAA_COL1_X+(MPAA_COL1_W+MPAA_COL2_W);
396                       
397                y=MPAA_COL1_Y+((i%4)+1)*MPAA_ROW_H;
398               
399                App_OSD_CommonBox2(x, y, MPAA_COL1_W, MPAA_ROW_H, 2, 
400                        CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
401               
402                DMG_PrintStrEx(x, y, MPAA_COL1_W, MPAA_ROW_H, 
403                        strs[i], C_WHITE, DMG_OPT_A_CT);
404        }
405}
406
407static void p_draw_mpaa_info(int idx)
408{
409        int i;
410        char *strs[]={"G", "PG", "PG-13", "R", "NC-17", "X", "NR"};
411       
412        for(i=0; i<7; i++) {
413                int x, y;
414               
415                if(i<4) x=MPAA_COL1_X+MPAA_COL1_W;
416                else    x=MPAA_COL1_X+(MPAA_COL1_W*2+MPAA_COL2_W);
417                       
418                y=MPAA_COL1_Y+((i%4)+1)*MPAA_ROW_H;
419               
420                App_OSD_CommonBox2(x, y, MPAA_COL2_W, MPAA_ROW_H, 2, 
421                        idx==i?C_YELLOW:C_GRAY, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
422               
423                DRAW_IMAGE(x+3, y+5, p_get_lock(6, i)?IMG_RRT_LOCK:IMG_RRT_UNLOCK);
424        }
425       
426        //ÇÏ´Ü info
427        App_OSD_CommonBox2(MPAA_COL1_X, 328, FRAME_MPAA_W-40, MPAA_ROW_H, 2, 
428                                C_GRAY, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
429               
430        DMG_PrintStrEx(MPAA_COL1_X+10, 328+1, FRAME_MPAA_W-40, MPAA_ROW_H, 
431                strs[idx], C_WHITE, DMG_OPT_A_LT);
432}
433
434
435void AppO_DrawMpaaRRT(int idx, BOOL bredraw)
436{
437        if(bredraw)
438                p_draw_mpaa_bg();
439               
440        p_draw_mpaa_info(idx);
441}
442
443
444void AppO_EraseMpaaRRT()
445{
446        DMG_EraseRect(FRAME_MPAA_X, FRAME_MPAA_Y, FRAME_MPAA_W, FRAME_MPAA_H, 0x0);
447}
448
449
450void AppO_ToggleMpaaRRT(int idx)
451{
452        int i;
453        BOOL block=1-p_get_lock(6, idx);
454        p_set_lock(6, idx, block);
455       
456        if(idx<6) {
457                if(block) {
458                        for(i=idx+1; i<6; i++) {
459                                p_set_lock(6, i, TRUE);
460                        }
461                }
462                else {
463                        for(i=0; i<idx; i++) {
464                                p_set_lock(6, i, FALSE);
465                        }
466                }
467        }
468       
469        p_flush_lock(FALSE);
470
471        p_draw_mpaa_info(idx);
472}
473
474
475#if COMMENT
476__SET_DRATING__() {}
477#endif
478
479#define FRAME_SET_DRRT_X 170
480#define FRAME_SET_DRRT_Y 95
481#define FRAME_SET_DRRT_W 380
482#define FRAME_SET_DRRT_H 290
483
484#define FRAME_SET_ROW_H 41
485
486#define DRRT_SCROLL_W 24
487#define DRRT_SCROLL_H (FRAME_SET_ROW_H*3)
488
489#define MAX_DRRT_NUM_DIM 64  // 2012.11.01. 32->64
490#define MAX_DRRT_NUM_UNIT 16
491
492#define MAX_NUM_DRRT_NAME 16
493#define MAX_NUM_DRRT_DESC 64
494
495static struct {
496        UINT16 name[MAX_NUM_DRRT_DESC];
497        UINT8 num_value;
498        BOOL grad_scale;
499        BOOL bfirst_empty;
500       
501        struct {
502                BOOL block;
503                UINT16 name[MAX_NUM_DRRT_NAME];
504                UINT16 desc[MAX_NUM_DRRT_DESC];
505        } unit[MAX_DRRT_NUM_UNIT];
506       
507} p_drrt_dim[MAX_DRRT_NUM_DIM];
508
509static int p_num_dim;
510
511
512static UINT16 *p_get_str(UINT8 *pstr, UINT16 len, UINT16 max_len, UINT16 *temp)
513{
514        int mstr_len;
515       
516        if(len<=8) { //º¯È¯ ÀÚü°¡ Àǹ̰¡ ¾øÀ½.
517                DHL_OS_Printf("len is small..(%d)\n", len);
518                temp[0]='\0';
519        }
520        else {
521                mstr_len=DLIB_PSI_DecodeMultipleStringStructure(len, pstr, "eng", MAX_NUM_DRRT_DESC, temp);
522               
523                if(mstr_len<=0)
524                        mstr_len=DLIB_PSI_DecodeMultipleStringStructure(len, pstr, "kor", MAX_NUM_DRRT_DESC, temp);
525               
526                if(mstr_len<=0) temp[0]='\0';
527                else temp[mstr_len]='\0';
528        }
529       
530        return temp;
531}
532
533
534static BOOL p_init_drrt()
535{
536        int i, j;
537        int first_idx;
538       
539        rrtSectionPtr_t prrt=(rrtSectionPtr_t)AppRrt_GetRrt();
540       
541        if(!prrt) return FALSE;
542       
543        //rrt parsing
544       
545        p_num_dim=prrt->dimensions_defined;
546        if(p_num_dim == 0) return FALSE;
547       
548        if(p_num_dim>MAX_DRRT_NUM_DIM) p_num_dim=MAX_DRRT_NUM_DIM;
549       
550        for(i=0; i<p_num_dim; i++) {
551                p_get_str(prrt->dimension[i].dimension_name, 
552                        prrt->dimension[i].dimension_name_length, MAX_NUM_DRRT_DESC,
553                        p_drrt_dim[i].name);
554                       
555                p_drrt_dim[i].grad_scale=prrt->dimension[i].graduated_scale;
556                p_drrt_dim[i].num_value=prrt->dimension[i].values_defined;
557                p_drrt_dim[i].bfirst_empty=prrt->dimension[i].first_value_empty;
558                p_drrt_dim[i].bfirst_empty = TRUE;
559               
560                if(p_drrt_dim[i].num_value>MAX_DRRT_NUM_UNIT)
561                        p_drrt_dim[i].num_value=MAX_DRRT_NUM_UNIT;
562               
563                first_idx=p_drrt_dim[i].bfirst_empty?1:0;       
564               
565                for(j=first_idx; j<p_drrt_dim[i].num_value; j++) {
566                        p_get_str(prrt->dimension[i].value[j].abbrev_rating_value,
567                                prrt->dimension[i].value[j].abbrev_rating_value_length,
568                                MAX_NUM_DRRT_NAME, p_drrt_dim[i].unit[j-first_idx].name);
569#if 1
570                        if(first_idx==0 && j==0 && DMG_UStrLen(p_drrt_dim[i].unit[j].name)==0) {
571                                p_drrt_dim[i].bfirst_empty=TRUE;
572                                first_idx=1;
573                                //j--;
574                                continue;
575                        }
576#endif
577               
578                        p_get_str(prrt->dimension[i].value[j].rating_value,
579                                prrt->dimension[i].value[j].rating_value_length,
580                                MAX_NUM_DRRT_DESC, p_drrt_dim[i].unit[j-first_idx].desc);
581                       
582                        p_drrt_dim[i].unit[j-first_idx].block=
583                                prrt->dimension[i].value[j].block_on;
584                }
585                p_drrt_dim[i].num_value-=first_idx;
586        }
587       
588        return TRUE;
589}
590
591static int cur_dim;
592static int cur_idx;
593static int start_idx;
594
595BOOL AppO_InitSetDrating()
596{
597        cur_dim=0;
598        cur_idx=0;
599        start_idx=0;
600        p_num_dim=0;
601       
602        return p_init_drrt();
603}
604
605
606
607void AppO_DrawSetDrating(UINT32 direction, BOOL bdraw_bg)
608{
609        int i, num_show;
610        int x;
611        int y;
612
613        if(p_num_dim==0) return;
614       
615        if(bdraw_bg) {
616               
617                DMG_EraseRect(FRAME_SET_DRRT_X, FRAME_SET_DRRT_Y, FRAME_SET_DRRT_W, 
618                        FRAME_SET_DRRT_H, 0x0);
619               
620                App_OSD_CommonBox1(FRAME_SET_DRRT_X, FRAME_SET_DRRT_Y, 
621                        FRAME_SET_DRRT_W, FRAME_SET_DRRT_H, 6, 2, CHEDIT_BG_COLOR_1, 
622                        CHEDIT_BG_COLOR_3, CHEDIT_BG_COLOR_2);
623               
624                //»ó´Ü
625                App_OSD_CommonBox2(FRAME_SET_DRRT_X+20, FRAME_SET_DRRT_Y+20, 
626                        FRAME_SET_DRRT_W-40, FRAME_SET_ROW_H, 2, 
627                        CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
628               
629                //»ó´Ü ¿ÞÂÊ ¿À¸¥ÂÊ È­»ìÇ¥
630                DRAW_IMAGE(FRAME_SET_DRRT_X+25, FRAME_SET_DRRT_Y+31, 
631                        DST_depth3_arrow_sell_left_480);
632               
633                DRAW_IMAGE(FRAME_SET_DRRT_X+FRAME_SET_DRRT_W-37, FRAME_SET_DRRT_Y+31, 
634                        DST_depth3_arrow_sell_right_480);
635               
636                //¸öÅë
637                App_OSD_CommonBox2(FRAME_SET_DRRT_X+20, FRAME_SET_DRRT_Y+20+FRAME_SET_ROW_H, 
638                        FRAME_SET_DRRT_W-40-DRRT_SCROLL_W, FRAME_SET_ROW_H*3, 2, 
639                        CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
640               
641                //scroll bg
642                App_OSD_CommonBox2(FRAME_SET_DRRT_X+FRAME_SET_DRRT_W-20-DRRT_SCROLL_W, 
643                        FRAME_SET_DRRT_Y+20+FRAME_SET_ROW_H, DRRT_SCROLL_W, FRAME_SET_ROW_H*3, 2, 
644                        CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
645               
646                //scroll
647                x=FRAME_SET_DRRT_X+FRAME_SET_DRRT_W-20-DRRT_SCROLL_W;
648                y=FRAME_SET_DRRT_Y+20+FRAME_SET_ROW_H;
649               
650                DRAW_IMAGE(x+2, y+2, DST_scroll_arrow_up_480);
651                DRAW_IMAGE(x+2, y+DRRT_SCROLL_H-22+1, DST_scroll_arrow_down_480);
652               
653                //ÇÏ´Ü Á¤º¸
654                App_OSD_CommonBox2(FRAME_SET_DRRT_X+20, 
655                        FRAME_SET_DRRT_Y+20+FRAME_SET_ROW_H+FRAME_SET_ROW_H*3, 
656                        FRAME_SET_DRRT_W-40, FRAME_SET_ROW_H*2, 2, 
657                        C_GRAY, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
658        }
659        else { //draw_bg°¡ falseÀÎ °æ¿ì´Â ¸öÅ븸 Áö¿ò.
660                App_OSD_CommonBox2(FRAME_SET_DRRT_X+20, FRAME_SET_DRRT_Y+20+FRAME_SET_ROW_H, 
661                        FRAME_SET_DRRT_W-40-DRRT_SCROLL_W, FRAME_SET_ROW_H*3, 2, 
662                        CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
663        }
664       
665        //direction¿¡ µû¶ó cur_dim, cur_idx ¼³Á¤Çϱâ
666        switch(direction) {
667                case APP_VK_LEFT:
668                        if(cur_dim==0) cur_dim=p_num_dim-1;
669                        else           cur_dim--;
670                       
671                        cur_idx=0;
672                        start_idx=0;
673                       
674                        break;
675                       
676                case APP_VK_RIGHT:
677                        if(cur_dim==p_num_dim-1) cur_dim=0;
678                        else                     cur_dim++;
679                       
680                        cur_idx=0;     
681                        start_idx=0;
682                       
683                        break;
684               
685                case APP_VK_UP:
686                        if(cur_idx==0) {
687                                cur_idx=p_drrt_dim[cur_dim].num_value-1;
688                                start_idx=cur_idx-2;
689                                if(start_idx<0) start_idx=0;
690                        }
691                        else {
692                                cur_idx--;
693                                if(cur_idx<start_idx) start_idx=cur_idx;
694                        }
695                        break;
696                       
697                case APP_VK_DOWN:
698                        if(cur_idx==p_drrt_dim[cur_dim].num_value-1) {
699                                cur_idx=0;
700                                start_idx=0;
701                        }
702                        else {
703                                cur_idx++;
704                                if(cur_idx>start_idx+2) start_idx=cur_idx-2;
705                        }
706                        break;
707        }
708       
709        //»ó´Ü dim name ±×¸®±â
710        {
711                char str[16];
712               
713                sprintf(str, " (%d/%d)", cur_dim+1, p_num_dim);
714               
715                DMG_EraseRect(FRAME_SET_DRRT_X+60, FRAME_SET_DRRT_Y+20+3,
716                        FRAME_SET_DRRT_W-120, FRAME_SET_ROW_H-6, C_GRAY);
717               
718                DMG_PrintUStrEx(FRAME_SET_DRRT_X+60, FRAME_SET_DRRT_Y+20,
719                        FRAME_SET_DRRT_W-120-80 - 20, FRAME_SET_ROW_H, p_drrt_dim[cur_dim].name, 
720                        C_YELLOW, DMG_OPT_A_CT|DMG_OPT_A_MD);
721               
722                DMG_PrintUStrEx(FRAME_SET_DRRT_X+FRAME_SET_DRRT_W-140 - 20, FRAME_SET_DRRT_Y+20,
723                        80 + 20, FRAME_SET_ROW_H, DMG_MakeUniStr2(str), 
724                        C_YELLOW, DMG_OPT_A_CT|DMG_OPT_A_MD);
725        }
726       
727        //body ±×¸®±â
728        num_show=p_drrt_dim[cur_dim].num_value;
729        if(num_show>3) num_show=3;
730               
731        x=FRAME_SET_DRRT_X+20;
732        y=FRAME_SET_DRRT_Y+20+FRAME_SET_ROW_H;
733       
734        for(i=0; i<num_show; i++) {
735                //bg ±×¸®±â
736                DMG_EraseRect(x+2, y+(i*(FRAME_SET_ROW_H-2))+2, FRAME_SET_DRRT_W-66-2, 
737                        FRAME_SET_ROW_H-2, i+start_idx==cur_idx?C_YELLOW:CHEDIT_BG_COLOR_8);
738               
739                //item str
740                DMG_PrintUStr(x+2+40, y+(i*(FRAME_SET_ROW_H-2))+2+6, 
741                        p_drrt_dim[cur_dim].unit[i+start_idx].name, 
742                        i+start_idx==cur_idx?MC_ACTIVE:MC_NORMAL);
743               
744                //item lock
745                DRAW_IMAGE(x+FRAME_SET_DRRT_W-120, y+(i*(FRAME_SET_ROW_H-2))+2+5,
746                        p_drrt_dim[cur_dim].unit[i+start_idx].block?IMG_RRT_LOCK:IMG_RRT_UNLOCK);
747        }       
748       
749        App_OSD_CommonBox2(FRAME_SET_DRRT_X+20, 
750                        FRAME_SET_DRRT_Y+20+FRAME_SET_ROW_H+FRAME_SET_ROW_H*3, 
751                        FRAME_SET_DRRT_W-40, FRAME_SET_ROW_H*2, 2, 
752                        C_GRAY, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
753       
754        //ÇÏ´Ü Á¤º¸ ±×¸®±â
755        DMG_PrintUStrEx(FRAME_SET_DRRT_X+20+10, 
756                FRAME_SET_DRRT_Y+20+FRAME_SET_ROW_H+FRAME_SET_ROW_H*3+5,
757                FRAME_SET_DRRT_W-40-20, FRAME_SET_ROW_H*2-10,
758                p_drrt_dim[cur_dim].unit[cur_idx].desc, MC_INACTIVE,
759                DMG_OPT_A_LT|DMG_OPT_A_TP);
760       
761        { //scroll
762                int scroll_h=DRRT_SCROLL_H-42-36;
763                int scroll_pos;
764                //scroll pos x,y °áÁ¤.
765                x=FRAME_SET_DRRT_X+FRAME_SET_DRRT_W-20-DRRT_SCROLL_W+2;
766                y=FRAME_SET_DRRT_Y+20+FRAME_SET_ROW_H+4+18;
767               
768                scroll_pos=p_drrt_dim[cur_dim].num_value-3;
769               
770                DMG_EraseRect(x, y, 18, scroll_h+36, CHEDIT_BG_COLOR_8);
771               
772                if(scroll_pos>1) {
773                        DRAW_IMAGE(x, y+start_idx*scroll_h/scroll_pos, DST_scroll_arrow_bar_480);
774                }
775        }
776       
777}
778
779void AppO_EraseSetDrating()
780{
781        DMG_EraseRect(FRAME_SET_DRRT_X, FRAME_SET_DRRT_Y, FRAME_SET_DRRT_W, 
782                        FRAME_SET_DRRT_H, 0x0);
783}
784
785void AppO_ToggleSetDrating()
786{
787        int i;
788        BOOL block;
789        int plus_one=(p_drrt_dim[cur_dim].bfirst_empty)?1:0;
790       
791        //°ª º¯°æ
792        block=1-p_drrt_dim[cur_dim].unit[cur_idx].block;
793               
794        p_drrt_dim[cur_dim].unit[cur_idx].block=block; 
795       
796        AppRrt_ChangeRrtOption(cur_dim, cur_idx+plus_one, 
797                block?RRT_OPTION_BLOCK:RRT_OPTION_UNBLOCK, TRUE);
798               
799        //grad üũ
800        if(p_drrt_dim[cur_dim].grad_scale) {
801                if(block) { //¾Æ·¡ÂÊÀ» ´Ù block ½ÃÄÑ¾ß ÇÔ.
802                        for(i=cur_idx+1; i<p_drrt_dim[cur_dim].num_value; i++) {
803                                p_drrt_dim[cur_dim].unit[i].block=TRUE;
804                                AppRrt_ChangeRrtOption(cur_dim, i+plus_one, 
805                                        block?RRT_OPTION_BLOCK:RRT_OPTION_UNBLOCK, TRUE);
806                        }
807                }
808                else { //À§ÂÊÀ» ´Ù block ÇØÁ¦½ÃÄÑ¾ß ÇÔ.
809                        for(i=0; i<cur_idx; i++) {
810                                p_drrt_dim[cur_dim].unit[i].block=FALSE;
811                                AppRrt_ChangeRrtOption(cur_dim, i+plus_one, 
812                                        block?RRT_OPTION_BLOCK:RRT_OPTION_UNBLOCK, TRUE);
813                        }
814                }
815        }
816       
817        //º¯°æµÈ Á¤º¸¸¦ È­¸é¿¡ º¸¿©ÁÖ±â
818        AppO_DrawSetDrating(0, FALSE);
819}
820
821
822#if COMMENT
823__UPDATE_DRATING__() {}
824#endif
825
826#define FRAME_UPDATE_DRRT_X 170
827#define FRAME_UPDATE_DRRT_Y 95
828#define FRAME_UPDATE_DRRT_W 380
829#define FRAME_UPDATE_DRRT_H 290
830
831void AppO_DrawDrrtUpdate(int progress, BOOL bdraw_bg)
832{
833        if(bdraw_bg) {
834                DMG_EraseRect(FRAME_UPDATE_DRRT_X, FRAME_UPDATE_DRRT_Y, FRAME_UPDATE_DRRT_W, 
835                        FRAME_UPDATE_DRRT_H, 0x0);
836               
837                App_OSD_CommonBox1(FRAME_UPDATE_DRRT_X, FRAME_UPDATE_DRRT_Y, 
838                        FRAME_UPDATE_DRRT_W, FRAME_UPDATE_DRRT_H, 6, 2, CHEDIT_BG_COLOR_1, 
839                        CHEDIT_BG_COLOR_3, CHEDIT_BG_COLOR_2);
840               
841                App_OSD_CommonBox2(FRAME_UPDATE_DRRT_X+20, FRAME_UPDATE_DRRT_Y+20, 
842                        FRAME_UPDATE_DRRT_W-40, FRAME_UPDATE_DRRT_H-40, 2, 
843                        CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
844               
845                //±ÛÀÚ.
846                PRINT_STR_EX(FRAME_UPDATE_DRRT_X, FRAME_UPDATE_DRRT_Y, FRAME_UPDATE_DRRT_W, 
847                        FRAME_UPDATE_DRRT_H-60, RATING_UPDATE_DRRT, C_CYAN, DMG_OPT_A_CT|DMG_OPT_A_MD);
848        }
849       
850        //progress bar
851        App_OSD_DrawProgressBar(0x1, FRAME_UPDATE_DRRT_X+90, FRAME_UPDATE_DRRT_Y+210,
852                (FRAME_UPDATE_DRRT_W-180)/3, progress);
853}
854
855void AppO_EraseDrrtUpdate()
856{
857        DMG_EraseRect(FRAME_UPDATE_DRRT_X, FRAME_UPDATE_DRRT_Y, FRAME_UPDATE_DRRT_W, 
858                FRAME_UPDATE_DRRT_H, 0x0);
859}
860
861void AppO_CompleteDrrtUpdate()
862{
863        DMG_EraseRect(FRAME_UPDATE_DRRT_X, FRAME_UPDATE_DRRT_Y, FRAME_UPDATE_DRRT_W, 
864                FRAME_UPDATE_DRRT_H, 0x0);
865       
866        App_OSD_CommonBox1(FRAME_UPDATE_DRRT_X, FRAME_UPDATE_DRRT_Y, 
867                FRAME_UPDATE_DRRT_W, FRAME_UPDATE_DRRT_H, 6, 2, CHEDIT_BG_COLOR_1, 
868                CHEDIT_BG_COLOR_3, CHEDIT_BG_COLOR_2);
869       
870        App_OSD_CommonBox2(FRAME_UPDATE_DRRT_X+20, FRAME_UPDATE_DRRT_Y+20, 
871                FRAME_UPDATE_DRRT_W-40, FRAME_UPDATE_DRRT_H-40, 2, 
872                CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
873       
874        //±ÛÀÚ.
875        PRINT_STR_EX(FRAME_UPDATE_DRRT_X, FRAME_UPDATE_DRRT_Y, FRAME_UPDATE_DRRT_W, 
876                FRAME_UPDATE_DRRT_H, RATING_DRRT_COMPLETE, C_CYAN, DMG_OPT_A_CT|DMG_OPT_A_MD);
877       
878}
879
880void AppO_FailedDrrtUpdate()
881{
882        DMG_EraseRect(FRAME_UPDATE_DRRT_X, FRAME_UPDATE_DRRT_Y, FRAME_UPDATE_DRRT_W, 
883                FRAME_UPDATE_DRRT_H, 0x0);
884       
885        App_OSD_CommonBox1(FRAME_UPDATE_DRRT_X, FRAME_UPDATE_DRRT_Y, 
886                FRAME_UPDATE_DRRT_W, FRAME_UPDATE_DRRT_H, 6, 2, CHEDIT_BG_COLOR_1, 
887                CHEDIT_BG_COLOR_3, CHEDIT_BG_COLOR_2);
888       
889        App_OSD_CommonBox2(FRAME_UPDATE_DRRT_X+20, FRAME_UPDATE_DRRT_Y+20, 
890                FRAME_UPDATE_DRRT_W-40, FRAME_UPDATE_DRRT_H-40, 2, 
891                CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
892       
893        //±ÛÀÚ.
894        PRINT_STR_EX(FRAME_UPDATE_DRRT_X, FRAME_UPDATE_DRRT_Y, FRAME_UPDATE_DRRT_W, 
895                FRAME_UPDATE_DRRT_H, RATING_DRRT_FAILED, C_CYAN, DMG_OPT_A_CT|DMG_OPT_A_MD);
896}
897       
898
899#if COMMENT
900__CHANGE_PIN__() {}
901#endif
902
903#define FRAME_CHANGE_PIN_H 280
904#define CHANGE_PIN_ROW_H 120
905
906void AppO_DrawChangePin()
907{
908        int x, y;
909        int width = 340;
910        int height = FRAME_CHANGE_PIN_H;
911        int orig_font_size=0;
912        char str[64];
913        int i;
914        int rw=42;
915        int rh=42;
916        int inter_rect=12;
917        #define COLOR_GRAY 0xff808080
918
919        x = (720-width)/2;
920        y = (480-height)/2;
921        App_OSD_CommonBox1(x, y, width, height, 6, 2, 
922                        COLOR_BG_LIGHT_BLUE, COLOR_BG_OUT_BLUE, COLOR_LINE_SKY_BLUE);
923        x=x+16;
924        y=y+16;
925        width=width-32;
926        height=height-32;
927        App_OSD_CommonBox2(x, y, width, height, 2, 
928                        COLOR_BG_IN_BLUE, COLOR_LINE_DEEP_BLUE, COLOR_LINE_WEAK_BLUE);
929
930        x=x+2;
931        y=y+10;
932        width=width-4;
933        height=height-20;
934       
935        GET_STR2(str, RATING_PIN_CHANGE1);
936       
937        DMG_PrintStrEx(x, y, width, 40, str, MC_NORMAL, DMG_OPT_A_CT|DMG_OPT_A_MD);
938       
939        DMG_EraseRect(x+53, y+50, rw, rh, C_YELLOW);
940       
941        for(i=0; i<3; i++) {
942                DMG_EraseRect(x+53+(i+1)*(rw+inter_rect), y+50, rw, rh, COLOR_GRAY);
943        }
944       
945        GET_STR2(str, RATING_PIN_CHANGE2);
946       
947        y+=CHANGE_PIN_ROW_H;
948       
949        DMG_PrintStrEx(x, y, width, 40, str, MC_NORMAL, DMG_OPT_A_CT|DMG_OPT_A_MD);
950       
951        for(i=0; i<4; i++) {
952                DMG_EraseRect(x+53+i*(rw+inter_rect), y+50, rw, rh, COLOR_GRAY);
953        }
954       
955}
956
957
958void AppO_UpdateChangePin(int row, int pos)
959{
960        //ÇØ´ç À§Ä¡¸¦ ±×¸®°í ´ÙÀ½ À§Ä¡¸¦ ³ë¶õ»öÀ¸·Î º¯°æ.
961        int x=(720-340)/2+16+2;
962        int y=(480-FRAME_CHANGE_PIN_H)/2+16+10;
963        int rw=42;
964        int rh=42;
965        int inter_rect=12;
966        char str[2]="*";
967        int orig_font_size=DMG_GetFontSize();
968       
969        DMG_SetFontSize(47);
970       
971        if(pos>=4 || pos<0) return;
972               
973        if(row!=0) y+=CHANGE_PIN_ROW_H;
974       
975        DMG_PrintStrEx(x+53+pos*(rw+inter_rect)-5, y+50-5+10, rw+10, rh+10, str, MC_ACTIVE, DMG_OPT_A_CT|DMG_OPT_A_MD);
976       
977        if(pos<3)
978                DMG_EraseRect(x+53+(pos+1)*(rw+inter_rect), y+50, rw, rh, C_YELLOW);
979        else if(pos==3 && row==0)
980                DMG_EraseRect(x+53, y+50+CHANGE_PIN_ROW_H, rw, rh, C_YELLOW);
981       
982        DMG_SetFontSize(orig_font_size);
983}
984
985void AppO_EraseChangePin()
986{
987        int x, y;
988        int width = 340;
989        int height = FRAME_CHANGE_PIN_H;
990       
991        x = (720-width)/2;
992        y = (480-height)/2;
993       
994        DMG_EraseRect(x, y, width, height, 0x0);
995}
996
997
998#if COMMENT
999__NO_DRRT_AVAILABLE__() {}
1000#endif
1001
1002#define FRAME_NO_DRRT_X 170
1003#define FRAME_NO_DRRT_Y 170
1004#define FRAME_NO_DRRT_W 380
1005#define FRAME_NO_DRRT_H 140
1006
1007void AppO_DrawNoDrrtWarning()
1008{
1009        DMG_EraseRect(FRAME_NO_DRRT_X, FRAME_NO_DRRT_Y, FRAME_NO_DRRT_W, 
1010                FRAME_NO_DRRT_H, 0x0);
1011       
1012        App_OSD_CommonBox1(FRAME_NO_DRRT_X, FRAME_NO_DRRT_Y, 
1013                FRAME_NO_DRRT_W, FRAME_NO_DRRT_H, 6, 2, CHEDIT_BG_COLOR_1, 
1014                CHEDIT_BG_COLOR_3, CHEDIT_BG_COLOR_2);
1015       
1016        App_OSD_CommonBox2(FRAME_NO_DRRT_X+20, FRAME_NO_DRRT_Y+20, 
1017                FRAME_NO_DRRT_W-40, FRAME_NO_DRRT_H-40, 2, 
1018                CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
1019               
1020        //¿ÞÂÊ ´À³¦Ç¥, À̹ÌÁö ¾øÀ½...
1021        PRINT_STR_EX(FRAME_NO_DRRT_X, FRAME_NO_DRRT_Y, FRAME_NO_DRRT_W, 
1022                        FRAME_NO_DRRT_H, RATING_NO_DRRT, C_CYAN, DMG_OPT_A_CT|DMG_OPT_A_MD);
1023       
1024}
1025
1026void AppO_EraseNoDrrtWarning()
1027{
1028        DMG_EraseRect(FRAME_NO_DRRT_X, FRAME_NO_DRRT_Y, FRAME_NO_DRRT_W, 
1029                FRAME_NO_DRRT_H, 0x0);
1030}
1031
1032#if COMMENT
1033__DRRT_WARNING__() {}
1034#endif
1035
1036#define FRAME_UPDATE_WARN_X 170
1037#define FRAME_UPDATE_WARN_Y 95
1038#define FRAME_UPDATE_WARN_W 380
1039#define FRAME_UPDATE_WARN_H 290
1040
1041#define BTN1_WIDTH 120
1042
1043#define BTN1_UPDATE_WARN_X (360-10-BTN1_WIDTH)
1044#define BTN2_UPDATE_WARN_X (360+10)
1045
1046#define BTN_UPDATE_WARN_Y 290
1047
1048#define FRAME_UPDATE_WARN_ROW_H 41
1049
1050void AppO_DrawDrrtUpdateWarning(BOOL byes, BOOL bdraw_bg)
1051{
1052        int i;
1053       
1054        if(bdraw_bg) {
1055                DMG_EraseRect(FRAME_UPDATE_WARN_X, FRAME_UPDATE_WARN_Y, FRAME_UPDATE_WARN_W, 
1056                        FRAME_UPDATE_WARN_H, 0x0);
1057               
1058                App_OSD_CommonBox1(FRAME_UPDATE_WARN_X, FRAME_UPDATE_WARN_Y, 
1059                        FRAME_UPDATE_WARN_W, FRAME_UPDATE_WARN_H, 6, 2, CHEDIT_BG_COLOR_1, 
1060                        CHEDIT_BG_COLOR_3, CHEDIT_BG_COLOR_2);
1061               
1062                App_OSD_CommonBox2(FRAME_UPDATE_WARN_X+20, FRAME_UPDATE_WARN_Y+20, 
1063                        FRAME_UPDATE_WARN_W-40, FRAME_UPDATE_WARN_H-40, 2, 
1064                        CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
1065               
1066                //±ÛÀÚ.
1067                PRINT_STR_EX(FRAME_UPDATE_WARN_X, FRAME_UPDATE_WARN_Y, FRAME_UPDATE_WARN_W, 
1068                        FRAME_UPDATE_WARN_H-80, RATING_UPDATE_WARNING, C_CYAN, 
1069                        DMG_OPT_A_CT|DMG_OPT_A_MD);
1070        }
1071       
1072        //Yes, No button
1073        App_OSD_DrawButton(byes?1:0, BTN1_UPDATE_WARN_X,BTN_UPDATE_WARN_Y,BTN1_WIDTH);
1074        PRINT_STR_EX(BTN1_UPDATE_WARN_X,BTN_UPDATE_WARN_Y+2,BTN1_WIDTH, 
1075                FRAME_UPDATE_WARN_ROW_H, STR_YES, byes?MC_ACTIVE:MC_INACTIVE, 
1076                DMG_OPT_A_CT|DMG_OPT_A_MD);
1077        App_OSD_DrawButton(byes?0:1, BTN2_UPDATE_WARN_X,BTN_UPDATE_WARN_Y,BTN1_WIDTH);
1078        PRINT_STR_EX(BTN2_UPDATE_WARN_X,BTN_UPDATE_WARN_Y+2,BTN1_WIDTH, 
1079                FRAME_UPDATE_WARN_ROW_H, STR_NO, byes?MC_INACTIVE:MC_ACTIVE, 
1080                DMG_OPT_A_CT|DMG_OPT_A_MD);
1081
1082}
1083
1084void AppO_EraseDrrtUpdateWarning()
1085{
1086        DMG_EraseRect(FRAME_UPDATE_WARN_X, FRAME_UPDATE_WARN_Y, FRAME_UPDATE_WARN_W, 
1087                        FRAME_UPDATE_WARN_H, 0x0);
1088}
1089
1090
1091#if COMMENT
1092__Rating_Warning__() {}
1093#endif
1094
1095#define RATING_WARNING_FRAME_W 580
1096#define RATING_WARNING_LINE_H 40
1097
1098void App_OSD_DrawRatingBlock(UINT16 *code)
1099{
1100        int frame_w=RATING_WARNING_FRAME_W;
1101        int line_h=RATING_WARNING_LINE_H;
1102
1103        int frame_h=line_h*3+40;
1104        int frame_x=(720-frame_w)/2;
1105        int frame_y=(480-frame_h)/2;
1106       
1107        DMG_EraseRect(frame_x, frame_y, frame_w, frame_h, 0x0);
1108       
1109        App_OSD_CommonBox1(frame_x, frame_y, frame_w, frame_h, 6, 2, 
1110                CHEDIT_BG_COLOR_1, CHEDIT_BG_COLOR_3, CHEDIT_BG_COLOR_2);
1111       
1112        App_OSD_CommonBox2(frame_x+20, frame_y+20, frame_w-40, frame_h-40, 2, 
1113                CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
1114       
1115        //±ÛÀÚ.
1116        PRINT_STR_EX(frame_x+20, frame_y+20, frame_w-40, line_h, 
1117                RATING_BANNER1, C_YELLOW, DMG_OPT_A_CT|DMG_OPT_A_MD);
1118       
1119        PRINT_STR_EX(frame_x+20, frame_y+20+line_h, frame_w-40, line_h, 
1120                RATING_BANNER2, C_WHITE, DMG_OPT_A_CT|DMG_OPT_A_MD);
1121               
1122        DMG_PrintUStrEx(frame_x+20, frame_y+20+line_h*2, frame_w-40, line_h, 
1123                code, C_WHITE, DMG_OPT_A_CT|DMG_OPT_A_MD);
1124}
1125
1126
1127
1128void App_OSD_EraseRatingBlock()
1129{
1130        int frame_w=RATING_WARNING_FRAME_W;
1131        int line_h=RATING_WARNING_LINE_H;
1132
1133        int frame_h=line_h*3+40;
1134        int frame_x=(720-frame_w)/2;
1135        int frame_y=(480-frame_h)/2;
1136       
1137        DMG_EraseRect(frame_x, frame_y, frame_w, frame_h, 0x0);
1138}
1139
1140
1141#if COMMENT
1142__Test_Func__() {}
1143#endif
1144
1145
1146void show_draw_map()
1147{
1148        int i,j;
1149       
1150       
1151        for(i=0; i<7; i++) {
1152                for(j=0; j<7; j++) {
1153                        DHL_OS_Printf("%d ", p_draw_map[i][j]);
1154                }
1155                DHL_OS_Printf("\n");
1156        }
1157       
1158}
Note: See TracBrowser for help on using the repository browser.