source: svn/newcon3bcm2_21bu/dst/app/src/kview/OSD/App_OSD_Epg2.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: 13.8 KB
Line 
1/****************************************************************************
2* NAME: App_OSD_Epg2.c
3*----------------------------------------------------------------------------
4* Copyright (c) DIGITAL STREAM Technology Inc.
5*----------------------------------------------------------------------------
6* CREATED_BY: Yong Dae Park
7* CREATION_DATE: 2011/07/08
8* $Author: x2silo $
9* $Revision: 1.0 $
10* $Date: 2011/07/08 12:00:00 $
11*----------------------------------------------------------------------------
12* PURPOSE:
13* - EPG OSD implement
14*****************************************************************************/
15
16
17#include "App_Main.h"
18#include "App_OSD_Common.h"
19
20#include "DLIB_PSI_Utils.h"
21
22#include "App_Fnc_Common.h"
23#include "App_Fnc_ChTune.h"
24#include "App_Fnc_Time.h"
25
26#include "App_OSD_Banner.h"
27#include "App_OSD_Epg2.h"
28#include "App_Res_Resources.h"
29
30DHL_MODULE("@o_epg", 0);
31
32
33/* EPG coordinates define */
34#define EPG_BOX_X         64
35#define EPG_BOX_Y         48
36#define EPG_BOX_W         592
37#define EPG_BOX_H         384
38
39#define EPG_CH_BG_X       82
40#define EPG_CH_BG_Y       66
41#define EPG_CH_BG_W       555
42#define EPG_CH_BG_H       72
43
44#define EPG_DETAIL_BOX_Y  207
45#define EPG_DETAIL_BOX_H1 140
46#define EPG_DETAIL_BOX_H2 (166+4)
47
48#define EPG_DETAIL_CH_INFO_Y 135
49#define EPG_DETAIL_CH_INFO_W 500
50#define EPG_DETAIL_TIME_INFO_Y 166
51#define EPG_DETAIL_TIME_INFO_W 300
52
53#define EPG_CH_DTV_ICON_X 90
54#define EPG_CH_DTV_ICON_Y 109
55
56#define EPG_CH_TEXT_X 127
57#define EPG_CH_TEXT_Y 108
58
59#define EPG_DTV_ICON_X    90
60#define EPG_DTV_ICON_Y    148
61
62#define EPG_CUR_TIME_X          (402-80)
63#define EPG_CUR_TIME_Y          74
64#define EPG_CUR_TIME_W          (223+80)
65#define EPG_CUR_TIME_H          30
66
67#define EPG_CH_INFO_TEXT_X              90
68#define EPG_CH_INFO_TEXT_Y              140
69#define EPG_CH_INFO_TEXT_W              (243+300)
70#define EPG_CH_INFO_TEXT_H              30
71#define EPG_TIME_INFO_TEXT_X    (351-1)
72#define EPG_TIME_INFO_TEXT_W    (257+200)
73
74#define EPG_CH_INFO_BOX_X               82
75#define EPG_CH_INFO_BOX_Y               138
76#define EPG_CH_INFO_BOX_W               259
77#define EPG_CH_INFO_BOX_H   (EPG_INFO_GAP*7)
78
79#define EPG_TIME_INFO_BOX_X     342
80#define EPG_TIME_INFO_BOX_W             271
81#define EPG_INFO_H                              34
82#define EPG_INFO_GAP                    34
83
84#define EPG_MENU_KEY_X  (103-8)
85#define EPG_MENU_KEY_Y  (392-3)
86#if 0
87#define EPG_MENU_KEY_W  104
88#else
89#define EPG_MENU_KEY_W  208
90#endif
91#define EPG_MENU_KEY_H  20
92#define EPG_OK_KEY_X    252
93#define EPG_OK_KEY_W    250//116
94
95/* EPG event information position */
96#define EPG_INFO_X        73    // EPG event information X position
97#define EPG_INFO_Y        125   // EPG event information Y position
98#define EPG_INFO_W        275   // EPG event information entire width
99//#define EPG_INFO_H        37   // EPG event information entire height (2 line height)
100
101
102/* EPG detail banner position */
103#define EPG_DINFO_X       90    // EPG detail banner X position
104#define EPG_DINFO_Y       110   // EPG detail banner Y position
105#define EPG_DINFO_W       415   // EPG event information entire width
106
107/* EPG scroll position */
108#define EPG_SCROLL_UP_X         615   // EPG scroll image X position (À§ÂÊ È­»ìÇ¥ XÁÂÇ¥)
109#define EPG_SCROLL_UP_Y         139   // EPG scroll image Y position (À§ÂÊ È­»ìÇ¥ YÁÂÇ¥)
110#define EPG_SCROLL_DOWN_Y       355   // EPG detail scroll imgae Y position
111
112/* EPG detail info text box position */
113#define EPG_DETAIL_TEXT_W       505
114#define EPG_DETAIL_TEXT_H       150+12
115
116#define EPG_SCROLL_BG_X         612
117#define EPG_SCROLL_BG_Y         138
118#define EPG_SCROLL_BG_W         25    // EPG scroll pointer width (scroll À̹ÌÁö Áß Á¦ÀÏ ³ÐÀº °Í ±âÁØ)
119#define EPG_SCROLL_BG_H         238   // EPG scroll entire area height (scroll ±¸¿ª Àüü ±æÀÌ)
120#define EPG_SCROLL_BG_MID_H     194
121
122#define EPG_SCROLL_POINT_X      615
123#define EPG_SCROLL_POINT_Y      159
124#define EPG_SCROLL_POINT_H      34
125
126#define C_EPG_TITLE             0xFF1E3C5F
127#define C_EPG_DATA              0xFF8CE1FF
128#define C_EPG_HIGHLIGHT 0xFF000000
129#define C_EPG_MENUKEY1  0xFFD7E8F7
130#define C_EPG_MENUKEY2  0xFFB2E0F8
131
132#define DEF_FONT_SIZE 23//24
133
134static void p_draw_cell(tApp_EpgCell *pcell, int idx, BOOL berase, BOOL bselect)
135{
136        char tstr[32];
137        int height=34;
138        APP_TIME_T tm_epg_start, tm_epg_end;
139        UINT32 c_font=bselect?C_EPG_HIGHLIGHT:C_EPG_DATA;
140               
141        if(berase) {
142                App_OSD_RestoreScreen(EPG_CH_INFO_BOX_X, EPG_CH_INFO_BOX_Y+idx*height,
143                        EPG_CH_INFO_BOX_W+EPG_TIME_INFO_BOX_W, height);
144        }
145               
146        //¿ÞÂÊ¿¡ ³¯Â¥, ¿À¸¥ ÂÊ¿¡ EIT ³»¿ëÀ» ÂïÀ½.
147        //³¯Â¥/½Ã°£ Âï±â               
148        AppTime_GetTimeFromGPS(
149                pcell->prgm_start, &tm_epg_start);
150        AppTime_GetTimeFromGPS(
151                pcell->prgm_start+pcell->prgm_length, &tm_epg_end);
152               
153        App_MakeDateTimeString(tstr, tm_epg_start, 7);
154        strcat(tstr, " ~ ");
155        App_MakeDateTimeString(tstr+strlen(tstr), tm_epg_end, 7);
156       
157        //highlightÀÌ¸é ¹è°æÀ» ³ë¶õ »öÀ¸·Î ±×·Á¾ß ÇÔ.
158        if(bselect) {
159                DMG_EraseRect(EPG_CH_INFO_BOX_X+2, EPG_CH_INFO_BOX_Y+idx*height+2,
160                        EPG_CH_INFO_BOX_W-4, height-4, EPG_BG_COLOR_1);
161                DMG_EraseRect(EPG_TIME_INFO_BOX_X+2, EPG_CH_INFO_BOX_Y+idx*height+2,
162                        EPG_TIME_INFO_BOX_W-5, height-4, EPG_BG_COLOR_1);
163        }
164       
165        DMG_PrintStrEx(EPG_CH_INFO_BOX_X+10, EPG_CH_INFO_BOX_Y+idx*height, 
166                EPG_CH_INFO_BOX_W-15, height, tstr, c_font, 0);
167       
168        //EIT Âï±â
169        DMG_PrintUStrEx(EPG_TIME_INFO_BOX_X+10, EPG_CH_INFO_TEXT_Y+idx*height,
170                EPG_TIME_INFO_BOX_W-10, height, pcell->str, c_font, 0);
171}
172
173
174
175static void p_draw_eits(tApp_EpgInfo *pepg_info)
176{
177        int i;
178       
179        //±×¸®±â Àü¿¡ È­¸éÀ» refreshÇÔ.
180        App_OSD_RestoreScreen(EPG_CH_INFO_BOX_X, EPG_CH_INFO_BOX_Y, 
181                EPG_CH_INFO_BOX_W+EPG_TIME_INFO_BOX_W, EPG_CH_INFO_BOX_H);
182       
183        for(i=0; i<MAX_NUM_EPG_LINE && i<pepg_info->num_cell; i++) {
184               
185                tApp_EpgCell *pcell=&pepg_info->cell_list[pepg_info->start_idx+i];
186               
187                if(!pcell->bexist) { //exist°¡ ¾Æ´Ï¸é continue°¡ ¾Æ´Ï¶ó break°¡ ¸Â´ÂµíÁ¾
188                        break;
189                }
190               
191                p_draw_cell(pcell, i, FALSE, i==pepg_info->cur_idx);
192        }
193               
194}
195
196
197static void p_draw_current_time()
198{
199        APP_TIME_T cur_time;
200        char tstr[24];
201       
202        AppTime_GetCurTime(&cur_time, 1);
203       
204        //ÇöÀç À§Ä¡¸¦ Áö¿ö¾ß ÇÔ.
205        App_OSD_RestoreScreen(EPG_CUR_TIME_X, EPG_CUR_TIME_Y, EPG_CUR_TIME_W, EPG_CUR_TIME_H);
206       
207        App_MakeDateTimeString(tstr, cur_time, 0);
208       
209        DMG_PrintStrEx(EPG_CUR_TIME_X, EPG_CUR_TIME_Y, EPG_CUR_TIME_W, EPG_CUR_TIME_H, 
210                tstr, C_EPG_TITLE, DMG_OPT_A_RT);
211}
212
213
214
215
216static void p_draw_eit_info(tApp_EpgInfo *pepg_info, BOOL bepg_detail)
217{
218        int x;
219        tApp_EpgCell *pcell=&pepg_info->cell_list[pepg_info->start_idx+pepg_info->cur_idx];
220        char tstr[64];
221       
222        DMG_SetFontSize(DEF_FONT_SIZE);
223       
224        if(!bepg_detail) {
225                //ÇöÀç À§Ä¡¸¦ Áö¿ö¾ß ÇÔ
226                //EPG DETAILÀÎ °æ¿ì´Â µû·Î Áö¿öÁÙ ÇÊ¿ä ¾øÀ½.
227                App_OSD_RestoreScreen(EPG_CH_INFO_TEXT_X, EPG_CH_INFO_TEXT_Y, 
228                        EPG_CH_INFO_TEXT_W, EPG_CH_INFO_TEXT_H);
229        }
230       
231        //»ó´Ü ÇöÀç time Âï±â
232        p_draw_current_time();
233       
234        //¾Æ·§Á٠ä³Î Á¤º¸ Âï±â
235        // ¾ÆÀÌÄÜ major-minor ä³ÎÀ̸§
236        if(pepg_info->baudio_only) { //audio only
237                DRAW_IMAGE(EPG_CH_DTV_ICON_X, EPG_CH_DTV_ICON_Y, EPG_DTV_ICON_AUD1);
238        }
239        else {                 
240                // Draw focused DTV icon
241                switch(pepg_info->video_type) {
242                        case eDHL_DISP_1920x1080i:
243                        case eDHL_DISP_1280x720p:       
244                                DRAW_IMAGE(EPG_CH_DTV_ICON_X, EPG_CH_DTV_ICON_Y, EPG_DTV_ICON_HD2);                                     
245                                break;
246                       
247                        default:
248                                DRAW_IMAGE(EPG_CH_DTV_ICON_X, EPG_CH_DTV_ICON_Y, EPG_DTV_ICON_SD2);
249                }
250        }
251       
252        //channel number
253        if(pepg_info->minor==1024) sprintf(tstr, "%d", pepg_info->major);
254        else sprintf(tstr, "%d-%d", pepg_info->major, pepg_info->minor);
255               
256        x=DMG_PrintStr(EPG_CH_TEXT_X, EPG_CH_TEXT_Y, tstr, C_EPG_TITLE)+10;
257       
258        //short_name
259        DMG_PrintUStr(x, EPG_CH_TEXT_Y, pepg_info->ch_name, C_EPG_TITLE);
260       
261       
262        if(bepg_detail) {
263                APP_TIME_T tm_epg_start, tm_epg_end;
264               
265                //epg Á¤º¸ Ç¥±â
266                DMG_PrintUStrEx(EPG_CH_DTV_ICON_X, EPG_CH_TEXT_Y+30, EPG_CH_INFO_TEXT_W, 
267                        EPG_INFO_GAP, pcell->str, C_EPG_TITLE, 0);
268
269                //³¯Â¥ Ç¥±â 8/17 (wed) 5:00AM~5:44AM
270                AppTime_GetTimeFromGPS(pcell->prgm_start, &tm_epg_start);
271                AppTime_GetTimeFromGPS(pcell->prgm_start+pcell->prgm_length, &tm_epg_end);
272               
273               
274                App_MakeDateTimeString(tstr, tm_epg_start, 1);
275                strcat(tstr, "  "); //
276                App_MakeDateTimeString(tstr+strlen(tstr), tm_epg_start, 7);
277                strcat(tstr+strlen(tstr), " ~ ");
278                App_MakeDateTimeString(tstr+strlen(tstr), tm_epg_end, 7);
279               
280                DMG_PrintStrEx(EPG_CH_DTV_ICON_X, EPG_CH_TEXT_Y+(30*2), 
281                        EPG_TIME_INFO_TEXT_W, EPG_INFO_GAP, tstr, C_EPG_TITLE, 0);
282        }
283}
284
285
286static void p_draw_scroll(tApp_EpgInfo *pepg_info, BOOL bepg_detail)
287{
288        int x;
289        int y;
290        int w;
291        int h;
292        int scroll_id;
293       
294        if(bepg_detail) {
295                x=EPG_SCROLL_BG_X;
296                y=EPG_SCROLL_BG_Y;
297                w=EPG_SCROLL_BG_W;
298                h=EPG_SCROLL_BG_H;
299               
300                scroll_id=2;
301        }
302        else {
303                x=EPG_SCROLL_BG_X;
304                y=EPG_SCROLL_BG_Y;
305                w=EPG_SCROLL_BG_W;
306                h=EPG_SCROLL_BG_H;
307               
308                scroll_id=1;
309        }
310       
311        //¿µ¿ªÀÌ Å©Áö ¾Ê¾Æ¼­ ¹«Á¶°Ç Áö¿ì°í ´Ù½Ã ±×¸®µµ·Ï ÇÔ.
312        App_OSD_RestoreScreen(x, y, w, h);
313       
314        App_OSD_DrawScroll(x+3, y+2, scroll_id, pepg_info->num_cell, 
315                pepg_info->start_idx+pepg_info->cur_idx, TRUE);
316               
317        DHL_OS_Printf("##### num cell(%d), cur id(%d)\n", 
318                pepg_info->num_cell, pepg_info->start_idx+pepg_info->cur_idx);
319}
320
321static void p_draw_ett_scroll(tApp_ScrollInfo* pscroll_info)
322{
323        int x, y, w, h;
324
325        x=EPG_SCROLL_BG_X;
326        y=EPG_DETAIL_BOX_Y + 2;
327        w=EPG_SCROLL_BG_W;
328        h=EPG_DETAIL_BOX_H2 + 10;
329
330        //¿µ¿ªÀÌ Å©Áö ¾Ê¾Æ¼­ ¹«Á¶°Ç Áö¿ì°í ´Ù½Ã ±×¸®µµ·Ï ÇÔ.
331//      App_OSD_RestoreScreen(x, y, w, h);
332
333        App_OSD_DrawScroll(x+3, y, 0, pscroll_info->num_lines, 
334                pscroll_info->cur_idx, TRUE);
335}
336
337void AppOsd_GetDetailTextBoxSize(int* width, int* height)
338{
339        if(width)
340        {
341                *width = EPG_DETAIL_TEXT_W;
342        }
343
344        if(height)
345        {
346                *height = EPG_DETAIL_TEXT_H;
347        }
348}
349
350void AppOsd_DrawEpgBg(BOOL binit) //epg background¸¦ ±×¸²
351{
352        int i;
353       
354        DMG_SetFontSize(DEF_FONT_SIZE);
355       
356        //¸ÕÀú Àüü¸¦ Çѹø Áö¿öÁÜ
357        DMG_EraseRect(0, 0, 720, 480, 0x0);
358       
359        if(binit) {
360               
361                App_OSD_CommonBox1(EPG_BOX_X, EPG_BOX_Y, EPG_BOX_W, EPG_BOX_H, 6, 2, 
362                        CHEDIT_BG_COLOR_1, CHEDIT_BG_COLOR_3, CHEDIT_BG_COLOR_2);
363       
364                /* EPG CH info. background image */
365                App_OSD_CommonBox2(EPG_CH_BG_X, EPG_CH_BG_Y, EPG_CH_BG_W, EPG_CH_BG_H, 2, 
366                        CHEDIT_BG_COLOR_7, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
367                       
368                /* EPG event info. background image */
369                for(i = 0; i < 7; i++) {
370                        App_OSD_CommonBox2(EPG_CH_INFO_BOX_X, EPG_CH_INFO_BOX_Y+(i*EPG_INFO_GAP), 
371                                EPG_CH_INFO_BOX_W, EPG_INFO_H, 2, CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, 
372                                CHEDIT_BG_COLOR_4);
373                        App_OSD_CommonBox2(EPG_TIME_INFO_BOX_X, EPG_CH_INFO_BOX_Y+(i*EPG_INFO_GAP), 
374                                EPG_TIME_INFO_BOX_W, EPG_INFO_H, 2, CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, 
375                                CHEDIT_BG_COLOR_4);
376                }
377               
378                /* EPG scroll background image */
379                App_OSD_CommonBox2(EPG_SCROLL_BG_X, EPG_SCROLL_BG_Y, EPG_SCROLL_BG_W, 
380                        EPG_SCROLL_BG_H, 2, CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_4);
381                App_OSD_CommonBox3(EPG_TIME_INFO_BOX_X+EPG_TIME_INFO_BOX_W-1, 
382                        EPG_SCROLL_BG_Y+EPG_SCROLL_BG_H-2, 2, 2, CHEDIT_BG_COLOR_4);
383                App_OSD_CommonBox3(EPG_SCROLL_BG_X+EPG_SCROLL_BG_W-2, EPG_SCROLL_BG_Y, 2, 2, 
384                        CHEDIT_BG_COLOR_4);
385               
386                //backup ÇØµÒ
387                App_OSD_BackupScreen(EPG_BOX_X, EPG_BOX_Y, EPG_BOX_W, EPG_BOX_H);
388        }
389        else {
390                App_OSD_RestoreScreen(EPG_BOX_X, EPG_BOX_Y, EPG_BOX_W, EPG_BOX_H);
391        }
392       
393        //ÇÏ´Ü key guide
394        PRINT_STR_EX(EPG_MENU_KEY_X, EPG_MENU_KEY_Y, EPG_MENU_KEY_W, EPG_MENU_KEY_H, 
395                        EPG_BOTTOM1, C_EPG_MENUKEY1, DMG_OPT_A_LT);
396       
397        PRINT_STR_EX(EPG_OK_KEY_X+15, EPG_MENU_KEY_Y, EPG_OK_KEY_W, EPG_MENU_KEY_H, 
398                EPG_BOTTOM3, C_EPG_MENUKEY1, DMG_OPT_A_LT);
399        PRINT_STR_EX(EPG_OK_KEY_X+70, EPG_MENU_KEY_Y, EPG_OK_KEY_W, EPG_MENU_KEY_H, 
400                EPG_BOTTOM4, C_EPG_MENUKEY1, DMG_OPT_A_LT);
401}
402
403
404void AppOsd_DrawEpg(tApp_EpgInfo *pepg_info)
405{
406        //ÀüüÀûÀÎ size´Â 24.
407        DMG_SetFontSize(DEF_FONT_SIZE);
408       
409        //»ó´Ü info
410        p_draw_eit_info(pepg_info, FALSE);
411       
412        //Áß¾Ó EIT ½Ã°£:³»¿ë
413        p_draw_eits(pepg_info);
414       
415        //½ºÅ©·Ñ
416        p_draw_scroll(pepg_info, FALSE);
417}
418
419
420void AppOsd_UpdateEpg(tApp_EpgInfo *pepg_info, int prev_idx)
421{
422        tApp_EpgCell *pcell;
423       
424        DMG_SetFontSize(DEF_FONT_SIZE);
425       
426        //ÀÌÀü CELLÀ» ±×¸²
427        pcell=&pepg_info->cell_list[pepg_info->start_idx+prev_idx];
428        p_draw_cell(pcell, prev_idx, TRUE, FALSE);
429       
430        //ÇöÀç cellÀ» ±×¸²
431        pcell=&pepg_info->cell_list[pepg_info->start_idx+pepg_info->cur_idx];
432        p_draw_cell(pcell, pepg_info->cur_idx, TRUE, TRUE);
433       
434        //½ºÅ©·Ñ
435        p_draw_scroll(pepg_info, FALSE);
436}
437
438
439void AppOsd_DrawEpgArrow(tApp_EpgInfo *pepg_info)
440{
441        //ÇöÀç ½Ã°¢À» È­¸é¿¡ º¸¿©ÁÜ
442        // ÇÊ¿ä ¾øÀ½.
443}
444
445void AppOsd_DrawEpgInfo(tApp_EpgInfo *pepg_info)
446{
447        p_draw_eit_info(pepg_info, FALSE);
448}
449
450
451void AppOsd_DrawEpgDetailBg()
452{
453        DMG_SetFontSize(DEF_FONT_SIZE);
454
455                /* Epg Detail Banner Window */
456        DMG_EraseRect(EPG_BOX_X, EPG_BOX_Y, EPG_BOX_W, EPG_BOX_H, 0x0);
457       
458        App_OSD_CommonBox1(EPG_BOX_X, EPG_BOX_Y, EPG_BOX_W, EPG_BOX_H, 6, 2, 
459                CHEDIT_BG_COLOR_1, CHEDIT_BG_COLOR_3, CHEDIT_BG_COLOR_2);
460       
461        App_OSD_CommonBox2(EPG_CH_BG_X, EPG_CH_BG_Y, EPG_CH_BG_W, EPG_DETAIL_BOX_H1, 
462                2, CHEDIT_BG_COLOR_7, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
463
464        App_OSD_CommonBox2(EPG_CH_BG_X, EPG_DETAIL_BOX_Y, EPG_CH_BG_W, 
465                EPG_DETAIL_BOX_H2, 2, CHEDIT_BG_COLOR_8, CHEDIT_BG_COLOR_5, CHEDIT_BG_COLOR_4);
466       
467        //guide
468        PRINT_STR_EX(EPG_MENU_KEY_X, EPG_MENU_KEY_Y, EPG_MENU_KEY_W, EPG_MENU_KEY_H, 
469                EPG_BOTTOM1, C_EPG_MENUKEY1, DMG_OPT_A_LT);
470}
471
472void AppOsd_DrawEpgDetail(tApp_EpgInfo *pepg_info, UINT16 *ptext, BOOL bexist)
473{
474        AppOsd_DrawEpgDetailBg();
475       
476        //»ó´Ü Á¤º¸
477        p_draw_eit_info(pepg_info, TRUE);
478       
479        DMG_SetInterLineGap(0);
480
481        //epg detail Á¤º¸¸¦ ±×·ÁÁÜ..scrollÀº ¸·´Â°Ô ÁÁÁö ¾ÊÀ»±î?
482        if(bexist) {
483                DMG_PrintUStrEx(100, 216-3, EPG_DETAIL_TEXT_W, 150+12, ptext, 0xFFB2E0F8, DMG_OPT_A_TP);
484        }
485        else {
486                PRINT_STR_EX(100, 216-3, EPG_DETAIL_TEXT_W, 20, EPG_DETAIL_NO_INFO, 0xFFB2E0F8, DMG_OPT_A_LT);
487        }
488       
489}
490
491void AppOsd_DrawEpgDetailWithScroll(tApp_EpgInfo* pepg_info, tApp_ScrollInfo* pett_info, DMG_STR_RowInfo_t* pett_row_info, UINT16* ptext)
492{
493        int i;
494
495        AppOsd_DrawEpgDetailBg();
496
497        p_draw_ett_scroll(pett_info);
498
499        //»ó´Ü Á¤º¸
500        p_draw_eit_info(pepg_info, TRUE);
501
502        DMG_SetInterLineGap(0);
503
504        //DMG_PrintUStrEx(100, 216-3, 505, 150+12, ptext, 0xFFB2E0F8, DMG_OPT_A_TP);
505        for(i = 0 ; i < 6 ; i++)
506        {
507                if(pett_row_info)
508                {
509                        int str_start = pett_row_info[pett_info->cur_idx + i].idx;
510                        int str_len = pett_row_info[pett_info->cur_idx + i].len;
511                       
512                        DMG_PrintNUStrEx(100, 216-3 + i * 25, EPG_DETAIL_TEXT_W - EPG_SCROLL_BG_W, 25, 
513                                                        str_start, str_len, 
514                                                        ptext, 0xFFB2E0F8, DMG_OPT_A_TP);
515                }
516        }
517}
518
519void AppOsd_EraseEpg()
520{
521        DMG_EraseRect(0, 0, 720, 480, 0);
522}
523
524void AppOsd_EraseEpgDetail()
525{
526        DMG_EraseRect(0, 0, 720, 480, 0);
527}
528
Note: See TracBrowser for help on using the repository browser.