samp_gen.h
上传用户:super_houu
上传日期:2008-09-21
资源大小:4099k
文件大小:8k
源码类别:

DVD

开发平台:

Others

  1. /*******************************************************************************
  2. * Copyright(c) Philips Consumer Electronics B.V. 2001
  3. * The attached material and the information contained therein is proprietary
  4. * to Philips and is issued only under strict confidentiality arrangements.
  5. * It shall not be used, reproduced, copied in whole or in part, adapted,
  6. * modified, or disseminated without a written license of Philips.           
  7. * It must be returned to Philips upon its first request.
  8. *
  9. *  Project:        SA-MP ( Super Audio Media Player )
  10. *  File %name:     samp_gen.h %
  11. *  %version:       14 %
  12. *  %date_modified: Wed Oct 23 14:27:05 2002 %
  13. *  %derived_by:    potm %
  14. *  Creation date:  Thu Aug 23 11:09:44 2001
  15. *  First author:   klerxm
  16. *
  17. *  Advanced Systems and Applications Lab - Eindhoven
  18. *
  19. *  Continuus %full_filespec: samp_gen.h~14:incl:1 %
  20. *
  21. *  Description:    Global type definitions
  22. *
  23. * Change history:
  24. *
  25. * Rev  Date       Who      Comments
  26. * ---- ---------- -------- -----------------------------------------------------
  27. *   1  2001-08-23 klerxm   This version includes all definitions previously in
  28. *                          samp_local.h and sacd.h
  29. *                          Definitions for GUARDED and FATAL have been moved to
  30. *                          a separate header file
  31. *   2  2001-08-23 klerxm   Added include files <stddefs.h> and <limits.h>
  32. *   3  2001-10-08 coenen   Added SACD_ChannelsDef
  33. *   4  2001-11-05 klerxm   Added general function prototypes
  34. *   5  2001-11-06 klerxm   Changed prototype of SAMP_Activate to match prototype
  35. *                          of SDI_Activate
  36. *   6  2001-11-22 novosadt Added Hybrid argument to SAMP_Activate
  37. *   7  2002-01-22 potm     Added SAMP_SACDDiscRec prototype
  38. *   8  2002-01-30 potm     Added discRecognised parameter to SAMP_Activate
  39. *                          enabling activation without reading the master TOC
  40. *                          if it has already been read during recognition
  41. *                          (CR284)
  42. *   9  2002-02-13 novosadt Added SACD_InputModeDef (CR321)
  43. *  10  2002-02-21 potm     Changed type SACD_ChannelsDef to 
  44. *                          SACD_ChannelsConfigDef (CR260)
  45. *  11  2002-05-24 potm     Removed unused type definitions SACD_Index, 
  46. *                          SACD_PhyTrack and SACD_LogTrack
  47. *  12  2002-06-07 klerxm   Added 'extern "C"'
  48. *  13  2002-10-23 novosadt Added SACD_ActivateErrorDef (CR423)
  49. *  14  2002-12-16 potm     Removed SAMP_ERR_REQ_INTERFACE from 
  50. *                          SACD_ActivateErrorDef (CR442)
  51. *
  52. *******************************************************************************/
  53. #ifndef _SAMP_GEN_H
  54. #define _SAMP_GEN_H
  55. /*******************************************************************************
  56. *                                Include Files
  57. *******************************************************************************/
  58. #include <stddef.h>
  59. #include <limits.h>
  60. #ifdef __cplusplus
  61. extern "C" {
  62. #endif
  63. #ifdef TEST_HARNASS ///////////// for test only.
  64. #define THGNAV
  65. #define THGAPM
  66. #define THGSAMP
  67. //#define THGSDI
  68. #define THGSDM
  69. #define THGGLUE
  70. #endif//TEST_HARNASS ////////////
  71. /*******************************************************************************
  72. *                              Macro Definitions
  73. *******************************************************************************/
  74. #define SAMP(name) SAMP_##name
  75. #define SAMP_EXP(name) SAMP_EXP_##name
  76. #ifndef FALSE
  77. #define FALSE 0
  78. #endif
  79. #ifndef TRUE
  80. #define TRUE  1
  81. #endif
  82. #define SAMP_ACTIVATED     (1 << 0)
  83. #define SAMP_NOT_ACTIVATED (1 << 1)
  84. #ifdef SACD_AREA_INFO_INSDRAM
  85. #define SACD_MAX_TRACK_NUMBER 255
  86. #else
  87. #define SACD_MAX_TRACK_NUMBER 25
  88. #endif
  89. /*
  90.  * Bitmask definitions to be used for SACD_ChannelsConfigDef
  91.  */
  92. #define SACD_CHANNELS_FRONT   (1 << 0)
  93. #define SACD_CHANNELS_CENTER  (1 << 1)
  94. #define SACD_CHANNELS_LFE     (1 << 2)
  95. #define SACD_CHANNELS_REAR    (1 << 3)
  96. /*******************************************************************************
  97. *                              Type Definitions
  98. *******************************************************************************/
  99. typedef unsigned char   SAMP(Byte);
  100. typedef unsigned short  SAMP(Word);
  101. typedef unsigned long   SAMP(Quad);
  102. typedef unsigned char   SAMP(UInt8);
  103. typedef unsigned short  SAMP(UInt16);
  104. typedef unsigned long   SAMP(UInt32);
  105. typedef signed char     SAMP(Int8);
  106. typedef signed short    SAMP(Int16);
  107. typedef signed long     SAMP(Int32);
  108. typedef unsigned char   SAMP(BitSet8);
  109. typedef unsigned short  SAMP(BitSet16);
  110. typedef unsigned long   SAMP(BitSet32);
  111. typedef unsigned char   SAMP(Bool);
  112. typedef SAMP(BitSet8)   SAMP(SACD_ChannelsConfigDef);
  113. typedef enum
  114. { SAMP(ERR_OK)             = 0
  115. , SAMP(ERR_FAILED)
  116. , SAMP(ERR_UNKNOWN)
  117. , SAMP(ERR_INVALID_PARAM)
  118. , SAMP(ERR_INVALID_STATE)
  119. , SAMP(ERR_NO_RESOURCES)
  120. , SAMP(ERR_ERROR_STATE)
  121. , SAMP(ERR_NOT_IMPLEMENTED)
  122. } SAMP(ErrCode);
  123. typedef struct
  124. { SAMP(Byte) min;
  125.   SAMP(Byte) sec;
  126.   SAMP(Byte) fr;
  127. } SAMP(SACD_TimeCode);
  128. typedef enum
  129. { SAMP(SACD_AREA_STEREO)
  130. , SAMP(SACD_AREA_MULTICHANNEL)
  131. } SAMP(SACD_Area);
  132. typedef enum
  133. { SAMP(SACD_AUDIO_2_CHANNEL_PLAIN)
  134. , SAMP(SACD_AUDIO_2_CHANNEL_PACKED)
  135. , SAMP(SACD_AUDIO_5_CHANNEL_PACKED)
  136. , SAMP(SACD_AUDIO_6_CHANNEL_PACKED)
  137. } SAMP(SACD_AudioMode);
  138. typedef enum
  139. { SAMP(SACD_IN_DSD)
  140. , SAMP(SACD_IN_PCM_44)
  141. , SAMP(SACD_IN_PCM_88)
  142. , SAMP(SACD_IN_PCM_176)
  143. , SAMP(SACD_IN_PCM_48)
  144. , SAMP(SACD_IN_PCM_96)
  145. , SAMP(SACD_IN_PCM_192)
  146. } SAMP(SACD_InputModeDef);
  147. typedef SAMP(UInt32) SAMP(SACD_Frame);
  148. typedef SAMP(UInt32) SAMP(SACD_PhyPosition);
  149. typedef SAMP(UInt32) SAMP(SACD_LogPosition);
  150. typedef enum
  151. { SAMP(SACD_DATA_RESERVED)
  152. , SAMP(SACD_DATA_AUDIO)
  153. , SAMP(SACD_DATA_SUPDATA)
  154. , SAMP(SACD_DATA_STUFFING)
  155. } SAMP(SACD_DataType);
  156. typedef struct
  157. { SAMP(Int16) NumberOfTracks;
  158.   SAMP(Int16) TrackOffset;
  159.   SAMP(SACD_TimeCode) TotalAreaTime;
  160.   SAMP(SACD_TimeCode) TrackStart[SACD_MAX_TRACK_NUMBER]; // ARNO, MUST LATER BE SET TO SACD_MAX_TRACK_NUMBER
  161.   SAMP(SACD_TimeCode) TrackLength[SACD_MAX_TRACK_NUMBER]; // ARNO, MUST LATER BE SET TO SACD_MAX_TRACK_NUMBER
  162. } SAMP(SAMP_AreaInfoDef);
  163. //todo: check if track no is 0 based.
  164. #define TRACK_START_INFO_LOCATION(x) (5 + 3*x) //(7 + 3*x) todo: check with Philips.
  165. //not correct #define TRACK_LEN_INFO_LOCATION(x) (5 + 3*SACD_MAX_TRACK_NUMBER + 3*x) //(7 + 3*20 + 3*x) todo: check with Philips.
  166. typedef enum {
  167.   SAMP(SAMP_ERR_STANDARD_VIOLATION),
  168.   SAMP(SAMP_ERR_READ_ERROR),
  169.   SAMP(SAMP_ERR_NO_PSP),
  170.   SAMP(SAMP_ERR_UNKNOWN)
  171. } SAMP(SAMP_ActivateErrorDef);
  172. typedef void (*SAMP(SAMP_CallbackDef))(SAMP(BitSet32) Event, void* EventData);
  173. /*******************************************************************************
  174. *                            Functions Prototypes
  175. *******************************************************************************/
  176. SAMP(ErrCode) SAMP(SAMP_Init)(void);
  177. SAMP(ErrCode) SAMP(SAMP_Term)(void);
  178. SAMP(ErrCode) SAMP(SAMP_SACDDiscRec)( SAMP(Bool) *pSACD, SAMP(Bool) *pHybrid );
  179. SAMP(ErrCode) SAMP(SAMP_Activate)( SAMP(Bool) discRecognised, 
  180.                                    SAMP(SAMP_AreaInfoDef) *pST_Info, 
  181.                                    SAMP(SAMP_AreaInfoDef) *pMC_Info, 
  182.                                    SAMP(Bool) *pHybrid );
  183. SAMP(ErrCode) SAMP(SAMP_Deactivate)(void);
  184. SAMP(ErrCode) SAMP(SAMP_Reactivate)(void);
  185. SAMP(ErrCode) SAMP(SAMP_Subscribe)(SAMP(SAMP_CallbackDef) Callback, SAMP(BitSet32) Events);
  186. #ifdef __cplusplus
  187. }
  188. #endif
  189. #endif /* _SAMP_GEN_H */
  190. /*******************************************************************************
  191. *                                End of File
  192. *******************************************************************************/