| 1 | |
|---|
| 2 | //setup wizard... |
|---|
| 3 | // CB2ÀÇ setup wizard¿Í µ¿ÀÏÇÏ°Ô ¸¸µê. |
|---|
| 4 | |
|---|
| 5 | |
|---|
| 6 | |
|---|
| 7 | #include "App_Main.h" |
|---|
| 8 | |
|---|
| 9 | #include "App_OSD_Common.h" |
|---|
| 10 | #include "App_OSD_Main.h" |
|---|
| 11 | |
|---|
| 12 | #include "App_OSD_SetupWizard.h" |
|---|
| 13 | |
|---|
| 14 | #include "App_Fnc_Ucm.h" |
|---|
| 15 | #include "App_Fnc_AutoScan.h" |
|---|
| 16 | |
|---|
| 17 | #include "App_Res_Resources.h" |
|---|
| 18 | |
|---|
| 19 | DHL_MODULE("@p_sw", 0); |
|---|
| 20 | |
|---|
| 21 | |
|---|
| 22 | /* page 2 mode¿¡ ´ëÇØ |
|---|
| 23 | 0 : ä³Î °Ë»ö ½ÃÀÛ Ã¹ ½Ãµµ |
|---|
| 24 | 1 : ä³Î °Ë»ö Áß Ã¹ ½Ãµµ |
|---|
| 25 | 2 : ä³Î °Ë»ö ½ÃÀÛ Ã¹ ½Ãµµ ¾Æ´Ô |
|---|
| 26 | 3 : ä³Î °Ë»ö Áß Ã¹ ½Ãµµ°¡ ¾Æ´Ô |
|---|
| 27 | */ |
|---|
| 28 | |
|---|
| 29 | static void AddChannel(int nRF, int nMajor, int nMinor, char* strName) |
|---|
| 30 | { |
|---|
| 31 | int i = 0; |
|---|
| 32 | int idx = DMW_CDB_MakeNewUcm(nMajor, nMinor, nRF, TRUE , Modulation_8VSB); |
|---|
| 33 | if (idx < 0) return; |
|---|
| 34 | AppO_AddScanCh(nRF, nMajor, nMinor); |
|---|
| 35 | g_UCM[idx].Skipped = 0; |
|---|
| 36 | for (i = 0; i < strlen(strName); i++) g_UCM[idx].ShortName[i] = (UINT16)strName[i]; |
|---|
| 37 | } |
|---|
| 38 | |
|---|
| 39 | BOOL App_Proc_SetupWizard(tDMG_CMD cmd, UINT32 opt, UINT32 param1, UINT32 param2) |
|---|
| 40 | { |
|---|
| 41 | BOOL bret=TRUE; |
|---|
| 42 | tDMG_Menu *pmenu; |
|---|
| 43 | static int num_page=0; |
|---|
| 44 | static int language; |
|---|
| 45 | static int scan_status; |
|---|
| 46 | static int time_zone_param; |
|---|
| 47 | static int time_zone; |
|---|
| 48 | static BOOL dst=TRUE; |
|---|
| 49 | static BOOL is_ch_empty; |
|---|
| 50 | static BOOL bfirst=TRUE; |
|---|
| 51 | |
|---|
| 52 | switch(cmd) |
|---|
| 53 | { |
|---|
| 54 | case eDMG_CMD_ON_MENU_ACTIVE : |
|---|
| 55 | num_page=0; |
|---|
| 56 | scan_status=0; |
|---|
| 57 | language=App_NVM_GetMenuLang(); |
|---|
| 58 | time_zone=App_GetTimeZone()-2; |
|---|
| 59 | dst = App_GetDayLightSaving(); |
|---|
| 60 | bfirst=TRUE; |
|---|
| 61 | |
|---|
| 62 | //if(time_zone<0) time_zone=0; |
|---|
| 63 | //if(time_zone>2) time_zone=0; |
|---|
| 64 | time_zone_param = time_zone; |
|---|
| 65 | if(dst==FALSE) time_zone_param++; |
|---|
| 66 | if(time_zone_param<0) time_zone_param = 0; |
|---|
| 67 | if(time_zone_param>3) time_zone_param = 0; |
|---|
| 68 | |
|---|
| 69 | is_ch_empty=App_Ucm_GetChannelNum(TRUE)?FALSE:TRUE; |
|---|
| 70 | scan_status=0; |
|---|
| 71 | |
|---|
| 72 | AppO_DrawSetupWizard(num_page, language); |
|---|
| 73 | App_Autoscan_SetSTTCheck(TRUE); |
|---|
| 74 | break; |
|---|
| 75 | |
|---|
| 76 | case eDMG_CMD_ON_MENU_EXIT : |
|---|
| 77 | case eDMG_CMD_ON_MENU_INACTIVE : |
|---|
| 78 | AppO_EraseSetupWizard(); |
|---|
| 79 | App_Autoscan_SetSTTCheck(FALSE); |
|---|
| 80 | break; |
|---|
| 81 | |
|---|
| 82 | case eDMG_CMD_ON_TIME : //autoscan Á¤º¸¸¦ ȸ鿡 º¸¿©ÁÙ ¶§ ÇÊ¿äÇÔ. |
|---|
| 83 | |
|---|
| 84 | if(param1==TIMER_ID_L1) { |
|---|
| 85 | if(num_page==2 && scan_status==1) { |
|---|
| 86 | if(!App_Autoscan_CheckAutoscanOnGoing()) { |
|---|
| 87 | scan_status=2; |
|---|
| 88 | } |
|---|
| 89 | } |
|---|
| 90 | } |
|---|
| 91 | else |
|---|
| 92 | bret=FALSE; |
|---|
| 93 | break; |
|---|
| 94 | |
|---|
| 95 | case eDMG_CMD_ON_USER_DEFINED : |
|---|
| 96 | |
|---|
| 97 | if(opt==UD_ID_SCAN_PROGRESS) { |
|---|
| 98 | if(num_page==2 && scan_status==1) { |
|---|
| 99 | if(param2==1) { //scanÀÌ Á¾·áµÊ |
|---|
| 100 | scan_status=2; |
|---|
| 101 | AppO_DrawSetupWizard(num_page, scan_status); |
|---|
| 102 | } |
|---|
| 103 | else { |
|---|
| 104 | AppO_UpdateCurScanRf(DMG_HIWORD(param1)); |
|---|
| 105 | AppO_DrawSetupWizard(num_page, scan_status); |
|---|
| 106 | } |
|---|
| 107 | } |
|---|
| 108 | } |
|---|
| 109 | else if(opt==UD_ID_SCAN_UPDATE_CH) { |
|---|
| 110 | AppO_AddScanCh(param1, DMG_HIWORD(param2), DMG_LOWORD(param2)); |
|---|
| 111 | |
|---|
| 112 | if(num_page==2 && scan_status==1) { |
|---|
| 113 | AppO_DrawSetupWizard(num_page, scan_status); |
|---|
| 114 | } |
|---|
| 115 | } |
|---|
| 116 | else |
|---|
| 117 | bret=FALSE; |
|---|
| 118 | |
|---|
| 119 | break; |
|---|
| 120 | |
|---|
| 121 | case eDMG_CMD_ON_KEY : |
|---|
| 122 | |
|---|
| 123 | if(param2==APP_VK_POWER_OFF) { //Power Ű´Â ¹Ì¸® ó¸®ÇÔ. |
|---|
| 124 | bret=FALSE; |
|---|
| 125 | break; |
|---|
| 126 | } |
|---|
| 127 | |
|---|
| 128 | switch(num_page) { |
|---|
| 129 | |
|---|
| 130 | case 0: //½ÃÀÛ, ¾ð¾î ¼³Á¤ |
|---|
| 131 | |
|---|
| 132 | switch(param2) { |
|---|
| 133 | |
|---|
| 134 | case APP_VK_RIGHT : |
|---|
| 135 | num_page=1; |
|---|
| 136 | AppO_DrawSetupWizard(num_page, 0); |
|---|
| 137 | break; |
|---|
| 138 | |
|---|
| 139 | case APP_VK_UP: |
|---|
| 140 | case APP_VK_DOWN: |
|---|
| 141 | language=1-language; |
|---|
| 142 | App_NVM_SetMenuLang(language); |
|---|
| 143 | DMG_SetLanguage(language); |
|---|
| 144 | |
|---|
| 145 | AppO_DrawSetupWizard(num_page, language); |
|---|
| 146 | break; |
|---|
| 147 | } |
|---|
| 148 | |
|---|
| 149 | break; |
|---|
| 150 | |
|---|
| 151 | case 1: //¾ÈÅ׳ª ¿¬°á |
|---|
| 152 | |
|---|
| 153 | switch(param2) { |
|---|
| 154 | |
|---|
| 155 | case APP_VK_LEFT : |
|---|
| 156 | num_page=0; |
|---|
| 157 | AppO_DrawSetupWizard(num_page, language); |
|---|
| 158 | break; |
|---|
| 159 | |
|---|
| 160 | case APP_VK_RIGHT : |
|---|
| 161 | num_page=2; |
|---|
| 162 | if (scan_status == 0) // 2012.10.16 megakiss initial scan data |
|---|
| 163 | { |
|---|
| 164 | DMW_MSC_LockUcm(); |
|---|
| 165 | AddChannel(46,3,1,"XHTJB"); |
|---|
| 166 | AddChannel(23,6,1,"XETV-HD"); |
|---|
| 167 | AddChannel(23,6,2,"XHGC-SD"); |
|---|
| 168 | AddChannel(32,12,1,"XEWT"); |
|---|
| 169 | AddChannel(28,28,1,"XHJK 28"); |
|---|
| 170 | AddChannel(29,29,1,"XHTIT 2"); |
|---|
| 171 | AddChannel(34,33,1,"TELEMU"); |
|---|
| 172 | AddChannel(34,33,2,"LATV"); |
|---|
| 173 | AddChannel(47,49,1,"XHDTV"); |
|---|
| 174 | AddChannel(47,49,2,"MUNDO F"); |
|---|
| 175 | AddChannel(22,57,1,"XHUAA"); |
|---|
| 176 | AddChannel(22,57,2,"XEQ"); |
|---|
| 177 | DMW_MSC_UnlockUcm(); |
|---|
| 178 | scan_status = 2; |
|---|
| 179 | is_ch_empty = FALSE; |
|---|
| 180 | } |
|---|
| 181 | AppO_UpdateCurScanRf(0); |
|---|
| 182 | AppO_DrawSetupWizard(num_page, scan_status); |
|---|
| 183 | break; |
|---|
| 184 | |
|---|
| 185 | } |
|---|
| 186 | break; |
|---|
| 187 | |
|---|
| 188 | case 2: //ä³Î °Ë»ö scanÀº status¿¡ µû¶ó¼ 󸮸¦ ´Þ¸® ÇØ¾ß ÇÔ. |
|---|
| 189 | |
|---|
| 190 | switch(scan_status) { |
|---|
| 191 | |
|---|
| 192 | case 0 : //prev, ok¸¸ °¡´ÉÇÔ. |
|---|
| 193 | |
|---|
| 194 | switch(param2) { |
|---|
| 195 | case APP_VK_LEFT : |
|---|
| 196 | num_page=1; |
|---|
| 197 | AppO_DrawSetupWizard(num_page, 0); |
|---|
| 198 | break; |
|---|
| 199 | |
|---|
| 200 | case APP_VK_SELECT: |
|---|
| 201 | //scan ½ÃÀÛ. |
|---|
| 202 | scan_status=1; |
|---|
| 203 | AppO_InitScanCh(); |
|---|
| 204 | AppO_DrawSetupWizard(num_page, scan_status); |
|---|
| 205 | |
|---|
| 206 | App_AutoScan_StartScan(2, 51, 1); //scan ½ÃÀÛ. addon ¸ðµå |
|---|
| 207 | |
|---|
| 208 | DMG_SetTimer(TIMER_ID_L1, 1000, eDMG_CMD_OPT_TIMER_LOCAL1); |
|---|
| 209 | |
|---|
| 210 | break; |
|---|
| 211 | |
|---|
| 212 | case APP_VK_RIGHT: |
|---|
| 213 | if(is_ch_empty) break; |
|---|
| 214 | |
|---|
| 215 | num_page++; |
|---|
| 216 | |
|---|
| 217 | AppO_DrawSetupWizard(num_page, time_zone_param); |
|---|
| 218 | break; |
|---|
| 219 | } |
|---|
| 220 | break; |
|---|
| 221 | |
|---|
| 222 | case 1 : //scanÀÌ ³¡³¯ ¶§±îÁö ¾Æ¹« ۵µ ¸ÔÀ¸¸é ¾ÈµÊ. |
|---|
| 223 | if(is_ch_empty && bfirst) break; |
|---|
| 224 | |
|---|
| 225 | switch(param2) { |
|---|
| 226 | case APP_VK_SELECT: |
|---|
| 227 | //scan ÁßÁö |
|---|
| 228 | DMW_ASC_StopScan(TRUE); |
|---|
| 229 | |
|---|
| 230 | scan_status=2; |
|---|
| 231 | AppO_DrawSetupWizard(num_page, scan_status); |
|---|
| 232 | break; |
|---|
| 233 | } |
|---|
| 234 | break; |
|---|
| 235 | |
|---|
| 236 | case 2: //prev, ok, next |
|---|
| 237 | switch(param2) { |
|---|
| 238 | case APP_VK_LEFT : |
|---|
| 239 | num_page=1; |
|---|
| 240 | AppO_DrawSetupWizard(num_page, 0); |
|---|
| 241 | break; |
|---|
| 242 | |
|---|
| 243 | case APP_VK_RIGHT : |
|---|
| 244 | num_page=3; |
|---|
| 245 | AppO_DrawSetupWizard(num_page, time_zone_param); |
|---|
| 246 | break; |
|---|
| 247 | |
|---|
| 248 | case APP_VK_SELECT: |
|---|
| 249 | //scan ½ÃÀÛ. |
|---|
| 250 | bfirst=FALSE; |
|---|
| 251 | scan_status=1; |
|---|
| 252 | AppO_InitScanCh(); |
|---|
| 253 | AppO_DrawSetupWizard(num_page, scan_status); |
|---|
| 254 | App_AutoScan_StartScan(2, 51, 1); //scan ½ÃÀÛ. addon ¸ðµå |
|---|
| 255 | break; |
|---|
| 256 | } |
|---|
| 257 | break; |
|---|
| 258 | } |
|---|
| 259 | break; |
|---|
| 260 | |
|---|
| 261 | case 3: //time zone ¼³Á¤ |
|---|
| 262 | switch(param2) { |
|---|
| 263 | |
|---|
| 264 | case APP_VK_LEFT : |
|---|
| 265 | num_page=2; |
|---|
| 266 | AppO_UpdateCurScanRf(0); |
|---|
| 267 | AppO_DrawSetupWizard(num_page, scan_status); |
|---|
| 268 | break; |
|---|
| 269 | |
|---|
| 270 | case APP_VK_RIGHT : |
|---|
| 271 | num_page=4; |
|---|
| 272 | AppO_DrawSetupWizard(num_page, 0); |
|---|
| 273 | break; |
|---|
| 274 | |
|---|
| 275 | case APP_VK_UP: |
|---|
| 276 | //if(--time_zone<0) time_zone=2; |
|---|
| 277 | if(--time_zone_param<0) time_zone_param=3; |
|---|
| 278 | if(time_zone_param==2) time_zone = 1; |
|---|
| 279 | else if(time_zone_param==3) time_zone = 2; |
|---|
| 280 | else time_zone = time_zone_param; |
|---|
| 281 | App_SetTimeZone(time_zone+2, TRUE); |
|---|
| 282 | App_SetDayLightSaving( (time_zone_param==2) ? FALSE : TRUE, TRUE); |
|---|
| 283 | AppO_DrawSetupWizard(num_page, time_zone_param); |
|---|
| 284 | |
|---|
| 285 | break; |
|---|
| 286 | |
|---|
| 287 | case APP_VK_DOWN: |
|---|
| 288 | //if(++time_zone>2) time_zone=0; |
|---|
| 289 | if(++time_zone_param>3) time_zone_param=0; |
|---|
| 290 | if(time_zone_param==2) time_zone = 1; |
|---|
| 291 | else if(time_zone_param==3) time_zone = 2; |
|---|
| 292 | else time_zone = time_zone_param; |
|---|
| 293 | App_SetTimeZone(time_zone+2, TRUE); |
|---|
| 294 | App_SetDayLightSaving( (time_zone_param==2) ? FALSE : TRUE, TRUE); |
|---|
| 295 | AppO_DrawSetupWizard(num_page, time_zone_param); |
|---|
| 296 | |
|---|
| 297 | break; |
|---|
| 298 | } |
|---|
| 299 | break; |
|---|
| 300 | |
|---|
| 301 | case 4: //¸¶Ä§ |
|---|
| 302 | switch(param2) { |
|---|
| 303 | |
|---|
| 304 | case APP_VK_LEFT : |
|---|
| 305 | num_page=3; |
|---|
| 306 | AppO_DrawSetupWizard(num_page, time_zone_param); |
|---|
| 307 | break; |
|---|
| 308 | |
|---|
| 309 | case APP_VK_SELECT: |
|---|
| 310 | //¼³Á¤ ¸¶¹ý»ç Á¾·á |
|---|
| 311 | DMG_MenuExit(MID_SETUP_WIZARD); |
|---|
| 312 | |
|---|
| 313 | DMG_MenuStart(MID_IDLE); |
|---|
| 314 | |
|---|
| 315 | App_Autoscan_RecoverLastChannel(); |
|---|
| 316 | |
|---|
| 317 | if(DCC_IsReady()) { //CC also must be started!! |
|---|
| 318 | DMG_MenuStart(MID_CC); |
|---|
| 319 | } |
|---|
| 320 | |
|---|
| 321 | App_NVM_SetShowSetupWizard(FALSE); |
|---|
| 322 | break; |
|---|
| 323 | } |
|---|
| 324 | break; |
|---|
| 325 | } |
|---|
| 326 | |
|---|
| 327 | if(param2==APP_VK_ENTER_FACTORY_TEST || param2==APP_VK_ENTER_RFUPDATE || |
|---|
| 328 | param2==APP_VK_FACTORY_RESET) { |
|---|
| 329 | bret=FALSE;//FACTORY ¸ðµå °ü·Ã Ű´Â IDLE proc¿¡¼ ó¸®ÇÔ |
|---|
| 330 | } |
|---|
| 331 | |
|---|
| 332 | break; |
|---|
| 333 | |
|---|
| 334 | default : |
|---|
| 335 | bret=FALSE; |
|---|
| 336 | break; |
|---|
| 337 | |
|---|
| 338 | } |
|---|
| 339 | |
|---|
| 340 | if(!bret) |
|---|
| 341 | bret=App_Proc_Idle(cmd, opt, param1, param2); |
|---|
| 342 | |
|---|
| 343 | DMG_AutoRefresh(); |
|---|
| 344 | |
|---|
| 345 | return bret; |
|---|
| 346 | } |
|---|
| 347 | |
|---|
| 348 | |
|---|
| 349 | void App_Menu_CreateSetupWizard() |
|---|
| 350 | { |
|---|
| 351 | if(DMG_GetMenu(MID_SETUP_WIZARD)) { |
|---|
| 352 | return; |
|---|
| 353 | } |
|---|
| 354 | |
|---|
| 355 | DMG_CreateMenu(MID_SETUP_WIZARD_CFG); |
|---|
| 356 | } |
|---|