| 1 | /******************************************************************* |
|---|
| 2 | * DMW_ChannelAPI.h |
|---|
| 3 | * |
|---|
| 4 | * Channel Middleware main header file |
|---|
| 5 | * |
|---|
| 6 | * Copyright 2004 Digital STREAM Technology, Inc. |
|---|
| 7 | * All Rights Reserved |
|---|
| 8 | * |
|---|
| 9 | * $Id: DMW_ChannelAPI.h, v?? 2004 cafrii Exp $ |
|---|
| 10 | * |
|---|
| 11 | ********************************************************************/ |
|---|
| 12 | |
|---|
| 13 | #ifndef __DMW_ChannelAPI_H__ |
|---|
| 14 | #define __DMW_ChannelAPI_H__ |
|---|
| 15 | |
|---|
| 16 | #ifdef __cplusplus |
|---|
| 17 | extern "C" { |
|---|
| 18 | #endif |
|---|
| 19 | |
|---|
| 20 | |
|---|
| 21 | #include "DMW_Channel.h" |
|---|
| 22 | #include "DMW_Status.h" // °¢Á¾ status »ó¼ö °ª. |
|---|
| 23 | |
|---|
| 24 | |
|---|
| 25 | |
|---|
| 26 | |
|---|
| 27 | |
|---|
| 28 | |
|---|
| 29 | |
|---|
| 30 | //*************************************************************** |
|---|
| 31 | // |
|---|
| 32 | // Channel Specific Data DB |
|---|
| 33 | // |
|---|
| 34 | // 041126 add |
|---|
| 35 | |
|---|
| 36 | // °¢ CSD entry¸¦ ±¸ºÐÇÏ´Â tag |
|---|
| 37 | enum { |
|---|
| 38 | CSD_TAG_END = 0x00, |
|---|
| 39 | // csd listÀÇ ¸Ç ¸¶Áö¸·À» ÀǹÌÇÏ´Â terminator. |
|---|
| 40 | // csd¸¦ list ÇüÅ·Π»ç¿ëÇÒ °æ¿ì ¸Ç ¸¶Áö¸· end¸¦ ÀǹÌÇϵµ·Ï »ç¿ë ÇÒ ¼ö ÀÖ´Ù. |
|---|
| 41 | |
|---|
| 42 | CSD_TAG_SHORT_NAME = 0x10, |
|---|
| 43 | // Channel Short Name, from VCT |
|---|
| 44 | // format: 16-bit Unicode, Null (0x0000) terminated |
|---|
| 45 | // ptr: Unicode string of short name, should be null-terminated. |
|---|
| 46 | |
|---|
| 47 | CSD_TAG_EXTENDED_NAME = 0x11, |
|---|
| 48 | // Channel Extended Name, (A.K.A. long channel name) from VCT descriptor |
|---|
| 49 | // format: MSS |
|---|
| 50 | // ptr: byte string of extended name |
|---|
| 51 | |
|---|
| 52 | CSD_TAG_EXTENDED_TEXT = 0x12, |
|---|
| 53 | // Channel description, from Channel-Ett |
|---|
| 54 | // format: MSS |
|---|
| 55 | // ptr: byte string of extended text |
|---|
| 56 | |
|---|
| 57 | CSD_TAG_SI_SOURCE_NAME = 0x13, |
|---|
| 58 | // Source name, from NTT-SNS (source name subtable) |
|---|
| 59 | // format: MTS |
|---|
| 60 | // ptr: byte string of source name |
|---|
| 61 | |
|---|
| 62 | |
|---|
| 63 | // cafrii 041221 add |
|---|
| 64 | CSD_TAG_XDS_CALL_LETTER = 0x14, |
|---|
| 65 | // XDS call letter (Station ID) |
|---|
| 66 | // format: ASCII (4 or 6 character) |
|---|
| 67 | // ptr: byte string of call letter |
|---|
| 68 | |
|---|
| 69 | CSD_TAG_XDS_NETWORK_NAME = 0x15, |
|---|
| 70 | // XDS Network Name |
|---|
| 71 | // format: ASCII (max 32 bytes) with null termination (total max 33 bytes) |
|---|
| 72 | // ptr: byte string of network name |
|---|
| 73 | |
|---|
| 74 | CSD_TAG_EXTENDED_NAME_UC = 0x16, |
|---|
| 75 | // Channel Extended Name from VCT descriptor |
|---|
| 76 | // MSS Àüü¸¦ ´Ù ÁöÁ¤ÇÏ´Â ´ë½Å english ¸¸À» µû·Î ÃßÃâÇÏ¿© ÀúÀåÇϰíÀÚ ÇÒ °æ¿ì »ç¿ëÇÑ´Ù. |
|---|
| 77 | // format: Unicode-16, null-terminated |
|---|
| 78 | // ptr: UC16 string pointer of extended name |
|---|
| 79 | |
|---|
| 80 | CSD_TAG_USER_CHANNEL_NAME = 0x80, |
|---|
| 81 | // User Channel Name, from user input via GUI |
|---|
| 82 | // format: Ascii |
|---|
| 83 | // ptr: byte string of user channel name |
|---|
| 84 | |
|---|
| 85 | }; |
|---|
| 86 | |
|---|
| 87 | |
|---|
| 88 | typedef struct ChannelSpecificData_t |
|---|
| 89 | { |
|---|
| 90 | UINT8 tag; |
|---|
| 91 | // meaning what kinds of data it is.. CSD_TAG_XXX |
|---|
| 92 | // 'ptr'ÀÌ ¾î¶² ³»¿ëÀÇ µ¥ÀÌÅÍÀÎÁö¸¦ ³ªÅ¸³½´Ù. |
|---|
| 93 | |
|---|
| 94 | UINT16 byte_len; |
|---|
| 95 | // byte length of data pointed by 'ptr' |
|---|
| 96 | // 'ptr' bufferÀÇ Å©±âÀÌ´Ù. null terminate µÈ °æ¿ì´Â null byteµµ Æ÷ÇÔÇÑ´Ù. |
|---|
| 97 | |
|---|
| 98 | UINT8 *ptr; |
|---|
| 99 | // pointer of CSD data.. |
|---|
| 100 | // OS_Malloc ¿¡ ÀÇÇØ¼ ÇÒ´çµÈ ¸Þ¸ð¸®. |
|---|
| 101 | // |
|---|
| 102 | |
|---|
| 103 | } ChannelSpecificData; |
|---|
| 104 | |
|---|
| 105 | |
|---|
| 106 | |
|---|
| 107 | |
|---|
| 108 | |
|---|
| 109 | |
|---|
| 110 | // cafrii 060630 add |
|---|
| 111 | |
|---|
| 112 | #define DMW_PID_NOT_EXIST 0 // elementary stream not exist.. |
|---|
| 113 | #define DMW_PID_NO_INFO 1 // we do not have information. |
|---|
| 114 | |
|---|
| 115 | /* |
|---|
| 116 | special pid: |
|---|
| 117 | ´ÙÀ½°ú °°Àº °æ¿ì, Ưº°ÇÑ Àǹ̸¦ ºÎ¿©ÇϰíÀÚ ÇÒ ¶§ »ç¿ë. |
|---|
| 118 | |
|---|
| 119 | - DBÀÇ pid field¿¡ ÀúÀåÇÒ ¶§ |
|---|
| 120 | |
|---|
| 121 | * ÇØ´ç streamÀÌ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ì´Â DMW_PID_NOT_EXIST¸¦ ÁöÁ¤ÇÑ´Ù. |
|---|
| 122 | |
|---|
| 123 | * PID Á¤º¸°¡ À¯È¿ÇÏÁö ¾ÊÀº °æ¿ì´Â DMW_PID_NO_INFO¸¦ ÁöÁ¤ÇÑ´Ù. |
|---|
| 124 | |
|---|
| 125 | - DB¿¡ ÀúÀåµÈ ³»¿ëÀÌ Àǹ̰¡ ¾ø¾îÁø °æ¿ì (audio language¸¦ º¯°æÇÑ´Ù´ø°¡ µî) |
|---|
| 126 | - NvRam loadÇÑ ÈÄ.. |
|---|
| 127 | - ½Ã°£ÀÌ ¸¹ÀÌ °æ°úÇØ¼ ÀúÀåÇÑ pid Á¤º¸¸¦ ¹ÏÀ» ¼ö ¾ø´Â °æ¿ì µî.. |
|---|
| 128 | |
|---|
| 129 | * Çϳª¶óµµ DMW_PID_NO_INFO pid°¡ ÁöÁ¤µÇ¸é |
|---|
| 130 | Rf TuneÀ» ÇÒ ¶§ pid¸¦ ÀÌ¿ëÇÑ fast tuningÀº ºÒ°¡´ÉÇÏ´Ù. |
|---|
| 131 | |
|---|
| 132 | */ |
|---|
| 133 | |
|---|
| 134 | |
|---|
| 135 | |
|---|
| 136 | |
|---|
| 137 | |
|---|
| 138 | |
|---|
| 139 | /******************************************************************************* |
|---|
| 140 | Channel Map Definition |
|---|
| 141 | |
|---|
| 142 | Terminology Definition |
|---|
| 143 | |
|---|
| 144 | -MCM(Master Channel Map) |
|---|
| 145 | -UCM(User Channel Map) |
|---|
| 146 | |
|---|
| 147 | DB Generation |
|---|
| 148 | Temp. MCM -> UCM |
|---|
| 149 | |
|---|
| 150 | *******************************************************************************/ |
|---|
| 151 | |
|---|
| 152 | |
|---|
| 153 | /******************************************************************************* |
|---|
| 154 | UCM_DB_T |
|---|
| 155 | |
|---|
| 156 | ±âº»ÀûÀΠä³Î Á¤º¸ÀÌ´Ù. |
|---|
| 157 | ¸ðµç ä³Î °ü·Ã APIµéÀÇ ±âº»ÀÌ µÈ´Ù. |
|---|
| 158 | |
|---|
| 159 | Auto ScanÇÒ °æ¿ì |
|---|
| 160 | temp M.C.M¿¡ ÀÇÇØ Áߺ¹¼º Á¦°ÅµÇ°í, Major/Minor sortingÇØ¼ »ý¼ºµÈ´Ù. |
|---|
| 161 | |
|---|
| 162 | Channel Add¸¦ ÇÒ °æ¿ì |
|---|
| 163 | minor channel Ãß°¡: append --> insert·Î º¯°æ. |
|---|
| 164 | major channel Ãß°¡: append --> insert·Î º¯°æ. Ç×»ó sort »óŸ¦ À¯Áö. |
|---|
| 165 | RF channel Ãß°¡: update |
|---|
| 166 | |
|---|
| 167 | Âü°í: DCMÀ̶ó°í À̸§À» º¯°æÇÏ´Â °ÇÀº ÇöÀç ¾ÆÁ÷ Àû¿ëÀÌ ¾ÈµÇ¾î ÀÖÀ½. |
|---|
| 168 | |
|---|
| 169 | *******************************************************************************/ |
|---|
| 170 | |
|---|
| 171 | // Some restriction: |
|---|
| 172 | // ordered by Major/Minor/Rf/Vf |
|---|
| 173 | // only 1 channel info should be "active" among same Mj/Mn/Rf/Vf group |
|---|
| 174 | // |
|---|
| 175 | /* |
|---|
| 176 | ShortName°ú LongNameÀº ¸ðµÎ 16-bit unicode stringÀÌ´Ù. |
|---|
| 177 | ÀÌ µÎ stringÀº (°¡´ÉÇϸé) null Á¾·á µÇ¾î¾ß ÇÑ´Ù. |
|---|
| 178 | ÃÖ´ë ±æÀ̰¡ 7ÀÚ, 30ÀÚ µîÀ¸·Î Á¦ÇÑÀÌ µÇ¾î ÀÖÀ¸¹Ç·Î, string ±æÀ̰¡ ÃÖ´ë ±æÀÌÀÎ °æ¿ì |
|---|
| 179 | null Á¾·á°¡ ¾ÈµÉ ¼ö ÀÖÀ½¿¡µµ À¯ÀÇÇØ¾ß ÇÑ´Ù. |
|---|
| 180 | |
|---|
| 181 | --> ´ÙÀ½ MW design ½Ã¿¡´Â null Á¾·á ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ¿© array¸¦ ÇÒ´çÇϰí |
|---|
| 182 | stringÀº ¹Ýµå½Ã null Á¾·áÇϵµ·Ï ÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÔ. |
|---|
| 183 | */ |
|---|
| 184 | typedef struct UserChMap_DB |
|---|
| 185 | { |
|---|
| 186 | UINT16 Major; // Major channel number |
|---|
| 187 | UINT16 Minor; // Minor channel number |
|---|
| 188 | UINT8 RF; // RF channel number |
|---|
| 189 | UINT8 VctFlag; // True if this info come from VCT. |
|---|
| 190 | |
|---|
| 191 | UINT16 Prog_number; // prog_number |
|---|
| 192 | UINT8 Service_type; // 0: NTSC, 1: ATSC-VSB, 2: ATSC-64QAM, 3: ATSC-256QAM |
|---|
| 193 | |
|---|
| 194 | UINT8 Skipped; // 0: retained (active), 1: skipped |
|---|
| 195 | UINT16 SurfIndex; // surf channel index in Surf Channel Map |
|---|
| 196 | // 0: not included in Surf list |
|---|
| 197 | // >=1: included in Surf list and Surf channel index |
|---|
| 198 | |
|---|
| 199 | UINT16 ShortName[7]; // channel short_name (from VCT) |
|---|
| 200 | |
|---|
| 201 | INT32 freqOffset; // signed value, unit: Hz |
|---|
| 202 | UINT16 source_id; // source_id |
|---|
| 203 | |
|---|
| 204 | UINT16 Uid; // UCM element UID. (uniquely distinguishable ID). |
|---|
| 205 | void *pEpgDB; // pointer to EPG DB |
|---|
| 206 | |
|---|
| 207 | // temporary values. ÀÌÇÏ °ªµéÀº NvRam¿¡ ÀúÀåµÇÁö ¾ÊÀ¸¹Ç·Î Èֹ߼ºÀÌ´Ù. |
|---|
| 208 | // |
|---|
| 209 | UINT16 Pcr_pid; // pcr pid |
|---|
| 210 | UINT16 Video_pid; // video pid |
|---|
| 211 | UINT16 Audio_pid; // preference audio pid |
|---|
| 212 | tDHL_VideoCodingType Video_type; |
|---|
| 213 | tDHL_AudioCodingType Audio_type; |
|---|
| 214 | |
|---|
| 215 | //neverdai add 101018 |
|---|
| 216 | tDHL_DispFormat video_format; |
|---|
| 217 | |
|---|
| 218 | UINT16 pmt_pid; // cafrii 070201 add. if 0, this pid info is invalid. |
|---|
| 219 | |
|---|
| 220 | UINT8 signal_strength; // strength of signal whose tsid is 'TSID' |
|---|
| 221 | UINT16 TSID; // TSID of the channel which contains this PSIP info. |
|---|
| 222 | UINT16 channel_tsid; // channel TSID of this descriptive target channel |
|---|
| 223 | BOOL hidden; // this channel is hidden in VCT. |
|---|
| 224 | |
|---|
| 225 | // cafrii 031205 add |
|---|
| 226 | BOOL blocked; // if TRUE, this channel is blocked. (application use) |
|---|
| 227 | |
|---|
| 228 | // cafrii 041129 add |
|---|
| 229 | BOOL scrambled; // if TRUE, one of streams is scrambled |
|---|
| 230 | |
|---|
| 231 | // cafrii 060724 add |
|---|
| 232 | BOOL fresh; |
|---|
| 233 | // ±âÁ¸¿¡ Á¸ÀçÇß´ø ä³ÎÀÎÁö, »õ·Ó°Ô Ãß°¡µÈ ä³ÎÀÎÁö |
|---|
| 234 | // ¾Ë°í ÀÖÀ¸¸é µµ¿òÀÌ µÇ´Â °æ¿ì°¡ ÀÖ¾î¼ |
|---|
| 235 | // À̸¦ ±¸ºÐÇϱâ À§ÇØ Ãß°¡ÇÔ. |
|---|
| 236 | // NvRam¿¡´Â ÀúÀåµÇÁö ¾Ê´Â temporary value |
|---|
| 237 | |
|---|
| 238 | // cafrii 101208 add |
|---|
| 239 | BOOL disabled; |
|---|
| 240 | // ÀÌ flag°¡ trueÀ̸é ÀÌ Ã¤³ÎÀº ¾ÈÀüÇÑ ½ÃÁ¡¿¡ ä³ÎÀÌ »èÁ¦µÇ¾î¾ß ÇÔÀ» ÀǹÌ. |
|---|
| 241 | // ¹Ù·Î »èÁ¦ÇÏÁö ¾Ê´Â ÀÌÀ¯´Â ÀÌ Ã¤³ÎÀÌ ÇöÀç ½Ãû ä³ÎÀÏ ¼öµµ Àֱ⠶§¹®. |
|---|
| 242 | |
|---|
| 243 | //------------------------- |
|---|
| 244 | // Channel specific data structure |
|---|
| 245 | // |
|---|
| 246 | // cafrii 041125 add for extended channel from VCT.. it is temporary data for MCM only |
|---|
| 247 | //extendedChannelNameDescriptorPtr_t xcnd; |
|---|
| 248 | |
|---|
| 249 | int num_csd; // number of csd data |
|---|
| 250 | int max_csd; // array size of 'csd' |
|---|
| 251 | |
|---|
| 252 | ChannelSpecificData *csd; |
|---|
| 253 | //------------------------- |
|---|
| 254 | |
|---|
| 255 | UINT16 LongName[30]; // extended channel name (from VCT) |
|---|
| 256 | // max 30 wide characters (UC16) |
|---|
| 257 | // null terminated or length limited (by 30) |
|---|
| 258 | |
|---|
| 259 | } UCM_DB_T; // User Channel Map DB |
|---|
| 260 | |
|---|
| 261 | // NvRam¿¡´Â ÀÌ ¸ðµç Á¤º¸°¡ ÀúÀåµÇ´Â °ÍÀÌ ¾Æ´Ï´Ù. |
|---|
| 262 | // |
|---|
| 263 | |
|---|
| 264 | |
|---|
| 265 | //------------------------------------------ |
|---|
| 266 | // cafrii 031205, add UCM CORE functions.. |
|---|
| 267 | // |
|---|
| 268 | typedef struct UCM_CORE_ENTRY_t { |
|---|
| 269 | |
|---|
| 270 | // IDs to distinguish each channels.. |
|---|
| 271 | UINT16 major; |
|---|
| 272 | UINT16 minor; |
|---|
| 273 | UINT8 rf; |
|---|
| 274 | |
|---|
| 275 | // channel parameters to be persistent between Autoscan.. |
|---|
| 276 | BOOLEAN skip; |
|---|
| 277 | BOOLEAN block; |
|---|
| 278 | UINT16 surf; |
|---|
| 279 | |
|---|
| 280 | } UCM_CORE_ENTRY; |
|---|
| 281 | |
|---|
| 282 | typedef struct { |
|---|
| 283 | |
|---|
| 284 | int num; // number of ucm core entries |
|---|
| 285 | UCM_CORE_ENTRY *entry; |
|---|
| 286 | |
|---|
| 287 | } UCM_CORE; |
|---|
| 288 | |
|---|
| 289 | UCM_CORE *DMW_CDB_BackupUcmCore(void); |
|---|
| 290 | // Make ucm core from UCM DB. |
|---|
| 291 | // if NULL returned, memory resource is not sufficient to allocate memory.. |
|---|
| 292 | // Caller should call FreeUcmCore after use. |
|---|
| 293 | |
|---|
| 294 | STATUS DMW_CDB_UpdateUcmCore(UCM_CORE *core); |
|---|
| 295 | // update UCM core so that channel parameters can be unchanged.. |
|---|
| 296 | |
|---|
| 297 | void DMW_CDB_FreeUcmCore(UCM_CORE *core); |
|---|
| 298 | // free ucm core |
|---|
| 299 | //------------------------------------------ |
|---|
| 300 | |
|---|
| 301 | |
|---|
| 302 | extern char *ShortNameString(UINT16 *src, char *dst); |
|---|
| 303 | // unicode¹®ÀÚ¸¦ ascii char·Î.. (¿µ¹®¸¸..) |
|---|
| 304 | |
|---|
| 305 | extern const int g_sizeUcmExtension; |
|---|
| 306 | // user°¡ ¿øÇÏ´Â ¸¸Å UCMÀº È®ÀåµÉ ¼ö ÀÖ´Ù. |
|---|
| 307 | // ChannelLibÀ» ÃʱâÈ ÇÒ ¶§ ÁöÁ¤°¡´ÉÇÏ´Ù. |
|---|
| 308 | // |
|---|
| 309 | #define UcmItemMemorySize() (sizeof(UCM_DB_T) + g_sizeUcmExtension) |
|---|
| 310 | // ½ÇÁ¦·Î UCM Çϳª°¡ ¸Þ¸ð¸®¿¡¼ Â÷ÁöÇϰí ÀÖ´Â ¹ÙÀÌÆ® Å©±â. |
|---|
| 311 | |
|---|
| 312 | #define UcmExt(p) ((p)+sizeof(UCM_DB_T)) |
|---|
| 313 | // |
|---|
| 314 | // UCM Extension ºÎºÐÀ» Á¢±ÙÇϱâ À§ÇÑ ¸ÅÅ©·Î. |
|---|
| 315 | // ÀÌ Æ÷ÀÎÅ͸¦ ´Ù½Ã applicationº°·Î ÁغñµÈ (UCM_EXT *)·Î ij½ºÆÃ ÇØ¼ »ç¿ëÇÏ¸é µÈ´Ù. |
|---|
| 316 | // ¿¹) |
|---|
| 317 | // typedef struct UCM_EX_t { |
|---|
| 318 | // UINT32 var1; |
|---|
| 319 | // UINT8 var2[3]; |
|---|
| 320 | // } UCM_EX; |
|---|
| 321 | // |
|---|
| 322 | // #define XUCM(p) ((UCM_EX *)UcmExt(p)) // to reach ucm extension use this. |
|---|
| 323 | // |
|---|
| 324 | // DMW_CDB_InitializeChannelLib(ChannelType_Air, sizeof(UCM_EX)); |
|---|
| 325 | // |
|---|
| 326 | // XUCM(&g_UCM[i])->var1 = 10; |
|---|
| 327 | // |
|---|
| 328 | |
|---|
| 329 | |
|---|
| 330 | // |
|---|
| 331 | //*************************************************************** |
|---|
| 332 | // |
|---|
| 333 | // 4.4 API |
|---|
| 334 | // |
|---|
| 335 | |
|---|
| 336 | //*************************************************************** |
|---|
| 337 | // |
|---|
| 338 | // 4.4.1-1 Tuning °ü·Ã ±âº»»çÇ×. |
|---|
| 339 | // |
|---|
| 340 | // |
|---|
| 341 | // |
|---|
| 342 | |
|---|
| 343 | |
|---|
| 344 | STATUS DMW_CDB_InitializeChannelLib(ChannelType type, int sizeExtionsion); |
|---|
| 345 | // |
|---|
| 346 | // ä³Î ŸÀÔÀ» ¹Ù²Û´Ù. |
|---|
| 347 | // - ÇöÀç ucmÀÌ »õ ä³Î ŸÀÔ°ú ¸ÂÁö ¾ÊÀ» °æ¿ì ucmÀ» Æó±âÇÑ´Ù. |
|---|
| 348 | // - ucm sema4°¡ ¾øÀ¸¸é »õ·Î ¸¸µç´Ù. |
|---|
| 349 | // ucmÀ» NvRam¿¡¼ ÀÚµ¿À¸·Î loadÇÏÁö´Â ¾Ê´Â´Ù. ±×°ÍÀº applicationÀÇ ¸òÀÌ´Ù. |
|---|
| 350 | |
|---|
| 351 | STATUS DMW_CDB_TerminateChannelLib(void); |
|---|
| 352 | // ä³Î ¶óÀ̺귯¸®¸¦ ´Ý´Â´Ù. |
|---|
| 353 | // °¢Á¾ ŽºÅ©, ¼¼¸¶Æ÷¾î¸¦ ÇØÁ¦ÇÑ´Ù. |
|---|
| 354 | // |
|---|
| 355 | |
|---|
| 356 | |
|---|
| 357 | |
|---|
| 358 | |
|---|
| 359 | //------------------------------ |
|---|
| 360 | // UCM DB pointer |
|---|
| 361 | |
|---|
| 362 | extern UCM_DB_T *g_UCM; // DB pointer |
|---|
| 363 | extern INT32 g_UCM_number; // number of DB element stored in RAM, not NvRam!!! |
|---|
| 364 | extern INT32 g_UCM_max; // max number of DB (unit: element) |
|---|
| 365 | // |
|---|
| 366 | // UCM DB´Â 1Â÷¿ø ¹è¿ ±¸Á¶¸¦ °®´Â´Ù. |
|---|
| 367 | // UCM DB¸¦ À§ÇÑ ¸Þ¸ð¸®ÀÇ ÇÒ´ç/ÀçÇÒ´çÀº M/W¿¡¼ ´ã´çÇÑ´Ù. |
|---|
| 368 | // |
|---|
| 369 | // Application¿¡¼´Â DB ³»¿ë ¼öÁ¤À» ÇÏ¸é ¾ÈµÈ´Ù. ¿ÀÁ÷ API¸¦ ÀÌ¿ëÇÏ¿©¾ß ÇÑ´Ù. |
|---|
| 370 | // application¿¡¼ ¿øÇÑ´Ù¸é DB¸¦ Á÷Á¢ ÀÐ¾î¼ ÂüÁ¶Çϴ°ÍÀº °¡´ÉÇÏÁö¸¸, |
|---|
| 371 | // ±×·²°æ¿ì sema4·Î º¸È£µÈ »óÅ¿¡¼ Àоî¾ß ÇÑ´Ù. Lock/Unlock()ÇÔ¼ö ÀÌ¿ë. |
|---|
| 372 | // |
|---|
| 373 | // Application¿¡¼´Â Read-Only·Î °£ÁÖÇÑ´Ù. M/W¿¡ ÀÇÇØ¼¸¸ ¼öÁ¤µÈ´Ù. |
|---|
| 374 | // |
|---|
| 375 | // UCM DB´Â ¿øÄ¢ÀûÀ¸·Î AutoScan¿¡ ÀÇÇØ MCMÀ¸·ÎºÎÅÍ »ý¼ºµÇ¹Ç·Î ±× ¼ø°£ Å©±â°¡ °áÁ¤µÇÁö¸¸, |
|---|
| 376 | // Update °ü·Ã API¿¡ ÀÇÇØ Ãß°¡ È®ÀåµÉ ¼ö ÀÖ´Ù. DWM_TUN_xxx().. |
|---|
| 377 | // |
|---|
| 378 | // Âü°í: |
|---|
| 379 | // Application¿¡¼ DBÀÇ ³»¿ëÀ» Á÷Á¢ ¼öÁ¤ÇÏ´Â ¹æ¹ýÀº ¾ÆÁ÷ ¾øÀ¸³ª, |
|---|
| 380 | // ÇâÈÄ 'Skipped' flag¿Í °°ÀÌ application Á¤Ã¥¿¡ ¸¹ÀÌ ÀÇÁ¸ÀûÀÎ ÀϺΠÇʵ带 ¼öÁ¤ÇÏ´Â ÇÔ¼ö°¡ |
|---|
| 381 | // Á¦°øµÇ±â Àü±îÁö ¼öÁ¤À» ÀӽùæÆíÀ¸·Î Çã¿ëÇϰí ÀÖ´Ù. ÀÌ °æ¿ì ¹Ýµå½Ã LockÀ¸·Î º¸È£Çϱ⠹ٶ÷. |
|---|
| 382 | // |
|---|
| 383 | |
|---|
| 384 | extern BOOL g_bReserveUcmIndex0; |
|---|
| 385 | // ÀÌ °ªÀº index 0À» Ưº°ÇÑ ¿ëµµ·Î »ç¿ëÇÏ±æ ¿øÇÏ´Â platformÀ» À§ÇÑ flagÀÌ´Ù. |
|---|
| 386 | // TRUEÀ̸é UCM index 0 (g_UCM[0])Àº Ư¼ö ¿ëµµ·Î reserveµÈ´Ù. |
|---|
| 387 | |
|---|
| 388 | void DMW_MSC_LockUcm(void); |
|---|
| 389 | void DMW_MSC_UnlockUcm(void); |
|---|
| 390 | |
|---|
| 391 | STATUS DMW_MSC_LockUcmWait(UINT32 tick); |
|---|
| 392 | // cafrii 060804 add |
|---|
| 393 | // Ucm mutex¸¦ lockÇϱâ À§Çؼ ¹«ÇÑÁ¤ ±â´Ù¸®Áö ¾Ê°í ÁöÁ¤µÈ ½Ã°£¸¸ ±â´Ù¸°´Ù. |
|---|
| 394 | // dead lockÀ» ¹æÁöÇϱâ À§Çؼ °£´ÜÇÏ°Ô Ã¼Å©¸¦ ÇÒ ¶§ À¯¿ë. |
|---|
| 395 | |
|---|
| 396 | |
|---|
| 397 | |
|---|
| 398 | // °¢Á¾ ä³Î ¼ÇÎ ÇÔ¼öµé.. |
|---|
| 399 | // ±âÁ¸ ä³Î Æ©´× Á¤Ã¥¿¡¼ Á¦°øµÇ´ø ÇÔ¼öÀÌÀÓ. |
|---|
| 400 | |
|---|
| 401 | STATUS DMW_MSC_FindUcmByRF(int rf, int *returnIndex); // cafrii 050528 add |
|---|
| 402 | |
|---|
| 403 | #if 0 // cafrii 051031 delete, do not use any more |
|---|
| 404 | |
|---|
| 405 | STATUS DMW_MSC_FindUpperUcm(int curMajor, int curMinor, int *returnIndex, int *returnRF); |
|---|
| 406 | STATUS DMW_MSC_FindLowerUcm(int curMajor, int curMinor, int *returnIndex, int *returnRF); |
|---|
| 407 | |
|---|
| 408 | STATUS DMW_MSC_FindUpperMajor(int curMajor, int flag, int *returnIndex, int *returnRF); |
|---|
| 409 | STATUS DMW_MSC_FindLowerMajor(int curMajor, int flag, int *returnIndex, int *returnRF); |
|---|
| 410 | |
|---|
| 411 | #endif // 0 |
|---|
| 412 | |
|---|
| 413 | |
|---|
| 414 | // UCM ¿À·ù¸¦ üũÇÏ´Â µð¹ö±× ÇÔ¼ö. Å×½ºÆ® ¿ëµµÀÓ. |
|---|
| 415 | // |
|---|
| 416 | BOOL DMW_MSC_IsUcmValid(void); |
|---|
| 417 | |
|---|
| 418 | |
|---|
| 419 | STATUS DMW_MSC_EnableChannel(int uid, BOOL bEnable); |
|---|
| 420 | // Skipped flag ¼³Á¤ÇÏ´Â ÇÔ¼ö. |
|---|
| 421 | |
|---|
| 422 | |
|---|
| 423 | void DMW_MSC_SortUcm(void); |
|---|
| 424 | // UCMÀ» ´Ù½Ã Á¤·ÄÇÏ´Â ÇÔ¼ö. |
|---|
| 425 | |
|---|
| 426 | |
|---|
| 427 | void DMW_CDB_PrintUcm(int detailLevel); // ¸Þ¸ð¸®¿¡ ÀÖ´Â UCMÀ» ¸®½ºÆ®ÇÑ´Ù. |
|---|
| 428 | void DMW_CDB_PrintOneUcm(int i, int detailLevel); |
|---|
| 429 | |
|---|
| 430 | //------------------------------------------ |
|---|
| 431 | // »õ·Î¿î Tuning Policy¿¡ ÀÇÇÑ Ã¤³Î ¼ÇÎ ÇÔ¼ö. |
|---|
| 432 | // |
|---|
| 433 | // |
|---|
| 434 | |
|---|
| 435 | |
|---|
| 436 | // »õ Tuning Policy ¿ä±¸»çÇ×À» Àû¿ëÇÑ ÄÚµå. |
|---|
| 437 | |
|---|
| 438 | // UCM ä³Î Á¤º¸ÀÇ Uid (Unique ID) |
|---|
| 439 | // |
|---|
| 440 | // »õ Tuning Policy¿¡´Â Uid¶ó´Â »õ id°ªÀ» »ç¿ëÇÑ´Ù. |
|---|
| 441 | // ´õÀÌ»ó Major/Minor/RF µ¥ÀÌÅÍ ½ÖÀÌ unique ÇÔÀ» º¸ÀåÇÒ ¼ö ¾ø°í, |
|---|
| 442 | // UCMÀÇ index °ªÀº UCM lockÀ» ÇÒ °æ¿ì¿¡¸¸ Àǹ̰¡ ÀÖÀ¸¹Ç·Î »õ·Î¿î ID°¡ ÇÊ¿äÇÏ°Ô µÈ °Í. |
|---|
| 443 | // |
|---|
| 444 | // Uid´Â 16bit unsigned °ªÀ¸·Î¼ ä³Î Á¤º¸°¡ ¸Þ¸ð¸®¿¡ Á¸ÀçÇÏ´Â µ¿¾ÈÀº ±× Á¤º¸¸¦ À¯ÀÏÇÏ°Ô |
|---|
| 445 | // ±¸º°ÇÒ ¼ö ÀÖµµ·Ï ºÎ¿©µÈ °ªÀÌ´Ù. |
|---|
| 446 | // NvRam¿¡´Â ÀúÀåµÇÁö ¾Ê´Â Èֹ߼º °ªÀÌ´Ù. NvRam¿¡¼ loadµÉ °æ¿ì¿¡´Â »õ·Ó°Ô ID°¡ ÇÒ´çµÈ´Ù. |
|---|
| 447 | // |
|---|
| 448 | // ÇöÀç ±¸Çö Á¤º¸: |
|---|
| 449 | // ÇöÀç ±¸ÇöÀº 1ºÎÅÍ ½ÃÀÛÇÏ´Â ÀÏ·Ã ¹øÈ£À̸ç, Áß°£¿¡ UCM µ¥ÀÌÅÍ ÀϺθ¦ »èÁ¦ÇÒ °æ¿ì ºó ¹øÈ£°¡ |
|---|
| 450 | // Á¸ÀçÇϱ⵵ ÇÑ´Ù. |
|---|
| 451 | // UINT16ÀÇ ÃÖ´ë°ªÀÎ 65535¸¦ ³Ñ¾î°¡¸é wrap-aroundµÇÁö¸¸ '0'ÀÇ °ªÀº »ç¿ëÇÏÁö ¾Ê°í ÀÖ´Ù. |
|---|
| 452 | // |
|---|
| 453 | |
|---|
| 454 | int DMW_MSC_Uid2Index(int uid); |
|---|
| 455 | int DMW_MSC_Index2Uid(int index); |
|---|
| 456 | // |
|---|
| 457 | // index <--> Uid°£ÀÇ º¯È¯¿¡ »ç¿ëÇÑ´Ù. µÎ µ¥ÀÌÅÍ´Â UCM¾È¿¡¼ 1:1·Î ¸ÅĪÀÌ µÇ¾î ÀÖ´Ù. |
|---|
| 458 | // ÇØ´ç ä³ÎÀÌ ¾øÀ¸¸é -1À» ¸®ÅÏÇÑ´Ù. |
|---|
| 459 | // |
|---|
| 460 | // ÁÖÀÇ1: |
|---|
| 461 | // UidÀÇ Å¸ÀÔÀº ¿ø·¡ UINT16À̳ª, -1°ú °°Àº ¿¡·¯¸¦ ¾Ë·ÁÁÖ±â À§ÇØ ¸®Åϰª 'int'°¡ »ç¿ëµÇ¾ú´Ù. |
|---|
| 462 | // |
|---|
| 463 | // ÁÖÀÇ2: |
|---|
| 464 | // index¸¦ ÇÔ¼öÀÎÀÚ³ª ¸®ÅϰªÀ¸·Î »ç¿ëÇÏ´Â ¸ðµç ÇÔ¼ö´Â caller¿¡¼ UcmÀ» lockÀ» °É¾î º¸È£ÇØ ÁÙ Çʿ䰡 ÀÖ´Ù. |
|---|
| 465 | // ÀÌ µÎ ÇÔ¼öµµ ¿¹¿Ü°¡ ¾Æ´Ô. |
|---|
| 466 | |
|---|
| 467 | |
|---|
| 468 | int DMW_MSC_GetMaxMinorNumber(int major); |
|---|
| 469 | // |
|---|
| 470 | // ÇØ´ç 'major' °ªÀ» ¸ÞÀÌÀú ¹øÈ£·Î °®´Â ä³Î Á¤º¸µé Áß¿¡¼ ÃÖ´ë minor°ªÀ» ã´Â´Ù. |
|---|
| 471 | // ÀÌ´Â PSI·ÎºÎÅÍ ÃßÃâµÈ ä³Î Á¤º¸¿¡ Major-Minor ½ºÅ¸ÀÏÀÇ Ã¤³Î ¹øÈ£ ¸í¸íÀ» Çϱâ À§ÇØ |
|---|
| 472 | // application¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Ù. |
|---|
| 473 | // |
|---|
| 474 | // ¿¹¸¦ µé¾î ÇöÀç major 9¸¦ °®´Â ä³Î Á¤º¸µé Áß, minor °ªÀÇ ÃÖ´ë°ªÀÌ 3À̶ó°í Çϸé |
|---|
| 475 | // applicaiton¿¡¼´Â PMT¿¡¼ ¾Ë¾Æ³½ ä³Î Á¤º¸ µÎ°³¸¦ 9-4, 9-5·Î ¸í¸íÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. |
|---|
| 476 | // |
|---|
| 477 | // PSI ä³Î Á¤º¸ÀÇ ¸í¸í¹ýÀº applicationÀÇ ÀÚÀ¯À̹ǷΠÀ§ÀÇ ¿¹´Â °Á¦»çÇ×ÀÌ ¾Æ´Ï´Ù. |
|---|
| 478 | // |
|---|
| 479 | |
|---|
| 480 | |
|---|
| 481 | |
|---|
| 482 | //-------------------------------- |
|---|
| 483 | // ä³Î up/down ÇÔ¼öµé. |
|---|
| 484 | // |
|---|
| 485 | |
|---|
| 486 | // format of CSF_Xxx |
|---|
| 487 | // |
|---|
| 488 | // 5 4 3 2 1 0 |
|---|
| 489 | // +-------------+--+--+--+--+-----+ |
|---|
| 490 | // | Res |IS|PF| MF | |
|---|
| 491 | // +-------------+--+--+--+--+-----+ |
|---|
| 492 | // |
|---|
| 493 | // MF: modulation filter |
|---|
| 494 | // 00 : all |
|---|
| 495 | // 01 : ATSC only |
|---|
| 496 | // 10 : NTSC only |
|---|
| 497 | // |
|---|
| 498 | // PF: PSI filter |
|---|
| 499 | // 0 : do not include channel info from PSI table |
|---|
| 500 | // 1 : all info including PSI |
|---|
| 501 | // |
|---|
| 502 | // IS: Ignore Surf Order |
|---|
| 503 | // 1 : ignore surf index value. |
|---|
| 504 | // |
|---|
| 505 | |
|---|
| 506 | #define CSF_Default 0 |
|---|
| 507 | |
|---|
| 508 | #define CSF_Mask_MF 3 |
|---|
| 509 | #define CSF_ATSC_Only 1 // search only ATSC channel. |
|---|
| 510 | #define CSF_NTSC_Only 2 // search only NTSC channel. |
|---|
| 511 | |
|---|
| 512 | #define CSF_Include_PSI 4 // include PSI channel as well as PSIP channel. |
|---|
| 513 | |
|---|
| 514 | #define CSF_IgnoreSurfOrder 8 // do not count on surf index number. just use zero/non-zero info. |
|---|
| 515 | // used in SurfUp/Down() API only. |
|---|
| 516 | |
|---|
| 517 | #define CSF_Include_Skipped 0x10 // include skipped (disabled) channel also. |
|---|
| 518 | |
|---|
| 519 | #define CSF_Include_Hidden 0x20 |
|---|
| 520 | // cafrii 050602 add |
|---|
| 521 | #define CSF_DontWrapAround 0x40 // do not wrap around if not found.. |
|---|
| 522 | // cafrii 050602 add |
|---|
| 523 | |
|---|
| 524 | #define CSF_Include_Disabled 0x80 // include disabled channel. by default, they are skipped. |
|---|
| 525 | |
|---|
| 526 | |
|---|
| 527 | int DMW_MSC_FindChannelMajorMinor(int major, int minor, int flag, int szBuf, int *uidBuf); |
|---|
| 528 | int DMW_MSC_FindChannelMajor(int major, int flag, int szBuf, int *uidBuf); |
|---|
| 529 | // |
|---|
| 530 | // ÇØ´ç major[¶Ç´Â minor]¿¡ ´ëÀÀÇÏ´Â(°°Àº °ªÀ» °®´Â) ä³Î Á¤º¸¸¦ ¸®ÅÏÇÑ´Ù. |
|---|
| 531 | // ÇÔ¼öÀÇ ¸®ÅϰªÀº ÀÏÄ¡Çϴ ä³Î Á¤º¸ÀÇ °¹¼ö. |
|---|
| 532 | // bIncludePsi´Â PSI·ÎºÎÅÍ ¾òÀº ä³Î Á¤º¸µµ °°ÀÌ |
|---|
| 533 | // ÀÏÄ¡ÇÏ´Â ¸ðµç ä³Î Á¤º¸¸¦ ¹ÞÀ»·Á¸é ÀÎÀÚ·Î uid ÀúÀå ¹öÆÛ¸¦ ³Ñ°ÜÁÖ¸é µÈ´Ù. |
|---|
| 534 | // ¹öÆÛ Å©±â´Â 'szBuf'À̸ç, ÀÌ ÀÌ»ó µ¥ÀÌÅͰ¡ ¸¹À» °æ¿ì truncateµÈ´Ù. |
|---|
| 535 | // ¸®ÅÏ °ª > szBuf À̸é truncate µÈ °æ¿ìÀ̹ǷΠ´Ù½Ã È£ÃâÇØ¼ Á¤È®ÇÑ Á¤º¸¸¦ ¾Ë¾Æ³»¾ß ÇÒ °ÍÀÌ´Ù. |
|---|
| 536 | |
|---|
| 537 | |
|---|
| 538 | int DMW_MSC_FindMajorUp(int uidCurrentOrMajor, int flag, int szBuf, int *uidBuf); |
|---|
| 539 | int DMW_MSC_FindMajorDown(int uidCurrentOrMajor, int flag, int szBuf, int *uidBuf); |
|---|
| 540 | |
|---|
| 541 | int DMW_MSC_FindMinorUp(int uidCurrentOrMajorMinor, int flag, int szBuf, int *uidBuf); |
|---|
| 542 | int DMW_MSC_FindMinorDown(int uidCurrentOrMajorMinor, int flag, int szBuf, int *uidBuf); |
|---|
| 543 | // |
|---|
| 544 | // uidStart¸¦ ±âÁØÀ¸·Î upper/lower channel Á¤º¸¸¦ ã´Â´Ù. |
|---|
| 545 | // (uidStart ÀÚü´Â Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù. ±×³É ½ÃÀÛÁ¡ÀÏ »ÓÀÓ) |
|---|
| 546 | // |
|---|
| 547 | // ¸®ÅϵǴ °á°ú ¿ª½Ã uid (¶Ç´Â uidÀÇ ¹öÆÛ)ÀÌ´Ù. |
|---|
| 548 | // MajorÀÇ °æ¿ì Çϳª°¡ ¾Æ´Ï¹Ç·Î º¹¼ö°³ÀÇ uid°¡ °Ë»öµÈ´Ù. |
|---|
| 549 | // ¸®ÅϰªÀ¸·Î °Ë»öµÈ uidÀÇ °¹¼ö¸¦ ³Ñ°ÜÁØ´Ù. |
|---|
| 550 | |
|---|
| 551 | |
|---|
| 552 | int DMW_MSC_FindRfUp(UINT16 rfCurrent, int flag, int szBuf, int *uidBuf); |
|---|
| 553 | int DMW_MSC_FindRfDown(UINT16 rfCurrent, int flag, int szBuf, int *uidBuf); |
|---|
| 554 | // |
|---|
| 555 | // rfCurrent¸¦ ±âÁØÀ¸·Î upper/lower RF "ä³Îµé"À» ã´Â´Ù. |
|---|
| 556 | // rfCurrentº¸´Ù Å©°Å³ª ÀÛÀº ä³ÎÀ» ã´Â´Ù. |
|---|
| 557 | // ¸®ÅϵǴ °á°ú ¿ª½Ã uid (¶Ç´Â uidÀÇ ¹öÆÛ)ÀÌ´Ù. |
|---|
| 558 | // ¸®ÅϰªÀ¸·Î °Ë»öµÈ uidÀÇ °¹¼ö¸¦ ³Ñ°ÜÁØ´Ù. |
|---|
| 559 | |
|---|
| 560 | |
|---|
| 561 | //----------------------------- |
|---|
| 562 | // surf ä³Î °ü·Ã.. 3/21 Ãß°¡ |
|---|
| 563 | // |
|---|
| 564 | // surf ä³ÎÀ̶õ UCMÀÇ SurfIndex°¡ non-zero °ªÀ» °¡Áö´Â ä³Î·Î¼ |
|---|
| 565 | // ÀÌ Ã¤³ÎµéÀº surf channel list¿¡ µî·ÏÀÌ µÇ¾î Àִ ä³ÎÀÌ´Ù. |
|---|
| 566 | // surf-up, surf-down ¸í·ÉÀ¸·Î surf ä³Î ¼ÇÎÀ» ÇÒ ¼ö ÀÖ´Ù. |
|---|
| 567 | // |
|---|
| 568 | // surf ä³ÎÀÇ µî·Ï ¹× ÇØÁ¦´Â |
|---|
| 569 | // DMW_CDB_SetSurfChannel()/DMW_CDB_ReleaseSurfChannel() ÇÔ¼ö¸¦ ÀÌ¿ëÇÑ´Ù. |
|---|
| 570 | // |
|---|
| 571 | |
|---|
| 572 | int DMW_MSC_FindUidFromSurfIndex(int surfIndex); // return uid. |
|---|
| 573 | // |
|---|
| 574 | // ¿øÇÏ´Â surf_index¸¦ °¡Áø active ä³ÎÀ» ã¾Æ¼ ±× Uid¸¦ µÇµ¹·ÁÁØ´Ù. |
|---|
| 575 | // |
|---|
| 576 | |
|---|
| 577 | |
|---|
| 578 | int DMW_MSC_Surf2Index(int surf); // surf --> index. require caller's UCM lock. |
|---|
| 579 | UINT16 DMW_MSC_FindSurfIndexFromUid(int uid); // don't require caller's umc lock. |
|---|
| 580 | |
|---|
| 581 | UINT16 DMW_MSC_FindMaxSurfIndex(int *returnUcmIndex); // return value: surfIndex |
|---|
| 582 | UINT16 DMW_MSC_FindMinSurfIndex(int *returnUcmIndex); // return value: surfIndex |
|---|
| 583 | // |
|---|
| 584 | // ¸¹Àº °æ¿ì¿¡ ÀÖ¾î¼ min surf index´Â ¾Æ¸¶µµ 1ÀÏ °ÍÀÌ´Ù. |
|---|
| 585 | // surf ä³ÎÀÌ Çϳªµµ ¹ß°ßµÇÁö ¾ÊÀ¸¸é 0À» ¸®ÅÏÇÑ´Ù. |
|---|
| 586 | |
|---|
| 587 | |
|---|
| 588 | int DMW_MSC_FindSurfUp(int uidCurrent, int flag); // return uid. |
|---|
| 589 | int DMW_MSC_FindSurfDown(int uidCurrent, int flag); // return uid. |
|---|
| 590 | // |
|---|
| 591 | // uidCurrent ´ÙÀ½ºÎÅÍ Ã£±â ½ÃÀÛÇÏ¿© °¡Àå °¡±î¿î upper/lower surf ä³ÎÀ» ã´Â´Ù. |
|---|
| 592 | // flag´Â CSF_IgnoreSurfOrder ¸¸ »ç¿ë °¡´ÉÇÏ´Ù. |
|---|
| 593 | // ÇöÀç uidCurrent°¡ invalidÀ̰ųª, uidCurrentÀÇ Ã¤³ÎÀÌ surf list¿¡ Àִ ä³ÎÀÌ |
|---|
| 594 | // ¾Æ´Ï¶ó¸é µ¿ÀÛÀº ¾Æ·¡ °æ¿ì¿¡ µû¶ó ³ª´²Áø´Ù. |
|---|
| 595 | // - CSF_IgnoreSurfOrder set ÀÎ °æ¿ì: |
|---|
| 596 | // find lowest index channel which is in surf list. (¾Æ¸¶µµ surfIndex == 1) |
|---|
| 597 | // - µðÆúÆ® ¼¼ÆÃÀÎ °æ¿ì: |
|---|
| 598 | // uidCurrentÀÇ Ã¤³Î·ÎºÎÅÍ °¡Àå ±Ùó¿¡ ÀÖ´Â (minor ±âÁØÀ¸·Î nearest) |
|---|
| 599 | // ä³ÎÀ» µÇµ¹·ÁÁØ´Ù. |
|---|
| 600 | // ¸ðµç °æ¿ì¿¡ inactive channelÀº °Ë»öÇÏÁö ¾Ê´Â´Ù. |
|---|
| 601 | |
|---|
| 602 | |
|---|
| 603 | |
|---|
| 604 | |
|---|
| 605 | |
|---|
| 606 | |
|---|
| 607 | //*************************************************************** |
|---|
| 608 | // |
|---|
| 609 | // 4.4.1-2 Tuning °ü·Ã APIs |
|---|
| 610 | // |
|---|
| 611 | // |
|---|
| 612 | |
|---|
| 613 | typedef DMC_FN_TUNE_COMPLETED ChannelTuneCallback; |
|---|
| 614 | |
|---|
| 615 | // |
|---|
| 616 | // ¸ðµç Tuning ÀÛ¾÷Àº ±Ã±ØÀûÀ¸·Î Dmc_Task¿¡¼ ÀÌ·ç¾îÁø´Ù. |
|---|
| 617 | // º°µµÀÇ Àü´ã ŽºÅ©·Î ±¸¼ºÇÔÀ¸·Î½á ¸®¼Ò½º »ç¿ëÀÇ Ãæµ¹À» ¹æÁöÇÒ ¼ö ÀÖ´Ù. (tuner¼³Á¤ µî) |
|---|
| 618 | // |
|---|
| 619 | |
|---|
| 620 | STATUS DMW_TUN_TuneChannelByUid(UINT16 uid, BOOL bSkipPrescanPids, |
|---|
| 621 | BOOL bWaitForCompletion, ChannelTuneCallback fn, UINT32 userparam); |
|---|
| 622 | // |
|---|
| 623 | // UID¸¦ ¹Þ¾Æ¼ Æ©´×À» ÇÑ´Ù. |
|---|
| 624 | // ¸ðµç ´Ù¸¥ ÇüÅÂÀÇ ¿ä±¸ (RF, Major-Minor, Up/Down µî..)´Â UidÀÇ ÇüÅ·Πº¯°æµÇ¾î |
|---|
| 625 | // ÀÌ ÇÔ¼öÀÇ ÀÎÀÚ¸¦ ÅëÇØ Àü´ÞµÈ´Ù. |
|---|
| 626 | // ÇÊ¿äÇÑ °æ¿ì M/WÀÇ ´Ù¸¥ helper ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. |
|---|
| 627 | // |
|---|
| 628 | // bWaitForCompletionÀÌ TRUEÀÏ °æ¿ì TuningÀÌ ¿ÏÀüÈ÷ ³¡³¯¶§±îÁö blockµÈ´Ù. |
|---|
| 629 | // FALSEÀ̸é Dmc_Task·Î command messge¸¦ Àü´Þ¸¸ ÇÏ°í ¹Ù·Î ¸®ÅϵȴÙ. |
|---|
| 630 | // |
|---|
| 631 | |
|---|
| 632 | STATUS DMW_TUN_TuneChannelByUidAndFlag(UINT16 uid, UINT32 flag, |
|---|
| 633 | BOOL bWaitCompletion, ChannelTuneCallback fn, UINT32 userparam); |
|---|
| 634 | // |
|---|
| 635 | // cafrii 041202 add |
|---|
| 636 | // more specific UidTune API |
|---|
| 637 | |
|---|
| 638 | |
|---|
| 639 | // ä³Î Æ©´×ÀÇ Smartness¿¡ °üÇÏ¿©: |
|---|
| 640 | // |
|---|
| 641 | // UCM¿¡´Â pre-scanned pids, Major-Minor, RF µîÀÇ ¸¹Àº Á¤º¸µéÀÌ Àִµ¥ |
|---|
| 642 | // Æ©´×À» ÇÏ´Â ÀýÂ÷´Â ¾Æ·¡¿Í °°´Ù. |
|---|
| 643 | // |
|---|
| 644 | // 1. pre-scan pid Á¤º¸ÀÇ video_pid ¶Ç´Â audio_pid°¡ non-zeroÀ̸é ÀÌ °ªÀ» ÀÌ¿ëÇÏ¿© ½Ãû. |
|---|
| 645 | // |
|---|
| 646 | // 2. 1)ÀÇ ¹æ¹ýÀÌ ½ÇÆÐÇÒ °æ¿ì¿¡´Â pre-scan pid°¡ À߸ø ¼öÁýµÇ¾ú°Å³ª out-of-dateÀÎ °æ¿ìÀÌ´Ù. |
|---|
| 647 | // À̶§´Â ±× ä³Î Á¤º¸ÀÇ ÇüÅ¿¡ µû¶ó ´ëÀÀÀÌ ´Þ¶óÁø´Ù. |
|---|
| 648 | // |
|---|
| 649 | // 2-A. VCT·ÎºÎÅÍ ¾ò¾îÁø ä³Î Á¤º¸¶ó¸é, VCT¸¦ ºÐ¼®ÇÏ¿© Major-Minor ¹øÈ£·Î ½ÃûÀ» ÇÑ´Ù. |
|---|
| 650 | // 2-B. PSI·ÎºÎÅÍ ¾ò¾îÁø ä³Î Á¤º¸¶ó¸é, PMTÀÇ Program number·Î ½ÃûÀ» ÇÑ´Ù. |
|---|
| 651 | // |
|---|
| 652 | // ä³Î Á¤º¸ ³»¿ë¿¡ µû¶ó À§ÀÇ µÎ ¹æ¹ýÁß ÇѰ¡Áö ¹æ¹ý¸¸ÀÌ ½ÃµµµÈ´Ù. |
|---|
| 653 | // ½ÇÆÐ ÇÒ °æ¿ì ´õ ÀÌ»óÀÇ Ã³¸®´Â ÇÏÁö ¾Ê´Â´Ù. |
|---|
| 654 | // |
|---|
| 655 | |
|---|
| 656 | |
|---|
| 657 | // Dmc_Task¿¡¼ ¹ß»ýÇÑ ¿¡·¯ °ªÀ» Application¿¡¼ ¾Ë·Á°í ÇÒ °æ¿ì¿¡´Â µÎ°¡Áö ¹æ¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. |
|---|
| 658 | // |
|---|
| 659 | // 1) APIÀÇ ¸®Åϰª. |
|---|
| 660 | // blocking call¿¡¼¸¸ °¡´ÉÇϸç, DMW_TUN_Xxx() ÇÔ¼öÀÇ ¸®Åϰª(STATUS)À» ÀÌ¿ëÇÏ¿© Á¦ÇÑÀûÀÎ |
|---|
| 661 | // Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Ù. |
|---|
| 662 | // 2) Application callback |
|---|
| 663 | // ¹Ì¸® µî·ÏÇÑ callback ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ¿© ¿©·¯°¡Áö Á¤º¸¸¦ ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù. (todo..) |
|---|
| 664 | // 3) Polled watch |
|---|
| 665 | // ¸¶Áö¸·À¸·Î callÇÑ ÇÔ¼ö°¡ ¼º°øÀûÀ¸·Î ¼öÇàµÇ¾ú´ÂÁö application¿¡¼ ÁÖ±âÀûÀ¸·Î üũÇÑ´Ù. (todo..) |
|---|
| 666 | // |
|---|
| 667 | |
|---|
| 668 | |
|---|
| 669 | |
|---|
| 670 | |
|---|
| 671 | |
|---|
| 672 | //*************************************************************** |
|---|
| 673 | // |
|---|
| 674 | // 4.4.2 Auto channel search API |
|---|
| 675 | // |
|---|
| 676 | // |
|---|
| 677 | |
|---|
| 678 | |
|---|
| 679 | typedef BOOL (*ChannelScanCancelCheckFn)(); |
|---|
| 680 | |
|---|
| 681 | |
|---|
| 682 | |
|---|
| 683 | // cafrii 061219 add |
|---|
| 684 | typedef enum |
|---|
| 685 | { |
|---|
| 686 | // ÀϹÝÀûÀÎ °æ¿ì¿¡´Â analog/digital ÃÑÇÕÇØ¼ Çѹø¿¡ ÁøÇàµÈ´Ù. |
|---|
| 687 | ScanOnePassStage, |
|---|
| 688 | |
|---|
| 689 | // Analog Separate scan flag¸¦ ÁöÁ¤ÇÏ¸é ¾Æ·¡ µÎ°¡Áö Stage·Î ÁøÇàµÈ´Ù. |
|---|
| 690 | ScanAnalogStage, |
|---|
| 691 | ScanDigitalStage, |
|---|
| 692 | |
|---|
| 693 | } ScanStage; |
|---|
| 694 | |
|---|
| 695 | #define ScanStageString(s) ( \ |
|---|
| 696 | (s)==ScanAnalogStage ? "Analog" : \ |
|---|
| 697 | (s)==ScanDigitalStage ? "Digital" : "All" ) |
|---|
| 698 | |
|---|
| 699 | |
|---|
| 700 | |
|---|
| 701 | // structure |
|---|
| 702 | // |
|---|
| 703 | |
|---|
| 704 | |
|---|
| 705 | typedef struct |
|---|
| 706 | { |
|---|
| 707 | int flag; // CBTF_XXX |
|---|
| 708 | |
|---|
| 709 | ScanStage stage; |
|---|
| 710 | |
|---|
| 711 | } ScanStartedCbParam; |
|---|
| 712 | |
|---|
| 713 | typedef struct |
|---|
| 714 | { |
|---|
| 715 | BOOL bStoppedByUser; |
|---|
| 716 | BOOL bUpdate; |
|---|
| 717 | |
|---|
| 718 | // param1: bStoppedByUser, TRUEÀ̸é StopScan() ¸í·É¿¡ ÀÇÇØ Áß´ÜµÈ °æ¿ìÀÓ. |
|---|
| 719 | // param2: bUpdate, |
|---|
| 720 | // TRUEÀ̸é StopScan(bUpdate==TRUE, ..)·Î È£ÃâµÇ¾úÀ½. |
|---|
| 721 | // bStoppedByUser°¡ TRUEÀ϶§¸¸ Àǹ̰¡ ÀÖÀ½. |
|---|
| 722 | |
|---|
| 723 | int flag; // CBTF_XXX |
|---|
| 724 | |
|---|
| 725 | ScanStage stage; |
|---|
| 726 | |
|---|
| 727 | } ScanCompleteCbParam; |
|---|
| 728 | |
|---|
| 729 | typedef struct |
|---|
| 730 | { |
|---|
| 731 | // input parameter; |
|---|
| 732 | // |
|---|
| 733 | int channel; // current RF channel number to check |
|---|
| 734 | //ModulationType demod; // modulation |
|---|
| 735 | |
|---|
| 736 | UINT32 flag; // scan flag: CBTF_XXX |
|---|
| 737 | |
|---|
| 738 | ChannelScanCancelCheckFn chkfn; // cancel check function |
|---|
| 739 | // application code should repeatedly check cancel calling this function. |
|---|
| 740 | // if this function returns TRUE (meaning autoscan is cancelled), |
|---|
| 741 | // then application should exit scan immediately |
|---|
| 742 | // with 'return_value' to 'statusCancelled' |
|---|
| 743 | |
|---|
| 744 | BOOL one_channel_scan; // true if this scan is quick scan (one channel scan) |
|---|
| 745 | |
|---|
| 746 | // output parameter; |
|---|
| 747 | // |
|---|
| 748 | BOOL locked; // TRUE if signal locked. |
|---|
| 749 | ModulationType mode; // detected modulation type. valid if 'locked' is TRUE |
|---|
| 750 | int strength; // signal strength |
|---|
| 751 | int freq_offset; // frequency offset detected in Hz unit |
|---|
| 752 | STATUS return_value; |
|---|
| 753 | |
|---|
| 754 | |
|---|
| 755 | } ScanTunerSetCbParam; |
|---|
| 756 | |
|---|
| 757 | |
|---|
| 758 | |
|---|
| 759 | typedef struct |
|---|
| 760 | { |
|---|
| 761 | int current_rf; |
|---|
| 762 | BOOL after_scan; // TRUE if this 'rf' is completed. |
|---|
| 763 | |
|---|
| 764 | int channel_idx; // ¸î¹øÂ° channelÀΰ¡? |
|---|
| 765 | int total_channel; |
|---|
| 766 | |
|---|
| 767 | ScanStage stage; |
|---|
| 768 | |
|---|
| 769 | // |
|---|
| 770 | // ÁøÇà »óȲ Á¤µµ |
|---|
| 771 | // (channel_idx+1) * 100 / total_channel |
|---|
| 772 | |
|---|
| 773 | } ScanProgressCbParam; |
|---|
| 774 | |
|---|
| 775 | // Note! |
|---|
| 776 | // ÀÌ event´Â 'rf' ½ÃÀÛÇϱâ Á÷Àü¿¡ Çѹø (after_scan = 0), |
|---|
| 777 | // Á¾·áÇÏ°í ³ª¼ Çѹø (after_scan = 1), ÀÌ·¸°Ô µÎ¹ø ºÒ¸°´Ù. |
|---|
| 778 | |
|---|
| 779 | |
|---|
| 780 | typedef struct |
|---|
| 781 | { |
|---|
| 782 | UCM_DB_T *ucm; |
|---|
| 783 | |
|---|
| 784 | BOOL (*fn_lookup_mj_mn)(int major, int minor); |
|---|
| 785 | BOOL (*fn_lookup_rf_pn)(int rf, int program_number); |
|---|
| 786 | // ... |
|---|
| 787 | |
|---|
| 788 | } ScanNewChannelCbParam; |
|---|
| 789 | |
|---|
| 790 | |
|---|
| 791 | typedef struct |
|---|
| 792 | { |
|---|
| 793 | STATUS status; |
|---|
| 794 | |
|---|
| 795 | int rf; |
|---|
| 796 | UINT32 flag; |
|---|
| 797 | |
|---|
| 798 | //UINT32 userparam; // cafrii 060804 no more used |
|---|
| 799 | |
|---|
| 800 | int nUid; |
|---|
| 801 | int *uidBuf; // ÀÌ buffer´Â event callback Á÷ÈÄ¿¡ freeµÉ °ÍÀ̹ǷΠÁÖÀÇ. |
|---|
| 802 | |
|---|
| 803 | } OneChannelScanCompleteParam; |
|---|
| 804 | |
|---|
| 805 | // |
|---|
| 806 | // Callback ÇÔ¼öÀÇ ÀÎÀÚ·Î Àü´ÞµÉ À̺¥Æ® ŸÀÔ°ú µ¿¹ÝµÇ´Â parameter Á¤ÀÇ. |
|---|
| 807 | // |
|---|
| 808 | typedef enum |
|---|
| 809 | { |
|---|
| 810 | evtScanStarted, |
|---|
| 811 | // ä³Î °Ë»ö ÀÛ¾÷ÀÌ ½ÃÀ۵ǾúÀ½. |
|---|
| 812 | // param1: ScanStartedCbParam * |
|---|
| 813 | // param2: NULL |
|---|
| 814 | |
|---|
| 815 | evtScanComplete, |
|---|
| 816 | // ä³Î °Ë»öÀÌ ¸ðµÎ ³¡³µÀ½. |
|---|
| 817 | // UCM »ý¼º ÀÛ¾÷µµ ¸ðµÎ ¿Ï·á µÇ¾ú±â ¶§¹®¿¡ ÀÌÈÄ application¿¡¼ |
|---|
| 818 | // UCM µ¥ÀÌÅ͸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. |
|---|
| 819 | // param1: ScanCompleteCbParam * |
|---|
| 820 | |
|---|
| 821 | evtScanTunerSet, |
|---|
| 822 | // param1: ScanTunerSetCbParam * |
|---|
| 823 | |
|---|
| 824 | evtNewChannel, |
|---|
| 825 | // »õ·Î¿î ä³ÎÀÌ ¹ß°ßµÇ¾úÀ½. |
|---|
| 826 | // param1: ScanNewChannelCbParam * |
|---|
| 827 | |
|---|
| 828 | evtOnProgress, |
|---|
| 829 | // ä³Î °Ë»ö ÁøÃ´ »óȲ. »óÅ ÁøÇà ±×·¡ÇÁ¸¦ Ç¥½ÃÇϱâ À§Çؼ »ç¿ëÇÑ´Ù. |
|---|
| 830 | // param1: ScanProgressCbParam * |
|---|
| 831 | |
|---|
| 832 | //evtError, |
|---|
| 833 | // ¿¡·¯°¡ ¹ß»ýÇÏ¿´À½. |
|---|
| 834 | // param1: ¿¡·¯ Á¤º¸.. ¿¡·¯ Á¾·ù¸¦ ¼³¸íÇÏ´Â ½ºÆ®¸µ. |
|---|
| 835 | // ex) "out of memory for MCM. some channel info will be dropped" |
|---|
| 836 | |
|---|
| 837 | //evtOneChannelComplete, // cafrii 060804 delete |
|---|
| 838 | // scan one channel ÇÔ¼ö¸¦ »ç¿ëÇÒ ¶§¿¡¸¸ Àü´ÞµÇ´Â À̺¥Æ®. |
|---|
| 839 | // param: OneChannelScanCompleteParam* |
|---|
| 840 | |
|---|
| 841 | |
|---|
| 842 | } ChannelScanEventType; |
|---|
| 843 | |
|---|
| 844 | |
|---|
| 845 | typedef STATUS (*ChannelScanCallback) |
|---|
| 846 | (ChannelScanEventType evt, UINT32 param); |
|---|
| 847 | // Äݹé ÇÔ¼öÀÇ prototype. |
|---|
| 848 | |
|---|
| 849 | |
|---|
| 850 | |
|---|
| 851 | typedef struct SparseChannelMap_t |
|---|
| 852 | { |
|---|
| 853 | int num_seg; |
|---|
| 854 | |
|---|
| 855 | struct // describe channel from 'rf_start' to 'rf_start' + 'rf_num' - 1 |
|---|
| 856 | { |
|---|
| 857 | int ch_start; |
|---|
| 858 | int ch_num; |
|---|
| 859 | |
|---|
| 860 | } seg[10]; |
|---|
| 861 | |
|---|
| 862 | } ChannelScanSparseMap; |
|---|
| 863 | |
|---|
| 864 | |
|---|
| 865 | |
|---|
| 866 | |
|---|
| 867 | //----------------------------------------------------------------------- |
|---|
| 868 | // Channel Broadcast Type Flag definition. |
|---|
| 869 | // this flag is used as an argument of StartScan function. |
|---|
| 870 | |
|---|
| 871 | |
|---|
| 872 | #define CBTF_ChannelTypeMask 0x0001 |
|---|
| 873 | |
|---|
| 874 | #define CBTF_Air 0x0000 |
|---|
| 875 | #define CBTF_Cable 0x0001 |
|---|
| 876 | // Only one of above two flag option should be selected. |
|---|
| 877 | // use of (CBTF_Air | CBTF_QAM) is illegal. |
|---|
| 878 | // NOTE! |
|---|
| 879 | // UpdateMode (DMW_CDB_UpdateDB) ¿¡¼´Â ÀÌ Ç÷¡±×´Â »ç¿ëµÇÁö ¾Ê´Â´Ù. |
|---|
| 880 | // |
|---|
| 881 | |
|---|
| 882 | #define CBTF_NTSC 0x0002 // NTSC |
|---|
| 883 | #define CBTF_8VSB 0x0004 // ATSC 8VSB |
|---|
| 884 | #define CBTF_QAM 0x0008 // ATSC QAM (64, 256 cannot be distinguished.) |
|---|
| 885 | // °Ë»öÇÒ Modulation Mode¸¦ ÁöÁ¤ÇÑ´Ù. |
|---|
| 886 | // Ç÷§Æû¿¡ µû¶ó Áö¿øµÇÁö ¾Ê´Â ¸ðµå°¡ ÀÖ°ÚÀ¸³ª MW API¿¡¼ üũÇÏÁö´Â ¾Ê´Â´Ù. |
|---|
| 887 | |
|---|
| 888 | #define CBTF_Ext 0x0010 // extended channel Air: 69 -> 83, Cable: 125 -> 130 |
|---|
| 889 | // Start ScanÀ» ÇÏ¸é¼ ½ÃÀÛ/³¡ ä³Î ¹øÈ£¸¦ ÁöÁ¤Çϵµ·Ï ÇÑ »õ·Î¿î API¸¦ »ç¿ëÇϸé |
|---|
| 890 | // ÀÌ flag´Â ÇÊ¿äÇÏÁö ¾Ê´Ù. |
|---|
| 891 | // ´õ ÀÌ»ó Áö¿øÇÏÁö ¾Ê´Â´Ù. |
|---|
| 892 | |
|---|
| 893 | #define CBTF_ForcePSI 0x0020 // force scan using PSI as well as VCT. |
|---|
| 894 | // VCTÀÇ À¯¹«¿Í »ó°ü¾øÀÌ PSI ä³ÎÀ» °Ë»öÇÏ¿© Á¤º¸¸¦ ¸ðÀº´Ù. |
|---|
| 895 | |
|---|
| 896 | #define CBTF_IgnoreNtscInVct 0x0040 |
|---|
| 897 | // VCT¾ÈÀÇ analog ä³Î Á¤º¸¸¦ ¹«½ÃÇÑ´Ù. |
|---|
| 898 | // Digital Only Moduel/STB¿¡¼´Â ²À ¼¼ÆÃÇØ¼ callÇØ¾ß ÇÑ´Ù. |
|---|
| 899 | // ¾Æ´Ï¸é AutoscanÀÌ Á¾·áµÈ ÈÄ¿¡ Analog ä³Î Á¤º¸¸¦ »èÁ¦ÇØ¾ß ÇÑ´Ù. |
|---|
| 900 | |
|---|
| 901 | //#define CBTF_IgnoreRemoteChannelInVct 0x0080 |
|---|
| 902 | // VCT¾ÈÀÇ remote ä³Î Á¤º¸¸¦ ¹«½ÃÇÑ´Ù. |
|---|
| 903 | // DMW_CDB_UpdateDB ¿¡¼´Â MW API³»¿¡¼ ÀÌ Ç÷¡±×¸¦ ÀÚµ¿ÀûÀ¸·Î ¼¼ÆÃÇÑ´Ù. |
|---|
| 904 | // ÀÌ API´Â ÇöÀç ½Ãû ä³Î¸¸ updateÇÏ´Â °ÍÀ̹ǷΠ´Ù¸¥ RF ä³ÎÀÇ link Á¤º¸´Â |
|---|
| 905 | // ÂüÁ¶ÇÏ¸é ¾ÈµÇ±â ¶§¹®ÀÌ´Ù. |
|---|
| 906 | |
|---|
| 907 | #define CBTF_EnableNewChannelInUpdateMode 0x0100 |
|---|
| 908 | // UpdateMode (DMW_CDB_UpdateDB)¿¡¼¸¸ »ç¿ëµÇ´Â Ç÷¡±× |
|---|
| 909 | // »õ·Î ¹ß°ßµÈ ä³ÎÀº ¸ðµÎ Enable ½ÃŲ´Ù. (skipped FALSE) |
|---|
| 910 | // ±âÁ¸ Á¤º¸¿¡ overwriteµÇ´Â ä³ÎÀº ±×´ë·Î µÐ´Ù. |
|---|
| 911 | |
|---|
| 912 | //#define CBTF_QuerySignalInfo 0x0200 |
|---|
| 913 | // JVC ¸ðµâó·³ ¸Å ä³Î/modulation ¸¶´Ù signal strength µîÀÇ Á¤º¸¸¦ |
|---|
| 914 | // ¾Ë°í ½ÍÀ»¶§ ON. |
|---|
| 915 | // evtSignalInfo À̺¥Æ®°¡ ¹ß»ýµÈ´Ù. |
|---|
| 916 | // cafrii 060616 |
|---|
| 917 | // ÀÌ flag´Â ´õÀÌ»ó Áö¿øÇÏÁö ¾Ê°í ÀÖ¾úÀ½. »èÁ¦ÇÔ. |
|---|
| 918 | |
|---|
| 919 | #define CBTF_IgnoreTvctInCable 0x0400 |
|---|
| 920 | // ÄÉÀÌºí ¸ðµå¿¡¼ TVCT´Â ¿ÏÀüÈ÷ ¹«½ÃÇÑ´Ù. |
|---|
| 921 | |
|---|
| 922 | #define CBTF_CheckScrambleByVideoContext 0x0800 // cafrii 041130 change name |
|---|
| 923 | // Video Context »ý¼º ¿©ºÎ·Î scramble ¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù. |
|---|
| 924 | // |
|---|
| 925 | // scramble µÈ ä³ÎÀ» ¹Ù·Î ignore ÇÏ´Â °ÍÀÌ ¾Æ´Ï°í ÀÏ´Ü DB¿¡ ³ÖµÇ |
|---|
| 926 | // scrambed flag¸¦ set ÇÑ´Ù. |
|---|
| 927 | // ÀÌ·± ä³ÎÀÌ ÇÊ¿ä ¾ø´Â °æ¿ì¶ó¸é autoscan ÀÌ ³¡³ µÚ¿¡ »èÁ¦ÇÏ¸é µÈ´Ù. |
|---|
| 928 | |
|---|
| 929 | #define CBTF_IgnorePidsInfo 0x1000 |
|---|
| 930 | // PID °ªÀº ¼öÁýÇÏÁö ¾Ê´Â´Ù. Major-Minor Á¤º¸¸¸ ¼öÁýÇϵµ·Ï ÇÑ´Ù. |
|---|
| 931 | // |
|---|
| 932 | // cafrii 060710, not used any more |
|---|
| 933 | // pid´Â »ç¿ëÇÏÁö ¾Ê´õ¶óµµ, scramble check´Â ÇÏÁö ¾Ê´õ¶óµµ |
|---|
| 934 | // VCT recover ±â¹ýÀÌ Ç×»ó »ç¿ëµÇ¹Ç·Î |
|---|
| 935 | // À̸¦ À§Çؼ ¹Ýµå½Ã pid Á¤º¸´Â ÇÊ¿äÇÏ´Ù. |
|---|
| 936 | |
|---|
| 937 | //#define CBTF_AnalogCableSystemDetect 0x2000 |
|---|
| 938 | // |
|---|
| 939 | // Analog °Ë»öÀ» ¼öÇàÇÏ¸é¼ CableSystem À» ÀÚµ¿À¸·Î °áÁ¤ÇÑ´Ù. (STD/IRC/HRC) |
|---|
| 940 | // ä³Î °Ë»öÀÌ ¼öÇàµÇ´Â µ¿¾ÈÀº ÀáÁ¤ÀûÀ¸·Î STD ¸ðµå·Î ¼³Á¤ÀÌ µÇ¾î °Ë»öÀ» Çϰí, |
|---|
| 941 | // ä³Î °Ë»öÀÌ ´Ù Á¾·áµÇ¸é °Ë»öµÈ °á°ú¸¦ ¹ÙÅÁÀ¸·Î CableSystemÀ» °áÁ¤ÇÏ°Ô µÈ´Ù. |
|---|
| 942 | // À̶§ HRC³ª IRC·Î °áÁ¤ÀÌ µÇ¸é ¸ðµç ä³Î ¸ÊµéÀÇ frequency offsetµµ ¸ðµÎ ÀÚµ¿À¸·Î Á¶ÀýµÈ´Ù. |
|---|
| 943 | // |
|---|
| 944 | // À¯ÀÇ »çÇ× |
|---|
| 945 | // |
|---|
| 946 | // * Cable ¸ðµå¿¡¼¸¸ »ç¿ë °¡´ÉÇÏ´Ù. (CBTF_Cable only) |
|---|
| 947 | // * ¾Æ³¯·Î±× (NTSC) ¸¸ ´Üµ¶À¸·Î »ç¿ëÇØ¾ß ÇÑ´Ù. (CBTF_NTSC | CBTF_8VSB ÀÌ·± ½ÄÀ¸·Î »ç¿ë ºÒ°¡) |
|---|
| 948 | // * ¹Ýµå½Ã ChannelDB¸¦ ¸ðµÎ clear ÇÑ »óÅ¿¡¼ AutoscanÀ» ½ÃÀÛÇØ¾ß ÇÑ´Ù. |
|---|
| 949 | // ±âÁ¸ÀÇ DB data°¡ ³²¾ÆÀÖÀº »óÅ¿¡¼ ½ÃÀÛÇÒ °æ¿ì Á¦´ë·Î µ¿ÀÛÇÔÀ» º¸ÀåÇÏÁö ¾Ê´Â´Ù. |
|---|
| 950 | // |
|---|
| 951 | |
|---|
| 952 | // cafrii 050718 delete, not used any more |
|---|
| 953 | //#define CBTF_DigitalCableSystemDetect 0x4000 // cafrii 050603 add |
|---|
| 954 | // |
|---|
| 955 | // Digital °Ë»öÀ» ¼öÇàÇÏ¸é¼ CableSystemÀ» °áÁ¤ÇÑ´Ù. |
|---|
| 956 | // ä³Î °Ë»öÀÌ ¼öÇàµÇ´Â µ¿¾ÈÀº ÀáÁ¤ÀûÀ¸·Î STD ¸ðµå·Î ¼³Á¤ÀÌ µÇ¾î °Ë»öÀ» Çϰí, |
|---|
| 957 | // ä³Î °Ë»öÀÌ ´Ù Á¾·áµÇ¸é °Ë»öµÈ °á°ú¸¦ ¹ÙÅÁÀ¸·Î CableSystemÀ» °áÁ¤ÇÏ°Ô µÈ´Ù. |
|---|
| 958 | // À̶§ HRC³ª IRC·Î °áÁ¤ÀÌ µÇ¸é ¸ðµç ä³Î ¸ÊµéÀÇ frequency offsetµµ ¸ðµÎ ÀÚµ¿À¸·Î Á¶ÀýµÈ´Ù. |
|---|
| 959 | // |
|---|
| 960 | // À¯ÀÇ »çÇ× |
|---|
| 961 | // |
|---|
| 962 | // * Cable ¸ðµå¿¡¼¸¸ »ç¿ë °¡´ÉÇÏ´Ù. (CBTF_Cable only) |
|---|
| 963 | // * Digital¸¸ ´Üµ¶À¸·Î »ç¿ëÇØ¾ß ÇÑ´Ù. (CBTF_NTSC | CBTF_QAM ÀÌ·± ½ÄÀ¸·Î »ç¿ë ºÒ°¡) |
|---|
| 964 | // * ¹Ýµå½Ã ChannelDB¸¦ ¸ðµÎ clear ÇÑ »óÅ¿¡¼ AutoscanÀ» ½ÃÀÛÇØ¾ß ÇÑ´Ù. |
|---|
| 965 | // ±âÁ¸ÀÇ DB data°¡ ³²¾ÆÀÖÀº »óÅ¿¡¼ ½ÃÀÛÇÒ °æ¿ì Á¦´ë·Î µ¿ÀÛÇÔÀ» º¸ÀåÇÏÁö ¾Ê´Â´Ù. |
|---|
| 966 | // |
|---|
| 967 | // ÀÌ Ç÷¡±×¸¦ »ç¿ëÇϸé CBTF_8VSB ¿Í CBTF_QAMÀÌ ±âº»À¸·Î ¼³Á¤µÈ °Í ó·³ µ¿ÀÛÇÑ´Ù. |
|---|
| 968 | // |
|---|
| 969 | |
|---|
| 970 | |
|---|
| 971 | // cafrii 050721 add |
|---|
| 972 | #define CBTF_DontSelectMaxChannel 0x8000 |
|---|
| 973 | // |
|---|
| 974 | // Set µÇ¸é Autoscan ¿Ï·á ÈÄ MCMÀ» UCMÀ¸·Î º¯È¯ÇÒ ¶§ |
|---|
| 975 | // ´ëÇ¥ ä³Î ¼±ÅÃÀ» ÇÏÁö ¾Ê´Â´Ù. |
|---|
| 976 | // |
|---|
| 977 | |
|---|
| 978 | // cafrii 050802 add |
|---|
| 979 | //#define CBTF_IgnoreVctWithoutPid 0x10000 |
|---|
| 980 | // |
|---|
| 981 | // SLDÀÇ PID Á¤º¸°¡ ¿Ïº®ÇÏÁö ¾ÊÀº VCT Å×À̺íÀº ¹«½ÃÇÑ´Ù. |
|---|
| 982 | // |
|---|
| 983 | |
|---|
| 984 | #define CBTF_PsiOnlyMode 0x10000 |
|---|
| 985 | // cafrii 050902 |
|---|
| 986 | // ÀÌ flag°¡ Set µÇ¸é autoscan ÇÒ ¶§¿¡ PSIP Á¤º¸¸¦ ÀüÇô »ç¿ëÇÏÁö ¾Ê°í |
|---|
| 987 | // ¿À·ÎÁö PSI Å×ÀÌºí¸¸À» »ç¿ëÇÑ´Ù. |
|---|
| 988 | // Major, Minor ¹øÈ£´Â RF.program_number °ªÀ» »ç¿ëÇÏ°Ô µÈ´Ù. |
|---|
| 989 | |
|---|
| 990 | // cafrii 060626 add |
|---|
| 991 | #define CBTF_SkipTunerSet 0x20000 |
|---|
| 992 | // |
|---|
| 993 | // ÀÌ flag°¡ set µÇ¸é tuner¼³Á¤Àº ÀüÇô ÇÏÁö ¾Ê°í |
|---|
| 994 | // ÇöÀç tuner ¼³Á¤µÈ »óÅ¿¡¼ Table ¼ö½Å °Ë»ö¸¸ ¼öÇàÇÑ´Ù. |
|---|
| 995 | // µû¶ó¼ ÀÌ flag´Â tuner°¡ ÀÌ¹Ì ¼³Á¤µÈ ÈÄ |
|---|
| 996 | // one channel scan ¸ðµå·Î¸¸ »ç¿ëÀÌ °¡´ÉÇÏ´Ù. |
|---|
| 997 | // |
|---|
| 998 | |
|---|
| 999 | // cafrii 061219 add |
|---|
| 1000 | #define CBTF_AnalogSeparateScan 0x40000 |
|---|
| 1001 | // |
|---|
| 1002 | // ÀÌ flag°¡ setµÇ¸é analog scanÀ» ¸ÕÀú ÁøÇàÇÑ ÈÄ |
|---|
| 1003 | // ³ªÁß¿¡ digital scanÀ» µû·Î ¼öÇà ÇÑ´Ù. |
|---|
| 1004 | // CBTF_NTSC °¡ »ç¿ëµÇ¾î¾ß Àǹ̰¡ ÀÖ´Ù. |
|---|
| 1005 | // |
|---|
| 1006 | |
|---|
| 1007 | |
|---|
| 1008 | #define CBTF_IncludeSpecialHidden 0x80000 |
|---|
| 1009 | // KBS Çâ K-ViewÀÇ ¿ä±¸»çÇ×À» ¸¸Á·½ÃŲ´Ù. |
|---|
| 1010 | // Hidden ä³Î Áß, ƯÁ¤ pid¸¦ °¡Áö´Â ä³ÎÀº hiddenÀ» Ǭ´Ù. |
|---|
| 1011 | |
|---|
| 1012 | #define CBTF_IgnoreScrambledChannel 0x100000 |
|---|
| 1013 | // scramble °É¸° ä³ÎµéÀº ¾Æ¿¹ ä³Î DB¿¡ Áý¾î³ÖÁö ¾Ê´Â´Ù. |
|---|
| 1014 | |
|---|
| 1015 | //----------------------------------------------------------------------- |
|---|
| 1016 | |
|---|
| 1017 | STATUS DMW_ASC_InitScan(void); |
|---|
| 1018 | // |
|---|
| 1019 | // ä³Î °Ë»ö ¸ðµâÀ» ÃʱâÈ ÇÑ´Ù. |
|---|
| 1020 | // |
|---|
| 1021 | |
|---|
| 1022 | STATUS DMW_ASC_StartScan(int flag, ChannelScanCallback fn, |
|---|
| 1023 | int chStart, int chEnd); |
|---|
| 1024 | |
|---|
| 1025 | STATUS DMW_ASC_StartScanEx(int flag, ChannelScanCallback fn, |
|---|
| 1026 | UINT8 *rfMap, int numRf); |
|---|
| 1027 | |
|---|
| 1028 | STATUS DMW_ASC_StartSparseScan(int flag, ChannelScanCallback fn, |
|---|
| 1029 | ChannelScanSparseMap *map); |
|---|
| 1030 | |
|---|
| 1031 | // |
|---|
| 1032 | // ÀÚµ¿ ä³Î °Ë»öÀ» ½ÃÀÛÇÑ´Ù. |
|---|
| 1033 | // 1) flag : °Ë»öÇϰíÀÚ Çϴ ȯ°æ µî °¢Á¾ ¼³Á¤... |
|---|
| 1034 | // 2) blind == TRUEÀ̸é ȸéÀ» º¸¸é¼ scanÇÑ´Ù. |
|---|
| 1035 | // ÀÌ ¸ðµå´Â µðÁöÅРä³ÎÀÇ °æ¿ì ¼Óµµ ¹®Á¦¶§¹®¿¡ °ÅÀÇ Çö½ÇÀûÀÌÁö ¸øÇÔ. |
|---|
| 1036 | // ¾Æ³¯·Î±× ä³ÎÀÇ °æ¿ì´Â °¡´ÉÇÒ °Í °°À½. |
|---|
| 1037 | // blind == FALSEÀ̸é scan ÀÛ¾÷ Áß¿¡´Â ȸéÀÌ blank·Î ¾Æ¹«°Íµµ º¸ÀÌÁö ¾Ê´Â´Ù. |
|---|
| 1038 | // 3) fn: Äݹé ÇÔ¼ö Æ÷ÀÎÅÍ. NULLÀÌ ¾Æ´Ï¾î¾ß ÇÔ. |
|---|
| 1039 | |
|---|
| 1040 | // ÀÌ ÇÔ¼öµéÀº ¸ðµÎ non-blocking ÇÔ¼öÀÌ´Ù. ÇÊ¿äÇÑ ÀÛ¾÷¸¸ ¼öÇàÇÏ°í ¹Ù·Î ¸®ÅÏÇÑ´Ù. |
|---|
| 1041 | // ½ÇÁ¦ scanning ÀÛ¾÷Àº ´Ù¸¥ ŽºÅ©¿¡¼ ÀÌ·ç¾îÁø´Ù. |
|---|
| 1042 | |
|---|
| 1043 | // ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇϱâ À§ÇÑ ¿©·¯°¡Áö Á¦¾à»çÇ×ÀÌ ÀÖ´Ù. |
|---|
| 1044 | // (¾Æ·¡ Application »ç¿ë ¿¹ ¼³¸í ÂüÁ¶) |
|---|
| 1045 | |
|---|
| 1046 | // °Ë»öµÈ ä³Î Á¤º¸´Â À̺¥Æ®¸¦ ÅëÇØ¼ applicationÀ¸·Î Àü´ÞµÈ´Ù. |
|---|
| 1047 | // (¾Æ·¡ À̺¥Æ®Àü´Þ±¸Á¶ ¼³¸í ÂüÁ¶) |
|---|
| 1048 | |
|---|
| 1049 | |
|---|
| 1050 | STATUS DMW_ASC_StopScan(BOOL bUpdate); // stop auto scan |
|---|
| 1051 | // |
|---|
| 1052 | // °Ë»ö ÀÛ¾÷ µµÁß¿¡ ä³Î °Ë»ö ÀÛ¾÷À» Á¾·áÇÑ´Ù. |
|---|
| 1053 | // |
|---|
| 1054 | // bUpdate°¡ TRUEÀ̸é ÀÌ ½ÃÁ¡±îÁö °Ë»öµÈ ä³Î Á¤º¸¸¦ ÀÌ¿ëÇÏ¿© UCMÀÌ updateµÈ´Ù. |
|---|
| 1055 | // Áö±Ý±îÁö °Ë»ö °á°ú¸¦ ¿ÏÀüÈ÷ cancelÇÏ·Á¸é FALSE ÁöÁ¤. |
|---|
| 1056 | // ChannelScanComplete À̺¥Æ®°¡ Àü´Þ µÇ°í ³ ÀÌÈÄ¿¡ ºÒ¸° StopScan()ÀÇ bUpdate´Â |
|---|
| 1057 | // ¹«½ÃµÈ´Ù. (ÀÌ¹Ì update°¡ µÈ ÀÌ ÈÄ¿¡ À̺¥Æ®°¡ Àü´ÞµÇ¹Ç·Î..) |
|---|
| 1058 | // |
|---|
| 1059 | |
|---|
| 1060 | |
|---|
| 1061 | STATUS DMW_ASC_ScanChannel(int rf, int flag, |
|---|
| 1062 | BOOL bWaitComplete, |
|---|
| 1063 | ChannelScanCallback eventcb, |
|---|
| 1064 | DMC_FN_COMPLETED pfnComplete, UINT32 userParam, |
|---|
| 1065 | BOOL bCancelPrevCmds); |
|---|
| 1066 | |
|---|
| 1067 | |
|---|
| 1068 | STATUS DMW_ASC_UpdateChannel(int rf, int flag, |
|---|
| 1069 | BOOL bWaitComplete, |
|---|
| 1070 | DMC_FN_COMPLETED pfnComplete, UINT32 userParam, |
|---|
| 1071 | BOOL bCancelPrevCmds); |
|---|
| 1072 | |
|---|
| 1073 | int DMW_ASC_ProgramNumberToMinor(UINT16 program_number); |
|---|
| 1074 | |
|---|
| 1075 | |
|---|
| 1076 | //------------------------ |
|---|
| 1077 | |
|---|
| 1078 | /* |
|---|
| 1079 | Âü°í) À̺¥Æ® Àü´Þ ±¸Á¶ |
|---|
| 1080 | Channel search µµÁß¿¡, °ü·ÃµÈ event message°¡ applicationÀ¸·Î Àü´ÞµÈ´Ù. |
|---|
| 1081 | Callback ÇÔ¼ö¸¦ ÀÌ¿ëÇÑ´Ù. |
|---|
| 1082 | callback ÇÔ¼ö Æ÷ÀÎÅÍ´Â start scan ÇÒ¶§ Àμö·Î Àü´ÞÇÑ´Ù. |
|---|
| 1083 | |
|---|
| 1084 | ApplicationÀº ÀÌ callback ÇÔ¼ö ³»¿¡¼ ÇÊ¿äÇÑ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ´Ù. |
|---|
| 1085 | ¿¹) eventNewChannel À̺¥Æ®°¡ ¿À¸é GUI¿¡ Àû´çÇÑ ¸Þ½ÃÁö Ç¥½Ã ¶Ç´Â Host¿¡ ¾Ë·ÁÁÜ. |
|---|
| 1086 | |
|---|
| 1087 | »ç¿ë¿¹) |
|---|
| 1088 | 1) ±âÁ¸ ä³Î Á¤º¸¸¦ ¸ðÁ¶¸® »èÁ¦Çϰí óÀ½ºÎÅÍ °Ë»öÇÏ´Â °æ¿ì. |
|---|
| 1089 | ¸ÕÀú DMW_CDB_ClearAll()À» È£ÃâÇÏ¿© UCMÀ» ÃʱâÈÇÑ´Ù. |
|---|
| 1090 | |
|---|
| 1091 | 2) ±âÁ¸ ä³Î Á¤º¸¸¦ À¯ÁöÇÑ »óÅ¿¡¼ º¯°æ»çÇ×À» °Ë»öÇÏ´Â °æ¿ì |
|---|
| 1092 | ±×³É auto scanÀ» ½ÃÀÛÇÑ´Ù. |
|---|
| 1093 | */ |
|---|
| 1094 | |
|---|
| 1095 | |
|---|
| 1096 | //*************************************************************** |
|---|
| 1097 | // |
|---|
| 1098 | // 5.3.1 Update Channel DB |
|---|
| 1099 | // |
|---|
| 1100 | // |
|---|
| 1101 | // |
|---|
| 1102 | // ÀÌ ¼½¼ÇÀÇ API ÇÔ¼ö´Â ¿ÀÁ÷ UCM¿¡ ´ëÇØ¼¸¸ µ¿ÀÛÇÑ´Ù. (¸Þ¸ð¸®»ó¿¡ Á¸ÀçÇÏ´Â ÀνºÅϽº) |
|---|
| 1103 | // |
|---|
| 1104 | // NvRam »óÀÇ µ¥ÀÌÅÍ¿¡´Â Àû¿ëÇÏÁö "¾Ê´Â´Ù". |
|---|
| 1105 | // ----- |
|---|
| 1106 | // NvRamÀÇ µ¥ÀÌÅÍ´Â Application¿¡¼ ¸í½ÃÀûÀΠȣÃâÀÌ ÀÖ´Â °æ¿ì¿¡¸¸ º¯°æµÈ´Ù. (see 5.3.2) |
|---|
| 1107 | // |
|---|
| 1108 | |
|---|
| 1109 | |
|---|
| 1110 | STATUS DMW_CDB_ClearAll(void); // initialize channel DB |
|---|
| 1111 | // UCMÀ» ´Ù Áö¿î´Ù. |
|---|
| 1112 | // NvRamÀº Áö¿ìÁö ¾Ê´Â´Ù. |
|---|
| 1113 | // NvRamÀÇ channel dB¸¦ Áö¿ì°í ½ÍÀ¸¸é ÀÌ ÇÔ¼ö È£Ãâ ÈÄ DMW_CDB_WriteUCM()À» È£ÃâÇÑ´Ù. |
|---|
| 1114 | // ±×·¯³ª UCM°ú NvRamÀÇ µ¿±âÈ Á¤Ã¥Àº °¢ product¸¶´Ù ´Ù¸£¹Ç·Î ¾Ë¾Æ¼ ÇÑ´Ù. |
|---|
| 1115 | // ¿¹: Àü¿ø off ÇÒ¶§¸¸ µ¿±âÈ, ¶Ç´Â ¸Å 1½Ã°£¸¶´Ù µ¿±âÈ µîµî.. |
|---|
| 1116 | |
|---|
| 1117 | STATUS DMW_CDB_UpdateChannel(xvctPtr_t vct, MPEG_PAT *pat, MPEG_PMT **pmtlist, |
|---|
| 1118 | int rf, int scan_flag, |
|---|
| 1119 | int *pnUid, int **puidBuf); |
|---|
| 1120 | // ÁÖ¾îÁø Å×À̺í Á¤º¸¸¦ ÀÌ¿ëÇÏ¿© ä³Î ¸ÊÀ» ±¸¼ºÇϰí UCM¿¡ Ãß°¡ÇÑ´Ù. |
|---|
| 1121 | // »õ·Ó°Ô Ãß°¡µÈ ä³ÎÀÇ uid buffer¸¦ ¸®ÅÏÇϹǷÎ, |
|---|
| 1122 | // caller´Â ÈÄ¼Ó Ã³¸® ÀÛ¾÷À» ÇÒ ¼ö ÀÖ´Ù. |
|---|
| 1123 | // |
|---|
| 1124 | // puidbuf´Â DHL_OS_Free¸¦ ÀÌ¿ëÇÏ¿© free µÇ¾î¾ß ÇÑ´Ù. |
|---|
| 1125 | |
|---|
| 1126 | int DMW_CDB_MakeNewUcm(int major, int minor, int rf, int vf, int st); |
|---|
| 1127 | // ÁÖ¾îÁø ÀÎÀÚ¸¦ ۰ªÀ¸·Î °®´Â »õ·Î¿î Ucm entry¸¦ »ý¼ºÇÑ´Ù. |
|---|
| 1128 | // ¸®ÅϰªÀº »õ·Î »ý¼ºµÈ Ucm entryÀÇ indexÀÌ´Ù. ÀÌ °ªÀ» »ç¿ëÇÏ·Á¸é ÀÌ ÇÔ¼ö call Àü¿¡ |
|---|
| 1129 | // UcmLockÀ» ÇØ¾ß ÇÑ´Ù. |
|---|
| 1130 | |
|---|
| 1131 | void *DMW_CDB_RegisterUcmDeleteHook(STATUS (*fn)(int idx)); |
|---|
| 1132 | // Channel Delete¸¦ ¼öÇàÇÒ ¶§ È£ÃâµÇ´Â hook functionÀ» µî·ÏÇÑ´Ù. |
|---|
| 1133 | // Ucm entry°¡ »èÁ¦µÉ¶§ ²À ¼öÇàÇØ¾ß ÇÏ´Â clean-up ·çƾÀÌ ÀÖÀ» °æ¿ì µî·ÏÇÏ¸é µÈ´Ù. |
|---|
| 1134 | // EPG DB ¿Í °°ÀÌ Ucm entry¿¡ system resource°¡ linkµÈ °æ¿ì °°ÀÌ »èÁ¦µÇµµ·Ï Çϱâ À§ÇØ »ç¿ëµÊ. |
|---|
| 1135 | // ¸®ÅϰªÀº previous hook functionÀ̹ǷΠÀ̸¦ ±â¾ïÇß´Ù°¡ |
|---|
| 1136 | // hook chain ³¡±îÁö Á¦´ë·Î callµÉ ¼ö ÀÖµµ·Ï °ü¸®ÇØ¾ß ÇÑ´Ù. |
|---|
| 1137 | |
|---|
| 1138 | STATUS DMW_CDB_DeleteUcmChannel(int index); |
|---|
| 1139 | // UCM index¸¦ ÁöÁ¤ÇÏ¿© ÇØ´ç ucm entry¸¦ »èÁ¦ÇÑ´Ù. |
|---|
| 1140 | // callerÃø¿¡¼ Ucm lockÀ» ÇØ¾ß ÇÑ´Ù. |
|---|
| 1141 | |
|---|
| 1142 | STATUS DMW_CDB_DeleteChanInfoUid(UINT16 uid); |
|---|
| 1143 | // ÇØ´ç uid °ªÀ» °¡Áö´Â ä³Î Á¤º¸¸¦ »èÁ¦ÇÑ´Ù. |
|---|
| 1144 | |
|---|
| 1145 | STATUS DMW_CDB_DeleteRFChanInfo(int RF_number); |
|---|
| 1146 | // ÇØ´ç RF °ªÀ» °¡Áö´Â ¸ðµç ä³ÎÀ» »èÁ¦ÇÑ´Ù. |
|---|
| 1147 | // Ãâó°¡ VCT/PSI ±¸ºÐÇÏÁö ¾Ê°í ´Ù »èÁ¦ÇÑ´Ù. |
|---|
| 1148 | |
|---|
| 1149 | STATUS DMW_CDB_DeleteMajorChanInfo(int major_number); |
|---|
| 1150 | STATUS DMW_CDB_DeleteMajorMinorChanInfo(int major, int minor); |
|---|
| 1151 | // ÇØ´ç ä³ÎÀ» »èÁ¦ÇÑ´Ù. |
|---|
| 1152 | // »èÁ¦µÇ´Â ´ë»óÀº VctFlag==1ÀΠä³Î¿¡¸¸ ÇØ´çÇÑ´Ù. |
|---|
| 1153 | // ±âŸ ´Ù¸¥ Çʵå´Â °ü°è¾ø´Ù. (inactive channelµµ »èÁ¦) |
|---|
| 1154 | |
|---|
| 1155 | STATUS DMW_CDB_DeleteAllAnalogChannel(void); |
|---|
| 1156 | // UCM¿¡¼ analog ä³Î Á¤º¸¸¦ ¸ðµÎ »èÁ¦ÇÑ´Ù. |
|---|
| 1157 | // digital only stb¿¡¼ À¯¿ëÇÑ ÇÔ¼ö. |
|---|
| 1158 | |
|---|
| 1159 | void DMW_CDB_DeleteDisabledChannel(void); |
|---|
| 1160 | // disabled flag set µÈ ä³Î¸¸ ¸ðµÎ »èÁ¦. |
|---|
| 1161 | |
|---|
| 1162 | STATUS DMW_CDB_SetFavChannel(int index); |
|---|
| 1163 | // set a channel as active channel |
|---|
| 1164 | STATUS DMW_CDB_ReleaseFavChannel(int index); |
|---|
| 1165 | // set a channel as inactive channel |
|---|
| 1166 | // |
|---|
| 1167 | // UCM¿¡ ÀÖ´Â channel list Áß¿¡¼ ÀϺθ¦ ¼±ÅÃÇÏ¿© Favorite channel list¸¦ ¸¸µç´Ù. |
|---|
| 1168 | // channel Up/Down Ű·Î ä³Î º¯°æÀ» ÇÒ ¼ö Àִ ä³Î ¸®½ºÆ®ÀÌ´Ù. |
|---|
| 1169 | // UCMÀÇ skip field¸¦ ÀÌ¿ëÇÏ¿© ±¸ºÐÇÑ´Ù. skipÀÌ FALSEÀ̸é FavList¿¡ Æ÷ÇÔµÈ °ÍÀÌ´Ù. |
|---|
| 1170 | // |
|---|
| 1171 | |
|---|
| 1172 | STATUS DMW_CDB_SetSurfChannel(int index, int prev_index); |
|---|
| 1173 | // insert a channel in Surf channel link |
|---|
| 1174 | STATUS DMW_CDB_ReleaseSurfChannel(int index); |
|---|
| 1175 | // delete a channel in Surf channel link |
|---|
| 1176 | // |
|---|
| 1177 | // Surf channel list (SCM)¸¦ ¸¸µç´Ù. |
|---|
| 1178 | // ÇÔ¼ö ÀÎÀÚ·Î »ç¿ëµÇ´Â index °ªµéÀº ¸ðµÎ UCM indexÀ̹ǷΠcallerÀÇ lockÀÌ ÇÊ¿äÇÑ ÇÔ¼öµéÀÌ´Ù. |
|---|
| 1179 | // |
|---|
| 1180 | // |
|---|
| 1181 | |
|---|
| 1182 | void DMW_CDB_InvalidateAllPidInfo(void); |
|---|
| 1183 | // cafrii 060630 add |
|---|
| 1184 | // prescan pid¸¦ ÀÌ¿ëÇÑ tuningÀ» ÇÏÁö ¸øÇϵµ·Ï |
|---|
| 1185 | // DB¿¡ ÀÖ´Â ¸ðµç pid Á¤º¸¸¦ invalidate½ÃŲ´Ù. |
|---|
| 1186 | |
|---|
| 1187 | void DMW_CDB_RegisterChannelUcmSymbols(void); |
|---|
| 1188 | |
|---|
| 1189 | |
|---|
| 1190 | |
|---|
| 1191 | |
|---|
| 1192 | //*************************************************************** |
|---|
| 1193 | // |
|---|
| 1194 | // Channel Specific Data Access API |
|---|
| 1195 | // |
|---|
| 1196 | // |
|---|
| 1197 | |
|---|
| 1198 | const char *CsdTagString(int tag); |
|---|
| 1199 | void DMW_CDB_PrintCsd(ChannelSpecificData *csd, int num_csd, int indent, int detailLevel); |
|---|
| 1200 | |
|---|
| 1201 | void DMW_CDB_DeleteUcmCsd(int idx); |
|---|
| 1202 | // ÇØ´ç indexÀÇ UCM entry¿¡ ¿¬°áµÈ csd record¸¦ »èÁ¦ÇÑ´Ù. |
|---|
| 1203 | void DMW_CDB_DeleteAllUcmCsd(void); |
|---|
| 1204 | // ¸ðµç csd ¸¦ »èÁ¦ÇÑ´Ù. |
|---|
| 1205 | |
|---|
| 1206 | STATUS DMW_CDB_DeleteCsd(ChannelSpecificData *csd, int num_csd); |
|---|
| 1207 | int DMW_CDB_DeleteCsdEntry(ChannelSpecificData *csd, int num_csd, int tag); |
|---|
| 1208 | |
|---|
| 1209 | ChannelSpecificData * DMW_CDB_DuplicateCsd(ChannelSpecificData *csd, int num_csd, int max_csd); |
|---|
| 1210 | |
|---|
| 1211 | STATUS DMW_CDB_UpdateCsd(ChannelSpecificData **pdst, int *pdst_num, int *pdst_max, |
|---|
| 1212 | ChannelSpecificData *src, int src_num); |
|---|
| 1213 | |
|---|
| 1214 | STATUS DMW_CDB_UpdateCsdEntry(ChannelSpecificData **pdst, int *pdst_num, int *pdst_max, |
|---|
| 1215 | int tag, int len, UINT8 *ptr); |
|---|
| 1216 | // ÇѰ³ÀÇ CSD entry¸¦ update ÇÏ´Â ÇÔ¼ö |
|---|
| 1217 | |
|---|
| 1218 | STATUS DMW_CDB_UpdateUcmCsdEntry(int rf, int source_id, int tag, int length, UINT8 *ptr); |
|---|
| 1219 | // DMW_CDB_UpdateCsdEntry ÀÇ ´Ù¸¥ parameter ¹öÀü |
|---|
| 1220 | |
|---|
| 1221 | |
|---|
| 1222 | //*************************************************************** |
|---|
| 1223 | // |
|---|
| 1224 | // 5.3.2 Read/Write Channel DB in NvRam |
|---|
| 1225 | // |
|---|
| 1226 | // |
|---|
| 1227 | |
|---|
| 1228 | // NvRamÀº Å©°Ô EEPROM (device_0)°ú Flash memory (device_1)·Î ³ª´©¾îÁ® ÀÖ´Ù. |
|---|
| 1229 | // Á¦Ç°¿¡ µû¶ó¼ Flash memoryÀÇ NvRam ¿ëµµ ºÎºÐÀÌ Á¸ÀçÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù. (eeprom only) |
|---|
| 1230 | // |
|---|
| 1231 | |
|---|
| 1232 | //------------------------------------- |
|---|
| 1233 | // Level 1 API. |
|---|
| 1234 | // HAL function ¹Ù·Î À§ÀÇ API. |
|---|
| 1235 | |
|---|
| 1236 | // NvRam Structure |
|---|
| 1237 | // |
|---|
| 1238 | // device 0 (0x0 ~ ) |
|---|
| 1239 | // +----------------------------+ |
|---|
| 1240 | // | | »ç¿ë°¡´ÉÇÑ ¿µ¿ª. |
|---|
| 1241 | // | ... | |
|---|
| 1242 | // | | |
|---|
| 1243 | // +----------------------------+ <-- DMW_CDB_GetNvRamAvailableSize(0) |
|---|
| 1244 | // |
|---|
| 1245 | // device 1 (0x80000000 ~ ) |
|---|
| 1246 | // +----------------------------+ |
|---|
| 1247 | // | ... | »ç¿ë°¡´ÉÇÑ ¿µ¿ª. |
|---|
| 1248 | // | | |
|---|
| 1249 | // +----------------------------+ <-- DMW_CDB_GetNvRamAvailableSize(1) |
|---|
| 1250 | |
|---|
| 1251 | |
|---|
| 1252 | // device 0: EEPROM |
|---|
| 1253 | // device 1: Flash |
|---|
| 1254 | // |
|---|
| 1255 | // Device 0: 0x0 ~ 0x7FFFFFFF |
|---|
| 1256 | // Device 1: 0x80000000 ~ 0xFFFFFFFF. Flash ¿µ¿ª (device_1)Àº addressÀÇ MSB°¡ 1. |
|---|
| 1257 | // |
|---|
| 1258 | |
|---|
| 1259 | STATUS DMW_CDB_InitNvRam(void); |
|---|
| 1260 | |
|---|
| 1261 | STATUS DMW_CDB_LowLevelFormatNvRam(void); |
|---|
| 1262 | // °øÀå ÃâÇÏÈÄ 1ȸ ½ÇÇàÇØÁֱ⸸ ÇÏ¸é µÈ´Ù. |
|---|
| 1263 | // ÇÁ·Î±×·¥ÀÌ ¾÷µ¥ÀÌÆ® µÉ °æ¿ì Çѹø ´õ Æ÷¸ËÇØÁà¾ß ¾ÈÀüÇÏ´Ù. |
|---|
| 1264 | // |
|---|
| 1265 | |
|---|
| 1266 | STATUS DMW_CDB_CheckNvRam(void); |
|---|
| 1267 | // NvRamÀÌ Á¦´ë·Î Æ÷¸ËÀÌ µÇ¾úÀ¸¸ç »ç¿ë °¡´ÉÇÑÁö üũÇÑ´Ù. |
|---|
| 1268 | |
|---|
| 1269 | |
|---|
| 1270 | UINT32 DMW_CDB_GetNvRamAvailableSize(int device); |
|---|
| 1271 | // °¢ ÀåÄ¡º° NvRamÀÇ »ç¿ë°¡´ÉÇÑ ¿µ¿ªÀÇ ¹ÙÀÌÆ® Å©±â¸¦ ¸®ÅÏÇÑ´Ù. |
|---|
| 1272 | // |
|---|
| 1273 | |
|---|
| 1274 | STATUS DMW_CDB_ReadNvRam(UINT32 address, UINT32 size, UINT8 *buf); |
|---|
| 1275 | STATUS DMW_CDB_WriteNvRam(UINT32 address, UINT32 size, UINT8 *buf); |
|---|
| 1276 | // application¿¡¼ È£Ãâ °¡´ÉÇÑ NvRam access API. |
|---|
| 1277 | |
|---|
| 1278 | |
|---|
| 1279 | |
|---|
| 1280 | //------------------------------------- |
|---|
| 1281 | // Level 3 API. |
|---|
| 1282 | // |
|---|
| 1283 | // Manages Ucm storing format and Raw DB. |
|---|
| 1284 | // |
|---|
| 1285 | // ¾Æ·¡ API´Â ¸ðµÎ NvRam¿¡ ÀúÀåµÈ UCMÁ¤º¸¸¦ ´ë»óÀ¸·Î ÇÑ´Ù. |
|---|
| 1286 | |
|---|
| 1287 | //extern const UINT8 gUcmStoringVersion; |
|---|
| 1288 | // see DMW_ChannelDB.c for ucm storing version. |
|---|
| 1289 | |
|---|
| 1290 | UINT32 DMW_CDB_GetUcmItemStoringSize(void); |
|---|
| 1291 | // UCM storing format ±¸Á¶¿¡¼ ÇÑ UCM itemÀÌ NvRam¿¡ ÀúÀåµÉ ¶§ Â÷ÁöÇÏ´Â Å©±â. |
|---|
| 1292 | // sizeof(UCM_DB_T)¿Í´Â ´Ù¸¦ ¼ö ÀÖ´Ù. |
|---|
| 1293 | // application¿¡¼ NvRam¿¡ µé¾î°¥ DB Å©±â °è»êÀ» ÇÒ ¶§¿¡´Â |
|---|
| 1294 | // ÀÌ ÇÔ¼öÀÇ ¸®ÅϰªÀ» »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. |
|---|
| 1295 | // |
|---|
| 1296 | // UCMÀº ¸Þ¸ð¸®¿¡ ÀÖ´Â »óÅ ±×´ë·Î writeÇÏÁö ¾Ê´Â´Ù´Â Á¡¿¡ À¯ÀÇÇÑ´Ù. |
|---|
| 1297 | |
|---|
| 1298 | |
|---|
| 1299 | |
|---|
| 1300 | //------------------------------------- |
|---|
| 1301 | // Level 4 API |
|---|
| 1302 | // |
|---|
| 1303 | // UCM Header ±¸Á¶¸¦ Áö¿øÇÏ´Â »õ·Î¿î UCM I/O API |
|---|
| 1304 | // |
|---|
| 1305 | STATUS DMW_CDB_InitUCM2(UINT32 *paddr, int n_db, BOOL bSyncNow); |
|---|
| 1306 | STATUS DMW_CDB_WriteUCM2(UINT32 address, int max_db_size, const char *description); // cafrii 041129 change |
|---|
| 1307 | STATUS DMW_CDB_ReadUCM2(UINT32 address); |
|---|
| 1308 | |
|---|
| 1309 | STATUS DMW_CDB_WriteRawDB2(UINT32 address, UINT8 *buf, int newsize); |
|---|
| 1310 | STATUS DMW_CDB_ReadRawDB2(UINT32 address, UINT8 *buf, int newsize); |
|---|
| 1311 | |
|---|
| 1312 | |
|---|
| 1313 | // Utility API |
|---|
| 1314 | // |
|---|
| 1315 | STATUS DMW_CDB_SyncNvRam(UINT32 address); |
|---|
| 1316 | |
|---|
| 1317 | UINT32 DMW_CDB_CalcCRC32(UINT32 crc_start, const UINT8 *data, UINT32 len); |
|---|
| 1318 | |
|---|
| 1319 | BOOL DMW_CDB_IsNvRamSyncWorking(void); // cafrii 060802 add |
|---|
| 1320 | void DMW_CDB_WaitForNvRamSyncDone(void); |
|---|
| 1321 | void DMW_CDB_InvalidateNvRamCache(void); |
|---|
| 1322 | |
|---|
| 1323 | |
|---|
| 1324 | // Debugging API |
|---|
| 1325 | // |
|---|
| 1326 | void DMW_CDB_RegisterChannelNvRamSymbols(void); |
|---|
| 1327 | |
|---|
| 1328 | |
|---|
| 1329 | |
|---|
| 1330 | |
|---|
| 1331 | |
|---|
| 1332 | //------------------------------------- |
|---|
| 1333 | // |
|---|
| 1334 | // CSD DB Access API |
|---|
| 1335 | // |
|---|
| 1336 | // |
|---|
| 1337 | // |
|---|
| 1338 | int DMW_CDB_FlattenCsd(ChannelSpecificData *csd, int num_csd, UINT8 *buf, int buf_limit); |
|---|
| 1339 | // WriteCSD¿¡¼ ³»ºÎÀûÀ¸·Î »ç¿ëÇÏ´Â ÇÔ¼ö |
|---|
| 1340 | |
|---|
| 1341 | |
|---|
| 1342 | STATUS DMW_CDB_InitCSD(UINT32 *pAddrList, int n_csd_db); |
|---|
| 1343 | STATUS DMW_CDB_WriteCSD(UINT32 db_start_address, int max_size); |
|---|
| 1344 | STATUS DMW_CDB_ReadCSD(UINT32 db_start_address, int max_size); |
|---|
| 1345 | // |
|---|
| 1346 | // ÁöÁ¤ÇÑ NvRam ¿µ¿ª (½ÃÀÛ ÁÖ¼Ò, ÃÖ´ë Å©±â) ¿¡ Àüü CSD ¸¦ ±â·ÏÇϰí ÀоîµéÀδÙ. |
|---|
| 1347 | // |
|---|
| 1348 | |
|---|
| 1349 | |
|---|
| 1350 | /* |
|---|
| 1351 | UCM DB Å©±â °è»ê µµ¿ò¸»: |
|---|
| 1352 | 16K : UCM entry ¾à 500°³ ºÐ·® (overhead°¡ ÀÖÀ¸¹Ç·Î Á¤È®ÇÑ ¼ýÀÚ´Â ¾à°£ ´Þ¶óÁú ¼ö ÀÖÀ½) |
|---|
| 1353 | 32K : UCM entry ¾à 1000°³ ºÐ·® |
|---|
| 1354 | |
|---|
| 1355 | CSD DB Å©±â °è»ê µµ¿ò¸»: |
|---|
| 1356 | 16K : ÇÑ UCM entry ´ç ÃÖ´ë CSD Å©±â¸¦ 100 À¸·Î Çϸé, 163°³ ä³ÎÀÇ CSD¸¦ ÀúÀå °¡´É |
|---|
| 1357 | Analog ä³ÎÀÇ °æ¿ì¿¡´Â CSD ´Â User Channel Name ¹Û¿¡ ¾øÀ½. |
|---|
| 1358 | |
|---|
| 1359 | ¸¸¾à User Channel Name ÀÌ ¾ø°í µðÁöÅРä³Î Áß ¾à Àý¹Ý Á¤µµ¸¸ CSD¸¦ °¡Áø´Ù°í °¡Á¤Çϸé |
|---|
| 1360 | µðÁöÅРä³Î ¾à 320°³, (¾Æ³¯·Î±× ä³Î °¹¼ö´Â µðÁöÅРä³Î °¹¼ö¿Í ºñ½ÁÇϹǷΠ¿ª½Ã 320°³) |
|---|
| 1361 | ÃÑ 640°³ ºÐ·®ÀÇ UCM entry ¿¡ ÇØ´çµÇ´Â Å©±â¶ó°í º¼¼ö ÀÖÀ½. |
|---|
| 1362 | |
|---|
| 1363 | POD UCM DBÀÇ °æ¿ì¿¡´Â Extended Channel Text °¡ ¾ø´Ù. |
|---|
| 1364 | */ |
|---|
| 1365 | |
|---|
| 1366 | |
|---|
| 1367 | |
|---|
| 1368 | |
|---|
| 1369 | |
|---|
| 1370 | |
|---|
| 1371 | |
|---|
| 1372 | // µ¶ÀÚÀûÀÎ Çü½ÄÀ¸·Î DB¸¦ °ü¸®Çϱâ À§ÇØ »ç¿ëÇÏ´Â ÇÔ¼ö. |
|---|
| 1373 | STATUS DMW_CDB_ReadRawDB(int dir_index, UINT8 *buf, int bufsize); |
|---|
| 1374 | STATUS DMW_CDB_WriteRawDB(int dir_index, UINT8 *buf, int newsize); |
|---|
| 1375 | |
|---|
| 1376 | |
|---|
| 1377 | |
|---|
| 1378 | /* |
|---|
| 1379 | $$$$ ¼³°è¹®¼·ÎºÎÅÍÀÇ º¯°æ»çÇ×: from 030117 |
|---|
| 1380 | |
|---|
| 1381 | 1. ¸ðµç APIÀÇ ¸¶Áö¸· ÀÎÀÚ·Î BOOL air °¡ Ãß°¡µÊ. |
|---|
| 1382 | air == TRUEÀ̸é Áö»óÆÄ, FALSE À̸é ÄÉÀ̺íÀÇ °æ¿ìÀÌ´Ù. |
|---|
| 1383 | 2. ReadXX ÇÔ¼öÀÇ ÀÎÀÚ¸¦ ¸ðµÎ pointer ÇüÀ¸·Î º¯°æÇÏ¿© °á°ú¸¦ ¸®ÅÏÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿´´Ù. |
|---|
| 1384 | (ReadShortNameÇÔ¼öÀÇ ÀÎÀÚ´Â Á¦¿ÜÇÔ.) |
|---|
| 1385 | ¹öÆÛ Æ÷ÀÎÅÍ´Â NULLÀÌ ¾Æ´Ï¾î¾ß ÇÑ´Ù. (NULL üũÇÏÁö ¾ÊÀ½) |
|---|
| 1386 | 3. »õ API Ãß°¡. |
|---|
| 1387 | DMW_CDB_GetNvRamAvailableSize(device) |
|---|
| 1388 | DMW_CDB_GetUcmItemStoringSize |
|---|
| 1389 | DMW_CDB_Read/WriteRawDB |
|---|
| 1390 | 4. Level1/2/3 API ºÐ¸®. Level 1 API Ãß°¡. |
|---|
| 1391 | UCM storing formatÀÌ UCM structure¿Í ´Ù¸§À» ¸íÈ®È÷ ÇÔ. |
|---|
| 1392 | |
|---|
| 1393 | */ |
|---|
| 1394 | |
|---|
| 1395 | |
|---|
| 1396 | /* |
|---|
| 1397 | Âü°í) |
|---|
| 1398 | ÀÌ °³°³ÀÇ ÇÔ¼öµéÀº »ç½Ç Ưº°È÷ »ç¿ëÇÒ °æ¿ì´Â ¾ø´Ù. |
|---|
| 1399 | ReadUCM(), WriteUCM()À» ´ëºÎºÐ »ç¿ëÇÏ¿© Àüü DB¸¦ load/save Çϵµ·Ï ÇÑ´Ù. |
|---|
| 1400 | |
|---|
| 1401 | ±×·¯³ª ´ÙÀ½°ú °°Àº ½Ã³ª¸®¿À°¡ ÀÖÀ» ¼ö ÀÖ´Ù. |
|---|
| 1402 | Áß°£¿¡ ä³Î Á¤º¸°¡ º¯°æµÇ¾ú´Ù¸é ¸Þ¸ð¸®¿¡ ÀÖ´Â UCM DB¸¦ ¼öÁ¤Çϰí NvRam¿¡ update¸¦ ÇØ¾ß Çϴµ¥, |
|---|
| 1403 | ÀÌ ¶§ Àüü ³»¿ëÀ» writeÇÏ·Á¸é ½Ã°£ÀÌ °É¸± °æ¿ì°¡ ÀÖÀ¸¹Ç·Î ÇÊµå ´ÜÀ§·Î updateÇÏ´Â°Ô ÇÊ¿äÇÏ´Ù. |
|---|
| 1404 | |
|---|
| 1405 | NvRamÀÇ ½Çü(EEPROM ¶Ç´Â Flash)¿¡ °üÇÑ Æ¯¼ºÀº application¿¡¼ ¾Ë¾Æ¼ ÁÖÀÇÇÏ¿© ÄÚµùÇØ¾ß ÇÑ´Ù. |
|---|
| 1406 | */ |
|---|
| 1407 | |
|---|
| 1408 | |
|---|
| 1409 | |
|---|
| 1410 | |
|---|
| 1411 | #ifdef __cplusplus |
|---|
| 1412 | } |
|---|
| 1413 | #endif |
|---|
| 1414 | |
|---|
| 1415 | |
|---|
| 1416 | #endif |
|---|
| 1417 | |
|---|
| 1418 | |
|---|
| 1419 | /******************************************************************** |
|---|
| 1420 | $Log: DMW_ChannelAPI.h,v $ |
|---|
| 1421 | |
|---|
| 1422 | 2.04 2004/03/15 CBTF_AnalogCableSystemDetect Ãß°¡ |
|---|
| 1423 | |
|---|
| 1424 | 2.03 2004/12/21 cafrii XDS °ü·Ã tag Ãß°¡ |
|---|
| 1425 | 2.02 2004/12/07 cafrii Cable System Detect °è¿ evnet msg Ãß°¡ |
|---|
| 1426 | 2.01 2004/12/02 cafrii DMW_TUN_TuneChannelByUidAndFlag Ãß°¡ |
|---|
| 1427 | |
|---|
| 1428 | 2.00 2004/11/29 cafrii |
|---|
| 1429 | WriteUCM2 ¿¡ max_db_size ÀÎÀÚ Ãß°¡ |
|---|
| 1430 | CSD µ¥ÀÌÅÍÀÇ NvRam I/O API Ãß°¡ |
|---|
| 1431 | UCM¿¡ scrambled flag Ãß°¡ |
|---|
| 1432 | CBTF_CheckScrambleByVideoContext Ç÷¡±× À̸§ º¯°æ (È¥¶õ¹æÁö) |
|---|
| 1433 | |
|---|
| 1434 | 041126 »ç¿ëÇÏÁö ¾Ê´Â °ªµé ¸ðµÎ »èÁ¦. |
|---|
| 1435 | CSD °ü·Ã data structure, API Ãß°¡ |
|---|
| 1436 | |
|---|
| 1437 | 041122 MMode_XX °ªµé »èÁ¦.. |
|---|
| 1438 | |
|---|
| 1439 | 040830 ChannelType/FreqStd, Freq.c °ü·Ã ÄÚµå Channel.h·Î À̵¿ |
|---|
| 1440 | |
|---|
| 1441 | 040611 FindMultiStandardRF Ãß°¡ |
|---|
| 1442 | 040607 #include DMW_EEPROM.h »èÁ¦ÇÔ (ÇÊ¿äÇÑ ¸ðµâ¿¡¼¸¸ ¼±ÅÃÀûÀ¸·Î include ÇØ¾ßÇÔ) |
|---|
| 1443 | |
|---|
| 1444 | Revision 1.10 ?? |
|---|
| 1445 | pEpgDB added |
|---|
| 1446 | New channel tuning policy applied. |
|---|
| 1447 | |
|---|
| 1448 | Revision 1.03 2003/3/4 cafrii |
|---|
| 1449 | DMW_MSC_FindUpper[Lower]Major() Ãß°¡. |
|---|
| 1450 | DMW_ASC_StopScan()¿¡¼ killTask ±â´É ¹«½ÃÇÔ. |
|---|
| 1451 | |
|---|
| 1452 | Revision 1.02 2003/02/17 cafrii |
|---|
| 1453 | FineTune type changed. |
|---|
| 1454 | some API added. |
|---|
| 1455 | |
|---|
| 1456 | Revision 1.01 2003/01/28 cafrii |
|---|
| 1457 | NvRam strategy, some prototype is changed. |
|---|
| 1458 | |
|---|
| 1459 | Revision 1.0 2003/01/13 cafrii |
|---|
| 1460 | Initial coding from ground, based on M/W API document |
|---|
| 1461 | |
|---|
| 1462 | ********************************************************************/ |
|---|
| 1463 | |
|---|