| 1 | /** |
|---|
| 2 | @file |
|---|
| 3 | DHL_FE.h |
|---|
| 4 | |
|---|
| 5 | @brief |
|---|
| 6 | FrontEnd (Tuner/Demodulator) functions implementation |
|---|
| 7 | |
|---|
| 8 | Copyright 2006~2010 Digital STREAM Technology, Inc. |
|---|
| 9 | All Rights Reserved |
|---|
| 10 | |
|---|
| 11 | Release History: |
|---|
| 12 | |
|---|
| 13 | */ |
|---|
| 14 | |
|---|
| 15 | |
|---|
| 16 | |
|---|
| 17 | #ifndef __DHL_FE_H__ |
|---|
| 18 | #define __DHL_FE_H__ |
|---|
| 19 | |
|---|
| 20 | |
|---|
| 21 | |
|---|
| 22 | #include "DHL_Types.h" |
|---|
| 23 | #include "DHL_Config.h" |
|---|
| 24 | |
|---|
| 25 | |
|---|
| 26 | |
|---|
| 27 | #ifdef __cplusplus |
|---|
| 28 | extern "C" { |
|---|
| 29 | #endif |
|---|
| 30 | |
|---|
| 31 | |
|---|
| 32 | |
|---|
| 33 | |
|---|
| 34 | |
|---|
| 35 | #if COMMENT |
|---|
| 36 | ____Overview____(){} |
|---|
| 37 | #endif |
|---|
| 38 | |
|---|
| 39 | /** |
|---|
| 40 | \file DHL_FE.h |
|---|
| 41 | ----DHL_FE Çì´õÆÄÀÏ ³»¿ë ¼³¸í---- |
|---|
| 42 | |
|---|
| 43 | |
|---|
| 44 | ======== ÁÖ¿ä Feature ======== |
|---|
| 45 | |
|---|
| 46 | º¹¼ö°³ÀÇ Æ©³Ê¸¦ Áö¿øÇÑ´Ù. |
|---|
| 47 | -> Æ©³Ê ID Áö¿ø. ¸¹Àº APIµéÀÌ ÀÎÀÚ·Î Tuner ID¸¦ ÁöÁ¤ÇØ¾ß ÇÔ. |
|---|
| 48 | |
|---|
| 49 | ¼·Î ¼º°ÝÀÌ ´Ù¸¥ Æ©³ÊµéÀ» Åõ¸íÇÏ°Ô Áö¿ø. |
|---|
| 50 | -> °¢ Æ©³Ê º°·Î ¾î¶² ±â´ÉµîÀ» Áö¿øÇÏ´ÂÁö queryÇÏ´Â API Áö¿ø. |
|---|
| 51 | |
|---|
| 52 | ¿¹: |
|---|
| 53 | Tuner_0 ´Â FAT, VSB, NTSC Áö¿ø |
|---|
| 54 | Tuner_1 Àº FAT, VSB, QAM Áö¿ø. |
|---|
| 55 | Tuner_2 ´Â FDC Áö¿ø.. |
|---|
| 56 | |
|---|
| 57 | ÀÌ API´Â »ç½Ç MW¿¡¼ ÇÊ¿ä·Î ÇÏÁö´Â ¾ÊÀ¸¸ç, |
|---|
| 58 | Application¿¡¼´Â ƯÁ¤ platform¿¡ ¸Â°Ô ÀÌ¹Ì °áÁ¤µÇ¾î ÄÚµùÇÔ. |
|---|
| 59 | |
|---|
| 60 | |
|---|
| 61 | Blocking API´Â ¾ø´Ù. |
|---|
| 62 | lock µÉ ¶§ ±îÁö ±â´Ù¸®°Å³ª ÇÏ´Â ±â´ÉÀº »óÀ§ °èÃþ¿¡¼ ´ã´ç. |
|---|
| 63 | |
|---|
| 64 | Hz Á֯ļö ¹æ½ÄÀ¸·ÎÀÇ Æ©´×¸¸À» °ø½ÄÀûÀ¸·Î Áö¿ø. |
|---|
| 65 | ä³Î ¹øÈ£¸¦ ÀÌ¿ëÇÑ Æ©´×Àº HAL ¿¡¼´Â °í·ÁÇÏÁö ¾Ê´Â´Ù. |
|---|
| 66 | ´ë½Å ä³Î TableÀº Á¦°øÇϵµ·Ï ÇÏÀÚ. |
|---|
| 67 | |
|---|
| 68 | |
|---|
| 69 | Ç¥ÁØÈ´Â ÇÒ ¼ö ¾øÁö¸¸ ƯÁ¤ platform¿¡¼ Á¦°øÇÏ´Â °¢Á¾ ±â´Éµé |
|---|
| 70 | -> Generic Query, Generic Set API¸¦ Á¦°ø. |
|---|
| 71 | |
|---|
| 72 | ³ªÁß¿¡ º°µµ·Î °è¼Ó API°¡ Ãß°¡µÉ Çʿ䰡 ¾øµµ·Ï.. |
|---|
| 73 | |
|---|
| 74 | ======== API °øÅë »çÇ×µé ======== |
|---|
| 75 | |
|---|
| 76 | Tuner ID¸¦ ¿ä±¸ÇÏ´Â API¸¦ »ç¿ëÇÒ ¶§, À߸øµÈ ID¸¦ ÁöÁ¤ÇÏ´Â °æ¿ì¿¡´Â |
|---|
| 77 | DHL_FAIL_INVALID_HANDLE ¸¦ ¸®ÅÏÇÑ´Ù. |
|---|
| 78 | |
|---|
| 79 | ÀûÀýÇÏÁö ¾ÊÀº »óÅ¿¡¼ÀÇ API È£ÃâÀº DHL_FAIL_INVALID_STATE ¸¦ ¸®ÅÏÇÑ´Ù. |
|---|
| 80 | ¿¹: Open ÇÏÁö ¾ÊÀº »óÅ¿¡¼ Start µî.. |
|---|
| 81 | |
|---|
| 82 | |
|---|
| 83 | ======== Naming conventions ======== |
|---|
| 84 | |
|---|
| 85 | µ¥ÀÌÅÍ Å¸ÀÔ prefix: tDHL_ |
|---|
| 86 | |
|---|
| 87 | API ÇÔ¼ö À̸§ prefix: DHL_FE_ |
|---|
| 88 | |
|---|
| 89 | */ |
|---|
| 90 | |
|---|
| 91 | |
|---|
| 92 | |
|---|
| 93 | |
|---|
| 94 | |
|---|
| 95 | #if COMMENT |
|---|
| 96 | ____Types____(){} |
|---|
| 97 | #endif |
|---|
| 98 | |
|---|
| 99 | |
|---|
| 100 | /** |
|---|
| 101 | Tuner ID |
|---|
| 102 | 0 ºÎÅÍ ½ÃÀÛÇÏ´Â ID °ª. ÃÖ´ë °ªÀº DHL_CFG_NUM_TUNER-1. |
|---|
| 103 | |
|---|
| 104 | ´ëºÎºÐÀÇ API¿¡´Â ÀÌ Á¤º¸°¡ ù¹øÂ° ÀÎÀÚ·Î Àü´ÞµÈ´Ù. |
|---|
| 105 | |
|---|
| 106 | Âü°í |
|---|
| 107 | - DHL_CFG_NUM_TUNER °ªÀº API ¿¡¼ Á¤ÀÇÇÏÁö ¾ÊÀ¸¸ç |
|---|
| 108 | - DHL_Config.h °°Àº global/local config ºÎºÐ¿¡¼ Á¤ÀÇÇÑ´Ù. |
|---|
| 109 | */ |
|---|
| 110 | typedef UINT8 tDHL_TunerID; |
|---|
| 111 | |
|---|
| 112 | |
|---|
| 113 | /** |
|---|
| 114 | @brief Demodulation ¹æ½Ä enum. |
|---|
| 115 | |
|---|
| 116 | -# DHL_FE_Start ¿¡¼ µ¿ÀÛ ÇÒ demod¸¦ ÁöÁ¤ÇÒ ¶§ »ç¿ëµÇ°Å³ª, |
|---|
| 117 | -# DHL_FE_GetModFormat ¿¡¼ ÇöÀç µ¿ÀÛ ÁßÀÎ demod °ªÀ» ¸®ÅÏÇÒ ¶§ »ç¿ëµÈ´Ù. |
|---|
| 118 | |
|---|
| 119 | Start ¿¡ »ç¿ë ºÒ°¡´ÉÇÑ Ç׸ñ, ¶Ç´Â GetModFormat¿¡¼ »ç¿ë ºÒ°¡´ÉÇÑ Ç׸ñ |
|---|
| 120 | µîÀÌ ±â¼úµÇ¾î ÀÖÀ¸´Ï ÂüÁ¶ÇÑ´Ù. |
|---|
| 121 | |
|---|
| 122 | */ |
|---|
| 123 | typedef enum |
|---|
| 124 | { |
|---|
| 125 | eDHL_DEMOD_INVALID=-1, ///< À߸øµÈ ¸ðµå. |
|---|
| 126 | |
|---|
| 127 | eDHL_DEMOD_8VSB=1, ///< ATSC 8VSB ¸ðµå |
|---|
| 128 | eDHL_DEMOD_64QAM, ///< ITU-T J.83 Annex B 64QAM |
|---|
| 129 | eDHL_DEMOD_256QAM, ///< ITU-T J.83 Annex B 64QAM |
|---|
| 130 | |
|---|
| 131 | eDHL_DEMOD_QAM_AUTO, |
|---|
| 132 | /*!< 64QAM ¶Ç´Â 256QAM ¸ðµå. |
|---|
| 133 | QAM AUTO °ªÀº request API¿¡¼´Â »ç¿ëÇÒ ¼ö ÀÖÀ¸³ª |
|---|
| 134 | status API °á°ú·Î´Â »ç¿ëµÇ¸é ¾ÈµÈ´Ù. |
|---|
| 135 | */ |
|---|
| 136 | |
|---|
| 137 | eDHL_DEMOD_AUTODETECT, |
|---|
| 138 | /*!< ÀÚµ¿ °Ë»ö ¸ðµå. |
|---|
| 139 | AUTODETECT °ªÀº request API¿¡¼´Â »ç¿ëÇÒ ¼ö ÀÖÀ¸³ª |
|---|
| 140 | status API °á°ú·Î´Â »ç¿ëµÇ¸é ¾ÈµÈ´Ù. |
|---|
| 141 | */ |
|---|
| 142 | |
|---|
| 143 | eDHL_DEMOD_NTSC=10, |
|---|
| 144 | |
|---|
| 145 | /* cafrii |
|---|
| 146 | ÀÌ ºÎºÐÀº ³íÀǰ¡ ´õ ÇÊ¿äÇÏ´Ù. |
|---|
| 147 | BTSC Audio ±â´ÉÀ» DHL_FE ¿¡ ¾î¶°ÇÑ ÀÎÅÍÆäÀ̽º·Î Ãß°¡ÇØ¾ß ÇÒÁö.. |
|---|
| 148 | */ |
|---|
| 149 | eDHL_DEMOD_AUDIO_US_BTSC, |
|---|
| 150 | eDHL_DEMOD_AUDIO_A2_KOREA, |
|---|
| 151 | eDHL_DEMOD_AUDIO_RADIO_FM, |
|---|
| 152 | |
|---|
| 153 | eDHL_DEMOD_FDCA=20, /* SCTE 55-1/DVS 178, OOB Mode A, by Motorola/GI */ |
|---|
| 154 | eDHL_DEMOD_FDCB, /* SCTE 55-2/DVS 167, OOB Mode B, based on DAVIC, used by SA, CISCO */ |
|---|
| 155 | |
|---|
| 156 | eDHL_DEMOD_MAX |
|---|
| 157 | |
|---|
| 158 | } tDHL_Demod; |
|---|
| 159 | |
|---|
| 160 | |
|---|
| 161 | /** |
|---|
| 162 | |
|---|
| 163 | Spectrum ¹æ½Ä ?? |
|---|
| 164 | |
|---|
| 165 | */ |
|---|
| 166 | |
|---|
| 167 | typedef enum |
|---|
| 168 | { |
|---|
| 169 | eDHL_OOBSpectrum_Auto, |
|---|
| 170 | eDHL_OOBSpectrum_NonInverted, |
|---|
| 171 | eDHL_OOBSpectrum_Inverted |
|---|
| 172 | |
|---|
| 173 | } tDHL_OOBSpectrum; |
|---|
| 174 | |
|---|
| 175 | |
|---|
| 176 | /** |
|---|
| 177 | note: QPSK¿¡¼ symbol rate´Â bitrate°ªÀÇ Àý¹ÝÀÌ´Ù. |
|---|
| 178 | OC spec¿¡¼´Â bitrate ´ÜÀ§·Î ÁöÁ¤µÇ¾î ÀÖ´Ù. |
|---|
| 179 | */ |
|---|
| 180 | typedef enum |
|---|
| 181 | { |
|---|
| 182 | eDHL_OOBSymbolRate_0772, /* 1,544 Kbps */ |
|---|
| 183 | eDHL_OOBSymbolRate_1024, /* 2,048 Kbps */ |
|---|
| 184 | eDHL_OOBSymbolRate_1544 /* 3,088 Kbps */ |
|---|
| 185 | |
|---|
| 186 | } tDHL_OOBSymbolRate; |
|---|
| 187 | |
|---|
| 188 | |
|---|
| 189 | /** |
|---|
| 190 | |
|---|
| 191 | DHL_FE_Start() API ¿¡¼ »ç¿ë µÇ´Â OOB ÀÇ ¼ÂÆÃ°ªÀ» °®´Â ±¸Á¶Ã¼. |
|---|
| 192 | |
|---|
| 193 | SCTE 55-1 or SCTE 55-2 ±Ô°Ý¿¡ ¸Â´Â °ªÀ» ´ëÀÔ. |
|---|
| 194 | |
|---|
| 195 | */ |
|---|
| 196 | typedef struct |
|---|
| 197 | { |
|---|
| 198 | tDHL_Demod demod; ///< [out] Modulation °ªÀ» °¡Áü. |
|---|
| 199 | union |
|---|
| 200 | { |
|---|
| 201 | /* SCTE 55-1 or SCTE 55-2 OOB tuning param. |
|---|
| 202 | */ |
|---|
| 203 | struct { |
|---|
| 204 | tDHL_OOBSpectrum spectrum; ///< [out] Spectrum °ªÀ» °¡Áü. |
|---|
| 205 | tDHL_OOBSymbolRate symbol_rate; ///< [out] Symbol_rate °ªÀ» °¡Áü. |
|---|
| 206 | } scte_55; |
|---|
| 207 | |
|---|
| 208 | /* ±âŸ ´Ù¸¥ È®Àå tuning ¹æ½ÄÀ» Áö¿øÇϰíÀÚ ÇÏ´Â °æ¿ì |
|---|
| 209 | ¾Æ·¡¿¡ Ãß°¡ÇÑ´Ù. |
|---|
| 210 | */ |
|---|
| 211 | |
|---|
| 212 | } u; |
|---|
| 213 | |
|---|
| 214 | } tDHL_DemodExtSettings; |
|---|
| 215 | |
|---|
| 216 | |
|---|
| 217 | /** |
|---|
| 218 | @brief ½ÅÈ£ »óÅ ŸÀÔ. DHL_FE_GetSignalStatus ¿¡¼ »ç¿ë. |
|---|
| 219 | |
|---|
| 220 | DHL_FE_GetSignalStatus ÇÔ¼ö¿¡¼ Á¶È¸ Çϱ⸦ ¿øÇÏ´Â Á¤º¸ÀÇ Á¾·ù¸¦ ÁöÁ¤ÇÑ´Ù. |
|---|
| 221 | */ |
|---|
| 222 | typedef enum |
|---|
| 223 | { |
|---|
| 224 | /*--------------------------------- |
|---|
| 225 | ¹Ýµå½Ã ±¸ÇöµÇ¾î¾ß ÇÏ´Â ºÎºÐ |
|---|
| 226 | */ |
|---|
| 227 | |
|---|
| 228 | eDHL_SIGNAL_LOCK, |
|---|
| 229 | ///< digital demod lock |
|---|
| 230 | eDHL_SIGNAL_NTSC_LOCK, |
|---|
| 231 | ///< NTSC ij¸®¾î or VSync lock. |
|---|
| 232 | eDHL_SIGNAL_STRENGTH, |
|---|
| 233 | /*!< Signal strength. |
|---|
| 234 | OSD »ó¿¡ signal meter¸¦ Ç¥½ÃÇÒ ¶§ »ç¿ëµÈ´Ù. |
|---|
| 235 | ¹Ýµå½Ã 0 ~ 100 »çÀÌÀÇ °ªÀ¸·Î Ç¥½ÃµÇ¾î¾ß ÇÑ´Ù. |
|---|
| 236 | */ |
|---|
| 237 | eDHL_SIGNAL_SNR, |
|---|
| 238 | /*!< Signal to Noise ratio. |
|---|
| 239 | ¿ø·¡ snr¿¡ 1000¹è¸¦ ÇÑ ¼öÄ¡ÀÌ´Ù. |
|---|
| 240 | ½ÇÁ¦·Î OSD»ó¿¡ ÀÌ °ªÀ» Ç¥½ÃÇÏ´Â °÷Àº ¾øÀ¸¸ç, |
|---|
| 241 | º¸Åë µð¹ö±× ¸ñÀûÀ¸·Î »ç¿ëµÈ´Ù. |
|---|
| 242 | */ |
|---|
| 243 | eDHL_SIGNAL_SER, |
|---|
| 244 | /*!< Symbol error rate. |
|---|
| 245 | signal »óŰ¡ ÁÁÁö ¾ÊÀ» °æ¿ì ȸéÀ» mute½ÃŰ´Â ¸ð´ÏÅÍ¿¡¼ »ç¿ë. |
|---|
| 246 | ÃÖÁ¾ TS Ãâ·Â ´ÜÀÇ ¿¡·¯ Ä«¿îÆ® °ªÀ» ratio·Î Ç¥ÇöÇÑ °ªÀÌ´Ù. |
|---|
| 247 | ¿¡·¯°¡ ¾øÀ¸¸é 0ÀÌ µÇ°í, ¿¡·¯°¡ ¸¹À» ¼ö·Ï °ªÀÌ Ä¿Áø´Ù. |
|---|
| 248 | ¾î´À Á¤µµÀÇ °ª¿¡¼ ½Ãû Áß´ÜÀ» ÇÒ °ÍÀÎÁö´Â |
|---|
| 249 | pplication¿¡¼ ½ÇÇèÀûÀ¸·Î ±¸ÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù. |
|---|
| 250 | */ |
|---|
| 251 | |
|---|
| 252 | |
|---|
| 253 | /*--------------------------------- |
|---|
| 254 | ¿É¼ÇÀ¸·Î Á¦°øµÉ ¼ö ÀÖ´Â ºÎºÐ |
|---|
| 255 | ÀÌ ºÎºÐÀº DHL API ¿¡ ÀÖÀ» ÀÌÀ¯°¡ ¾ø´Ù. |
|---|
| 256 | ´Ù¸¥ ¹æ¹ýÀ¸·Î ÀÌ·± ±â´ÉÀ» Á¦°øÇÒ ¼ö ÀÖ´ÂÁö üũ ¿ä¸Á. |
|---|
| 257 | */ |
|---|
| 258 | eDHL_SIGNAL_SNR2, /* ¿ø·¡ snr¿¡ 1000¹è¸¦ ÇÑ ¼öÄ¡ÀÓ */ |
|---|
| 259 | eDHL_SIGNAL_SER_1SEC, |
|---|
| 260 | eDHL_SIGNAL_SER_10SEC, |
|---|
| 261 | eDHL_SIGNAL_PER, |
|---|
| 262 | eDHL_SIGNAL_BER, |
|---|
| 263 | eDHL_SIGNAL_QUALITY, |
|---|
| 264 | eDHL_SIGNAL_METER, |
|---|
| 265 | eDHL_SIGNAL_NTSC_FREQ_DEVIATION, /* KHz ´ÜÀ§ÀÇ Á֯ļö deviation */ |
|---|
| 266 | eDHL_SIGNAL_LOCK_PROGRESS /* 3114 direct control api Àü¿ë */ |
|---|
| 267 | |
|---|
| 268 | } tDHL_SignalStatus; |
|---|
| 269 | |
|---|
| 270 | |
|---|
| 271 | /** |
|---|
| 272 | |
|---|
| 273 | ä³Î Æ©´× À̿ܿ¡ Tuner ³»ºÎ ¼³Á¤°ª º¯°æÀ» À§ÇÑ ¼³Á¤ type. |
|---|
| 274 | |
|---|
| 275 | */ |
|---|
| 276 | typedef enum |
|---|
| 277 | { |
|---|
| 278 | eDHL_FECTL_CAP_VAL, |
|---|
| 279 | eDHL_FECTL_AIR_CABLE, /* À̸§À» ´õ ±¸Ã¼ÀûÀ¸·Î º¯°æÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÔ. */ |
|---|
| 280 | eDHL_FECTL_ATC_MODE /* CH. Search ¸ðµå(ä³Î Tune)¿Í Normal ¸ðµå(ä³Î Locked) À϶§ÀÇ ATC ¼³Á¤. */ |
|---|
| 281 | |
|---|
| 282 | } tDHL_FeControlType; |
|---|
| 283 | |
|---|
| 284 | |
|---|
| 285 | |
|---|
| 286 | /** |
|---|
| 287 | GetDeviceInfoÀÇ eDHL_FE_DEV_CAPABILITY_1 ÀÇ °á°ú°ªÀ¸·Î Àü´ÞµÇ´Â capability¿¡ »ç¿ëµÇ´Â bit mask. |
|---|
| 288 | |
|---|
| 289 | »ç¿ë ¿¹: if (capbits & eDHL_TUCAP_VSB) printf("this tuner supports vsb\n"); |
|---|
| 290 | */ |
|---|
| 291 | typedef enum |
|---|
| 292 | { |
|---|
| 293 | eDHL_TUCAP_POWERDOWN = 0x1, /* tuner power down ±â´ÉÀ» Áö¿øÇÑ´Ù. */ |
|---|
| 294 | eDHL_TUCAP_ANALOG = 0x2, |
|---|
| 295 | eDHL_TUCAP_QAM = 0x4, /* eDHL_DEMOD_64QAM, eDHL_DEMOD_256QAM Æ©´×À» Áö¿øÇÑ´Ù. */ |
|---|
| 296 | eDHL_TUCAP_VSB = 0x8, |
|---|
| 297 | eDHL_TUCAP_SATELLITE = 0x10, |
|---|
| 298 | eDHL_TUCAP_OOB = 0x20, |
|---|
| 299 | eDHL_TUCAP_UPSTREAM = 0x40, |
|---|
| 300 | eDHL_TUCAP_OFDM = 0x80, |
|---|
| 301 | |
|---|
| 302 | eDHL_TUCAP_QAMAUTO = 0x100, /* eDHL_DEMOD_QAMAUTO Æ©´×À» Áö¿øÇÑ´Ù. */ |
|---|
| 303 | eDHL_TUCAP_CABLEAUTO = 0x200 /* eDHL_DEMOD_CABLEAUTO Æ©´×À» Áö¿øÇÑ´Ù. */ |
|---|
| 304 | |
|---|
| 305 | } tDHL_TunerCapBits; |
|---|
| 306 | |
|---|
| 307 | |
|---|
| 308 | /** |
|---|
| 309 | FE ¿¡¼ °¡Á®¿Ã µð¹ÙÀ̽º Á¤º¸ type. |
|---|
| 310 | |
|---|
| 311 | */ |
|---|
| 312 | typedef enum |
|---|
| 313 | { |
|---|
| 314 | eDHL_FE_DEV_VENDOR_NAME, |
|---|
| 315 | // tuner vendor name |
|---|
| 316 | // value: const char *name |
|---|
| 317 | |
|---|
| 318 | eDHL_FE_DEV_MODEL_NAME, |
|---|
| 319 | // tuner model name |
|---|
| 320 | // value: const char *name |
|---|
| 321 | |
|---|
| 322 | eDHL_FE_DEV_CAPABILITY_1 |
|---|
| 323 | // tuner capability |
|---|
| 324 | // value: UINT32 *pMask |
|---|
| 325 | |
|---|
| 326 | } tDHL_TunerDeviceInfo; |
|---|
| 327 | |
|---|
| 328 | |
|---|
| 329 | |
|---|
| 330 | |
|---|
| 331 | /** |
|---|
| 332 | ÀÌ °ªµéÀº DHL_FE_ChannelToFrequency ¿¡¼¸¸ »ç¿ëµÈ´Ù. |
|---|
| 333 | DHL_FE¿¡¼ÀÇ Æ©´×Àº Á֯ļö °ªÀ» ÀÌ¿ëÇϹǷÎ, |
|---|
| 334 | ´Ù¸¥ API¿¡¼´Â ÀÌ °ªµéÀ» »ç¿ëÇÒ Çʿ䰡 ¾øÀ½. |
|---|
| 335 | */ |
|---|
| 336 | typedef enum |
|---|
| 337 | { |
|---|
| 338 | eDHL_FREQ_UNKNOWN=-1, |
|---|
| 339 | eDHL_FREQ_AIR=0, // Áö»óÆÄ |
|---|
| 340 | eDHL_FREQ_STD, // ÄÉÀÌºí ±âº» |
|---|
| 341 | eDHL_FREQ_IRC, // ÄÉÀ̺í IRC standard |
|---|
| 342 | eDHL_FREQ_HRC, // ÄÉÀ̺í HRC standard |
|---|
| 343 | eDHL_FREQ_MAX |
|---|
| 344 | |
|---|
| 345 | } tDHL_FreqStd; |
|---|
| 346 | |
|---|
| 347 | |
|---|
| 348 | |
|---|
| 349 | |
|---|
| 350 | #if COMMENT |
|---|
| 351 | ____Defines____(){} |
|---|
| 352 | #endif |
|---|
| 353 | |
|---|
| 354 | |
|---|
| 355 | /** |
|---|
| 356 | ¸Þ¼¼Áö Ãâ·ÂÀ» À§ÇÑ °¢ »óź° String °ª Á¤ÀÇ. |
|---|
| 357 | */ |
|---|
| 358 | #define FE_SIGNAL_STATUS_STR(t) ( \ |
|---|
| 359 | (t)==eDHL_SIGNAL_LOCK ? "Lock" : \ |
|---|
| 360 | (t)==eDHL_SIGNAL_NTSC_LOCK ? "NtscLock" : \ |
|---|
| 361 | (t)==eDHL_SIGNAL_STRENGTH ? "Strength" : \ |
|---|
| 362 | (t)==eDHL_SIGNAL_SNR ? "Snr" : \ |
|---|
| 363 | (t)==eDHL_SIGNAL_SER ? "Ser" : \ |
|---|
| 364 | "?" ) |
|---|
| 365 | |
|---|
| 366 | |
|---|
| 367 | |
|---|
| 368 | /** |
|---|
| 369 | °¢ Æ©³ÊÀÇ Á¤º¸. signal °ú Á÷Á¢ÀûÀÎ °ü·ÃÀÌ ¾ø´Â Á¤º¸µé. |
|---|
| 370 | DHL_FE_GetDeviceInfo ¿¡¼ »ç¿ëµÈ´Ù. |
|---|
| 371 | |
|---|
| 372 | */ |
|---|
| 373 | #define FE_VENDOR_NAME_LEN 32 |
|---|
| 374 | /* minimum required buffer size, maximum string length */ |
|---|
| 375 | |
|---|
| 376 | |
|---|
| 377 | /** |
|---|
| 378 | @name |
|---|
| 379 | Á¦°øÇÒ frequency table ¿¡¼ Áö¿øÇÏ´Â channel number ¹üÀ§ |
|---|
| 380 | @{ |
|---|
| 381 | */ |
|---|
| 382 | #define FE_MIN_FAT_AIR_CH 2 |
|---|
| 383 | #define FE_MAX_FAT_AIR_CH 69 |
|---|
| 384 | |
|---|
| 385 | #define FE_MIN_FAT_CBL_CH 1 |
|---|
| 386 | #define FE_MAX_FAT_CBL_CH 135 |
|---|
| 387 | /*@}*/ |
|---|
| 388 | |
|---|
| 389 | |
|---|
| 390 | |
|---|
| 391 | |
|---|
| 392 | |
|---|
| 393 | |
|---|
| 394 | #if COMMENT |
|---|
| 395 | ____API____(){} |
|---|
| 396 | #endif |
|---|
| 397 | |
|---|
| 398 | /** |
|---|
| 399 | @brief |
|---|
| 400 | Æ©³Ê ¸ðµâÀ» ÃʱâÈ ÇÑ´Ù. |
|---|
| 401 | |
|---|
| 402 | @return |
|---|
| 403 | - DHL_OK: ¼º°ø. |
|---|
| 404 | - DHL_FAIL_: ±âŸ FAIL »óÅ ¹Ýȯ. |
|---|
| 405 | |
|---|
| 406 | */ |
|---|
| 407 | DHL_RESULT DHL_FE_Init(void); |
|---|
| 408 | |
|---|
| 409 | |
|---|
| 410 | |
|---|
| 411 | /** |
|---|
| 412 | DHL_FE_Open / DHL_FE_Close: |
|---|
| 413 | Æ©³Ê »ç¿ëÀ» ÁغñÇϰųª (Open), Æ©³Ê »ç¿ëÀ» Á¾·áÇÑ´Ù. (close) |
|---|
| 414 | |
|---|
| 415 | µ¿ÀûÀ¸·Î Àü¿ø Á¦¾î°¡ °¡´ÉÇÑ °æ¿ì¶ó¸é |
|---|
| 416 | Open ½Ã¿¡ Àü¿øÀÌ °ø±ÞµÇ°í, Close ½Ã¿¡ Àü¿øÀÌ Â÷´ÜµÈ´Ù. |
|---|
| 417 | |
|---|
| 418 | Close ÈÄ ´Ù½Ã Open ÇÏ´Â °æ¿ì¿¡´Â Tuner°¡ Á¤»ó µ¿ÀÛÇϱâ±îÁö |
|---|
| 419 | ½Ã°£ÀÌ Á» ¼Ò¿äµÉ ¼öµµ ÀÖ´Ù. |
|---|
| 420 | |
|---|
| 421 | ¿¹) Demodulator firmware download, AGC level settling. |
|---|
| 422 | |
|---|
| 423 | ¸¸¾à »ó½Ã µ¿ÀÛ ÁßÀÎ platform¿¡¼´Â Open, Close °¡ ¾Æ¹« ¿ªÇÒÀ» |
|---|
| 424 | ÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù. |
|---|
| 425 | |
|---|
| 426 | @param[in] id FE ä³Î id. (2°³ÀÏ °æ¿ì 0,1 ·Î ºÎ¿©) |
|---|
| 427 | @return |
|---|
| 428 | - DHL_OK: ¼º°ø. |
|---|
| 429 | - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. |
|---|
| 430 | |
|---|
| 431 | */ |
|---|
| 432 | DHL_RESULT DHL_FE_Open(tDHL_TunerID id); |
|---|
| 433 | DHL_RESULT DHL_FE_Close(tDHL_TunerID id); |
|---|
| 434 | |
|---|
| 435 | |
|---|
| 436 | |
|---|
| 437 | /** |
|---|
| 438 | @brief |
|---|
| 439 | FE ÀÇ µð¹ÙÀ̽ºÀÇ »óŸ¦ °¡Á®¿Â´Ù. |
|---|
| 440 | |
|---|
| 441 | µð¹ÙÀ̽º À̸§, º¥´õ, ±â´ÉµîÀÇ Á¤º¸. |
|---|
| 442 | |
|---|
| 443 | @param[in] id FE ä³Î id. |
|---|
| 444 | @param[in] selector ¿äûÇÒ Á¤º¸. |
|---|
| 445 | @param[out] pValue µð¹ÙÀ̽º Á¤º¸. |
|---|
| 446 | @return |
|---|
| 447 | - DHL_OK: ¼º°ø. |
|---|
| 448 | - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. |
|---|
| 449 | |
|---|
| 450 | |
|---|
| 451 | */ |
|---|
| 452 | DHL_RESULT DHL_FE_GetDeviceInfo(tDHL_TunerID id, tDHL_TunerDeviceInfo selector, void *pValue); |
|---|
| 453 | |
|---|
| 454 | |
|---|
| 455 | /** |
|---|
| 456 | @brief |
|---|
| 457 | ÁÖ¾îÁø Á֯ļö, demod·Î front end Tune µ¿ÀÛ ½ÇÇà. |
|---|
| 458 | |
|---|
| 459 | Setting °ªÀº OOB tune À» À§ÇÑ ÆÄ¶ó¹ÌÅÍ. In-band Æ©´×½Ã NULL °ª ó¸®. |
|---|
| 460 | |
|---|
| 461 | ÀÌ ÇÔ¼ö´Â non-blocking API ÀÌ´Ù. |
|---|
| 462 | lock ¿©ºÎ´Â ´Ù¸¥ API¸¦ ÀÌ¿ëÇÏ¿© caller°¡ üũ ÇØ¾ß ÇÑ´Ù. |
|---|
| 463 | |
|---|
| 464 | @param[in] id FE ä³Î id. |
|---|
| 465 | @param[in] freqKHz KHz ´ÜÀ§ÀÇ Á֯ļö. µðÁöÅÐ, ¾Æ³¯·Î±× »ó°ü ¾øÀÌ Ç×»ó center frequency¸¦ ÁöÁ¤ÇÑ´Ù. |
|---|
| 466 | @param[in] demod demodulation mode. |
|---|
| 467 | @param[in] settings OOB ¸¦ À§ÇÑ ºÎ°¡ÀûÀÎ demodulator settings, NULLÀ» ÀÔ·ÂÇϸé default °ªÀ¸·Î µ¿ÀÛÇØ¾ßÇÑ´Ù. |
|---|
| 468 | @return |
|---|
| 469 | - DHL_OK: ¼º°ø. |
|---|
| 470 | - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. |
|---|
| 471 | |
|---|
| 472 | */ |
|---|
| 473 | DHL_RESULT DHL_FE_Start(tDHL_TunerID id, UINT32 freqKHz, tDHL_Demod demod, tDHL_DemodExtSettings *settings); |
|---|
| 474 | |
|---|
| 475 | /** |
|---|
| 476 | @brief |
|---|
| 477 | FE µ¿ÀÛ Á¾·á. |
|---|
| 478 | |
|---|
| 479 | ÇöÀç ÀÌ APIÀÇ ¿ëµµ°¡ ±×´ÙÁö ¸íÈ®ÇÏÁö´Â ¾Ê´Ù. |
|---|
| 480 | |
|---|
| 481 | ÀÌ API´Â ä³Î º¯°æ Á÷Àü¿¡ MW¿¡¼ »ç¿ëÇϴµ¥, |
|---|
| 482 | power controlÀ» ÀǹÌÇÏÁö ¾Ê´Â´Ù. |
|---|
| 483 | tuner, demod Àü¿øÀ» off/on ÇÏ¸é ½Ã°£ÀÌ ¸¹ÀÌ °É¸². |
|---|
| 484 | |
|---|
| 485 | Àü¿ø Á¦¾îÀÇ ¸ñÀûÀ̶ó¸é º°µµÀÇ API¸¦ ÀÌ¿ëÇϵµ·Ï ÇÑ´Ù. |
|---|
| 486 | |
|---|
| 487 | @param[in] id FE ä³Î id. |
|---|
| 488 | @return |
|---|
| 489 | - DHL_OK: ¼º°ø. |
|---|
| 490 | - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. |
|---|
| 491 | |
|---|
| 492 | |
|---|
| 493 | */ |
|---|
| 494 | DHL_RESULT DHL_FE_Stop(tDHL_TunerID id); |
|---|
| 495 | |
|---|
| 496 | /** |
|---|
| 497 | @brief |
|---|
| 498 | Lock ¿©ºÎ¸¦ ÆÇ´ÜÇÑ´Ù. |
|---|
| 499 | |
|---|
| 500 | VSB, QAMxx ÀÇ °æ¿ì: tuner, demod µ¿ÀÛ, TS Ãâ·ÂÀÌ °¡´ÉÇÑ »óÅÂ. |
|---|
| 501 | NTSC ÀÇ °æ¿ì: ?? |
|---|
| 502 | |
|---|
| 503 | @todo |
|---|
| 504 | ntsc demod ¿¡¼ lockÀÌ µÇ¾ú¾îµµ |
|---|
| 505 | ntsc video decoder ¿¡¼ µ¿ÀÛ ¸øÇÒ ¼öµµ ÀÖ´Ù. |
|---|
| 506 | ¾î¶² ±âÁØÀ¸·Î lockÀ» ÇÒ °ÍÀÎÁö Á» ´õ °ËÅä ÇÊ¿ä. |
|---|
| 507 | |
|---|
| 508 | @param[in] id FE ä³Î id. |
|---|
| 509 | @param[out] pbLock lock À̸é TRUE¸¦ ¸®ÅÏ. |
|---|
| 510 | @param[out] pDemod demod Á¤º¸°¡ ¸®ÅÏ. lock ÀÌ ¾Æ´Ï¸é eDHL_DEMOD_UNKNOWN ¸®ÅÏ. |
|---|
| 511 | caller´Â ÀÌ Á¤º¸°¡ ÇÊ¿äÇÏÁö ¾Ê´Ù¸é NULLÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. |
|---|
| 512 | @return |
|---|
| 513 | - DHL_OK: ¼º°ø. |
|---|
| 514 | - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. |
|---|
| 515 | |
|---|
| 516 | */ |
|---|
| 517 | DHL_RESULT DHL_FE_GetLockStatus(tDHL_TunerID id, BOOL *pbLock, tDHL_Demod *pDemod); |
|---|
| 518 | |
|---|
| 519 | |
|---|
| 520 | /** |
|---|
| 521 | @brief |
|---|
| 522 | ¾î¶² demodultion À¸·Î µ¿ÀÛÇϰí ÀÖ´ÂÁö¸¦ ¸®ÅÏÇÑ´Ù. |
|---|
| 523 | |
|---|
| 524 | Æ©³Ê°¡ lock µÈ »óÅ¿¡¼ »ç¿ë °¡´ÉÇÏ´Ù. |
|---|
| 525 | LockÀÌ µÇÁö ¾ÊÀº »óÅ¿¡¼ ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇϸé eDHL_DEMOD_UNKNOWN À» ¸®ÅÏÇÑ´Ù. |
|---|
| 526 | |
|---|
| 527 | @param[in] id FE ä³Î id. |
|---|
| 528 | @param[out] pDemod ÇöÀç demod Á¤º¸°¡ ¸®Å쵃 °÷. |
|---|
| 529 | @return |
|---|
| 530 | - DHL_OK: ¼º°ø. |
|---|
| 531 | - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. |
|---|
| 532 | |
|---|
| 533 | */ |
|---|
| 534 | DHL_RESULT DHL_FE_GetModFormat(tDHL_TunerID id, tDHL_Demod *pDemod); |
|---|
| 535 | |
|---|
| 536 | |
|---|
| 537 | |
|---|
| 538 | /** |
|---|
| 539 | @brief |
|---|
| 540 | ½ÅÈ£¿Í °ü·ÃµÈ °¢Á¾ Á¤º¸¸¦ ¸®ÅÏÇÑ´Ù. |
|---|
| 541 | |
|---|
| 542 | Lock, SNR, SER µîµîÀÇ »óÅ Á¤º¸¸¦ °¡Á®¿È. |
|---|
| 543 | |
|---|
| 544 | @param[in] id FE ä³Î id. |
|---|
| 545 | @param[in] selector Á¶È¸Çϱ⸦ ¿øÇÏ´Â Á¤º¸ Á¾·ù. |
|---|
| 546 | @param[out] pValue Á¤º¸°¡ ¸®ÅϵǴ °÷. |
|---|
| 547 | @return |
|---|
| 548 | - DHL_OK: ¼º°ø. |
|---|
| 549 | - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. |
|---|
| 550 | |
|---|
| 551 | */ |
|---|
| 552 | DHL_RESULT DHL_FE_GetSignalStatus(tDHL_TunerID id, tDHL_SignalStatus selector, |
|---|
| 553 | UINT32 *pValue); |
|---|
| 554 | |
|---|
| 555 | /** |
|---|
| 556 | @brief |
|---|
| 557 | ½ÅÈ£ ¼¼±â Á¤º¸ ¸®ÅÏ. |
|---|
| 558 | |
|---|
| 559 | @todo |
|---|
| 560 | "½ÅÈ£ ¼¼±â"¶ó´Â ¸»Àº ¿©·¯°¡Áö ÀÇ¹Ì·Î ÇØ¼®µÉ ¼ö ÀÖÀ¸¹Ç·Î |
|---|
| 561 | Á» ´õ ¸íÈ®ÇÑ ¼³¸íÀÌ ÇÊ¿äÇÔ. |
|---|
| 562 | |
|---|
| 563 | ¾î¶² ¿ëµµ·Î »ç¿ëÇÒ °ÍÀÎÁö¿¡ µû¶ó ´Þ¶óÁø´Ù. |
|---|
| 564 | meter bar Ç¥½Ã ¿ëµµ: SNR |
|---|
| 565 | monitor check ¿ëµµ: error ratio |
|---|
| 566 | |
|---|
| 567 | ÀÌ ÇÔ¼ö´Â DHL_FE_GetSignalStatus ¿¡ Æ÷ÇÔ °¡´ÉÇÏ´Ù. |
|---|
| 568 | |
|---|
| 569 | @param[in] id FE ä³Î id. |
|---|
| 570 | @param[out] pstrength ½ÅÈ£ ¼¼±â ÃøÁ¤°ª ¹Ýȯ. |
|---|
| 571 | @return |
|---|
| 572 | - DHL_OK: ¼º°ø. |
|---|
| 573 | - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. |
|---|
| 574 | |
|---|
| 575 | |
|---|
| 576 | */ |
|---|
| 577 | DHL_RESULT DHL_FE_GetSignalStrength(tDHL_TunerID id, UINT32 *pstrength); |
|---|
| 578 | |
|---|
| 579 | |
|---|
| 580 | |
|---|
| 581 | /** |
|---|
| 582 | @brief |
|---|
| 583 | RF ä³Î ¹øÈ£¿¡ ÇØ´çµÇ´Â Á֯ļö °ªÀ» KHz ´ÜÀ§·Î ¸®ÅÏÇÑ´Ù. |
|---|
| 584 | |
|---|
| 585 | ¾î¶² TableÀ» »ç¿ëÇÒ °ÍÀÎÁö¿¡ µû¶ó °á°ú°¡ ´Þ¶óÁø´Ù. |
|---|
| 586 | |
|---|
| 587 | @param[in] ch RF ¹øÈ£. |
|---|
| 588 | @param[in] freqTbl band. Air/Cable ¶Ç´Â cable system Table ÁöÁ¤. |
|---|
| 589 | @return |
|---|
| 590 | - KHz ´ÜÀ§ÀÇ Á֯ļö °ª. |
|---|
| 591 | |
|---|
| 592 | */ |
|---|
| 593 | UINT32 DHL_FE_ChannelToFrequency(int ch, tDHL_FreqStd freqTbl); |
|---|
| 594 | |
|---|
| 595 | |
|---|
| 596 | |
|---|
| 597 | |
|---|
| 598 | |
|---|
| 599 | |
|---|
| 600 | #ifdef __cplusplus |
|---|
| 601 | } /* extern "C" */ |
|---|
| 602 | #endif |
|---|
| 603 | |
|---|
| 604 | |
|---|
| 605 | #endif /* __DHL_FE_H__ */ |
|---|
| 606 | |
|---|
| 607 | |
|---|
| 608 | |
|---|
| 609 | |
|---|