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

DVD

开发平台:

Others

  1. /****************************************************************************************
  2.  *  Copyright (c) 2002 ZORAN Corporation, All Rights Reserved
  3.  *  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
  4.  *
  5.  *  File: $Workfile: PE_CD.h $             
  6.  *
  7.  * Description: 
  8.  * ============
  9.  * 
  10.  * 
  11.  * Log:
  12.  * ====
  13.  * $Revision: 22 $
  14.  * Last Modified by $Author: Leslie $ at $Modtime: 04-04-02 21:57 $ 
  15.  ****************************************************************************************
  16.  * Updates:
  17.  ****************************************************************************************
  18.  * $Log: /I76/I76_Common/I76_Reference/Playcore/Nav_CDDA/PE_CD.h $
  19.  * 
  20.  * 22    04-04-03 14:05 Leslie
  21.  * Add PE_CD_SetCurrentLocationLBN_Bakcup
  22.  * 
  23.  * 21    04-04-01 23:42 Leslie
  24.  * 
  25.  * 20    04-04-01 23:37 Leslie
  26.  * Correct type mismatch
  27.  * 
  28.  * 19    04-04-01 9:44 Hansenw
  29.  *  fix type mis-match
  30.  * 
  31.  * 18    04-03-17 11:41 Chaol
  32.  * change PE_CD_GetCdDetectType, we always need to detect CDTS bitstream
  33.  * in a CDDS disc
  34.  * 
  35.  * 17    04-02-19 17:58 Jerryc
  36.  * add sacd code
  37.  * 
  38.  * 16    1/08/04 5:05p Einavz
  39.  * add sacd support
  40.  * 
  41.  * 15    12/30/03 10:25a Chaol
  42.  * add CDDETECT_SID define
  43.  * 
  44.  * 14    12/22/03 4:29p Chaol
  45.  * add function PE_CD_GetCdDetectType to support CDDTS
  46.  * 
  47.  * 11    03-08-29 0:00 Leslie
  48.  * Code cleanup
  49.  * 
  50.  * 10    03-07-22 17:09 Mikelv
  51.  * support cdda de_emphasis
  52.  * 
  53.  * 9     03-05-19 13:42 Leslie
  54.  * Code cleanup
  55.  * 
  56.  * 8     2/21/03 7:18a Stephaneh
  57.  * Added PE_CD_ResetDecoderCurrentLocationMSF( )
  58.  * 
  59.  * 7     03-01-15 18:49 Dingming
  60.  * code clean up
  61.  * 
  62.  * 6     11/06/02 11:22p Leslie
  63.  * Chnage MP3/CDDTS Audio ID, according to the definition in the Decoder
  64.  * API side
  65.  * 
  66.  * 5     10/30/02 18:09 Rond
  67.  * 
  68.  * 18    3/06/02 11:14 Nirm
  69.  * - Code cleanup.
  70.  * 
  71.  * 17    9/05/02 15:52 Ettim
  72.  * Enabling the function PE_CD_MediaIdentification() although it is still
  73.  * not being used by the media detection sequence.
  74.  * 
  75.  * 16    23/04/02 9:31 Nirm
  76.  * - Added dependency in "Config.h".
  77.  * 
  78.  * 15    21/04/02 10:48 Ettim
  79.  * Disabling the function PE_CD_MediaIdentification()
  80.  * 
  81.  * 14    16/04/02 15:23 Ettim
  82.  * Integration with CDDTS. Work is still im progress.
  83.  * 
  84.  * 13    3/10/02 17:30 Ettim
  85.  * Added Motion Digest support. 
  86.  * 
  87.  * 12    2/28/02 2:49a Dingming
  88.  * code porting for picture cd
  89.  * 
  90.  * 11    2/18/02 11:01 Ettim
  91.  * Updated Audio SID setting for the channels C0 & C1
  92.  * 
  93.  * 10    31/01/02 13:49 Nirm
  94.  * Changed CVD support implementation.
  95.  * 
  96.  * 8     1/21/02 17:46 Ettim
  97.  * Adding the function PE_CD_VideoIsActive().
  98.  * 
  99.  * 7     1/17/02 19:14 Ettim
  100.  * Handling the CVD encryption
  101.  * 
  102.  * 6     1/16/02 16:16 Ettim
  103.  * Updating the macro PE_CD_SetDiscType to get only 1 argument.
  104.  * 
  105.  * 5     9/01/02 15:43 Nirm
  106.  * Corrected Include-Paths.
  107.  * 
  108.  * 4     1/09/02 10:06 Ettim
  109.  * 
  110.  * 3     9/01/02 9:11 Nirm
  111.  * Corrected Include-Paths.
  112.  * 
  113.  * 2     1/08/02 17:54 Ettim
  114.  * updating the function PE_CD_GetDecoderCurrentLocationPTS, nad renaming
  115.  * it to PE_CD_GetDecoderCurrentLocationSCR
  116.  * 
  117.  * 1     12/26/01 19:06 Ettim
  118.  ****************************************************************************************/
  119. #include "Config.h" // Global Configuration - do not remove!
  120. #ifndef PE_CD_H_
  121. #define PE_CD_H_
  122. #include "IncludeSysDefs.h"
  123. #include "DecoderDecoder.h"
  124. typedef enum { NoVideo = 0xFF, MPEG_2 = 0xE0, STILL_LOWRES = 0xE1, STILL_HIRES = 0xE2 } VideoSID;
  125. #if D_SUPPORT_SACD //add SACD_SID
  126. typedef enum { NoAudio = 0xFF, CDDA_SID = 0xFE, CDDTS_SID = 0xFD, MP3_SID = 0xFC, WMA_SID = 0xFB,  CDDETECT_SID = 0xF9,  SACD_SID = 0xF8, ADPCM_SID = 0xF7, ANALOG_IN_SID = 0xF6,  DIGITAL_IN_SID = 0xF5, OGG_SID = 0xF4, AAC_SID = 0xF3, MPEG_SID0 = 0xC0, MPEG_SID1 = 0xC1} AudioSID;
  127. #else
  128. typedef enum { NoAudio = 0xFF, CDDA_SID = 0xFE, CDDTS_SID = 0xFD, MP3_SID = 0xFC, WMA_SID = 0xFB,  CDDETECT_SID = 0xF9,  ADPCM_SID = 0xF7, ANALOG_IN_SID = 0xF6, DIGITAL_IN_SID = 0xF5, OGG_SID = 0xF4, AAC_SID = 0xF3, MPEG_SID0 = 0xC0, MPEG_SID1 = 0xC1} AudioSID;
  129. #endif
  130. typedef enum { TriggerBit = 0, IFrame,  StuckTrigger } NotificationType;
  131. typedef enum { eAbsoluteLocation, eRelativeLocation } enLocationType;
  132. typedef enum {  eNormalSpeed , eScan , eSearch , eSlowMotion , eDecoderNotStart} enPlaybackType;
  133. typedef struct TrackInfo_TAG {
  134. DWORD dwStartAddress;
  135. ULONG ulBlocksCnt;
  136. } TrackInfo;
  137. //A macro for setting the disc type - Used when reading the PSD into the SDRAM
  138. #define PE_CD_SetDiscType(NewType)  (DEC_Stop_DVP_cmd((UINT8)0), DEC_SetDiskType(NewType))
  139. int PE_CD_GetTracksCnt(void);
  140. BOOL PE_CD_GetTrackInfo(int iTrackNumber, TrackInfo *o_pInfo);
  141. BOOL PE_CD_GetTrackInfoEx(int iTrackNumber, WORD *o_pMin, WORD *o_pSec, WORD *o_pFrm);
  142. BOOL PE_CD_GetTrackTOC(int iTrackNumber, BYTE *o_pCtrlField, DWORD *o_pStartAddr, ULONG *o_pSize);
  143. void* PE_CD_GetCDTEXTInfo(BYTE TrackNum);
  144. DWORD PE_CD_GetCurrentLocation(void);
  145. BOOL PE_CD_GetDecoderCurrentLocationMSF(enLocationType eType,
  146. UINT8 *o_pMinute, UINT8 *o_pSecond, UINT8 *o_pFrame,
  147. int *o_pRelativeSign);
  148. BOOL PE_CD_ResetDecoderCurrentLocationMSF(void); // ZCO SH021903:Added to reset subcode when full stop
  149. DWORD PE_CD_GetDecoderCurrentLocationLBN(void);
  150. BOOL PE_CD_GetDecoderCurrentLocationSCR(ULONG *o_pSCR);
  151. BOOL PE_CD_GetDecoderCurrentTrackInfo(BYTE *o_pCtrl, BYTE *o_pTrackNumber);
  152. void PE_CD_SelectAudioStream(AudioSID iAudioSID);
  153. void PE_CD_UpdateAudioSPDIF(void);
  154. //void PE_CD_ConfigureTVSystem(void);//Leslie_0828_2003_B:Code cleanup
  155. BOOL PE_CD_AutoDetectVideoSetting(VideoSID cVideoSID, DWORD dwStartAddress, ULONG ulMaxBlocksCnt);
  156. void PE_CD_DisableCGMSData(void);
  157. BOOL PE_CD_PlaySegment(VideoSID eVideoSID, AudioSID eAudioSID, DWORD dwStartAddress, 
  158.    ULONG ulBlocksCnt, enPlaybackType eType, ULONG ulParam);
  159. void PE_CD_StreamPortion(DWORD dwAddress, ULONG uSize);
  160. void PE_CD_PausePlayback(BOOL bEnable, AudioSID eAudioSID);
  161. void PE_CD_Step(void);
  162. void PE_CD_AbortPlayback(BOOL bRemainInStandby);
  163. void PE_CD_AbortPlaybackEx(void);
  164. BOOL PE_CD_IsPlaybackFinished(void);
  165. void PE_CD_RequestNotification(NotificationType iType);
  166. void PE_CD_CancelNotification(NotificationType iType);
  167. void PE_CD_DisplayLogo(void);
  168. void PE_CD_DisplayBackground(BOOL bEnable);
  169. void PE_CD_SetScan(BOOL bEnable, AudioSID eAudioType, int iScanSpeed);
  170. void PE_CD_SetSlowMotion(BOOL bEnable, UINT8 uSlowSpeed);
  171. #ifdef CVD_ENABLED
  172. BOOL PE_CD_EnableCVDDecryption(BOOL bEnable, DWORD i_dwEncryptionInfoAddr, 
  173.    DWORD i_dwEncryptionInfoSize);
  174. #endif // CVD_ENABLED
  175. void PE_CD_SetMute(BOOL bEnable);
  176. BOOL PE_CD_VideoIsActive(void);
  177. BOOL PE_CD_ADP_isSyncPointEstablished(void);
  178. BOOL PE_CD_isAudioStreamValid(void);
  179. void PE_CD_SetCurrentLocationLBN_Bakcup(DWORD dwCurrentLocation);
  180. #ifdef CDDA_DEEMPHASIS_ENABLE
  181. void PE_CD_SetDeemphasis(BOOL DeEmphasis);
  182. #endif
  183. #ifdef D_ENABLE_SVCD_SAMPLE_RATE_DETECTION
  184. UINT32 PE_CD_AutoDetectAudioSetting( AudioSID cAudioSID, DWORD dwStartAddress, ULONG ulMaxBlocksCnt);
  185. #endif
  186. CD_DETECT_RESULT PE_CD_GetCdDetectType(void);
  187. #endif //PE_CD_H_