| 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 | |
|---|
| 11 | void DST_Tune(DS_U8 RF, DS_U16 program_number); |
|---|
| 12 | void DST_Scan(DS_U8 RF); |
|---|
| 13 | void CT_AudioVolume(DS_U8 nVal); |
|---|
| 14 | |
|---|
| 15 | #if 0 |
|---|
| 16 | ____Channel_UI___() |
|---|
| 17 | #endif |
|---|
| 18 | |
|---|
| 19 | // ä³Î ¾÷´Ù¿î ÇÔ¼ö |
|---|
| 20 | void DST_UI_ChannelUpDn(bool bUp) |
|---|
| 21 | { |
|---|
| 22 | DST_DB_ChannelUpDn(bUp); |
|---|
| 23 | } |
|---|
| 24 | |
|---|
| 25 | // ä³Î Æ©´×À» ÇÑ´Ù. |
|---|
| 26 | void 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 | |
|---|
| 48 | void 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) ¿Ü±¹¾î |
|---|
| 60 | DS_U8 DST_UI_GetMTS() |
|---|
| 61 | { |
|---|
| 62 | return DST_EEPROM_GetAudioPref(); |
|---|
| 63 | } |
|---|
| 64 | |
|---|
| 65 | void 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 |
|---|
| 72 | DS_U8 DST_UI_GetVI() |
|---|
| 73 | { |
|---|
| 74 | return DST_EEPROM_GetVI(); |
|---|
| 75 | } |
|---|
| 76 | |
|---|
| 77 | void DST_UI_SetVI( DS_U8 nVal) |
|---|
| 78 | { |
|---|
| 79 | DST_EEPROM_SetVI(nVal); |
|---|
| 80 | DST_g_AudioSettingChanged = true; |
|---|
| 81 | } |
|---|
| 82 | |
|---|
| 83 | // CC ¼³Á¤ |
|---|
| 84 | void DST_UI_SetCloseCaption(DS_U8 value) |
|---|
| 85 | { |
|---|
| 86 | DST_EEPROM_SetCC(value ? 1 : 0); |
|---|
| 87 | } |
|---|
| 88 | |
|---|
| 89 | // 0À̸é RF3 1À̸é RF4 |
|---|
| 90 | DS_U8 DST_UI_GetCh34(void) |
|---|
| 91 | { |
|---|
| 92 | return DST_EEPROM_GetPreferredConn(); |
|---|
| 93 | } |
|---|
| 94 | |
|---|
| 95 | void 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 | // º¼·ý ¼³Á¤ |
|---|
| 106 | DS_U8 DST_UI_GetVolume(void) |
|---|
| 107 | { |
|---|
| 108 | return DST_EEPROM_GetVolume(); |
|---|
| 109 | } |
|---|
| 110 | // º¼·ý ¼³Á¤ |
|---|
| 111 | void 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 | // ¹ÂÆ® ¼³Á¤ |
|---|
| 119 | static bool g_Mute = false; |
|---|
| 120 | bool DST_UI_GetMute(void) |
|---|
| 121 | { |
|---|
| 122 | return g_Mute; |
|---|
| 123 | } |
|---|
| 124 | |
|---|
| 125 | // ¹ÂÆ® ¼³Á¤ |
|---|
| 126 | void 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 ¹æ¼ÛÀΰ¡? |
|---|
| 143 | bool DST_UI_GetHDInfo(void) |
|---|
| 144 | { |
|---|
| 145 | return DST_GetHDInfo(); |
|---|
| 146 | } |
|---|
| 147 | |
|---|
| 148 | // ÇöÀç CC º¸¿©ÁֱⰡ °¡´ÉÇѰ¡? |
|---|
| 149 | bool DST_UI_GetCCInfo(void) |
|---|
| 150 | { |
|---|
| 151 | return DST_GetCCInfo(); |
|---|
| 152 | } |
|---|
| 153 | |
|---|
| 154 | #if SUPPORT_CHANNEL_EDIT |
|---|
| 155 | void 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ÀÚ |
|---|
| 166 | int 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 | // ½Ã°£ ¹®ÀÚ¿À» ¹ÝȯÇÑ´Ù. |
|---|
| 180 | int 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 | // Á֯ļö Å×ÀÌºí °ü·Ã ÇÔ¼ö |
|---|
| 189 | static 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); |
|---|
| 226 | DS_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); |
|---|
| 238 | void 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 | // Á֯ļö Å×ÀÌºí °¹¼ö |
|---|
| 250 | int DST_GetFreqCount() |
|---|
| 251 | { |
|---|
| 252 | return DST_MaxRF() -DST_MinRF() + 1; |
|---|
| 253 | } |
|---|
| 254 | |
|---|
| 255 | // À妽º¸¦ ÀÔ·ÂÇϰí Á֯ļö ¹øÈ£¸¦ ¹Þ´Â´Ù. |
|---|
| 256 | DS_U16 DST_GetFrequencyNumberbyIndex(int index) |
|---|
| 257 | { |
|---|
| 258 | return FREQ_TABLE[2*index]; |
|---|
| 259 | } |
|---|
| 260 | |
|---|
| 261 | // À妽º¸¦ ÀÔ·ÂÇϰí MHz ´ÜÀ§ÀÇ Á֯ļö¸¦ ¹Þ´Â´Ù. |
|---|
| 262 | DS_U16 DST_GetMHzFrequencybyIndex(int index) |
|---|
| 263 | { |
|---|
| 264 | return FREQ_TABLE[1+2*index]; |
|---|
| 265 | } |
|---|
| 266 | |
|---|
| 267 | // Á֯ļö ¹øÈ£¸¦ ÀÔ·ÂÇϰí À妽º °ªÀ» ¹Þ´Â´Ù. |
|---|
| 268 | int 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´ÜÀ§ÀÇ Á֯ļö¸¦ ÀÔ·ÂÇϰí À妽º °ªÀ» ¹Þ´Â´Ù. |
|---|
| 279 | int 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 | } |
|---|