/** @file DHL_FE.h @brief FrontEnd (Tuner/Demodulator) functions implementation Copyright 2006~2010 Digital STREAM Technology, Inc. All Rights Reserved Release History: */ #ifndef __DHL_FE_H__ #define __DHL_FE_H__ #include "DHL_Types.h" #include "DHL_Config.h" #ifdef __cplusplus extern "C" { #endif #if COMMENT ____Overview____(){} #endif /** \file DHL_FE.h ----DHL_FE Çì´õÆÄÀÏ ³»¿ë ¼³¸í---- ======== ÁÖ¿ä Feature ======== º¹¼ö°³ÀÇ Æ©³Ê¸¦ Áö¿øÇÑ´Ù. -> Æ©³Ê ID Áö¿ø. ¸¹Àº APIµéÀÌ ÀÎÀÚ·Î Tuner ID¸¦ ÁöÁ¤ÇØ¾ß ÇÔ. ¼­·Î ¼º°ÝÀÌ ´Ù¸¥ Æ©³ÊµéÀ» Åõ¸íÇÏ°Ô Áö¿ø. -> °¢ Æ©³Ê º°·Î ¾î¶² ±â´ÉµîÀ» Áö¿øÇÏ´ÂÁö queryÇÏ´Â API Áö¿ø. ¿¹: Tuner_0 ´Â FAT, VSB, NTSC Áö¿ø Tuner_1 Àº FAT, VSB, QAM Áö¿ø. Tuner_2 ´Â FDC Áö¿ø.. ÀÌ API´Â »ç½Ç MW¿¡¼­ ÇÊ¿ä·Î ÇÏÁö´Â ¾ÊÀ¸¸ç, Application¿¡¼­´Â ƯÁ¤ platform¿¡ ¸Â°Ô ÀÌ¹Ì °áÁ¤µÇ¾î ÄÚµùÇÔ. Blocking API´Â ¾ø´Ù. lock µÉ ¶§ ±îÁö ±â´Ù¸®°Å³ª ÇÏ´Â ±â´ÉÀº »óÀ§ °èÃþ¿¡¼­ ´ã´ç. Hz Á֯ļö ¹æ½ÄÀ¸·ÎÀÇ Æ©´×¸¸À» °ø½ÄÀûÀ¸·Î Áö¿ø. ä³Î ¹øÈ£¸¦ ÀÌ¿ëÇÑ Æ©´×Àº HAL ¿¡¼­´Â °í·ÁÇÏÁö ¾Ê´Â´Ù. ´ë½Å ä³Î TableÀº Á¦°øÇϵµ·Ï ÇÏÀÚ. Ç¥ÁØÈ­´Â ÇÒ ¼ö ¾øÁö¸¸ ƯÁ¤ platform¿¡¼­ Á¦°øÇÏ´Â °¢Á¾ ±â´Éµé -> Generic Query, Generic Set API¸¦ Á¦°ø. ³ªÁß¿¡ º°µµ·Î °è¼Ó API°¡ Ãß°¡µÉ Çʿ䰡 ¾øµµ·Ï.. ======== API °øÅë »çÇ×µé ======== Tuner ID¸¦ ¿ä±¸ÇÏ´Â API¸¦ »ç¿ëÇÒ ¶§, À߸øµÈ ID¸¦ ÁöÁ¤ÇÏ´Â °æ¿ì¿¡´Â DHL_FAIL_INVALID_HANDLE ¸¦ ¸®ÅÏÇÑ´Ù. ÀûÀýÇÏÁö ¾ÊÀº »óÅ¿¡¼­ÀÇ API È£ÃâÀº DHL_FAIL_INVALID_STATE ¸¦ ¸®ÅÏÇÑ´Ù. ¿¹: Open ÇÏÁö ¾ÊÀº »óÅ¿¡¼­ Start µî.. ======== Naming conventions ======== µ¥ÀÌÅÍ Å¸ÀÔ prefix: tDHL_ API ÇÔ¼ö À̸§ prefix: DHL_FE_ */ #if COMMENT ____Types____(){} #endif /** Tuner ID 0 ºÎÅÍ ½ÃÀÛÇÏ´Â ID °ª. ÃÖ´ë °ªÀº DHL_CFG_NUM_TUNER-1. ´ëºÎºÐÀÇ API¿¡´Â ÀÌ Á¤º¸°¡ ù¹øÂ° ÀÎÀÚ·Î Àü´ÞµÈ´Ù. Âü°í - DHL_CFG_NUM_TUNER °ªÀº API ¿¡¼­ Á¤ÀÇÇÏÁö ¾ÊÀ¸¸ç - DHL_Config.h °°Àº global/local config ºÎºÐ¿¡¼­ Á¤ÀÇÇÑ´Ù. */ typedef UINT8 tDHL_TunerID; /** @brief Demodulation ¹æ½Ä enum. -# DHL_FE_Start ¿¡¼­ µ¿ÀÛ ÇÒ demod¸¦ ÁöÁ¤ÇÒ ¶§ »ç¿ëµÇ°Å³ª, -# DHL_FE_GetModFormat ¿¡¼­ ÇöÀç µ¿ÀÛ ÁßÀÎ demod °ªÀ» ¸®ÅÏÇÒ ¶§ »ç¿ëµÈ´Ù. Start ¿¡ »ç¿ë ºÒ°¡´ÉÇÑ Ç׸ñ, ¶Ç´Â GetModFormat¿¡¼­ »ç¿ë ºÒ°¡´ÉÇÑ Ç׸ñ µîÀÌ ±â¼úµÇ¾î ÀÖÀ¸´Ï ÂüÁ¶ÇÑ´Ù. */ typedef enum { eDHL_DEMOD_INVALID=-1, ///< À߸øµÈ ¸ðµå. eDHL_DEMOD_8VSB=1, ///< ATSC 8VSB ¸ðµå eDHL_DEMOD_64QAM, ///< ITU-T J.83 Annex B 64QAM eDHL_DEMOD_256QAM, ///< ITU-T J.83 Annex B 64QAM eDHL_DEMOD_QAM_AUTO, /*!< 64QAM ¶Ç´Â 256QAM ¸ðµå. QAM AUTO °ªÀº request API¿¡¼­´Â »ç¿ëÇÒ ¼ö ÀÖÀ¸³ª status API °á°ú·Î´Â »ç¿ëµÇ¸é ¾ÈµÈ´Ù. */ eDHL_DEMOD_AUTODETECT, /*!< ÀÚµ¿ °Ë»ö ¸ðµå. AUTODETECT °ªÀº request API¿¡¼­´Â »ç¿ëÇÒ ¼ö ÀÖÀ¸³ª status API °á°ú·Î´Â »ç¿ëµÇ¸é ¾ÈµÈ´Ù. */ eDHL_DEMOD_NTSC=10, /* cafrii ÀÌ ºÎºÐÀº ³íÀǰ¡ ´õ ÇÊ¿äÇÏ´Ù. BTSC Audio ±â´ÉÀ» DHL_FE ¿¡ ¾î¶°ÇÑ ÀÎÅÍÆäÀ̽º·Î Ãß°¡ÇØ¾ß ÇÒÁö.. */ eDHL_DEMOD_AUDIO_US_BTSC, eDHL_DEMOD_AUDIO_A2_KOREA, eDHL_DEMOD_AUDIO_RADIO_FM, eDHL_DEMOD_FDCA=20, /* SCTE 55-1/DVS 178, OOB Mode A, by Motorola/GI */ eDHL_DEMOD_FDCB, /* SCTE 55-2/DVS 167, OOB Mode B, based on DAVIC, used by SA, CISCO */ eDHL_DEMOD_MAX } tDHL_Demod; /** Spectrum ¹æ½Ä ?? */ typedef enum { eDHL_OOBSpectrum_Auto, eDHL_OOBSpectrum_NonInverted, eDHL_OOBSpectrum_Inverted } tDHL_OOBSpectrum; /** note: QPSK¿¡¼­ symbol rate´Â bitrate°ªÀÇ Àý¹ÝÀÌ´Ù. OC spec¿¡¼­´Â bitrate ´ÜÀ§·Î ÁöÁ¤µÇ¾î ÀÖ´Ù. */ typedef enum { eDHL_OOBSymbolRate_0772, /* 1,544 Kbps */ eDHL_OOBSymbolRate_1024, /* 2,048 Kbps */ eDHL_OOBSymbolRate_1544 /* 3,088 Kbps */ } tDHL_OOBSymbolRate; /** DHL_FE_Start() API ¿¡¼­ »ç¿ë µÇ´Â OOB ÀÇ ¼ÂÆÃ°ªÀ» °®´Â ±¸Á¶Ã¼. SCTE 55-1 or SCTE 55-2 ±Ô°Ý¿¡ ¸Â´Â °ªÀ» ´ëÀÔ. */ typedef struct { tDHL_Demod demod; ///< [out] Modulation °ªÀ» °¡Áü. union { /* SCTE 55-1 or SCTE 55-2 OOB tuning param. */ struct { tDHL_OOBSpectrum spectrum; ///< [out] Spectrum °ªÀ» °¡Áü. tDHL_OOBSymbolRate symbol_rate; ///< [out] Symbol_rate °ªÀ» °¡Áü. } scte_55; /* ±âŸ ´Ù¸¥ È®Àå tuning ¹æ½ÄÀ» Áö¿øÇϰíÀÚ ÇÏ´Â °æ¿ì ¾Æ·¡¿¡ Ãß°¡ÇÑ´Ù. */ } u; } tDHL_DemodExtSettings; /** @brief ½ÅÈ£ »óÅ ŸÀÔ. DHL_FE_GetSignalStatus ¿¡¼­ »ç¿ë. DHL_FE_GetSignalStatus ÇÔ¼ö¿¡¼­ Á¶È¸ Çϱ⸦ ¿øÇÏ´Â Á¤º¸ÀÇ Á¾·ù¸¦ ÁöÁ¤ÇÑ´Ù. */ typedef enum { /*--------------------------------- ¹Ýµå½Ã ±¸ÇöµÇ¾î¾ß ÇÏ´Â ºÎºÐ */ eDHL_SIGNAL_LOCK, ///< digital demod lock eDHL_SIGNAL_NTSC_LOCK, ///< NTSC ij¸®¾î or VSync lock. eDHL_SIGNAL_STRENGTH, /*!< Signal strength. OSD »ó¿¡ signal meter¸¦ Ç¥½ÃÇÒ ¶§ »ç¿ëµÈ´Ù. ¹Ýµå½Ã 0 ~ 100 »çÀÌÀÇ °ªÀ¸·Î Ç¥½ÃµÇ¾î¾ß ÇÑ´Ù. */ eDHL_SIGNAL_SNR, /*!< Signal to Noise ratio. ¿ø·¡ snr¿¡ 1000¹è¸¦ ÇÑ ¼öÄ¡ÀÌ´Ù. ½ÇÁ¦·Î OSD»ó¿¡ ÀÌ °ªÀ» Ç¥½ÃÇÏ´Â °÷Àº ¾øÀ¸¸ç, º¸Åë µð¹ö±× ¸ñÀûÀ¸·Î »ç¿ëµÈ´Ù. */ eDHL_SIGNAL_SER, /*!< Symbol error rate. signal »óŰ¡ ÁÁÁö ¾ÊÀ» °æ¿ì È­¸éÀ» mute½ÃŰ´Â ¸ð´ÏÅÍ¿¡¼­ »ç¿ë. ÃÖÁ¾ TS Ãâ·Â ´ÜÀÇ ¿¡·¯ Ä«¿îÆ® °ªÀ» ratio·Î Ç¥ÇöÇÑ °ªÀÌ´Ù. ¿¡·¯°¡ ¾øÀ¸¸é 0ÀÌ µÇ°í, ¿¡·¯°¡ ¸¹À» ¼ö·Ï °ªÀÌ Ä¿Áø´Ù. ¾î´À Á¤µµÀÇ °ª¿¡¼­ ½Ãû Áß´ÜÀ» ÇÒ °ÍÀÎÁö´Â pplication¿¡¼­ ½ÇÇèÀûÀ¸·Î ±¸ÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù. */ /*--------------------------------- ¿É¼ÇÀ¸·Î Á¦°øµÉ ¼ö ÀÖ´Â ºÎºÐ ÀÌ ºÎºÐÀº DHL API ¿¡ ÀÖÀ» ÀÌÀ¯°¡ ¾ø´Ù. ´Ù¸¥ ¹æ¹ýÀ¸·Î ÀÌ·± ±â´ÉÀ» Á¦°øÇÒ ¼ö ÀÖ´ÂÁö üũ ¿ä¸Á. */ eDHL_SIGNAL_SNR2, /* ¿ø·¡ snr¿¡ 1000¹è¸¦ ÇÑ ¼öÄ¡ÀÓ */ eDHL_SIGNAL_SER_1SEC, eDHL_SIGNAL_SER_10SEC, eDHL_SIGNAL_PER, eDHL_SIGNAL_BER, eDHL_SIGNAL_QUALITY, eDHL_SIGNAL_METER, eDHL_SIGNAL_NTSC_FREQ_DEVIATION, /* KHz ´ÜÀ§ÀÇ Á֯ļö deviation */ eDHL_SIGNAL_LOCK_PROGRESS /* 3114 direct control api Àü¿ë */ } tDHL_SignalStatus; /** ä³Î Æ©´× À̿ܿ¡ Tuner ³»ºÎ ¼³Á¤°ª º¯°æÀ» À§ÇÑ ¼³Á¤ type. */ typedef enum { eDHL_FECTL_CAP_VAL, eDHL_FECTL_AIR_CABLE, /* À̸§À» ´õ ±¸Ã¼ÀûÀ¸·Î º¯°æÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÔ. */ eDHL_FECTL_ATC_MODE /* CH. Search ¸ðµå(ä³Î Tune)¿Í Normal ¸ðµå(ä³Î Locked) À϶§ÀÇ ATC ¼³Á¤. */ } tDHL_FeControlType; /** GetDeviceInfoÀÇ eDHL_FE_DEV_CAPABILITY_1 ÀÇ °á°ú°ªÀ¸·Î Àü´ÞµÇ´Â capability¿¡ »ç¿ëµÇ´Â bit mask. »ç¿ë ¿¹: if (capbits & eDHL_TUCAP_VSB) printf("this tuner supports vsb\n"); */ typedef enum { eDHL_TUCAP_POWERDOWN = 0x1, /* tuner power down ±â´ÉÀ» Áö¿øÇÑ´Ù. */ eDHL_TUCAP_ANALOG = 0x2, eDHL_TUCAP_QAM = 0x4, /* eDHL_DEMOD_64QAM, eDHL_DEMOD_256QAM Æ©´×À» Áö¿øÇÑ´Ù. */ eDHL_TUCAP_VSB = 0x8, eDHL_TUCAP_SATELLITE = 0x10, eDHL_TUCAP_OOB = 0x20, eDHL_TUCAP_UPSTREAM = 0x40, eDHL_TUCAP_OFDM = 0x80, eDHL_TUCAP_QAMAUTO = 0x100, /* eDHL_DEMOD_QAMAUTO Æ©´×À» Áö¿øÇÑ´Ù. */ eDHL_TUCAP_CABLEAUTO = 0x200 /* eDHL_DEMOD_CABLEAUTO Æ©´×À» Áö¿øÇÑ´Ù. */ } tDHL_TunerCapBits; /** FE ¿¡¼­ °¡Á®¿Ã µð¹ÙÀ̽º Á¤º¸ type. */ typedef enum { eDHL_FE_DEV_VENDOR_NAME, // tuner vendor name // value: const char *name eDHL_FE_DEV_MODEL_NAME, // tuner model name // value: const char *name eDHL_FE_DEV_CAPABILITY_1 // tuner capability // value: UINT32 *pMask } tDHL_TunerDeviceInfo; /** ÀÌ °ªµéÀº DHL_FE_ChannelToFrequency ¿¡¼­¸¸ »ç¿ëµÈ´Ù. DHL_FE¿¡¼­ÀÇ Æ©´×Àº Á֯ļö °ªÀ» ÀÌ¿ëÇϹǷÎ, ´Ù¸¥ API¿¡¼­´Â ÀÌ °ªµéÀ» »ç¿ëÇÒ Çʿ䰡 ¾øÀ½. */ typedef enum { eDHL_FREQ_UNKNOWN=-1, eDHL_FREQ_AIR=0, // Áö»óÆÄ eDHL_FREQ_STD, // ÄÉÀÌºí ±âº» eDHL_FREQ_IRC, // ÄÉÀ̺í IRC standard eDHL_FREQ_HRC, // ÄÉÀ̺í HRC standard eDHL_FREQ_MAX } tDHL_FreqStd; #if COMMENT ____Defines____(){} #endif /** ¸Þ¼¼Áö Ãâ·ÂÀ» À§ÇÑ °¢ »óź° String °ª Á¤ÀÇ. */ #define FE_SIGNAL_STATUS_STR(t) ( \ (t)==eDHL_SIGNAL_LOCK ? "Lock" : \ (t)==eDHL_SIGNAL_NTSC_LOCK ? "NtscLock" : \ (t)==eDHL_SIGNAL_STRENGTH ? "Strength" : \ (t)==eDHL_SIGNAL_SNR ? "Snr" : \ (t)==eDHL_SIGNAL_SER ? "Ser" : \ "?" ) /** °¢ Æ©³ÊÀÇ Á¤º¸. signal °ú Á÷Á¢ÀûÀÎ °ü·ÃÀÌ ¾ø´Â Á¤º¸µé. DHL_FE_GetDeviceInfo ¿¡¼­ »ç¿ëµÈ´Ù. */ #define FE_VENDOR_NAME_LEN 32 /* minimum required buffer size, maximum string length */ /** @name Á¦°øÇÒ frequency table ¿¡¼­ Áö¿øÇÏ´Â channel number ¹üÀ§ @{ */ #define FE_MIN_FAT_AIR_CH 2 #define FE_MAX_FAT_AIR_CH 69 #define FE_MIN_FAT_CBL_CH 1 #define FE_MAX_FAT_CBL_CH 135 /*@}*/ #if COMMENT ____API____(){} #endif /** @brief Æ©³Ê ¸ðµâÀ» ÃʱâÈ­ ÇÑ´Ù. @return - DHL_OK: ¼º°ø. - DHL_FAIL_: ±âŸ FAIL »óÅ ¹Ýȯ. */ DHL_RESULT DHL_FE_Init(void); /** DHL_FE_Open / DHL_FE_Close: Æ©³Ê »ç¿ëÀ» ÁغñÇϰųª (Open), Æ©³Ê »ç¿ëÀ» Á¾·áÇÑ´Ù. (close) µ¿ÀûÀ¸·Î Àü¿ø Á¦¾î°¡ °¡´ÉÇÑ °æ¿ì¶ó¸é Open ½Ã¿¡ Àü¿øÀÌ °ø±ÞµÇ°í, Close ½Ã¿¡ Àü¿øÀÌ Â÷´ÜµÈ´Ù. Close ÈÄ ´Ù½Ã Open ÇÏ´Â °æ¿ì¿¡´Â Tuner°¡ Á¤»ó µ¿ÀÛÇϱâ±îÁö ½Ã°£ÀÌ Á» ¼Ò¿äµÉ ¼öµµ ÀÖ´Ù. ¿¹) Demodulator firmware download, AGC level settling. ¸¸¾à »ó½Ã µ¿ÀÛ ÁßÀÎ platform¿¡¼­´Â Open, Close °¡ ¾Æ¹« ¿ªÇÒÀ» ÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù. @param[in] id FE ä³Î id. (2°³ÀÏ °æ¿ì 0,1 ·Î ºÎ¿©) @return - DHL_OK: ¼º°ø. - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. */ DHL_RESULT DHL_FE_Open(tDHL_TunerID id); DHL_RESULT DHL_FE_Close(tDHL_TunerID id); /** @brief FE ÀÇ µð¹ÙÀ̽ºÀÇ »óŸ¦ °¡Á®¿Â´Ù. µð¹ÙÀ̽º À̸§, º¥´õ, ±â´ÉµîÀÇ Á¤º¸. @param[in] id FE ä³Î id. @param[in] selector ¿äûÇÒ Á¤º¸. @param[out] pValue µð¹ÙÀ̽º Á¤º¸. @return - DHL_OK: ¼º°ø. - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. */ DHL_RESULT DHL_FE_GetDeviceInfo(tDHL_TunerID id, tDHL_TunerDeviceInfo selector, void *pValue); /** @brief ÁÖ¾îÁø Á֯ļö, demod·Î front end Tune µ¿ÀÛ ½ÇÇà. Setting °ªÀº OOB tune À» À§ÇÑ ÆÄ¶ó¹ÌÅÍ. In-band Æ©´×½Ã NULL °ª ó¸®. ÀÌ ÇÔ¼ö´Â non-blocking API ÀÌ´Ù. lock ¿©ºÎ´Â ´Ù¸¥ API¸¦ ÀÌ¿ëÇÏ¿© caller°¡ üũ ÇØ¾ß ÇÑ´Ù. @param[in] id FE ä³Î id. @param[in] freqKHz KHz ´ÜÀ§ÀÇ Á֯ļö. µðÁöÅÐ, ¾Æ³¯·Î±× »ó°ü ¾øÀÌ Ç×»ó center frequency¸¦ ÁöÁ¤ÇÑ´Ù. @param[in] demod demodulation mode. @param[in] settings OOB ¸¦ À§ÇÑ ºÎ°¡ÀûÀÎ demodulator settings, NULLÀ» ÀÔ·ÂÇϸé default °ªÀ¸·Î µ¿ÀÛÇØ¾ßÇÑ´Ù. @return - DHL_OK: ¼º°ø. - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. */ DHL_RESULT DHL_FE_Start(tDHL_TunerID id, UINT32 freqKHz, tDHL_Demod demod, tDHL_DemodExtSettings *settings); /** @brief FE µ¿ÀÛ Á¾·á. ÇöÀç ÀÌ APIÀÇ ¿ëµµ°¡ ±×´ÙÁö ¸íÈ®ÇÏÁö´Â ¾Ê´Ù. ÀÌ API´Â ä³Î º¯°æ Á÷Àü¿¡ MW¿¡¼­ »ç¿ëÇϴµ¥, power controlÀ» ÀǹÌÇÏÁö ¾Ê´Â´Ù. tuner, demod Àü¿øÀ» off/on ÇÏ¸é ½Ã°£ÀÌ ¸¹ÀÌ °É¸². Àü¿ø Á¦¾îÀÇ ¸ñÀûÀ̶ó¸é º°µµÀÇ API¸¦ ÀÌ¿ëÇϵµ·Ï ÇÑ´Ù. @param[in] id FE ä³Î id. @return - DHL_OK: ¼º°ø. - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. */ DHL_RESULT DHL_FE_Stop(tDHL_TunerID id); /** @brief Lock ¿©ºÎ¸¦ ÆÇ´ÜÇÑ´Ù. VSB, QAMxx ÀÇ °æ¿ì: tuner, demod µ¿ÀÛ, TS Ãâ·ÂÀÌ °¡´ÉÇÑ »óÅÂ. NTSC ÀÇ °æ¿ì: ?? @todo ntsc demod ¿¡¼­ lockÀÌ µÇ¾ú¾îµµ ntsc video decoder ¿¡¼­ µ¿ÀÛ ¸øÇÒ ¼öµµ ÀÖ´Ù. ¾î¶² ±âÁØÀ¸·Î lockÀ» ÇÒ °ÍÀÎÁö Á» ´õ °ËÅä ÇÊ¿ä. @param[in] id FE ä³Î id. @param[out] pbLock lock À̸é TRUE¸¦ ¸®ÅÏ. @param[out] pDemod demod Á¤º¸°¡ ¸®ÅÏ. lock ÀÌ ¾Æ´Ï¸é eDHL_DEMOD_UNKNOWN ¸®ÅÏ. caller´Â ÀÌ Á¤º¸°¡ ÇÊ¿äÇÏÁö ¾Ê´Ù¸é NULLÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. @return - DHL_OK: ¼º°ø. - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. */ DHL_RESULT DHL_FE_GetLockStatus(tDHL_TunerID id, BOOL *pbLock, tDHL_Demod *pDemod); /** @brief ¾î¶² demodultion À¸·Î µ¿ÀÛÇϰí ÀÖ´ÂÁö¸¦ ¸®ÅÏÇÑ´Ù. Æ©³Ê°¡ lock µÈ »óÅ¿¡¼­ »ç¿ë °¡´ÉÇÏ´Ù. LockÀÌ µÇÁö ¾ÊÀº »óÅ¿¡¼­ ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇϸé eDHL_DEMOD_UNKNOWN À» ¸®ÅÏÇÑ´Ù. @param[in] id FE ä³Î id. @param[out] pDemod ÇöÀç demod Á¤º¸°¡ ¸®Å쵃 °÷. @return - DHL_OK: ¼º°ø. - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. */ DHL_RESULT DHL_FE_GetModFormat(tDHL_TunerID id, tDHL_Demod *pDemod); /** @brief ½ÅÈ£¿Í °ü·ÃµÈ °¢Á¾ Á¤º¸¸¦ ¸®ÅÏÇÑ´Ù. Lock, SNR, SER µîµîÀÇ »óÅ Á¤º¸¸¦ °¡Á®¿È. @param[in] id FE ä³Î id. @param[in] selector Á¶È¸Çϱ⸦ ¿øÇÏ´Â Á¤º¸ Á¾·ù. @param[out] pValue Á¤º¸°¡ ¸®ÅϵǴ °÷. @return - DHL_OK: ¼º°ø. - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. */ DHL_RESULT DHL_FE_GetSignalStatus(tDHL_TunerID id, tDHL_SignalStatus selector, UINT32 *pValue); /** @brief ½ÅÈ£ ¼¼±â Á¤º¸ ¸®ÅÏ. @todo "½ÅÈ£ ¼¼±â"¶ó´Â ¸»Àº ¿©·¯°¡Áö ÀÇ¹Ì·Î ÇØ¼®µÉ ¼ö ÀÖÀ¸¹Ç·Î Á» ´õ ¸íÈ®ÇÑ ¼³¸íÀÌ ÇÊ¿äÇÔ. ¾î¶² ¿ëµµ·Î »ç¿ëÇÒ °ÍÀÎÁö¿¡ µû¶ó ´Þ¶óÁø´Ù. meter bar Ç¥½Ã ¿ëµµ: SNR monitor check ¿ëµµ: error ratio ÀÌ ÇÔ¼ö´Â DHL_FE_GetSignalStatus ¿¡ Æ÷ÇÔ °¡´ÉÇÏ´Ù. @param[in] id FE ä³Î id. @param[out] pstrength ½ÅÈ£ ¼¼±â ÃøÁ¤°ª ¹Ýȯ. @return - DHL_OK: ¼º°ø. - DHL_FAIL_ : ±âŸ FAIL »óÅ ¹Ýȯ. */ DHL_RESULT DHL_FE_GetSignalStrength(tDHL_TunerID id, UINT32 *pstrength); /** @brief RF ä³Î ¹øÈ£¿¡ ÇØ´çµÇ´Â Á֯ļö °ªÀ» KHz ´ÜÀ§·Î ¸®ÅÏÇÑ´Ù. ¾î¶² TableÀ» »ç¿ëÇÒ °ÍÀÎÁö¿¡ µû¶ó °á°ú°¡ ´Þ¶óÁø´Ù. @param[in] ch RF ¹øÈ£. @param[in] freqTbl band. Air/Cable ¶Ç´Â cable system Table ÁöÁ¤. @return - KHz ´ÜÀ§ÀÇ Á֯ļö °ª. */ UINT32 DHL_FE_ChannelToFrequency(int ch, tDHL_FreqStd freqTbl); #ifdef __cplusplus } /* extern "C" */ #endif #endif /* __DHL_FE_H__ */