source: svn/branches/kctv/zasc/app/DST_BaseWin.cpp @ 22

Last change on this file since 22 was 2, checked in by phkim, 11 years ago

1.phkim

  1. revision copy newcon3sk r27
File size: 9.6 KB
Line 
1#include "DST_WinManager.h"
2#include "DST_ChannelTune.h"
3#include "DST_DB.h"
4//#include "DST_OTC_Main.h"
5#include "DST_ISDBT_ChannelTask.h"
6
7#if 0
8____CBasicSystemWin___()
9#endif
10
11bool DST_IsTuneMode();
12
13class CBasicSystemWin : public CWindow
14{
15private:
16        int nScanCount;
17public:
18        virtual ~CBasicSystemWin()
19        {
20                DST_Printf("\n\n\n\n\n\n\n\n\n\nERROR : Base Window Deleted!!!!\n\n\n\n\n\n\n\n\n\n\n");
21        }
22        CBasicSystemWin(SWinEventMsg event):CWindow(event)
23        {
24                RegisterAllKey();
25                RegisterKey(VK_LEFT, true, KEY_DELAY_VOLUME, KEY_REPEAT_VOLUME);
26                RegisterKey(VK_RIGHT, true, KEY_DELAY_VOLUME, KEY_REPEAT_VOLUME);
27                RegisterKey(VK_UP, true, KEY_DELAY_CHANNEL, 400);
28                RegisterKey(VK_DN, true, KEY_DELAY_CHANNEL, 400);
29                SetTimeOut(0);
30                nScanCount = 0;
31        }
32
33        virtual void OnMessage(SWinEventMsg event)
34        {
35                if (event.cmd == WM_CVT)
36                {
37                        KillTimer(1); // Background ScanÀ» ÁßÁöÇÑ´Ù.
38                        memcpy(&DST_g_strSWVersion[0], &event.data[0], 16);
39                        DS_U8 download_command = event.data32[4];
40                        DST_g_OTC_Modulation_type = (event.data32[5]==1)?(DHL_MODULATION_64QAM):(DHL_MODULATION_256QAM);
41                        DST_g_OTC_RF = event.data32[6];
42                        DST_g_OTC_PID = event.data32[7];
43                       
44                        DST_Printf("WM_CVT\n");
45                        DST_Printf("strSWVersion = %02X %02X %02X %02X\n", DST_g_strSWVersion[0], DST_g_strSWVersion[1], DST_g_strSWVersion[2], DST_g_strSWVersion[3]); 
46                        DST_Printf("download_command = %s(%d)\n", download_command==0 ? "Download Now" : download_command==1 ? "Deferred Download" : "No Exception", download_command);
47                        DST_Printf("modulation_type = %s(%d)\n", event.data32[5]==1 ? "64QAM" : "256QAM", (int)event.data32[5]);
48                        DST_Printf("rf = %d Hz\n", (int)DST_g_OTC_RF);
49                        DST_Printf("pid = 0x%X\n", DST_g_OTC_PID);
50                       
51//                      if (DST_g_SleepState != 0) // ´Éµ¿´ë±âÀÎ °æ¿ì È­¸éÀ» ÄÑ°í ¹Ù·Î OTC ÁøÇà
52//                      {
53////                            DHL_POWER_Display(true); // È­¸éÀ» ÄÒ´Ù.
54//                              download_command = 2; // °­Á¦ ¸ðµå·Î ÇÑ´Ù.                     
55//                      }
56////                    DST_Printf("OS_GetTickCount : %d\n\n\n\n\n\n",OS_GetTickCount());
57//                      if (DST_g_FDC_FirstLockTime == 0 || (OS_GetTickCount() - DST_g_FDC_FirstLockTime  < 10*OS_GetTicksPerSecond()))
58//                      {
59//                              download_command = 2; // °­Á¦ ¸ðµå·Î ÇÑ´Ù.                     
60//                      }
61                        download_command = 2; // °­Á¦ ¸ðµå·Î ÇÑ´Ù.                     
62                        switch (download_command)
63                        {
64//                              case 0: T();DST_CreateWin(WIN_OTC_DOWNLOAD_ASK);break;
65//                              case 1: T();DST_g_bNeedOTCDownload= true; break;
66//                              case 2: T();DST_OTC_Start(); break;
67                        }
68                        JST_OTC(DST_g_OTC_RF, (DHL_MODULATION_MODE)DST_g_OTC_Modulation_type, DST_g_OTC_PID);
69                       
70                        DST_CreateWin(WIN_OTC_DOWNLOAD);
71                }
72               
73                switch (event.cmd)
74                {
75                        case WM_SIGNAL_STATE:
76                                if (DST_g_PowerOn == false)
77                                {
78                                        if (DST_GetWin(WIN_ERROR)) DST_CloseWin(WIN_ERROR);
79                                        break;
80                                }
81                                switch (event.data32[0])
82                                {
83                                        case SM_WAIT_SIGNAL:
84                                        case SM_GOOD_SIGNAL: // Good Signal
85                                                if (DST_GetWin(WIN_ERROR)) DST_CloseWin(WIN_ERROR);
86                                                break;
87                                        case SM_NO_PROGRAM:
88                                        case SM_AUDIO_ONLY:
89                                                if (DST_g_HWTestMode == false && DST_g_bFactoryMode == false) DST_CreateWin(WIN_ERROR, WIN_NULL, event.data32[0]);
90                                                break;
91                                        case SM_WEAK_SIGNAL: // Error
92                                                if (DST_GetWin(WIN_UPDATE)) break;
93                                                if (DST_GetWin(WIN_POWER_DOWN_CAUTION)) break;
94                                                if (DST_GetWin(WIN_OTC_DOWNLOAD)) break;
95                                                if (DST_GetWin(WIN_CHANNEL_BANNER)) break;
96                                                if (DST_GetWin(WIN_DIRECT_TUNE)) break;
97                                                if (DST_GetWin(WIN_VOLUME)) break;
98                                                if (DST_GetWin(WIN_VOLUME_MUTE)) break;
99                                                if (DST_GetWin(WIN_SIGNAL_METER)) break;
100                                                if (DST_GetWin(WIN_AUDIO_HOT)) break;
101                                                if (DST_GetWin(WIN_DISPLAY_MODE_HOT)) break;
102                                                if (DST_GetWin(WIN_CLOSED_CAPTION_HOT)) break;
103                                                if (DST_GetWin(WIN_AGE_RATING)) break;
104                                                if (DST_GetWin(WIN_FACTORY_RESET)) break;
105                                                if (DST_GetWin(WIN_MAIN_MENU)) break;
106                                                if (DST_GetWin(WIN_PASSWD_CONFIRM)) break;
107                                                if (DST_GetWin(WIN_PASSWD_CHANGE)) break;
108                                                if (DST_GetWin(WIN_PASSWD_CHECK)) break;
109                                                if (DST_GetWin(WIN_AUTO_SEARCH)) break;
110                                                if (DST_GetWin(WIN_MANUAL_SEARCH)) break;
111                                                if (DST_GetWin(WIN_PROGRAM_GUIDE)) break;
112                                                if (DST_GetWin(WIN_CHANNEL_LIST)) break;
113                                                if (DST_g_HWTestMode == false && DST_g_bFactoryMode == false) DST_CreateWin(WIN_ERROR, WIN_NULL, event.data32[0]);
114                                                break;
115
116                                        default:
117                                                break;
118                                }
119                                break;
120                               
121                        case WM_POWER_DOWN_ENTER:
122                                DST_PowerDown();
123                                break;
124                               
125                        case WM_POWER_OFF:
126                                        DHL_INFO_SetLastPowerState(false);
127                                        {
128#ifdef DSTAR
129
130                                        T();
131                                        nScanCount = 0;
132                                        DST_g_PowerOn = false;
133                                        // CMB CVT Á֯ļö 639MHz
134                                        JST_CVT(DST_GetIndexByMHzFrequency(639), DHL_MODULATION_256QAM); // CMB OTC üũ
135                                        SetTimer(1, 5000);
136#else   // º¸µå¿¡¼­ Àü¿øÅ° ´©¸£¸é ¹Ù·Î ²¨Áöµµ·Ï Àӽà ¼öÁ¤
137                                        DST_PowerDown();
138#endif
139                                }
140                                break;
141                               
142                        case WM_POWER_ON:
143                                DHL_INFO_SetLastPowerState(true);
144                                T();
145                                nScanCount = 0;
146                                DST_g_PowerOn = true;
147                                DST_DB_TuneFirstChannel();
148                                break;
149//                      case WM_USB_UPDATE_STARTED:
150//                      case WM_USB_UPDATE_STATUS:
151//                              if (DST_GetWin(WIN_UPDATE)) break;
152//                              DST_CreateWin(WIN_UPDATE);
153//                              break;
154//                      case WM_OTC_DOWNLOADING_STARTED:
155//                              if (DST_GetWin(WIN_OTC_DOWNLOAD)) break;
156//                              DST_CreateWin(WIN_OTC_DOWNLOAD);
157//                              break;
158//                      case WM_OTC_DOWNLOADING_STATUS:         
159//                              if (DST_GetWin(WIN_OTC_DOWNLOAD_FAIL)) break;
160//                              DST_CreateWin(WIN_OTC_DOWNLOAD_FAIL,WIN_NULL,event.data32[0]);
161//                              break;
162                }
163        }
164        bool IsTVHotKeyPossible()
165        {
166                if (DST_g_PowerOn == false) return false;
167                if (DST_IsTuneMode() == false) return false;
168                if (DST_g_LastTuneTime == 0) return false;
169                if (DST_GetWin(WIN_AUTO_SEARCH)) return false;
170                if (DST_GetWin(WIN_MANUAL_SEARCH)) return false;
171                return true;
172        }
173        virtual void OnTimer(char nID)
174        {
175                switch (nID)
176                {
177                        case 1:
178                                SetTimer(1, 3000);
179                                if (DST_g_PowerOn == true) break;
180                                static int nRF = DST_MaxRF();
181                                // ½ºÄµÀ» Çߴµ¥ ä³ÎÀÌ ¾ø¾îÁ³´Ù¸é ä³Î¸Ê¿¡¼­ Á¦°ÅÇÑ´Ù.
182                                if (nScanCount > 0 && CT_ScanFindChannel() == false) JST_DB_Del(nRF);
183                               
184                                if (nScanCount > DST_MaxRF() - DST_MinRF()+1)
185                                {
186                                        DST_SendWindowEventWithOnlyCmd(WM_POWER_DOWN_ENTER);
187                                        return;
188                                }
189                                nRF = (nRF >= DST_MaxRF()) ? DST_MinRF() : nRF+1;
190                                JST_Scan(nRF);
191                                nScanCount++;
192                                break;
193                }
194        }
195        virtual void KeyInput(unsigned char key, bool /*bRepeat*/)
196        {
197                switch (key)
198                {
199                        case VK_0:
200                        case VK_1:
201                        case VK_2:
202                        case VK_3:
203                        case VK_4:
204                        case VK_5:
205                        case VK_6:
206                        case VK_7:
207                        case VK_8:
208                        case VK_9:
209                                if (IsTVHotKeyPossible()) DST_CreateWin(WIN_CHANNEL_BANNER, WIN_NULL, BANNER_DIGIT, key);
210                                break;
211
212                        case VK_ZOOM:
213                                if (IsTVHotKeyPossible()) DST_CreateWin(WIN_DISPLAY_MODE_HOT);
214                                break;
215                        case VK_AUDIO:
216                                if (IsTVHotKeyPossible()) DST_CreateWin(WIN_AUDIO_HOT);
217                                break;
218                               
219                        case VK_EPG:
220                                if (IsTVHotKeyPossible()) DST_CreateWin(WIN_PROGRAM_GUIDE);
221                                break;
222
223                               
224                        case VK_HYPHEN:
225                                if (IsTVHotKeyPossible()) DST_CreateWin(WIN_DIRECT_TUNE);
226                                break;
227                        case VK_PWR:
228                        case VK_KEY_PWR:
229                                if (DST_g_PowerOn == true)
230                                {
231                                        DST_SendWindowEventWithOnlyCmd(WM_POWER_OFF);
232                                }
233                                else
234                                {
235                                        DST_SendWindowEventWithOnlyCmd(WM_POWER_ON);
236                                }
237                                break;
238
239                        case VK_VOL_DN:
240                                if (IsTVHotKeyPossible() == false) break; 
241                                if (DST_UI_GetVolume() > 0) DST_UI_SetVolume(DST_EEPROM_GetVolume() - 1);
242                                if (DST_UI_GetMute()) DST_UI_SetMute(!DST_UI_GetMute());
243                                DST_CreateWin(WIN_VOLUME);
244                                break;
245
246                        case VK_VOL_UP:
247                                if (IsTVHotKeyPossible() == false) break; 
248                                if (DST_UI_GetVolume() < 50) DST_UI_SetVolume(DST_EEPROM_GetVolume() + 1);
249                                if (DST_UI_GetMute()) DST_UI_SetMute(!DST_UI_GetMute());
250                                DST_CreateWin(WIN_VOLUME);
251                                break;
252                               
253                        case VK_MUTE:
254                                if (IsTVHotKeyPossible() == false) break; 
255                                DST_UI_SetMute(!DST_UI_GetMute());
256                                DST_CreateWin(WIN_VOLUME_MUTE);
257                                break;
258                               
259                        case VK_SIGNAL_METER:
260                                if (IsTVHotKeyPossible()) DST_CreateWin(WIN_SIGNAL_METER);
261                                break;
262
263                        case VK_CC:
264//                              if (IsTVHotKeyPossible()) DST_CreateWin(WIN_CLOSED_CAPTION_HOT);
265                                {
266                                        SWinEventMsg event;
267                                        memset(&event, 0, sizeof(SWinEventMsg));
268                                        event.cmd = WM_CVT;
269                                        char swversion[16] = {0,};
270                                        sprintf(swversion, "0.2000");
271                                        memcpy(&event.data[0], swversion, 16);
272                //              case 0: DST_Printf("Download Now\n"); break;
273                //              case 1: DST_Printf("Deferred Download\n"); break;
274                //              case 2: DST_Printf("No Exception\n"); break;
275                                        event.data32[4] = 0;
276                                        event.data32[5] = 1;
277                                        event.data32[6] = 627000000;
278                                        event.data32[7] = 0x66;
279                                        DST_SendWindowEvent(event);
280                                }
281
282                                break;
283                               
284                        case VK_CH_UP:
285                        case VK_CH_DN:
286                        case VK_KEY_UP:
287                        case VK_KEY_DN:
288                                if (IsTVHotKeyPossible() == false) break;
289                                T();
290                                if (DST_DB_PresentChMap() == false) // ä³Î¸ÊÀÌ ¾ø´Â °æ¿ì
291                                {
292                                T();
293                                        DST_CreateWin(WIN_AUTO_SEARCH, WIN_NULL, 1); // Rescan
294                                        break;
295                                }
296                                T();
297                                switch (key)
298                                {
299                                        case VK_CH_UP:
300                                        case VK_KEY_UP:
301                                                DST_UI_ChannelUpDn(true);
302                                                break;
303                                        default:
304                                                DST_UI_ChannelUpDn(false);
305                                                break;
306                                }
307                                break;
308
309                        case VK_MENU:
310                                if (IsTVHotKeyPossible()) DST_CreateWin(WIN_MAIN_MENU);
311                                break;
312
313                        case VK_OK:
314                                if (IsTVHotKeyPossible()) DST_CreateWin(WIN_INFOR_BANNER);
315                                break;
316
317                        case VK_PREV:
318                        case VK_PREV_CH:
319                                if (IsTVHotKeyPossible()) 
320                                {
321                                        int nCh_Major = DST_DB_GetMajor(DST_g_PrevRF,DST_g_PrevProgramNumber);
322                                        int nCh_Minor = DST_DB_GetMinor(DST_g_PrevRF,DST_g_PrevProgramNumber);
323                                        if(DST_DB_PresentMatchChannel(DST_g_PrevRF, nCh_Major,nCh_Minor ))
324                                        {
325                                                DST_UI_ChannelTune(DST_g_PrevRF, DST_g_PrevProgramNumber);
326                                        }
327                                        else
328                                        {
329                                                DST_g_PrevRF = DST_EEPROM_GetRF();
330                                                DST_g_PrevProgramNumber = DST_EEPROM_GetProgramNumber();
331                                        }
332                                }
333                                break;
334                }
335        }
336};
337
338void DST_CreateBaseSystemWindow(SWinEventMsg event)
339{
340        DST_AddWin((WinID)(event.data[0]), new CBasicSystemWin(event));
341}
Note: See TracBrowser for help on using the repository browser.