source: svn/trunk/zasc/app_c/DST_UserInterface.c @ 45

Last change on this file since 45 was 29, checked in by phkim, 10 years ago
  1. phkim
  2. app
  3. 변경 내용
    • 채널 편집 기능 활성화
    • 프로그램ID, RF 기능을 Major, Minor 로 변경
    • Skip_list 저장 위치를 TVCT_SUB 아래로 변경
    • define 이름 변경 -> SUPPORT_CHANNEL_EDIT
File size: 6.6 KB
Line 
1#include "DST_UserInterface.h"
2#include "DST_ChannelTune.h"
3#include "DST_HostInterface.h"
4#include "DST_WinManagerTask.h"
5#include "DST_CommonAPI.h"
6#include "DST_DataStrings.h"
7#include "DST_FontEngine.h"
8#include "DST_WinManager.h"
9#include "DST_DB.h"
10
11void DST_Tune(DS_U8 RF, DS_U16 program_number);
12void DST_Scan(DS_U8 RF);
13void CT_AudioVolume(DS_U8 nVal);
14
15#if 0
16____Channel_UI___()
17#endif
18
19// ä³Î ¾÷´Ù¿î ÇÔ¼ö
20void DST_UI_ChannelUpDn(bool bUp)
21{
22        DST_DB_ChannelUpDn(bUp);
23}
24
25// ä³Î Æ©´×À» ÇÑ´Ù.
26void DST_UI_ChannelTune(DS_U8 RF, DS_U16 program_number)
27{
28        T();
29        DST_Printf("RF = %d program_number=%d\n", RF, program_number);
30        if(RF != DST_EEPROM_GetRF() || program_number != DST_EEPROM_GetProgramNumber())
31        {
32                DST_g_PrevRF = DST_EEPROM_GetRF();
33                DST_g_PrevProgramNumber = DST_EEPROM_GetProgramNumber();
34        }
35       
36        DST_EEPROM_SetRF(RF);
37        DST_EEPROM_SetProgramNumber(program_number);
38        DST_g_LastTuneTryTime = DST_OS_GetTickCount();
39        DST_g_SignalState = SM_WAIT_SIGNAL;
40        DST_Tune(RF, program_number);
41//      DST_CreateWin(WIN_CHANNEL_BANNER, WIN_NULL, BANNER_NORMAL, 3, 0, 0);
42}
43
44#if 0
45____Settings_UI___()
46#endif
47
48void DST_UI_InitMenuCursor()
49{
50         //»ç¿ëÀÚ ¸Þ´º Ä¿¼­ ÃʱâÈ­
51        MenuTop[0] = 0;
52        MenuTop[1] = 0;
53        MenuPos[0] = 0;
54        MenuPos[1] = 0;
55        MenuSelect[0] = 0;
56        MenuSelect[1] = 0;
57}
58
59// MTS Setting (0) Çѱ¹¾î (1) ¿Ü±¹¾î
60DS_U8 DST_UI_GetMTS()
61{
62        return DST_EEPROM_GetAudioPref();
63}
64
65void DST_UI_SetMTS( DS_U8 nVal)
66{
67        DST_EEPROM_SetAudioPref(nVal);
68        DST_g_AudioSettingChanged = true;
69}
70
71// VI Setting (0) Off (1) On
72DS_U8 DST_UI_GetVI()
73{
74        return DST_EEPROM_GetVI();
75}
76
77void DST_UI_SetVI( DS_U8 nVal)
78{
79        DST_EEPROM_SetVI(nVal);
80        DST_g_AudioSettingChanged = true;
81}
82
83// CC ¼³Á¤
84void DST_UI_SetCloseCaption(DS_U8 value)
85{
86        DST_EEPROM_SetCC(value ? 1 : 0);
87}
88
89// 0À̸é RF3 1À̸é RF4
90DS_U8 DST_UI_GetCh34(void)
91{
92        return DST_EEPROM_GetPreferredConn();
93}
94
95void DST_UI_SetCh34(DS_U8 nVal)
96{
97        DST_EEPROM_SetPreferredConn(nVal);
98        DHL_SetCh34(nVal);
99}
100
101#if 0
102____Volum_UI___()
103#endif
104
105// º¼·ý ¼³Á¤
106DS_U8 DST_UI_GetVolume(void)
107{
108        return DST_EEPROM_GetVolume();
109}
110// º¼·ý ¼³Á¤
111void DST_UI_SetVolume(DS_U8 value)
112{
113        if (value > 0) DST_UI_SetMute(false);
114        DST_EEPROM_SetVolume(value);
115        CT_AudioVolume(DST_UI_GetMute() ? 0 : DST_UI_GetVolume()*2);
116}
117
118// ¹ÂÆ® ¼³Á¤
119static bool g_Mute = false;
120bool DST_UI_GetMute(void)
121{
122        return g_Mute;
123}
124
125// ¹ÂÆ® ¼³Á¤
126void DST_UI_SetMute(bool bVal)
127{
128        g_Mute = bVal;
129        CT_AudioVolume(g_Mute ? 0 : DST_UI_GetVolume()*2);
130}
131
132#if 0
133____Info_Banner_UI___()
134#endif
135
136// ÇöÀç ½Ã°£À» °¡Á®¿Â´Ù.
137//bool DST_UI_GetLocalTime(STime_t *time)
138//{
139//      return DST_GetTime(time);
140//}
141
142// ÇöÀç ¹æ¼ÛÁßÀÎ ºñµð¿À°¡ HD ¹æ¼ÛÀΰ¡?
143bool DST_UI_GetHDInfo(void)
144{
145        return DST_GetHDInfo();
146}
147
148// ÇöÀç CC º¸¿©ÁֱⰡ °¡´ÉÇѰ¡?
149bool DST_UI_GetCCInfo(void)
150{
151        return DST_GetCCInfo();
152}
153
154#if SUPPORT_CHANNEL_EDIT
155void DST_UI_SetChannelEditEnable(DS_U32 ienable)
156{
157        DST_g_ChannelEdit = ienable;
158}
159#endif
160#if 0
161____EPG_UI___()
162#endif
163
164// ä³Î¹øÈ£ ä³ÎÀ̸§
165// ÀÔ·Â ¹è¿­ ±æÀÌ 40ÀÚ
166int DST_UI_GetCurrentChannelInfo(DS_U32 *chInfo)
167{
168        if (chInfo == 0) return 0;
169        chInfo[0] = 0;
170        char chNum[50];
171        DS_U32 chName[TEXT_LENGTH_MAX];
172        int num = 0;
173        if (DST_DB_GetCurrentChannelInfo(chNum, chName, &num) == false) sprintf(chNum, "%d ", num); // RF ¹øÈ£
174        str232(chInfo, chNum);
175        strcpy32(&chInfo[strlen32(chInfo)], chName);
176        return strlen32(chInfo);
177}
178
179// ½Ã°£ ¹®ÀÚ¿­À» ¹ÝȯÇÑ´Ù.
180int DST_UI_GetTimeString(int hour, int min, DS_U16* timeInfo)
181{
182        char strText[16];
183        sprintf(strText, "%02dh%02d", hour, min);
184        str2uni(timeInfo, strText); 
185        return strlen16(timeInfo);
186}
187
188// Á֯ļö Å×ÀÌºí °ü·Ã ÇÔ¼ö
189static DS_U16 FREQ_TABLE[] =
190{
191          2,   57,   3,  63,    4,  69,    5,   79,  6,  85, 
192          7, 177,    8, 183,    9, 189,  10,  195, 11,  201,
193          12, 207, 13, 213, 
194         14, 123,  15, 129,  16, 135,   17, 141, 18, 147,
195         19, 153,  20, 159,  21, 165,   22, 171, 23, 219,
196         24, 225,  25, 231,  26, 237,  27, 243, 28, 249,
197         29, 255, 30, 261,  31, 267, 32, 273, 33, 279,
198         34, 285, 35, 291, 36, 297, 37, 303, 38, 309,
199         39, 315, 40, 321, 41, 327, 42,333, 43,339,
200         44, 345, 45, 351, 46,357, 47,363,48,369,
201         49,375, 50, 381, 51, 387, 52, 393, 53,399,
202         54, 405, 55, 411, 56, 417, 57, 423, 58, 429,
203         59, 435, 60, 441, 61, 447, 62, 453, 63, 459,
204         64, 465, 65, 471, 66, 477, 67, 483, 68, 489,
205         69, 495, 70, 501, 71, 507, 72, 513, 73, 519,
206         74, 525, 75,531, 76,537, 77,543, 78,549,
207         79, 555,  80, 561,  81, 567,  82, 573,  83, 579, 
208         84, 585,  85, 591,  86, 597,  87, 603,  88, 609,
209         89, 615,  90, 621,  91, 627,  92, 633,  93, 639,
210         94, 645,   95, 93,   96, 99,   97, 105,
211         100, 651, 101, 657, 102, 663, 103, 669, 
212        104, 675, 105, 681, 106, 687, 107, 693, 108, 699, 
213        109, 705, 110, 711, 111, 717, 112, 723, 113, 729,
214        114, 735, 115, 741, 116, 747, 117, 753, 118, 759,
215        119, 765, 120, 771, 121, 777, 122, 783, 123, 789,
216        124, 795, 125, 801, 126, 807, 127, 813, 128, 819,
217        129, 825, 130, 831, 131, 837, 132, 843, 133, 849,
218        134, 855, 135, 861, 136, 867, 137, 873, 138, 879,
219        139, 885, 140, 891, 141, 897, 142, 903, 143, 909,
220        144, 915, 145, 921, 146, 927, 147, 933, 148, 939,
221        149, 945, 150, 951, 151, 957, 152, 963, 153, 969,
222        154, 975, 155, 981, 156, 987, 157, 993, 158, 999
223};
224// Aspect Ratio (0) wide (1) normal (2) zoom
225// DS_U8 DST_EEPROM_GetAspect(bool bOutput4x3, bool bSource4x3);
226DS_U8 DST_UI_GetAspect()
227{
228        if (DST_g_LastTuneTime == 0) return ASPECT_RATIO_NORMAL;
229        if (DST_IsVideoPlay() == false) return ASPECT_RATIO_NORMAL;
230        DS_U16 w = 0, h = 0, fps = 0;
231        bool bWide = false, bInterlace = false;
232        DST_GetVideoSize(&w, &h, &fps, &bInterlace, &bWide);
233        if (h == 0) return ASPECT_RATIO_NORMAL;
234        return DST_EEPROM_GetAspect((!bWide));
235}
236
237// void DST_EEPROM_SetAspect(bool bOutput4x3, bool bSource4x3,  DS_U8 nVal);
238void DST_UI_SetAspect(DS_U8 nVal)
239{
240        if (DST_g_LastTuneTime == 0) return;
241        if (DST_IsVideoPlay() == false) return;
242        DS_U16 w = 0, h = 0, fps = 0;
243        bool bWide = false, bInterlace = false;
244        DST_GetVideoSize(&w, &h, &fps, &bInterlace, &bWide);
245        if (h == 0) return;
246        DST_EEPROM_SetAspect((!bWide), nVal);
247}
248
249// Á֯ļö Å×ÀÌºí °¹¼ö
250int DST_GetFreqCount()
251{
252        return DST_MaxRF() -DST_MinRF() + 1;
253}
254
255// À妽º¸¦ ÀÔ·ÂÇϰí Á֯ļö ¹øÈ£¸¦ ¹Þ´Â´Ù.
256DS_U16 DST_GetFrequencyNumberbyIndex(int index)
257{
258        return FREQ_TABLE[2*index];
259}
260
261// À妽º¸¦ ÀÔ·ÂÇϰí MHz ´ÜÀ§ÀÇ Á֯ļö¸¦ ¹Þ´Â´Ù.
262DS_U16 DST_GetMHzFrequencybyIndex(int index)
263{
264        return FREQ_TABLE[1+2*index];
265}
266
267// Á֯ļö ¹øÈ£¸¦ ÀÔ·ÂÇϰí À妽º °ªÀ» ¹Þ´Â´Ù.
268int DST_GetIndexByRFNumber(int rf_number)
269{
270        int i;
271        for ( i = 0; i < sizeof(FREQ_TABLE)/4; i++)
272        {
273                if (rf_number == DST_GetFrequencyNumberbyIndex(i)) return i;
274        }
275        return -1;
276}
277
278// MHz´ÜÀ§ÀÇ Á֯ļö¸¦ ÀÔ·ÂÇϰí À妽º °ªÀ» ¹Þ´Â´Ù.
279int DST_GetIndexByMHzFrequency(int MHz)
280{
281        int i;
282        for ( i = 0; i < sizeof(FREQ_TABLE)/4; i++)
283        {
284                if (MHz == DST_GetMHzFrequencybyIndex(i)) return i;
285        }
286        return -1;
287}
Note: See TracBrowser for help on using the repository browser.