dmd.h
上传用户:fy98168
上传日期:2015-06-26
资源大小:13771k
文件大小:4k
源码类别:

DVD

开发平台:

C/C++

  1. #ifndef __DMD_H
  2. #define __DMD_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. /* Includes --------------------------------------------------------------- */
  7. #include "gendef.h"
  8. typedef enum
  9. {
  10. DMD_TYPE_NONE,
  11. DMD_TYPE_QPSK,
  12. DMD_TYPE_QAM,
  13. DMD_TYPE_OFDM
  14. } KB_DMDType;
  15. typedef enum
  16. {
  17. INVERSION_OFF,
  18. INVERSION_ON,
  19. INVERSION_AUTO
  20. } KB_DMDSpectralInversion;
  21. typedef enum
  22. {
  23. FEC_NONE = 0,
  24. FEC_1_2,
  25. FEC_2_3,
  26. FEC_3_4,
  27. FEC_4_5,
  28. FEC_5_6,
  29. FEC_6_7,
  30. FEC_7_8,
  31. FEC_8_9,
  32. FEC_AUTO
  33. } KB_DMDCodeRate;
  34. typedef enum
  35. {
  36. QPSK,
  37. QAM_16,
  38. QAM_32,
  39. QAM_64,
  40. QAM_128,
  41. QAM_256,
  42. QAM_AUTO
  43. } KB_DMDModulation;
  44. /* These parameters for OFDM */
  45. typedef enum
  46. {
  47. TRANSMISSION_MODE_2K,
  48. TRANSMISSION_MODE_8K,
  49. TRANSMISSION_MODE_AUTO
  50. } KB_DMDTransmitMode;
  51. typedef enum
  52. {
  53. BANDWIDTH_8_MHZ,
  54. BANDWIDTH_7_MHZ,
  55. BANDWIDTH_6_MHZ,
  56. BANDWIDTH_AUTO
  57. } KB_DMDBandwidth;
  58. typedef enum
  59. {
  60. GUARD_INTERVAL_1_32,
  61. GUARD_INTERVAL_1_16,
  62. GUARD_INTERVAL_1_8,
  63. GUARD_INTERVAL_1_4,
  64. GUARD_INTERVAL_AUTO
  65. } KB_DMDGuardInterval;
  66. typedef enum
  67. {
  68. HIERARCHY_NONE,
  69. HIERARCHY_1,
  70. HIERARCHY_2,
  71. HIERARCHY_4,
  72. HIERARCHY_AUTO
  73. } KB_DMDHierarchy;
  74. typedef struct _KB_DMDQPSKParameters
  75. {
  76. UINT32 symbolRatekSs;  /* In ksymbols/s */
  77. KB_DMDCodeRate fec_inner; /* forward error correction (see above) */
  78. } KB_DMDQPSKParameters;
  79. typedef struct _KB_DMDQAMParameters
  80. {
  81. UINT32 symbolRatekSs;  /* In ksymbols/s */
  82. KB_DMDCodeRate fec_inner; /* forward error correction (see above) */
  83. KB_DMDModulation modulation; /* modulation type (see above) */
  84. } KB_DMDQAMParameters;
  85. typedef struct _KB_DMDOFDMParameters
  86. {
  87. KB_DMDBandwidth bandwidth;
  88. KB_DMDCodeRate      code_rate_HP;  /* high priority stream code rate */
  89. KB_DMDCodeRate      code_rate_LP;  /* low priority stream code rate */
  90. KB_DMDModulation    constellation; /* modulation type (see above) */
  91. KB_DMDTransmitMode  transmission_mode;
  92. KB_DMDGuardInterval guard_interval;
  93. KB_DMDHierarchy     hierarchy_information;
  94. } KB_DMDOFDMParameters;
  95. typedef struct _KB_DMDTunerParameters
  96. {
  97. KB_DMDType type; /* Demode type: QPSK, QAM, OFDM */
  98. UINT32 frequency; /* frequency in KHz for QAM/OFDM */
  99. /* frequency in MHz for QPSK */
  100. KB_DMDSpectralInversion inversion;
  101. union
  102. {
  103. KB_DMDQPSKParameters qpsk;
  104. KB_DMDQAMParameters  qam;
  105. KB_DMDOFDMParameters ofdm;
  106. } details;
  107. } KB_DMDTunerParameters;
  108. //QAM输入信号的参数
  109. typedef struct _KB_DMDSendQAMSignal
  110. {
  111.   INT32  qamvafc; //QAM的频偏,有正负偏差,单位为KHZ,-127~+127
  112.   UINT32 qamagc; //QAM输入的AGC电平,此值越大信号越强,反之亦然,0~255
  113.   UINT32 qamquality;     //QAM的输入信号质量,此值越大信号质量越好,反之亦然,0~255
  114.   UINT32 qamsroffset; //QAM时钟环的偏差(ppm),此值越大表示时钟环偏差越大,0~255,单位PPM
  115.   UINT32 qamuncor;
  116.   UINT32 qamber; //QAM的误码率,此值0~3,=0,信号很差;=1,信号较差;=2信号可以使用;=3信号很好
  117.   UINT32 qamnoise;
  118. } KB_DMDSendQAMSignal;
  119. /***************************************************************************
  120. **  Parameter for DMDRegisterCallback()
  121. ***************************************************************************/
  122. typedef enum
  123. {
  124. DMD_CALLBACK_SIGNAL_CONNECTED,      /* Successful signal connection */
  125. DMD_CALLBACK_SIGNAL_DROPPED,        /* Successful signal disconnect */
  126. DMD_CALLBACK_SIGNAL_LOST,           /* Signal accidentally lost */
  127. DMD_CALLBACK_PARAM_ERROR,            /* The parameters were error */
  128. CA_DISPLAY,
  129. CA_CLEAR,
  130. MAILDsp,
  131. MAILHIDE
  132. }KB_DMDCallbackEvents;
  133. typedef void (*KB_DMD_CallbackFunc)(KB_DMDCallbackEvents);
  134. KB_DMDTunerParameters CurrentSignal;
  135. /****************************************************************************
  136. ** API and public function prototypes
  137. ****************************************************************************/
  138. INT32   KB_DMDInit(void);
  139. INT32   KB_DMDConnectSignal(KB_DMDTunerParameters *dmdParam);
  140. INT32   KB_DMDDropSignal(void);
  141. INT32   KB_DMDQuerySignalStatus(void);
  142. void    KB_DMDCallBack(KB_DMD_CallbackFunc callback);
  143. INT32   KB_DMDGetSignalParameters(KB_DMDTunerParameters *ptParameters);
  144. #ifdef __cplusplus
  145. }
  146. #endif
  147. #endif