source: svn/newcon3bcm2_21bu/dst/app/src/Function/App_Fnc_EA_DDI.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: 6.6 KB
Line 
1/****************************************************************************
2* NAME: App_Fnc_EA_DDI.c
3*----------------------------------------------------------------------------
4* Copyright (c) DIGITAL STREAM Technology Inc.
5*----------------------------------------------------------------------------
6* CREATED_BY: Do Gon Lee
7* CREATION_DATE: 2009/08/25
8* $Author: foxhunt $
9* $Revision: 1.0 $
10* $Date: 2009/08/25 19:28:34 $
11*----------------------------------------------------------------------------
12* PURPOSE:
13* -
14*****************************************************************************/
15
16/*_____ I N C L U D E __________________________________________*/
17
18#include "App_Main.h"
19
20#if SUPPORT_EA
21
22#include "App_Fnc_Common.h"
23
24#include "DHL_Graphic.h"
25#include "DHL_DBG.h"
26
27#include "App_Fnc_ChTune.h"
28
29
30
31
32
33/*_____ D E F I N I T I O N ____________________________________*/
34
35#if COMMENT
36____DbgPrint____(){}
37#endif
38
39DHL_MODULE("@ead", 0);
40
41
42
43
44
45/*_____ F U N C T I O N ________________________________________*/
46
47#if COMMENT
48____Util____(){}
49#endif
50
51UINT32 EADDI_GetCurTime()
52{
53        UINT32 utc;
54        int err;
55       
56        err = DMW_GetUTCTime(NULL, &utc);
57        if (err != statusOK) return 0;
58               
59        return utc;
60}
61
62
63
64
65
66#if COMMENT
67____Osd____(){}
68#endif
69
70#if APP_PORTING
71BOOL EADDI_GetOSDToken()
72{
73        return AppGrp_GetToken(APP_OSD_EA);
74}
75
76void EADDI_ReleaseOSDToken()
77{
78        AppGrp_ReleaseToken(APP_OSD_EA);
79}
80#endif  /* #if APP_PORTING */
81
82
83
84
85
86#if COMMENT
87____Channel____(){}
88#endif
89
90int EADDI_GetCh(int *major, int *minor, int *rf)
91{
92        DST_CURCHANNEL ChannelInfo;
93        App_Ucm_GetCurChInfo(&ChannelInfo);
94
95        if(major) *major=ChannelInfo.nMajor;
96        if(minor) *minor=ChannelInfo.nMinor;
97        if(rf)    *rf=ChannelInfo.nRF;
98       
99        return 0;
100}
101
102
103int EADDI_GetChBySrcId(int src_id, int *major, int *minor)
104{
105        int i;
106       
107        DMW_MSC_LockUcm();
108       
109        for (i=0; i<g_UCM_number; i++) 
110        {
111                if(g_UCM[i].source_id==src_id) {
112                        if(major) *major=g_UCM[i].Major;
113                        if(minor) *minor=g_UCM[i].Minor;
114                        DMW_MSC_UnlockUcm();
115                        return 0;
116                }
117        }
118       
119        DMW_MSC_UnlockUcm();
120        return -1;
121}
122
123void EADDI_DrawChBanner()
124{
125        App_DrawCurChBanner();
126}
127
128void EADDI_EraseChBanner()
129{
130        App_CancelChBanner();
131}
132
133
134BOOL EADDI_ChTune(int major, int minor)
135{
136        int nUid, uid;
137        int flag=0;
138        DST_CURCHANNEL ChannelInfo;
139
140        flag = CSF_ATSC_Only | CSF_Include_PSI | CSF_Include_Skipped | CSF_Include_Hidden;
141        nUid=DMW_MSC_FindChannelMajorMinor(major, minor, flag, 1, &uid);
142       
143        if (nUid < 1 || uid <= 0) {     /* 0630 neverdai modify */
144                DHL_OS_Printf("[EA] Tuning Fails..\n");
145                return;
146        }
147
148        App_Ucm_GetCurChInfo(&ChannelInfo);
149
150        if (uid != ChannelInfo.nUid)
151        {
152#if SUPPORT_ALANG_RECOVERY     
153        /* iskang 081208.
154                 »õ·Ó°Ô tunningÀ» ½ÃµµÇϸé user°¡ ¼±ÅÃÇÑ audio¸¦ resetÇÑ´Ù. */
155        App_ResetCurALANG();
156#endif
157                App_CancelSyncSTT();
158                App_EpgUpdateCancel();
159               
160#if APP_PORTING
161                App_CC_Stop();
162#else
163                DCC_Exit();
164#endif  /* #if APP_PORTING */
165               
166                /* cafrii 060713 comment, Ç×»ó pause sm ÇÏ°í ³ª¼­ stop video¸¦ ÇÑ´Ù. */
167                App_Pause_SMTask();
168
169                /* neverdai 0714 add */
170                /* App_EAMonStop; */
171
172                Dmc_StopVideo();        /* cafrii 060710 add */
173               
174                /* cafrii 060623 add
175                         ÀÌÀü ä³Î Æ©´×À» À§ÇÑ Á¤º¸ ÀúÀåÇÑ´Ù. */
176                App_SetPrevChannelInfo();
177                /*
178                        ä³Î º¹±¸¸¦ À§ÇØ Á¤º¸¸¦ NVM¿¡ ÀúÀåÇÑ´Ù.
179                        ÁÖÀÇ:
180                                ÀÌ UidTune ÇÔ¼ö°¡ »ç¿ëÀÚÀÇ Àǵµ¿¡ ÀÇÇØ È£ÃâµÈ °æ¿ì¿¡¸¸ ÀúÀåÇÑ´Ù.
181                                ¿¹¸¦ µé¾î EA force tuneÀÇ °æ¿ì¿¡´Â ÀúÀåÇÏ¸é ¾ÈµÈ´Ù. (ÀÌ ÇÔ¼ö »ç¿ë ºÒ°¡)
182                                Signal monitor¿¡¼­ Æ©´×ÇÏ´Â °æ¿ì¿¡´Â ±»ÀÌ ÇÒ ÇÊ¿ä´Â ¾ø´Ù.
183                                ä³Î º¹±¸ÀÇ Æ©´×Àº µ¿ÀÏÇÑ Á¤º¸¸¦ ±×´ë·Î ¶Ç ÀúÀåÇÏ´Â ²ÃÀε¥, ¹®Á¦´Â ¾ÈµÈ´Ù.
184                                        ¿¹: last channel uid°¡ 3, ºÎÆÃÇϸ鼭 3À» Æ©´×Çϴµ¥ À̶§ 3À» ¶Ç ÀúÀå.
185                                ÀÌÀü ä³Î Æ©´×À» ÇÏ´Â °æ¿ì¿¡´Â Æ©´×ÇÏ°Ô µÉ ä³ÎÀÌ ÀÌÀü ä³ÎÀÌ´Ù. ¹®Á¦ ¾øÀ½.
186                */
187                /* App_SaveLastChannelInfo(0, 0, uid); */
188
189                /*
190                        todo
191                        Ȥ½Ã DB°¡ ¸Á°¡Áú °æ¿ì¸¦ ´ëºñÇØ¼­ RF, PN µîµµ ÀúÀåÇÏ´Â°Ô ÁÁÀ» µí..
192                        ¼ø¼­ Áß¿ä. ¸ÕÀú À§¿¡¼­ ÇöÀç/ÀÌÀü ä³Î ÀúÀåÇϰí,
193                        ±× ´ÙÀ½¿¡ Æ©´×ÇÒ Ã¤³Î ¼³Á¤.
194                */
195                App_UpdateUidChannelParam(uid);
196               
197                /* g_App_LastTuneResult = statusInvalidState; */
198                /* ÀÌ º¯¼ö´Â tuneÀÌ ¿ÏÀüÈ÷ ³¡³­ ÈÄ callback¿¡¼­ updateµÈ´Ù. */
199               
200                /* DMW_TUN_TuneChannelByUid(nUID, 1, FALSE, _AppChannelTuneCallback, 0); */
201                flag=CTF_ShowHiddenChannelAlso | CTF_SkipPrescanPidInfo;
202                DMW_TUN_TuneChannelByUidAndFlag(uid, flag, FALSE, NULL, 0);
203
204#if 1
205                if (App_DigitKeyExist()) {
206                        dprint(1, "!! digit key banner exist. skip ch banner\n");
207                }
208                else {
209                       
210                        /* App_DrawCurChBanner(); */
211                        /* App_KeepChBanner(DST_CHANNELBANNER_ERASE_DELAY); */
212                        return TRUE;
213                }
214#endif
215
216                dprint(1, "[INFORM] App_TuneChannelByUid (%d) Complete!!!\n", uid);     
217        }
218        else   
219        {
220                dprint(1, "channel uid %d already tuned\n", uid);
221
222                /* ¹è³Ê¸¦ ¶ç¿ìÀÚ. */
223                if (App_DigitKeyExist()) {
224                        dprint(1, "!! digit key banner exist. skip ch banner\n");
225                }
226                else {
227                        /* ScrollÀ» Áö¿ö ¹ö¸²... ¿©±â¼­´Â Channel_Banner¸¦ ¶ç¿öÁÙ ÇÊ¿ä¾øÀ½.  */
228                        /* App_DrawCurChBanner(); */
229                        /* App_KeepChBanner(DST_CHANNELBANNER_ERASE_DELAY); */
230                }
231        }       
232        return FALSE;
233}
234
235
236
237
238
239#if COMMENT
240____Graphic____(){}
241#endif
242
243void EADDI_FillRect(int x, int y, int w, int h, int color)
244{
245        DMG_FillRect(x, y, w, h, 0x60000000);
246}
247
248void EADDI_Print(int x, int y, char *str, int color)
249{
250        DMG_PrintStr(x, y, str, color);
251}
252
253void EADDI_Refresh()
254{
255        DMG_AutoRefresh();
256}
257
258void EADDI_SetTempPlane(int width, int height)
259{
260        /*
261        if(p_temp_cavnas) GRP_FreeTempCanvas(&p_temp_cavnas);
262        p_temp_cavnas=GRP_GetTempCanvas(EA_CANVAS, width, height);
263        */
264        DHL_CreatePlane(0, width, height, eDHL_PIXELTYPE_ARGB8888);
265        DHL_SetDisplayPlane(1);         // why 1??
266}
267
268void EADDI_FillTemp(int x, int y, int w, int h, int color)
269{
270        DMG_FillRect(x, y, w, h, color);        // DMG_FillRect(p_temp_cavnas, x, y, w, h, 0x60000000);
271}
272
273void EADDI_PrintTemp(int x, int y, UINT16 *str, int color)
274{
275        DMG_PrintStr(x, y, str, color);
276}
277
278int EADDI_GetStrWidth(UINT16 *str)
279{
280        int i;
281        int x;
282        BOOLEAN bkorean;
283       
284        for(i=0, bkorean=FALSE; str[i] != 0 ; i++) {
285                if(str[i] > 0xAC00) {
286                        bkorean=TRUE;
287                }
288        }
289               
290        if(bkorean) {
291                DMG_GetFontSize();
292        }
293       
294        if(bkorean) {
295                DMG_GetFontSize();
296        }
297       
298        return x;
299}
300
301
302void EADDI_SetFontSize(int size)
303{
304        DMG_SetFontSize(size);
305}
306
307void EADDI_BLT(int sx, int sy, int sw, int sh, int did, int dx, int dy) //did : dst. id
308{
309        tDHL_GrpRect rs, rd;
310       
311        DMG_FillRect(sx, sy, sw, sh, 0x60000000);
312        DMG_BLT(APP_PLANE_WRITE, APP_PLANE_TEMP2, &rs, &rd);
313}
314
315void EADDI_SetPlane(int id)
316{
317        DHL_SetDisplayPlane(id);
318}
319
320int EADDI_GetPlane()
321{
322        int plane_pitch;
323        return DHL_GetPlanePitch(0, &plane_pitch);
324}
325
326#endif /* SUPPORT_EA */
327
328
329
330/* end of file */
Note: See TracBrowser for help on using the repository browser.