| 1 | /**************************************************************************** |
|---|
| 2 | * NAME: App_Fnc_DigitKeyProc.c |
|---|
| 3 | *---------------------------------------------------------------------------- |
|---|
| 4 | * Copyright (c) DIGITAL STREAM Technology Inc. |
|---|
| 5 | *---------------------------------------------------------------------------- |
|---|
| 6 | * CREATED_BY: Yong Dae Park |
|---|
| 7 | * CREATION_DATE: 2009/09/08 |
|---|
| 8 | * $Author: x2silo $ |
|---|
| 9 | * $Revision: 1.1 $ |
|---|
| 10 | * $Date: 2009/07/08 15:08:26 $ |
|---|
| 11 | *---------------------------------------------------------------------------- |
|---|
| 12 | * PURPOSE: |
|---|
| 13 | * - |
|---|
| 14 | *****************************************************************************/ |
|---|
| 15 | |
|---|
| 16 | /*_____ I N C L U D E __________________________________________*/ |
|---|
| 17 | |
|---|
| 18 | #include "App_Main.h" |
|---|
| 19 | #include "App_Fnc_Common.h" |
|---|
| 20 | |
|---|
| 21 | #include "App_Fnc_DigitKeyProc.h" |
|---|
| 22 | #include "App_Fnc_ChTune.h" |
|---|
| 23 | #include "App_Fnc_Power.h" |
|---|
| 24 | |
|---|
| 25 | #include "DMG_Menu.h" |
|---|
| 26 | #include "App_Res_Resources.h" |
|---|
| 27 | |
|---|
| 28 | |
|---|
| 29 | |
|---|
| 30 | |
|---|
| 31 | |
|---|
| 32 | /*_____ D E F I N I T I O N ____________________________________*/ |
|---|
| 33 | |
|---|
| 34 | #if COMMENT |
|---|
| 35 | _____DbgPrint_____(){} |
|---|
| 36 | #endif |
|---|
| 37 | |
|---|
| 38 | DHL_MODULE("@f_dgk", 0); |
|---|
| 39 | |
|---|
| 40 | |
|---|
| 41 | |
|---|
| 42 | |
|---|
| 43 | |
|---|
| 44 | #if COMMENT |
|---|
| 45 | ____Config____(){} |
|---|
| 46 | #endif |
|---|
| 47 | |
|---|
| 48 | #define SUPPORT_INTELLITUNE 0 |
|---|
| 49 | // cafrii 060721 -> 0 |
|---|
| 50 | // QIÀÇ ¿äûÀ¸·Î ÀÏ´Ü ¸·À½. |
|---|
| 51 | |
|---|
| 52 | // ±â´É ¼³¸í: |
|---|
| 53 | // »ç¿ëÀÚÀÇ ¼ýÀÚ ÀÔ·ÂÀÌ ¾ÆÁ÷ ¿Ï·áµÇÁö´Â ¾Ê¾Ò´õ¶óµµ ÇöÀç ÀÔ·ÂµÈ ¼ýÀÚ Á¤º¸¸¸À¸·Î |
|---|
| 54 | // ÀÔ·Â Á¾·á°¡ È®½Ç½Ã µÇ´Â °æ¿ì ¹Ì¸® tuning¿¡ µé¾î°¡´Â ±â´É. |
|---|
| 55 | // |
|---|
| 56 | // ¿¹: ¼ýÀÚ 12¸¦ ´·¶´Âµ¥ ä³Î DB¿¡ 12·Î ½ÃÀÛÇϴ ä³ÎÀÌ ´Ü Çϳª ¹Û¿¡ ¾ø´Ù¸é |
|---|
| 57 | // timeout ¹× OK ۰¡ ´¸®Áö ¾Ê¾Æµµ ±×³É Æ©´× ½ÃÀÛÇØ ¹ö¸°´Ù. |
|---|
| 58 | |
|---|
| 59 | |
|---|
| 60 | |
|---|
| 61 | |
|---|
| 62 | |
|---|
| 63 | #if COMMENT |
|---|
| 64 | ____Types____(){} |
|---|
| 65 | #endif |
|---|
| 66 | |
|---|
| 67 | |
|---|
| 68 | |
|---|
| 69 | |
|---|
| 70 | |
|---|
| 71 | #if COMMENT |
|---|
| 72 | ____Variables____(){} |
|---|
| 73 | #endif |
|---|
| 74 | |
|---|
| 75 | //int g_DigitKeyTimeoutMs = 3000; |
|---|
| 76 | // timeout µÇ´Â ½Ã°£.. ´ÜÀ§: millisec |
|---|
| 77 | // »õ·Î¿î ¹æ½Ä¿¡¼´Â timeout üũ¸¦ caller°¡ ¼öÇàÇÑ´Ù. |
|---|
| 78 | |
|---|
| 79 | |
|---|
| 80 | BOOL g_DrfTunning; |
|---|
| 81 | // TRUE À̸é DRF Æ©´×À» À§ÇÑ ¼ýÀÚ ÀÔ·ÂÀÌ ÁøÇà ÁßÀÓ. |
|---|
| 82 | // »ç¿ëÀÚ°¡ DOT ۸¦ ¸ÕÀú ´©¸£¸é ÇØ´ç ä³Î¿¡ ´ëÇØ Manual ScanÀ» ¼öÇàÇÑ´Ù. |
|---|
| 83 | // ÀÌ·² °æ¿ì DOT۸¦ ´©¸£´Â ¼ø°£ manual scanÀÓÀ» ³ªÅ¸³»´Â OSD°¡ Ç¥½ÃµÇ°í, |
|---|
| 84 | // ÀÌ º¯¼ö°¡ set µÈ´Ù. |
|---|
| 85 | // ¼ýÀÚ Á¶ÇÕÀÌ ¿Ï·áµÇ¸é manual scanÀ» ÁøÇàÇÑ´Ù. |
|---|
| 86 | |
|---|
| 87 | |
|---|
| 88 | // ¾ÆÁ÷ ÀÔ·ÂÀÌ ¾ÈµÇ¾î ÀÖ´Â »óŶó¸é -1ÀÇ °ªÀ» °¡Áö°í ÀÖÀ¸¸ç |
|---|
| 89 | // ÀÔ·ÂÀÌ µÇ¸é 0 ÀÌ»óÀÇ °ªÀ» °®´Â´Ù. |
|---|
| 90 | |
|---|
| 91 | int g_DigitMajor = -1; |
|---|
| 92 | int g_DigitMinor = -1; |
|---|
| 93 | // °¢°¢ major, minor ÀÔ·Â °ªÀ» ÀǹÌ. |
|---|
| 94 | |
|---|
| 95 | BOOL g_bDigitDot = FALSE; |
|---|
| 96 | // dot ۰¡ ÀԷµǸé TRUE°¡ µÈ´Ù. |
|---|
| 97 | |
|---|
| 98 | BOOL g_bDigitKeyReadyToTune; |
|---|
| 99 | // tune ÇÒ Áغñ°¡ µÇ¸é TRUE. |
|---|
| 100 | // ±âÁ¸ ¹æ½ÄÀº Á¶°ÇÀÌ µÇ¸é ¹Ù·Î tuning ÀÛ¾÷¿¡ µé¾î°¬À¸³ª, |
|---|
| 101 | // »õ ¹æ½Ä¿¡¼´Â ä³Î ¹øÈ£°¡ ¿Ï¼ºÀÌ µÇ¾ú´Ù´Â »ç½Ç¸¸À» ¾Ë·ÁÁÖ°í ½ÇÁ¦ Æ©´×Àº UIÃøÀÇ expliciteÇÑ API call¿¡ ÀÇÇØ °³½ÃÇÔ. |
|---|
| 102 | |
|---|
| 103 | UINT32 g_DigitTickLastUpdated; |
|---|
| 104 | // ¸¶Áö¸·À¸·Î digit key°¡ ÀÔ·ÂµÈ ´ç½ÃÀÇ tick ½Ã°£. |
|---|
| 105 | // ÀÏÁ¤ ½Ã°£ÀÌ Áö³ª¸é timeoutÀÌ µÇ¾î tuningÀÌ ½ÃÀ۵ȴÙ. |
|---|
| 106 | |
|---|
| 107 | |
|---|
| 108 | |
|---|
| 109 | |
|---|
| 110 | |
|---|
| 111 | /*_____ F U N C T I O N ________________________________________*/ |
|---|
| 112 | |
|---|
| 113 | #if COMMENT |
|---|
| 114 | ____Functions____(){} |
|---|
| 115 | #endif |
|---|
| 116 | |
|---|
| 117 | void p_print_drf(void) |
|---|
| 118 | { |
|---|
| 119 | char str[40]; |
|---|
| 120 | |
|---|
| 121 | str[0] = 0; |
|---|
| 122 | |
|---|
| 123 | if (g_DrfTunning) |
|---|
| 124 | sprintf(str+strlen(str), "RF "); |
|---|
| 125 | |
|---|
| 126 | if (g_DigitMajor >= 0) |
|---|
| 127 | { |
|---|
| 128 | sprintf(str+strlen(str), "%d", g_DigitMajor); |
|---|
| 129 | |
|---|
| 130 | if (g_bDigitDot) |
|---|
| 131 | { |
|---|
| 132 | strcat(str, "."); |
|---|
| 133 | |
|---|
| 134 | if (g_DigitMinor >= 0) |
|---|
| 135 | { |
|---|
| 136 | sprintf(str + strlen(str), "%d", g_DigitMinor); |
|---|
| 137 | } |
|---|
| 138 | } |
|---|
| 139 | } |
|---|
| 140 | |
|---|
| 141 | // µð¹ö±× â¿¡ Ç¥½ÃµÇ´Â ¸Þ½ÃÁö¿Í OSD banner¿¡ Ç¥½ÃµÇ´Â ¼ýÀÚ°¡ °°ÀºÁö È®ÀÎ ÇÒ °Í.. |
|---|
| 142 | App_PrintTextMessageBox(str, 20); |
|---|
| 143 | } |
|---|
| 144 | |
|---|
| 145 | |
|---|
| 146 | void p_clear_ch_info(void) |
|---|
| 147 | { |
|---|
| 148 | g_DigitMajor = -1; |
|---|
| 149 | g_DigitMinor = -1; |
|---|
| 150 | |
|---|
| 151 | g_bDigitDot = FALSE; |
|---|
| 152 | g_bDigitKeyReadyToTune = FALSE; |
|---|
| 153 | g_DrfTunning = FALSE; |
|---|
| 154 | } |
|---|
| 155 | |
|---|
| 156 | |
|---|
| 157 | static void p_digital_key_tune_start(void) |
|---|
| 158 | { |
|---|
| 159 | // channel tune.. |
|---|
| 160 | BOOL bDrfTunning = g_DrfTunning; |
|---|
| 161 | |
|---|
| 162 | int major = g_DigitMajor, minor = g_DigitMinor; |
|---|
| 163 | // ¾Æ·¡ banner clear ÇÒ ¶§ Áö¿öÁö¹Ç·Î ¹Ì¸® backup |
|---|
| 164 | |
|---|
| 165 | dprint(0, "$$$$$$$$ Digit Key tuning: Major %d, dot %d, Minor %d, drf %d\n", |
|---|
| 166 | g_DigitMajor, g_bDigitDot, g_DigitMinor, g_DrfTunning); |
|---|
| 167 | // |
|---|
| 168 | // ÀÌ ÀüÀÇ channel tuningÀÌ ¾ÆÁ÷ ÁøÇàÁßÀε¥, |
|---|
| 169 | // tuningÀÌ ³Ê¹« ´À·Á¼ ¾ÆÁ÷ banner°¡ ÀÖÀ» ¼öµµ ÀÖ´Ù. |
|---|
| 170 | // ÀÌ ¶§ »ç¿ëÀÚ°¡ digit key¸¦ ´©¸£¸é |
|---|
| 171 | // »ç¿ëÀÚÀÇ Àǵµ°¡ ¿ì¼±½Ã µÇ¾î ÀÌÀü ÀÛ¾÷À» cancel ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. |
|---|
| 172 | |
|---|
| 173 | if (bDrfTunning) |
|---|
| 174 | { |
|---|
| 175 | //iskang 070830. |
|---|
| 176 | //drf tunning¿¡¼ majorÀԷ¾øÀÌ tunningÀ» ½ÃµµÇÒ ¶§.. |
|---|
| 177 | //ÇöÀç ä³ÎÀ» À¯ÁöÇÑ´Ù.. |
|---|
| 178 | // --> ¹«½¼ ÀǹÌÀÎÁö ¸ð¸£°ÚÀ½. |
|---|
| 179 | |
|---|
| 180 | DST_CURCHANNEL cur_ch; |
|---|
| 181 | |
|---|
| 182 | App_Ucm_GetCurChInfo(&cur_ch); |
|---|
| 183 | |
|---|
| 184 | if( (cur_ch.nChannelType == 0 && (major < APP_CHTUNE_AIR_RF_MIN || major > APP_CHTUNE_AIR_RF_MAX)) || |
|---|
| 185 | (cur_ch.nChannelType == 1 && (major < APP_CHTUNE_CABLE_RF_MIN || major > APP_CHTUNE_CABLE_RF_MAX)) ) |
|---|
| 186 | { |
|---|
| 187 | // chjeon 071116 add. |
|---|
| 188 | // À߸øµÈ RF·Î Æ©´× ½ÃµµÇÏ´Â °æ¿ì return. |
|---|
| 189 | dprint(0, "!! rf %d invalid\n", major); |
|---|
| 190 | return; |
|---|
| 191 | } |
|---|
| 192 | |
|---|
| 193 | #if SUPPORT_UDCP |
|---|
| 194 | if (App_Op_IsOobMode()) |
|---|
| 195 | { |
|---|
| 196 | // OOB µ¿ÀÛ ¸ðµå¿¡¼´Â RF ¹øÈ£¿Í match µÇ´Â ä³ÎÀ» DB¿¡¼ °Ë»öÇÑ´Ù. |
|---|
| 197 | // ÀÏÄ¡ÇÏ´Â °ÍÀÌ ¾øÀ¸¸é ¹«½ÃµÊ. |
|---|
| 198 | // |
|---|
| 199 | // todo. |
|---|
| 200 | // À§ ÇÔ¼ö¸¦ OP_STATE üũ ÇÔ¼ö·Î º¯°æÇØ¾ß ÇÔ. ÇöÀç´Â °ü·Ã ÇÔ¼ö°¡ ¾ÆÁ÷ commit ¾ÈµÇ¾î¼ |
|---|
| 201 | // ±âÁ¸ ÇÔ¼ö »ç¿ë.. |
|---|
| 202 | |
|---|
| 203 | int uid = App_Ucm_FindChannelByRF(major); |
|---|
| 204 | if (uid < 0) { |
|---|
| 205 | dprint(0, "!! channel with rf %d not found\n", major); |
|---|
| 206 | // »ç¿ëÀÚ°¡ À߸ø ÀÔ·Â Çß´Ù¸é ±×³É Á¶¿ëÈ÷ ¹«½ÃÇϵµ·Ï ÇÏÀÚ. |
|---|
| 207 | // "NOT FOUND" °°Àº banner¸¦ ¶ç¿ì´Â °Ô ÁÁÀ»±î? |
|---|
| 208 | |
|---|
| 209 | DMG_SetMenuParam1(MID_CH_BANNER, DMG_MAKEWORD(MPARAM_CH_BANNER_CUSTOM, CUSTOM_CHB_MSG_NOT_FOUND)); |
|---|
| 210 | |
|---|
| 211 | // DMG_MenuStart º¸´Ù´Â Á» ´õ È¿À²ÀûÀÌ´Ù. ÇØ´ç ºÎºÐ¸¸ update ÇϹǷÎ.. |
|---|
| 212 | DMG_MenuUpdate(MID_CH_BANNER, 0); |
|---|
| 213 | } |
|---|
| 214 | else { |
|---|
| 215 | App_TuneChannelByUid(uid); |
|---|
| 216 | } |
|---|
| 217 | } |
|---|
| 218 | else { |
|---|
| 219 | // INB µ¿ÀÛ ¸ðµå¿¡¼´Â ÁöÁ¤ÇÑ RF ¹øÈ£·Î ¼öµ¿ ä³Î °Ë»öÀ» ¼öÇàÇÑ´Ù. |
|---|
| 220 | dprint(2, "manual scan, rf %d..\n", major); |
|---|
| 221 | App_ChTuneManualScan(major); |
|---|
| 222 | } |
|---|
| 223 | #else |
|---|
| 224 | // RF Tune ¼öÁ¤ |
|---|
| 225 | // 2012.11.15 megakiss |
|---|
| 226 | // ÇöÀç RF¸¦ ÁöÁ¤ÇÏ¸é ¹«½Ã |
|---|
| 227 | // ½ºÄµµÈ RF¸¦ ÁöÁ¤Çϸé ù¹øÂ° ä³Î·Î Æ©´× (ÀÌ·¸°Ô ÇØ¾ß Skip Á¤º¸µîÀÌ À¯ÁöµÊ) |
|---|
| 228 | // ½ºÄµ ¾È µÈ RF¸¦ ÁöÁ¤Çϸé RF Æ©´× |
|---|
| 229 | if (cur_ch.nRF != major) // ÇöÀç RF¿Í ´Ù¸¥ °æ¿ì¿¡¸¸ µ¿ÀÛ |
|---|
| 230 | { |
|---|
| 231 | int i, uid = -1; |
|---|
| 232 | DMW_MSC_LockUcm(); |
|---|
| 233 | for (i=0; i<g_UCM_number; i++) |
|---|
| 234 | { |
|---|
| 235 | if (g_UCM[i].RF != major) continue; |
|---|
| 236 | if (g_UCM[i].hidden != 0) continue; |
|---|
| 237 | if (g_UCM[i].scrambled != 0) continue; |
|---|
| 238 | if (g_UCM[i].disabled != 0) continue; |
|---|
| 239 | uid = g_UCM[i].Uid; |
|---|
| 240 | break; |
|---|
| 241 | } |
|---|
| 242 | DMW_MSC_UnlockUcm(); |
|---|
| 243 | if (uid < 0) // ½ºÄµ ¾ÈµÈ RF¶ó¸é RF Æ©´× |
|---|
| 244 | { |
|---|
| 245 | App_ChTuneQuickScanAndTune(major, 0, APP_QUICKSCAN_DRF); |
|---|
| 246 | } |
|---|
| 247 | else // ÇØ´ç RFÀÇ Ã¹¹øÂ° ä³Î·Î Æ©´× |
|---|
| 248 | { |
|---|
| 249 | App_TuneChannelByUid(uid); |
|---|
| 250 | } |
|---|
| 251 | } |
|---|
| 252 | #endif // #if SUPPORT_UDCP |
|---|
| 253 | |
|---|
| 254 | } |
|---|
| 255 | else |
|---|
| 256 | { |
|---|
| 257 | App_ChTuneByDigitKey(major, minor); |
|---|
| 258 | } |
|---|
| 259 | p_clear_ch_info(); |
|---|
| 260 | } |
|---|
| 261 | |
|---|
| 262 | |
|---|
| 263 | static void p_digital_key_ready() |
|---|
| 264 | { |
|---|
| 265 | // ±âÁ¸ ¹æ½Ä.. ÀÌ ¸ðµâ¿¡¼ Á÷Á¢ Æ©´×.. |
|---|
| 266 | //p_digital_key_tune_start(); |
|---|
| 267 | |
|---|
| 268 | // »õ ¹æ½Ä.. caller°¡ È®ÀÎ ÇÑ ÈÄ Á÷Á¢ tune start Çϵµ·Ï.. |
|---|
| 269 | g_bDigitKeyReadyToTune = TRUE; |
|---|
| 270 | } |
|---|
| 271 | |
|---|
| 272 | |
|---|
| 273 | // p_digital_key_enqueue |
|---|
| 274 | // |
|---|
| 275 | // ÀÔ·ÂµÈ key code¸¦ digit queue¿¡ ³Ö°í ó¸®ÇÑ´Ù. |
|---|
| 276 | // deterministic ÇÏ°Ô µÇ¸é ¹Ù·Î ½ÇÇà¿¡ ¿Å±ä´Ù. |
|---|
| 277 | // |
|---|
| 278 | static void p_digital_key_enqueue(APP_DIGITKEY_CODE key) |
|---|
| 279 | { |
|---|
| 280 | BOOL bRefreshNeeded = FALSE; |
|---|
| 281 | int digit; |
|---|
| 282 | |
|---|
| 283 | // g_bDigitDot ÀÌ ÀԷµÇÁö ¾ÊÀº »óÅ¿¡¼´Â °è¼Ó Major °ª¿¡ Ãß°¡µÈ´Ù. |
|---|
| 284 | |
|---|
| 285 | // DOT°¡ ÀÔ·ÂµÇ°í ³ª¸é Minor °ª¿¡ Ãß°¡µÈ´Ù. |
|---|
| 286 | |
|---|
| 287 | if (key == APP_DIGITKEY_DOT) // DOT |
|---|
| 288 | { |
|---|
| 289 | if (g_DrfTunning) // DRF ÀÔ·ÂÀÌ ÀÌ¹Ì ÁøÇà ÁßÀÎ °æ¿ì |
|---|
| 290 | { |
|---|
| 291 | // major°¡ ´·ÁÁ® ÀÖ´Ù¸é ¹Ù·Î tuning ½ÃÀÛÇÑ´Ù. |
|---|
| 292 | if (g_DigitMajor > 0) { |
|---|
| 293 | p_print_drf(); |
|---|
| 294 | p_digital_key_ready(); |
|---|
| 295 | return; |
|---|
| 296 | } |
|---|
| 297 | // major°¡ ¾ÆÁ÷ ÀÔ·Â ½ÃÀÛ ¾ÈµÇ¾ú°Å³ª, 0À̶ó¸é dot Ű ¹«½Ã. |
|---|
| 298 | return; |
|---|
| 299 | } |
|---|
| 300 | |
|---|
| 301 | if (g_DigitMajor < 0) |
|---|
| 302 | { |
|---|
| 303 | // »õ·Ó°Ô DRF Æ©´× ½ÃÀÛ. |
|---|
| 304 | g_DrfTunning = TRUE; |
|---|
| 305 | bRefreshNeeded = TRUE; |
|---|
| 306 | } |
|---|
| 307 | else |
|---|
| 308 | if (g_bDigitDot == FALSE) |
|---|
| 309 | { |
|---|
| 310 | g_bDigitDot = TRUE; |
|---|
| 311 | bRefreshNeeded = TRUE; |
|---|
| 312 | |
|---|
| 313 | // rule: |
|---|
| 314 | // 1008 º¸´Ù Å« ¼ýÀÚ´Â OnePartChannel ¹øÈ£·Î ÀνĵǹǷΠ|
|---|
| 315 | // ÀÌ °æ¿ì minor ±¸ºÐ Ű(dot)´Â Àǹ̰¡ ¾øÀ¸¹Ç·Î SEL ¹öư°ú µ¿ÀÏÇÏ°Ô µ¿ÀÛÇÑ´Ù. |
|---|
| 316 | // (Æ©´× ÀýÂ÷¸¦ ½ÃÀÛÇÑ´Ù.) |
|---|
| 317 | // |
|---|
| 318 | if (g_DigitMajor > 1008) { |
|---|
| 319 | dprint(0, "$$ one part digits completed. tune now..\n"); |
|---|
| 320 | p_print_drf(); |
|---|
| 321 | p_digital_key_ready(); |
|---|
| 322 | return; |
|---|
| 323 | } |
|---|
| 324 | |
|---|
| 325 | // rule: |
|---|
| 326 | // 16383 º¸´Ù Å« ¼ýÀÚ´Â Two-part Major ¹øÈ£µµ, |
|---|
| 327 | // One-part Major ¹øÈ£µµ ¾Æ´Ï¹Ç·Î ¹Ù·Î ¹«½ÃµÈ´Ù. |
|---|
| 328 | // |
|---|
| 329 | if (g_DigitMajor > 16383) { |
|---|
| 330 | dprint(0, "$$ major exceed limit. cancelled\n"); |
|---|
| 331 | p_clear_ch_info(); |
|---|
| 332 | return; |
|---|
| 333 | } |
|---|
| 334 | } |
|---|
| 335 | |
|---|
| 336 | // ÀÌ¹Ì DOT °¡ ÀԷµǾî ÀÖ´Â °æ¿ì´Â ±×³É Ű ¹«½Ã.. ´ÜÁö timeout ¸¸ ¿¬Àå |
|---|
| 337 | |
|---|
| 338 | g_DigitTickLastUpdated = DHL_OS_GetMsCount(); |
|---|
| 339 | |
|---|
| 340 | } |
|---|
| 341 | else if (key >= APP_DIGITKEY_0 && key <= APP_DIGITKEY_9) |
|---|
| 342 | { |
|---|
| 343 | digit = (int)key; |
|---|
| 344 | |
|---|
| 345 | if (!g_bDigitDot) // DOT°¡ ¾ÆÁ÷ ÀÔ·ÂÀÌ ¾ÈµÈ »óŶó¸é major ¼ýÀÚ¿¡ ´õÇØÁ®¾ß ÇÑ´Ù. |
|---|
| 346 | { |
|---|
| 347 | if (g_DigitMajor < 0) // óÀ½ ÀÔ·Â.. |
|---|
| 348 | g_DigitMajor = digit; |
|---|
| 349 | else |
|---|
| 350 | g_DigitMajor = g_DigitMajor * 10 + digit; |
|---|
| 351 | |
|---|
| 352 | bRefreshNeeded = TRUE; |
|---|
| 353 | |
|---|
| 354 | if (g_DigitMajor > 16383) { |
|---|
| 355 | dprint(0, "$$ major exceed limit. cancelled\n"); |
|---|
| 356 | p_clear_ch_info(); |
|---|
| 357 | return; |
|---|
| 358 | } |
|---|
| 359 | |
|---|
| 360 | } |
|---|
| 361 | else // minor ¼ýÀÚ.. |
|---|
| 362 | { |
|---|
| 363 | if (g_DigitMinor < 0) |
|---|
| 364 | g_DigitMinor = digit; |
|---|
| 365 | else |
|---|
| 366 | { |
|---|
| 367 | g_DigitMinor = g_DigitMinor * 10 + digit; |
|---|
| 368 | } |
|---|
| 369 | bRefreshNeeded = TRUE; |
|---|
| 370 | |
|---|
| 371 | if (g_DigitMinor >= 100) { |
|---|
| 372 | // ¼¼ÀÚ¸® ÀÌ»óÀº ¾îÂ¥ÇÇ ´õ Ãß°¡ ÀÔ·ÂÀÌ ¾ÈµÇ¹Ç·Î ¹Ù·Î Æ©´× ½ÃÀÛ.. |
|---|
| 373 | p_print_drf(); |
|---|
| 374 | p_digital_key_ready(); |
|---|
| 375 | return; |
|---|
| 376 | } |
|---|
| 377 | } |
|---|
| 378 | |
|---|
| 379 | g_DigitTickLastUpdated = DHL_OS_GetMsCount(); |
|---|
| 380 | } |
|---|
| 381 | |
|---|
| 382 | dprint(5, "info : bRefreshNeeded -> %d\n", bRefreshNeeded); |
|---|
| 383 | //if (bRefreshNeeded) |
|---|
| 384 | p_print_drf(); |
|---|
| 385 | } |
|---|
| 386 | |
|---|
| 387 | |
|---|
| 388 | |
|---|
| 389 | |
|---|
| 390 | |
|---|
| 391 | #if COMMENT |
|---|
| 392 | ____APIs____(){} |
|---|
| 393 | #endif |
|---|
| 394 | |
|---|
| 395 | void App_DigitKeyProcess(APP_DIGITKEY_CODE code) |
|---|
| 396 | { |
|---|
| 397 | if((code==APP_DIGITKEY_DOT) || (code>=APP_DIGITKEY_0 && code<=APP_DIGITKEY_9)) |
|---|
| 398 | p_digital_key_enqueue(code); |
|---|
| 399 | |
|---|
| 400 | // key clear µ¿ÀÛ ¾ÈÇÏ´ø ¹ö±×.. ¼öÁ¤.. |
|---|
| 401 | else if(code == APP_DIGITKEY_CLEAR) |
|---|
| 402 | p_clear_ch_info(); |
|---|
| 403 | } |
|---|
| 404 | |
|---|
| 405 | |
|---|
| 406 | void App_DigitKeyGetInfo(App_DigitKeyParam *pparam) |
|---|
| 407 | { |
|---|
| 408 | pparam->major=g_DigitMajor; |
|---|
| 409 | pparam->minor=g_DigitMinor; |
|---|
| 410 | pparam->is_dot=g_bDigitDot; |
|---|
| 411 | pparam->is_drf_tuning=g_DrfTunning; |
|---|
| 412 | pparam->last_updated=g_DigitTickLastUpdated; |
|---|
| 413 | pparam->is_ready=g_bDigitKeyReadyToTune; |
|---|
| 414 | } |
|---|
| 415 | |
|---|
| 416 | |
|---|
| 417 | void App_DigitKeyTuneStart(void) |
|---|
| 418 | { |
|---|
| 419 | p_digital_key_tune_start(); |
|---|
| 420 | |
|---|
| 421 | } |
|---|
| 422 | |
|---|
| 423 | |
|---|
| 424 | |
|---|
| 425 | |
|---|
| 426 | |
|---|
| 427 | /* end of file */ |
|---|