| 1 | /**************************************************************************** |
|---|
| 2 | * NAME: App_OSD_Scan.c |
|---|
| 3 | *---------------------------------------------------------------------------- |
|---|
| 4 | * Copyright (c) DIGITAL STREAM Technology Inc. |
|---|
| 5 | *---------------------------------------------------------------------------- |
|---|
| 6 | * CREATED_BY: Yong Dae Park |
|---|
| 7 | * CREATION_DATE: 2009/09/07 |
|---|
| 8 | * $Author: x2silo $ |
|---|
| 9 | * $Revision: 1.0 $ |
|---|
| 10 | * $Date: 2009/09/07 11:58:43 $ |
|---|
| 11 | *---------------------------------------------------------------------------- |
|---|
| 12 | * PURPOSE: |
|---|
| 13 | * - Draw autoscan osd |
|---|
| 14 | *****************************************************************************/ |
|---|
| 15 | |
|---|
| 16 | /*_____ I N C L U D E __________________________________________*/ |
|---|
| 17 | |
|---|
| 18 | #include "App_Main.h" |
|---|
| 19 | #include "App_OSD_Common.h" |
|---|
| 20 | |
|---|
| 21 | #include "DMW_Channel.h" |
|---|
| 22 | #include "App_Fnc_ChTune.h" |
|---|
| 23 | #include "App_Fnc_Ucm.h" |
|---|
| 24 | |
|---|
| 25 | #include "App_Res_Resources.h" |
|---|
| 26 | |
|---|
| 27 | |
|---|
| 28 | |
|---|
| 29 | |
|---|
| 30 | |
|---|
| 31 | /*_____ D E F I N I T I O N ____________________________________*/ |
|---|
| 32 | |
|---|
| 33 | #if COMMENT |
|---|
| 34 | ____DbgPrint____(){} |
|---|
| 35 | #endif |
|---|
| 36 | |
|---|
| 37 | DHL_MODULE("@o_scn", 0); |
|---|
| 38 | |
|---|
| 39 | |
|---|
| 40 | |
|---|
| 41 | |
|---|
| 42 | |
|---|
| 43 | #if COMMENT |
|---|
| 44 | ____Config____(){} |
|---|
| 45 | #endif |
|---|
| 46 | |
|---|
| 47 | #define SCAN_BG_X 123 |
|---|
| 48 | #define SCAN_BG_Y 110 |
|---|
| 49 | #define SCAN_BG_W 472 |
|---|
| 50 | #define SCAN_BG_H 260 |
|---|
| 51 | |
|---|
| 52 | #define AREA_GAP 8 |
|---|
| 53 | #define TEXT_GAP 2 |
|---|
| 54 | // |
|---|
| 55 | #define SCAN_BTN_X (SCAN_BG_X+330+5) |
|---|
| 56 | #define SCAN_BTN_TP_Y (SCAN_BG_Y+2*(AREA_GAP+TEXT_GAP)) |
|---|
| 57 | #define SCAN_BTN_BT_Y (SCAN_BTN_TP_Y+60) |
|---|
| 58 | #define SCAN_BTN_W 112 |
|---|
| 59 | #define SCAN_BTN_H 50 |
|---|
| 60 | |
|---|
| 61 | #define C_BTN_FC_NOR 0xff8Cffff |
|---|
| 62 | #define C_BTN_FC_HL 0xff000000 |
|---|
| 63 | #define C_SCAN_TEXT C_BTN_FC_NOR //0xffc6c8e6 |
|---|
| 64 | #define C_CURRF_TEXT 0xfffff003 |
|---|
| 65 | |
|---|
| 66 | #define SCANED_RF_X (SCAN_BG_X+3*(AREA_GAP+TEXT_GAP)) |
|---|
| 67 | #define SCANED_RF_Y (SCAN_BG_Y+3*(AREA_GAP+TEXT_GAP)) |
|---|
| 68 | #define SCANED_RF_W 128 |
|---|
| 69 | #define SCANED_CH_X (SCANED_RF_X+149) |
|---|
| 70 | #define TEXT_AREA_H 30 |
|---|
| 71 | |
|---|
| 72 | #define SCAN_CURRF_X SCAN_BTN_X |
|---|
| 73 | #define SCAN_CURRF_Y (SCAN_BG_Y+SCAN_BG_H - 2*(AREA_GAP+TEXT_GAP) - TEXT_AREA_H) |
|---|
| 74 | #define SCAN_CURRF_W SCAN_BTN_W |
|---|
| 75 | |
|---|
| 76 | #define SCAN_BAR_X (SCANED_RF_X) |
|---|
| 77 | #define SCAN_BAR_Y (SCAN_BG_Y+SCAN_BG_H-2*(AREA_GAP+TEXT_GAP)-25) |
|---|
| 78 | #define SCAN_BAR_W 90 |
|---|
| 79 | |
|---|
| 80 | |
|---|
| 81 | |
|---|
| 82 | |
|---|
| 83 | #if COMMENT |
|---|
| 84 | ____Types____(){} |
|---|
| 85 | #endif |
|---|
| 86 | |
|---|
| 87 | |
|---|
| 88 | |
|---|
| 89 | |
|---|
| 90 | |
|---|
| 91 | #if COMMENT |
|---|
| 92 | ____Variables____(){} |
|---|
| 93 | #endif |
|---|
| 94 | |
|---|
| 95 | |
|---|
| 96 | |
|---|
| 97 | |
|---|
| 98 | |
|---|
| 99 | /*_____ F U N C T I O N ________________________________________*/ |
|---|
| 100 | |
|---|
| 101 | void App_OSD_UpdateScanBtn(int mode, BOOL is_stopped) |
|---|
| 102 | { |
|---|
| 103 | int orig_font_size; |
|---|
| 104 | orig_font_size=DMG_GetFontSize(); |
|---|
| 105 | DMG_SetFontSize(24); |
|---|
| 106 | |
|---|
| 107 | if(mode) { /* update mode */ |
|---|
| 108 | // Up |
|---|
| 109 | App_OSD_DrawButton(0, SCAN_BTN_X, SCAN_BTN_TP_Y,SCAN_BTN_W); |
|---|
| 110 | PRINT_STR_EX(SCAN_BTN_X, SCAN_BTN_TP_Y, SCAN_BTN_W, SCAN_BTN_H, |
|---|
| 111 | SCAN_UPDATE_STR, C_BTN_FC_NOR, DMG_OPT_A_CT); |
|---|
| 112 | |
|---|
| 113 | //Down |
|---|
| 114 | App_OSD_DrawButton(1, SCAN_BTN_X, SCAN_BTN_BT_Y,SCAN_BTN_W); |
|---|
| 115 | if(is_stopped) |
|---|
| 116 | { |
|---|
| 117 | PRINT_STR_EX(SCAN_BTN_X, SCAN_BTN_BT_Y, SCAN_BTN_W, SCAN_BTN_H, |
|---|
| 118 | SCAN_STOP_STR, C_BTN_FC_HL, DMG_OPT_A_CT); |
|---|
| 119 | } |
|---|
| 120 | else |
|---|
| 121 | { |
|---|
| 122 | PRINT_STR_EX(SCAN_BTN_X, SCAN_BTN_BT_Y, SCAN_BTN_W, SCAN_BTN_H, |
|---|
| 123 | SCAN_RESCAN_STR, C_BTN_FC_HL, DMG_OPT_A_CT); |
|---|
| 124 | } |
|---|
| 125 | |
|---|
| 126 | } |
|---|
| 127 | else { /* Rescan mode */ |
|---|
| 128 | // Up |
|---|
| 129 | App_OSD_DrawButton(1, SCAN_BTN_X, SCAN_BTN_TP_Y,SCAN_BTN_W); |
|---|
| 130 | |
|---|
| 131 | if(is_stopped) |
|---|
| 132 | { |
|---|
| 133 | PRINT_STR_EX(SCAN_BTN_X, SCAN_BTN_TP_Y, SCAN_BTN_W, SCAN_BTN_H, |
|---|
| 134 | SCAN_STOP_STR, C_BTN_FC_HL, DMG_OPT_A_CT); |
|---|
| 135 | } |
|---|
| 136 | else |
|---|
| 137 | { |
|---|
| 138 | PRINT_STR_EX(SCAN_BTN_X, SCAN_BTN_TP_Y, SCAN_BTN_W, SCAN_BTN_H, |
|---|
| 139 | SCAN_UPDATE_STR, C_BTN_FC_HL, DMG_OPT_A_CT); |
|---|
| 140 | } |
|---|
| 141 | |
|---|
| 142 | |
|---|
| 143 | //Down |
|---|
| 144 | App_OSD_DrawButton(0, SCAN_BTN_X, SCAN_BTN_BT_Y,SCAN_BTN_W); |
|---|
| 145 | PRINT_STR_EX(SCAN_BTN_X, SCAN_BTN_BT_Y, SCAN_BTN_W, SCAN_BTN_H, |
|---|
| 146 | SCAN_RESCAN_STR, C_BTN_FC_NOR, DMG_OPT_A_CT); |
|---|
| 147 | } |
|---|
| 148 | |
|---|
| 149 | DMG_SetFontSize(orig_font_size); |
|---|
| 150 | } |
|---|
| 151 | |
|---|
| 152 | |
|---|
| 153 | void App_OSD_DrawScanBG() |
|---|
| 154 | { |
|---|
| 155 | int x,y,w,h; |
|---|
| 156 | char str[20]={0,}; |
|---|
| 157 | DST_CURCHANNEL chinfo; |
|---|
| 158 | int orig_font_size; |
|---|
| 159 | orig_font_size=DMG_GetFontSize(); |
|---|
| 160 | DMG_SetFontSize(24); |
|---|
| 161 | |
|---|
| 162 | x=SCAN_BG_X; |
|---|
| 163 | y=SCAN_BG_Y; |
|---|
| 164 | w=SCAN_BG_W; |
|---|
| 165 | h=SCAN_BG_H; |
|---|
| 166 | App_OSD_CommonBox1(x, y, w,h, AREA_GAP, TEXT_GAP, |
|---|
| 167 | COLOR_BG_LIGHT_BLUE, COLOR_BG_OUT_BLUE, COLOR_LINE_SKY_BLUE); |
|---|
| 168 | x=x+2*AREA_GAP+TEXT_GAP; |
|---|
| 169 | y=y+2*AREA_GAP+TEXT_GAP; |
|---|
| 170 | w=300; |
|---|
| 171 | h=h-2*(2*AREA_GAP+TEXT_GAP); |
|---|
| 172 | App_OSD_CommonBox2(x, y, w,h, TEXT_GAP, |
|---|
| 173 | COLOR_BG_IN_BLUE, COLOR_LINE_DEEP_BLUE, COLOR_LINE_WEAK_BLUE); |
|---|
| 174 | |
|---|
| 175 | DMG_FillRect(SCANED_RF_X+SCANED_RF_W+10 , SCANED_RF_Y, 2, 5*(TEXT_AREA_H+5), COLOR_LINE_DEEP_BLUE); |
|---|
| 176 | DMG_FillRect(SCANED_RF_X+SCANED_RF_W+12, SCANED_RF_Y, 2, 5*(TEXT_AREA_H+5), COLOR_LINE_WEAK_BLUE); |
|---|
| 177 | |
|---|
| 178 | App_Ucm_GetCurChInfo(&chinfo); |
|---|
| 179 | |
|---|
| 180 | if(chinfo.nChannelType == ChannelType_Air){ |
|---|
| 181 | PRINT_STR_EX(SCANED_RF_X, SCANED_RF_Y, SCANED_RF_W, TEXT_AREA_H, |
|---|
| 182 | SCAN_RF_AIR, C_SCAN_TEXT, DMG_OPT_A_CT); |
|---|
| 183 | } |
|---|
| 184 | else { |
|---|
| 185 | PRINT_STR_EX(SCANED_RF_X, SCANED_RF_Y, SCANED_RF_W, TEXT_AREA_H, |
|---|
| 186 | SCAN_RF_CABLE, C_SCAN_TEXT, DMG_OPT_A_CT); |
|---|
| 187 | } |
|---|
| 188 | PRINT_STR_EX(SCANED_CH_X, SCANED_RF_Y, SCANED_RF_W, TEXT_AREA_H, SCAN_CH_STR, |
|---|
| 189 | C_SCAN_TEXT, DMG_OPT_A_CT); |
|---|
| 190 | |
|---|
| 191 | DMG_SetFontSize(orig_font_size); |
|---|
| 192 | } |
|---|
| 193 | |
|---|
| 194 | |
|---|
| 195 | |
|---|
| 196 | void App_OSD_EraseScanBG() |
|---|
| 197 | { |
|---|
| 198 | DMG_EraseRect(SCAN_BG_X, SCAN_BG_Y, SCAN_BG_W, SCAN_BG_H, COLOR_ERAGE); |
|---|
| 199 | } |
|---|
| 200 | |
|---|
| 201 | |
|---|
| 202 | void App_OSD_WaitingScanMsg() |
|---|
| 203 | { |
|---|
| 204 | char *str; |
|---|
| 205 | |
|---|
| 206 | if(DMG_GetLanguage()!=0)// spa, kor |
|---|
| 207 | { |
|---|
| 208 | GET_STR(str, SCAN_WAIT); |
|---|
| 209 | |
|---|
| 210 | |
|---|
| 211 | /* 2010.04.05 foxhunt |
|---|
| 212 | * App_OSD_UpdateScanBar¿¡¼ Á¤º¸ refresh¸¦ À§ÇØ erase & print¸¦ Çϰí ÀÖÀ¸¹Ç·Î, |
|---|
| 213 | * wait ¸Þ½ÃÁö´Â scan ½ÃÀÛÇÒ ¶§ Çѹø¸¸ printÇÏ¿© º¸¿©ÁÖ¸é µÈ´Ù. */ |
|---|
| 214 | DMG_FillRect(SCAN_CURRF_X-10, SCAN_CURRF_Y - 35, SCAN_CURRF_W+20, TEXT_AREA_H, COLOR_BG_OUT_BLUE); |
|---|
| 215 | DMG_PrintStrEx(SCAN_CURRF_X-10, SCAN_CURRF_Y - 35, SCAN_CURRF_W+20, TEXT_AREA_H, str, C_CURRF_TEXT, DMG_OPT_A_CT); |
|---|
| 216 | |
|---|
| 217 | if(DMG_GetLanguage()==1)//spa |
|---|
| 218 | str = SCAN_WAIT_SUB_SPA; |
|---|
| 219 | else |
|---|
| 220 | str = SCAN_WAIT_SUB_KOR; |
|---|
| 221 | |
|---|
| 222 | /* 2010.04.05 foxhunt |
|---|
| 223 | * App_OSD_UpdateScanBar¿¡¼ Á¤º¸ refresh¸¦ À§ÇØ erase & print¸¦ Çϰí ÀÖÀ¸¹Ç·Î, |
|---|
| 224 | * wait ¸Þ½ÃÁö´Â scan ½ÃÀÛÇÒ ¶§ Çѹø¸¸ printÇÏ¿© º¸¿©ÁÖ¸é µÈ´Ù. */ |
|---|
| 225 | DMG_FillRect(SCAN_CURRF_X-10, SCAN_CURRF_Y, SCAN_CURRF_W+20, TEXT_AREA_H, COLOR_BG_OUT_BLUE); |
|---|
| 226 | |
|---|
| 227 | if(DMG_GetLanguage()==1) |
|---|
| 228 | DMG_SetTempFontSize(22); |
|---|
| 229 | |
|---|
| 230 | DMG_PrintStrEx(SCAN_CURRF_X-13, SCAN_CURRF_Y, SCAN_CURRF_W+26, TEXT_AREA_H, str, C_CURRF_TEXT, DMG_OPT_A_CT); |
|---|
| 231 | |
|---|
| 232 | if(DMG_GetLanguage()==1) |
|---|
| 233 | DMG_RestoreFontSize(); |
|---|
| 234 | } |
|---|
| 235 | else // eng |
|---|
| 236 | { |
|---|
| 237 | GET_STR(str, SCAN_WAIT); |
|---|
| 238 | |
|---|
| 239 | /* 2010.04.05 foxhunt |
|---|
| 240 | * App_OSD_UpdateScanBar¿¡¼ Á¤º¸ refresh¸¦ À§ÇØ erase & print¸¦ Çϰí ÀÖÀ¸¹Ç·Î, |
|---|
| 241 | * wait ¸Þ½ÃÁö´Â scan ½ÃÀÛÇÒ ¶§ Çѹø¸¸ printÇÏ¿© º¸¿©ÁÖ¸é µÈ´Ù. */ |
|---|
| 242 | DMG_FillRect(SCAN_CURRF_X-10, SCAN_CURRF_Y, SCAN_CURRF_W+20, TEXT_AREA_H, COLOR_BG_OUT_BLUE); |
|---|
| 243 | DMG_PrintStrEx(SCAN_CURRF_X-10, SCAN_CURRF_Y, SCAN_CURRF_W+20, TEXT_AREA_H, str, C_CURRF_TEXT, DMG_OPT_A_CT); |
|---|
| 244 | } |
|---|
| 245 | |
|---|
| 246 | } |
|---|
| 247 | |
|---|
| 248 | |
|---|
| 249 | void App_OSD_UpdateScanBar(int curRF, int percent) |
|---|
| 250 | { |
|---|
| 251 | char str[20]={0,}, *s; |
|---|
| 252 | int orig_font_size; |
|---|
| 253 | orig_font_size=DMG_GetFontSize(); |
|---|
| 254 | DMG_SetFontSize(24); |
|---|
| 255 | |
|---|
| 256 | App_OSD_DrawProgressBar(0x01, SCAN_BAR_X, SCAN_BAR_Y, SCAN_BAR_W, percent); |
|---|
| 257 | |
|---|
| 258 | GET_STR(s, SCAN_NUM_RF); |
|---|
| 259 | sprintf(str, s, curRF); |
|---|
| 260 | dprint(0, "!!!!! %s\n ", str); |
|---|
| 261 | |
|---|
| 262 | if(DMG_GetLanguage()!=0)//spa,kor |
|---|
| 263 | { |
|---|
| 264 | /* sjpark, spanish/korean ÀÏ °æ¿ì¿¡´Â µÎÁÙ·Î ¸Þ½ÃÁö¸¦ º¸¿©Áֱ⿡ ÀÁÙÀ» Áö¿öÁà¾ß ÇÑ´Ù. |
|---|
| 265 | ¸Å¹ø Áö¿öµµ »ó°ü ¾ø´Â °ÍÀΰ¡?? |
|---|
| 266 | */ |
|---|
| 267 | DMG_FillRect(SCAN_CURRF_X-10, SCAN_CURRF_Y-35, SCAN_CURRF_W+20, TEXT_AREA_H, COLOR_BG_OUT_BLUE); |
|---|
| 268 | } |
|---|
| 269 | |
|---|
| 270 | DMG_FillRect(SCAN_CURRF_X-10, SCAN_CURRF_Y, SCAN_CURRF_W+20, TEXT_AREA_H, COLOR_BG_OUT_BLUE); |
|---|
| 271 | DMG_PrintStrEx(SCAN_CURRF_X-10, SCAN_CURRF_Y, SCAN_CURRF_W+20, TEXT_AREA_H, str, C_CURRF_TEXT, DMG_OPT_A_CT); |
|---|
| 272 | |
|---|
| 273 | DMG_SetFontSize(orig_font_size); |
|---|
| 274 | } |
|---|
| 275 | |
|---|
| 276 | |
|---|
| 277 | #define COUNT_OF_SCANEDCH 4 |
|---|
| 278 | #define GAP_SCANEDCH 35 |
|---|
| 279 | #define SCANEDCH_RF_X SCANED_RF_X |
|---|
| 280 | #define SCANEDCH_Y SCANED_RF_Y |
|---|
| 281 | #define SCANEDCH_W SCANED_RF_W |
|---|
| 282 | #define SCANEDCH_CHANNEL_X SCANED_CH_X |
|---|
| 283 | |
|---|
| 284 | typedef struct |
|---|
| 285 | { |
|---|
| 286 | UINT8 nRF; |
|---|
| 287 | int nMajor; |
|---|
| 288 | int nMinor; |
|---|
| 289 | } ScanedChInfo; |
|---|
| 290 | |
|---|
| 291 | static ScanedChInfo sChInfo[COUNT_OF_SCANEDCH]; |
|---|
| 292 | |
|---|
| 293 | void App_OSD_ResetScanedChInfo(void) |
|---|
| 294 | { |
|---|
| 295 | UINT8 i; |
|---|
| 296 | for(i=0 ; i<COUNT_OF_SCANEDCH ; i++) |
|---|
| 297 | { |
|---|
| 298 | sChInfo[i].nRF = 0; |
|---|
| 299 | sChInfo[i].nMajor = 0; |
|---|
| 300 | sChInfo[i].nMinor = 0; |
|---|
| 301 | } |
|---|
| 302 | } |
|---|
| 303 | |
|---|
| 304 | void App_OSD_UpdateScanCh(int nRF, int nMajor, int nMinor) |
|---|
| 305 | { |
|---|
| 306 | int i=0; |
|---|
| 307 | char sChannel[20]={0,}; |
|---|
| 308 | int orig_font_size; |
|---|
| 309 | orig_font_size=DMG_GetFontSize(); |
|---|
| 310 | DMG_SetFontSize(24); |
|---|
| 311 | |
|---|
| 312 | for(i=COUNT_OF_SCANEDCH-1 ; i>0 ; i--) |
|---|
| 313 | sChInfo[i] = sChInfo[i-1]; |
|---|
| 314 | |
|---|
| 315 | sChInfo[0].nRF = nRF; |
|---|
| 316 | sChInfo[0].nMajor = nMajor; |
|---|
| 317 | sChInfo[0].nMinor = nMinor; |
|---|
| 318 | |
|---|
| 319 | |
|---|
| 320 | for(i=0 ; i<COUNT_OF_SCANEDCH ; i++) |
|---|
| 321 | { |
|---|
| 322 | if(sChInfo[i].nRF == 0) |
|---|
| 323 | continue; |
|---|
| 324 | |
|---|
| 325 | sprintf(sChannel, "%d", sChInfo[i].nRF); |
|---|
| 326 | |
|---|
| 327 | DMG_FillRect(SCANEDCH_RF_X, SCANEDCH_Y+GAP_SCANEDCH*(COUNT_OF_SCANEDCH-i), SCANEDCH_W, TEXT_AREA_H, COLOR_BG_IN_BLUE); |
|---|
| 328 | |
|---|
| 329 | DMG_PrintStrEx(SCANEDCH_RF_X, SCANEDCH_Y+GAP_SCANEDCH*(COUNT_OF_SCANEDCH-i), SCANEDCH_W, TEXT_AREA_H, sChannel, COLOR_WHITE, DMG_OPT_A_CT); |
|---|
| 330 | |
|---|
| 331 | if(sChInfo[i].nMinor == ONE_PART_CHANNEL_INDICATOR) |
|---|
| 332 | sprintf(sChannel,"%d",sChInfo[i].nMajor); |
|---|
| 333 | else |
|---|
| 334 | sprintf(sChannel,"%d-%d",sChInfo[i].nMajor,sChInfo[i].nMinor); |
|---|
| 335 | |
|---|
| 336 | DMG_FillRect(SCANEDCH_CHANNEL_X, SCANEDCH_Y+GAP_SCANEDCH*(COUNT_OF_SCANEDCH-i), SCANEDCH_W, TEXT_AREA_H, COLOR_BG_IN_BLUE); |
|---|
| 337 | |
|---|
| 338 | DMG_PrintStrEx(SCANEDCH_CHANNEL_X, SCANEDCH_Y+GAP_SCANEDCH*(COUNT_OF_SCANEDCH-i), SCANEDCH_W, TEXT_AREA_H, sChannel, COLOR_WHITE, DMG_OPT_A_CT); |
|---|
| 339 | } |
|---|
| 340 | |
|---|
| 341 | DMG_SetFontSize(orig_font_size); |
|---|
| 342 | } |
|---|
| 343 | |
|---|
| 344 | |
|---|
| 345 | |
|---|
| 346 | |
|---|
| 347 | /* end of file */ |
|---|