source: svn/trunk/zasc/app_c/DST_HostInterface.c @ 32

Last change on this file since 32 was 32, checked in by megakiss, 11 years ago

엔지니어 모드 진입키를 상하좌우 하하로 변경함

File size: 15.5 KB
Line 
1#include "DST_HostInterface.h"
2#include "DST_CommonAPI.h"
3#include "DST_WinManager.h"
4#include "DST_UserInterface.h"
5
6
7void JST_RFUpdate(DS_U8 RF);
8
9int DST_GetScreenHeight()
10{
11        return 480;
12}
13
14int DST_GetScreenWidth()
15{
16        return 720;
17}
18
19static DS_U8 DST_ConvertKeyCode(DS_U32 Code)
20{
21        //printf("%s|%X\n", __func__,  (int)Code);
22        DS_U8 g_KeyCode = 0;
23        DST_g_KeyPressed = true;
24        switch (Code)
25        {
26                case 1: g_KeyCode = VK_KEY_PWR;  break;
27                case 2: g_KeyCode = VK_KEY_UP;  break;
28                case 4: g_KeyCode = VK_KEY_DN; break;
29                       
30                case 0xFF003411: g_KeyCode = VK_KEY_PWR;  break;
31                case 0xF7083411: g_KeyCode = VK_KEY_UP;  break;
32                case 0xF6093411: g_KeyCode = VK_KEY_DN;  break;
33                       
34#ifdef DSTAR // DSTAR Űº¸µå »ç¿ë
35                case 0xCAFE002D: g_KeyCode = VK_HYPHEN; break;// -
36                case 0xCAFE0030: g_KeyCode = VK_0; break;
37                case 0xCAFE0031: g_KeyCode = VK_1; break;
38                case 0xCAFE0032: g_KeyCode = VK_2; break;
39                case 0xCAFE0033: g_KeyCode = VK_3; break;
40                case 0xCAFE0034: g_KeyCode = VK_4; break;
41                case 0xCAFE0035: g_KeyCode = VK_5; break;
42                case 0xCAFE0036: g_KeyCode = VK_6; break;
43                case 0xCAFE0037: g_KeyCode = VK_7; break;
44                case 0xCAFE0038: g_KeyCode = VK_8; break;
45                case 0xCAFE0039: g_KeyCode = VK_9; break;
46                case 0xCAFE0020: g_KeyCode = VK_MENU; break;// menu : space
47                case 0xCAFE0114: g_KeyCode = VK_LEFT; break;// left;
48                case 0xCAFE0113: g_KeyCode = VK_RIGHT; break;// right;
49                case 0xCAFE0111: g_KeyCode = VK_UP; break;// up;
50                case 0xCAFE0112: g_KeyCode = VK_DN; break;// dn;
51                case 0xCAFE000D: g_KeyCode = VK_OK; break;// OK : enter
52                case 0xCAFE006D: g_KeyCode = VK_MUTE; break;// mute : m
53                case 0xCAFE0065: g_KeyCode = VK_EPG; break;// epg : e
54                case 0xCAFE0061: g_KeyCode = VK_AUDIO; break;// audio : a
55                case 0xCAFE0106: g_KeyCode = VK_VOL_UP; break; // volume up : 6
56                case 0xCAFE0104: g_KeyCode = VK_VOL_DN; break; // volume down : 4
57                case 0xCAFE0117: g_KeyCode = VK_PWR; break; // end
58                case 0xCAFE0108: g_KeyCode = VK_CH_UP; break; // channel up : 8
59                case 0xCAFE0102: g_KeyCode = VK_CH_DN; break; // channel down : 2
60                case 0xCAFE0008: g_KeyCode = VK_PREV; break; // prev : back space
61                case 0xCAFE007A: g_KeyCode = VK_ZOOM; break;// zoom : z
62                case 0xCAFE0073: g_KeyCode = VK_SIGNAL_METER; break;// signal meter : s
63                case 0xCAFE001B: g_KeyCode = VK_CANCEL; break;// back : esc
64                case 0xCAFE0063: g_KeyCode = VK_CC; break; // c
65                case 0xCAFE0072: g_KeyCode = VK_DISPLAY_MODE; break; // display mode hot key : r
66                case 0xCAFE0066: g_KeyCode = VK_CHANNEL_SEARCH; break; // channel searc hot key : f
67#endif   // DSTAR Űº¸µå »ç¿ë           
68                       
69#if 0 // DST ¸®¸ðÄÜ
70                case 0xE41B3412: g_KeyCode = VK_MENU;  break;
71                case 0xFB043412: g_KeyCode = VK_LEFT;  break;
72                case 0xFA053412: g_KeyCode = VK_RIGHT;  break;
73                case 0xFD023412: g_KeyCode = VK_UP;  break;
74                case 0xFC033412: g_KeyCode = VK_DN;  break;
75                case 0xFE013412: g_KeyCode = VK_OK;  break;
76                case 0xFF003412: g_KeyCode = VK_PWR;  break;
77                case 0xE21D3412: g_KeyCode = VK_PREV_MENU;  break;
78                case 0xDF203412: g_KeyCode = VK_PREV_CH;  break;       
79                case 0xEE113412: g_KeyCode = VK_1;  break;
80                case 0xED123412: g_KeyCode = VK_2;  break;
81                case 0xEC133412: g_KeyCode = VK_3;  break;
82                case 0xEB143412: g_KeyCode = VK_4;  break;
83                case 0xEA153412: g_KeyCode = VK_5;  break;
84                case 0xE9163412: g_KeyCode = VK_6;  break;
85                case 0xE8173412: g_KeyCode = VK_7;  break;
86                case 0xE7183412: g_KeyCode = VK_8;  break;
87                case 0xE6193412: g_KeyCode = VK_9;  break;
88                case 0xEF103412: g_KeyCode = VK_0;  break;
89                case 0xDD223412: g_KeyCode = VK_MUTE;  break;
90                case 0xDC233412: g_KeyCode = VK_AUDIO;  break;
91                case 0xDB243412: g_KeyCode = VK_ZOOM;  break;
92                case 0xE51A3412: g_KeyCode = VK_HYPHEN; break;
93                case 0xDA253412: g_KeyCode = VK_CC; break;
94                case 0xF9063412: g_KeyCode = VK_VOL_UP; break;
95                case 0xF8073412: g_KeyCode = VK_VOL_DN; break;
96                case 0xF7083412: g_KeyCode = VK_CH_UP; break;
97                case 0xF6093412: g_KeyCode = VK_CH_DN; break;
98//              case 0xD32C3412: g_KeyCode = VK_STAR; break;
99#endif // DST ¸®¸ðÄÜ
100                       
101#if 1 // °øÀå¿ë HD200K ¸®¸ðÄÜ
102                case 0xE21D0204: g_KeyCode = VK_HYPHEN;  break;
103                case 0xE9160204: g_KeyCode = VK_FAC_OK;  break;
104                case 0xE51A0204: g_KeyCode = VK_FAC_CANCEL;  break;
105                case 0xFD020204: g_KeyCode = VK_FAC_1;  break;
106                case 0xF7080204: g_KeyCode = VK_FAC_7;  break;
107                case 0xFF000204: g_KeyCode = VK_FAC_PWR;  break;
108#endif // °øÀå¿ë HD200K ¸®¸ðÄÜ
109
110#if 0 //CMB ¸®¸ðÄÜ
111                case 0xFF000820: g_KeyCode = VK_PWR;  break;
112                case 0xF6090820: g_KeyCode = VK_MENU;  break;
113                case 0xF10E0820: g_KeyCode = VK_LEFT;  break;
114                case 0xF00F0820: g_KeyCode = VK_RIGHT;  break;
115                case 0xF40B0820: g_KeyCode = VK_UP;  break;
116                case 0xF30C0820: g_KeyCode = VK_DN;  break;
117                case 0xF20D0820: g_KeyCode = VK_OK;  break;     
118                case 0xBA450820: g_KeyCode = VK_PREV;  break;
119                case 0xF50A0820: g_KeyCode = VK_CANCEL;  break;
120                case 0xE11E0820: g_KeyCode = VK_0;  break;     
121                case 0xEB140820: g_KeyCode = VK_1;  break;     
122                case 0xEA150820: g_KeyCode = VK_2;  break;     
123                case 0xE9160820: g_KeyCode = VK_3;  break;     
124                case 0xE8170820: g_KeyCode = VK_4;  break;     
125                case 0xE7180820: g_KeyCode = VK_5;  break;     
126                case 0xE6190820: g_KeyCode = VK_6;  break;     
127                case 0xE51A0820: g_KeyCode = VK_7;  break;     
128                case 0xE41B0820: g_KeyCode = VK_8;  break;     
129                case 0xE31C0820: g_KeyCode = VK_9;  break;     
130                case 0xFC030820: g_KeyCode = VK_MUTE;  break;   
131                case 0xF8070820: g_KeyCode = VK_CH_UP;  break; 
132                case 0xF7080820: g_KeyCode = VK_CH_DN;  break; 
133                case 0xFA050820: g_KeyCode = VK_VOL_UP;  break;
134                case 0xF9060820: g_KeyCode = VK_VOL_DN;  break;
135                case 0xEF100820: g_KeyCode = VK_RED;  break;   
136                case 0xEE110820: g_KeyCode = VK_GREEN;  break;
137                case 0xED120820: g_KeyCode = VK_YELLOW;  break;
138                case 0xEC130820: g_KeyCode = VK_BLUE;  break;                           
139                case 0xB7480820: g_KeyCode = VK_MUTE;  break; // CMB ½ºÆå¿¡ µû¸§. ¸®¸ðÄÜ¿¡´Â ¾øÀ½
140                case 0xDD220820: g_KeyCode = VK_CC;  break; // »õ·Î Ãß°¡µÈ ¿ìÃøÇÏ´Ü CC ¹öư
141                case 0xDC230820: g_KeyCode = VK_HYPHEN; break; // ÁÂÃøÇÏ´Ü ½ºÅ¸¹öưÀ» ÇÏÀÌÇÂÀ¸·Î »ç¿ëÇÑ´Ù
142                case 0xE21D0820: g_KeyCode = VK_HYPHEN; break; // ±âÈ£
143                case 0xE01F0820: g_KeyCode = VK_HYPHEN; break; // ¶ç¿ò
144                case 0xDB240820: g_KeyCode = VK_DISPLAY_MODE; break;
145                case 0xDA250820: g_KeyCode = VK_CHANNEL_SEARCH; break; 
146//              case 0xD9260820:  //°ø¹é
147#endif //CMB ¸®¸ðÄÜ
148
149#if 1 //Ƽºê·Îµå ¸®¸ðÄÜ
150                case 0xF30CF58A: g_KeyCode = VK_PWR;  break;
151                case 0xFE01F58A: g_KeyCode = VK_1;  break;     
152                case 0xFD02F58A: g_KeyCode = VK_2;  break;     
153                case 0xFC03F58A: g_KeyCode = VK_3;  break;     
154                case 0xFB04F58A: g_KeyCode = VK_4;  break;     
155                case 0xFA05F58A: g_KeyCode = VK_5;  break;     
156                case 0xF906F58A: g_KeyCode = VK_6;  break;     
157                case 0xF807F58A: g_KeyCode = VK_7;  break;     
158                case 0xF708F58A: g_KeyCode = VK_8;  break;     
159                case 0xF609F58A: g_KeyCode = VK_9;  break;     
160                case 0xFF00F58A: g_KeyCode = VK_0;  break;     
161                case 0x9768F58A: g_KeyCode = VK_HYPHEN; break; // ÁÂÃøÇÏ´Ü ½ºÅ¸¹öưÀ» ÇÏÀÌÇÂÀ¸·Î »ç¿ëÇÑ´Ù
162                case 0x9C63F58A: g_KeyCode = VK_CC;  break; // »õ·Î Ãß°¡µÈ ¿ìÃøÇÏ´Ü CC ¹öư
163                case 0xE916F58A: g_KeyCode = VK_MENU;  break;
164                case 0xE619F58A: g_KeyCode = VK_PREV;  break;
165                case 0x9D62F58A: g_KeyCode = VK_CANCEL;  break;
166                case 0xED12F58A: g_KeyCode = VK_MUTE;  break;   
167                case 0xE817F58A: g_KeyCode = VK_CH_UP;  break; 
168                case 0xE718F58A: g_KeyCode = VK_CH_DN;  break; 
169                case 0xEC13F58A: g_KeyCode = VK_VOL_UP;  break; 
170                case 0xEB14F58A: g_KeyCode = VK_VOL_DN;  break;
171                case 0xE51AF58A: g_KeyCode = VK_UP;  break;
172                case 0xE41BF58A: g_KeyCode = VK_DN;  break;
173                case 0xE21DF58A: g_KeyCode = VK_LEFT;  break;
174                case 0xE31CF58A: g_KeyCode = VK_RIGHT;  break;
175                case 0xE01FF58A: g_KeyCode = VK_OK;  break;     
176                       
177                case 0xDE21F58A: g_KeyCode = VK_RED;  break;   
178                case 0xDC23F58A: g_KeyCode = VK_GREEN;  break;
179                case 0xDD22F58A: g_KeyCode = VK_YELLOW;  break; 
180                case 0xDB24F58A: g_KeyCode = VK_BLUE;  break;                           
181                       
182#endif //CMB ¸®¸ðÄÜ
183                default: g_KeyCode = 0;        break;
184        }
185        return g_KeyCode;       
186}
187
188// ¸®¸ðÄÜÀÇ Äݹé
189typedef struct 
190{
191        bool bIsKeyPad;
192        DS_U8 key;
193        DS_U32 tick;
194} Key_Msg;
195
196static DS_U32 MsgQ = 0;
197static void DST_AddKey(bool bIsKeyPad, DS_U8 key, DS_U32 tick)
198{
199        if (MsgQ == 0) MsgQ = DST_OS_CreateMessageQueue("qKey", 0, 100, sizeof(Key_Msg));
200        Key_Msg msg;
201        msg.bIsKeyPad = bIsKeyPad;
202        msg.key = key;
203        msg.tick = tick;
204        DST_OS_SendMessage(MsgQ, (DS_U32 *)&msg, sizeof(Key_Msg));
205//      T();
206}
207
208static DS_U8 DST_GetKey()
209{
210        if (MsgQ == 0) return 0;
211        Key_Msg msg;
212        DS_U32 retLen = 0;
213        if (DST_OS_ReceiveMessage_NoWait(MsgQ, (DS_U32*)&msg, sizeof(Key_Msg), &retLen) != noError) return 0;
214        if (msg.tick > DST_OS_GetTickCount()) msg.tick = DST_OS_GetTickCount();
215        if (DST_OS_GetTickCount() - msg.tick > 600) return DST_GetKey(); // 600ms ÀÌ»ó Áö³­Å°´Â ¹ö¸°´Ù.
216        if (DHL_GetKeyPadGPIO() > 0) // ŰÆÐµå°¡ ´­·Á ÀÖ´Ù¸é ¸®¸ðÄÜÀº ¹«½ÃÇÑ´Ù.
217        {
218                if (msg.bIsKeyPad == false) return DST_GetKey(); 
219        }
220        return msg.key;
221}
222
223// ¸®¸ðÄÜ Äݹé
224void DST_IrCallBack(DS_U32 key, DS_U32 repeat, DS_U32 tick)
225{
226//      DST_Printf("|%s| key = 0x%02X, repeat = %d\n", __func__, (int)key, (int)repeat);
227//      return;
228        static DS_U32 old_repeat = 0;
229        static DS_U32 repeat_count = 0;
230        DS_U8 KeyCode = DST_ConvertKeyCode(key);
231        //DST_g_LastKeyPressTime = tick;
232        if (repeat == 0)
233        {
234                repeat_count = 0;
235                DST_AddKey(false, KeyCode, tick);
236        }
237        else
238        {
239                switch (KeyCode)
240                {
241                        case VK_VOL_UP:
242                        case VK_VOL_DN:
243                                if (old_repeat == 0 && repeat == 1) repeat_count = 0;
244                                repeat_count++;
245                                if (repeat_count > 3 /*&& repeat_count % 3 == 2*/) DST_AddKey(false, KeyCode, tick); // 330ms°£°Ý ¸®ÇÍ
246                                break;
247                        case VK_CH_UP:
248                        case VK_CH_DN:
249                        case VK_KEY_UP:
250                        case VK_KEY_DN:
251                                if (old_repeat == 0 && repeat == 1) repeat_count = 0;
252                                repeat_count++;
253                                if (repeat_count > 6 /*&& repeat_count % 3 == 2*/) DST_AddKey(false, KeyCode, tick); // 330ms°£°Ý ¸®ÇÍ
254                                break;
255                        case VK_UP:
256                        case VK_DN:
257                                if (old_repeat == 0 && repeat == 1) repeat_count = 0;
258                                repeat_count++;
259                                if (repeat_count > 3 /*&& repeat_count % 3 == 2*/) DST_AddKey(false, KeyCode, tick); // 330ms°£°Ý ¸®ÇÍ
260                                break;
261                        case VK_LEFT:
262                        case VK_RIGHT:
263                                if (old_repeat == 0 && repeat == 1) repeat_count = 0;
264                                repeat_count++;
265                                if (repeat_count > 3 && repeat_count % 2 == 1) DST_AddKey(false, KeyCode, tick); // 330ms°£°Ý ¸®ÇÍ
266                                break;
267                        default:
268                                repeat_count = 0;
269                                break;
270                }
271        }
272        old_repeat = repeat;
273}
274
275#ifdef DSTAR
276static void tKeyPad()
277{
278        DS_U8 PreKeyCode = 0;
279        DS_U32 tick = 0;
280        while(1)
281        {
282                DST_OS_Delay(10); // 10ms
283                DS_U8 KeyCode = DST_ConvertKeyCode(DHL_GetKeyPadGPIO());
284                //DST_Printf("KeyCode = %d\n", KeyCode);
285                switch (KeyCode)
286                {
287                        case VK_KEY_PWR:
288                                if (PreKeyCode == KeyCode) break;
289                                DST_AddKey(true, KeyCode, DST_OS_GetTickCount()); 
290                                PreKeyCode = KeyCode;
291                                tick = DST_OS_GetTickCount();
292                                break;
293                        case VK_KEY_UP:
294                                if (PreKeyCode == KeyCode) break;
295                                DST_AddKey(true, KeyCode, DST_OS_GetTickCount()); 
296                                PreKeyCode = KeyCode;
297                                tick = DST_OS_GetTickCount();
298                                break;
299                        case VK_KEY_DN:
300                                if (PreKeyCode == KeyCode) break;
301                                DST_AddKey(true, KeyCode, DST_OS_GetTickCount()); 
302                                PreKeyCode = KeyCode;
303                                tick = DST_OS_GetTickCount();
304                                break;
305                        default:
306                                PreKeyCode = KeyCode;
307                                tick = DST_OS_GetTickCount();
308                                break;
309                }
310                switch (KeyCode)
311                {
312                        case VK_KEY_UP:
313                                if (tick > DST_OS_GetTickCount()) tick = DST_OS_GetTickCount();
314                                if (DST_OS_GetTickCount() - tick < DST_OS_GetTicksPerSecond()/3) break;
315                                DST_AddKey(true, KeyCode, DST_OS_GetTickCount());
316                                tick = DST_OS_GetTickCount(); 
317                                break;
318                        case VK_KEY_DN:
319                                if (tick > DST_OS_GetTickCount()) tick = DST_OS_GetTickCount();
320                                if (DST_OS_GetTickCount() - tick < DST_OS_GetTicksPerSecond()/3) break;
321                                DST_AddKey(true, KeyCode, DST_OS_GetTickCount());
322                                tick = DST_OS_GetTickCount(); 
323                                break;
324                        default:
325                                break;
326                }
327        }
328}
329#endif
330
331void DST_ResetKeyCode()
332{
333       
334}
335
336DS_U8 DST_GetKeyCode() // À©µµ¿ì ¸Þ´ÏÀú¿¡¼­ È£Ãâ
337{
338#ifdef DSTAR
339        static bool bFirst = true;
340        if (bFirst == true)
341        {
342                bFirst = false;
343                DST_OS_SpawnTask((void(*)(void *))tKeyPad, (char*)"DSTAR_KEY", APP_TASK_PRIO_KEYPAD, WIN_MGR_TASK_STACKSIZE,  0);
344        }
345#endif
346        DS_U8 KeyCode = DST_GetKey();
347        if (KeyCode == 0) return 0;
348        // ¿¬¼Ó Ű ó¸®
349        static DS_U8 KeyCodes[7] = {0,0,0,0,0,0,0};
350        KeyCodes[0] = KeyCodes[1]; KeyCodes[1] = KeyCodes[2]; KeyCodes[2] = KeyCodes[3];
351        KeyCodes[3] = KeyCodes[4]; KeyCodes[4] = KeyCodes[5]; KeyCodes[5] = KeyCodes[6]; KeyCodes[6] = KeyCode;
352        // 062596 Mute
353        if (KeyCodes[0] == VK_0    && KeyCodes[1] == VK_6   && KeyCodes[2] == VK_2 && 
354                        KeyCodes[3] == VK_5 && KeyCodes[4] == VK_9 && KeyCodes[5] == VK_6 && KeyCodes[6] == VK_MUTE)
355        {
356               
357                if(DST_g_bOTCMode) return 0;
358                DST_ResetKeyCode();
359                DST_Printf("Enter Engineer Menu\n");
360                DST_CreateWin(WIN_ENGINEER_MODE, WIN_NULL, 0,0,0,0); // ¿£Áö´Ï¾î ¸ðµå ÁøÀÔ
361                return 0;
362        }
363#if 0   
364        // ³ë¶û 5 ³ì»ö 1
365        if (KeyCodes[1] == VK_YELLOW    && KeyCodes[2] == VK_YELLOW   && KeyCodes[3] == VK_YELLOW &&
366                        KeyCodes[4] == VK_YELLOW && KeyCodes[5] == VK_YELLOW && KeyCodes[6] == VK_GREEN)
367        {
368       
369                if(DST_g_bOTCMode) return 0;
370                DST_ResetKeyCode();
371                DST_Printf("Enter Engineer Menu\n");
372                DST_CreateWin(WIN_ENGINEER_MODE, WIN_NULL, 0,0,0,0); // ¿£Áö´Ï¾î ¸ðµå ÁøÀÔ
373                return 0;
374        }
375#endif
376        // 0 Mute 7 Mute
377        if (KeyCodes[3] == VK_0 && KeyCodes[4] == VK_MUTE && KeyCodes[5] == VK_7 && KeyCodes[6] == VK_MUTE)
378        {
379                if (DST_GetWin(WIN_OTC_DOWNLOAD)) return 0; 
380                if (DST_GetWin(WIN_OTC_DOWNLOAD_FAIL)) return 0;
381                if (DST_GetWin(WIN_UPDATE)) return 0;
382                if (DST_GetWin(WIN_UPDATE_RESET)) return 0;
383                DST_ResetKeyCode();
384                DST_g_bUseAirFreq = true;
385                JST_RFUpdate(DST_GetIndexByRFNumber(18)); // RF 18¹øÀÌ RF ¾÷µ¥ÀÌÆ® Á֯ļöÀÓ
386                DST_Printf("Enter RF Update Mode\n");
387                DST_CreateWin(WIN_RF_UPDATE, WIN_NULL, 0,0,0,0); // RF ¾÷µ¥ÀÌÆ® ¸ðµå ÁøÀÔ
388                return 0;
389        }
390
391        // VK_FAC_PWR VK_FAC_PWR VK_FAC_PWR VK_FAC_PWR VK_FAC_PWR
392        if (KeyCodes[2] == VK_FAC_PWR && KeyCodes[3] == VK_FAC_PWR && KeyCodes[4] == VK_FAC_PWR && KeyCodes[5] == VK_FAC_PWR && KeyCodes[6] == VK_FAC_PWR)
393        {
394                if (DST_GetWin(WIN_OTC_DOWNLOAD)) return 0; 
395                if (DST_GetWin(WIN_OTC_DOWNLOAD_FAIL)) return 0;
396                if (DST_GetWin(WIN_UPDATE)) return 0;
397                if (DST_GetWin(WIN_UPDATE_RESET)) return 0;
398                DST_ResetKeyCode();
399                DST_g_bUseAirFreq = true;
400                JST_RFUpdate(DST_GetIndexByRFNumber(18)); // RF 18¹øÀÌ RF ¾÷µ¥ÀÌÆ® Á֯ļöÀÓ
401                DST_Printf("Enter RF Update Mode\n");
402                DST_CreateWin(WIN_RF_UPDATE, WIN_NULL, 0,0,0,0); // RF ¾÷µ¥ÀÌÆ® ¸ðµå ÁøÀÔ
403                return 0;
404        }
405       
406        // 0 MUTE 3 MUTE
407        if (KeyCodes[3] == VK_0 && KeyCodes[4] == VK_MUTE && KeyCodes[5] == VK_3 && KeyCodes[6] == VK_MUTE)
408        {
409                DST_ResetKeyCode();
410                DST_Printf("Enter Factory Mode\n");
411                DST_g_bUseAirFreq = true;
412                DST_CreateWin(WIN_FACTORY_MODE, WIN_NULL, 0,0,0,0); // °øÀå ¸ðµå ÁøÀÔ
413                return 0;
414        }
415        // 0 ÀÌÀü  3 ÀÌÀü
416        if (KeyCodes[3] == VK_0 && KeyCodes[4] == VK_PREV && KeyCodes[5] == VK_3 && KeyCodes[6] == VK_PREV)
417        {
418                DST_ResetKeyCode();
419                DST_Printf("Enter Factory Mode\n");
420                DST_g_bUseAirFreq = true;
421                DST_CreateWin(WIN_FACTORY_MODE, WIN_NULL, 0,0,0,0); // °øÀå ¸ðµå ÁøÀÔ
422                return 0;
423        }
424        // 0 ÀÌÀüä³Î  3 ÀÌÀüä³Î
425        if (KeyCodes[3] == VK_0 && KeyCodes[4] == VK_PREV_CH && KeyCodes[5] == VK_3 && KeyCodes[6] == VK_PREV_CH)
426        {
427                DST_ResetKeyCode();
428                DST_Printf("Enter Factory Mode\n");
429                DST_g_bUseAirFreq = true;
430                DST_CreateWin(WIN_FACTORY_MODE, WIN_NULL, 0,0,0,0); // °øÀå ¸ðµå ÁøÀÔ
431                return 0;
432        }
433        //HD200K okŰ 3¹øÀ¸·Î °øÀå¸ðµå ÁøÀÔ
434        if (KeyCodes[4] == VK_FAC_OK&& KeyCodes[5] == VK_FAC_OK && KeyCodes[6] == VK_FAC_OK)
435        {
436                DST_ResetKeyCode();
437                DST_Printf("Enter Factory Mode\n");
438                DST_g_bUseAirFreq = true;
439                DST_CreateWin(WIN_FACTORY_MODE, WIN_NULL, 0,0,0,0); // °øÀå ¸ðµå ÁøÀÔ
440                return 0;
441        }
442        // »óÇÏ Á¿ì ÇÏÇÏ
443        if (KeyCodes[1] == VK_UP    && KeyCodes[2] == VK_DN   && KeyCodes[3] == VK_LEFT && 
444                        KeyCodes[4] == VK_RIGHT && KeyCodes[5] == VK_DN   && KeyCodes[6] == VK_DN)
445        {
446                if(DST_g_bOTCMode) return 0;
447                DST_ResetKeyCode();
448                DST_Printf("Enter Engineer Menu\n");
449                DST_CreateWin(WIN_ENGINEER_MODE, WIN_NULL, 0,0,0,0); // ¿£Áö´Ï¾î ¸ðµå ÁøÀÔ
450                return 0;
451
452        }
453        return  KeyCode;
454}
Note: See TracBrowser for help on using the repository browser.