nav_clips.h
上传用户:super_houu
上传日期:2008-09-21
资源大小:4099k
文件大小:10k
- /****************************************************************************************
- * Copyright (c) 2002 ZORAN Corporation, All Rights Reserved
- * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
- *
- * File: $Workfile: nav_clips.h $
- *
- * Description:
- * ============
- *
- *
- * Log:
- * ====
- * $Revision: 26 $
- * Last Modified by $Author: Lotan $ at $Modtime: 2/10/04 11:41p $
- ****************************************************************************************
- * Updates:
- ****************************************************************************************
- * $Log: /I76/I76_Common/I76_Reference/Playcore/Nav_Clips/nav_clips.h $
- *
- * 26 2/10/04 11:41p Lotan
- *
- * 25 1/13/04 12:11 Hamadk
- * Merged with CES DB
- *
- * 24 11/10/03 11:33a Leonh
- * Get Sampling rate for WMA
- *
- * 23 03-07-29 14:49 Leonh
- * solve the storage conflict between ID3 TAG info and Mpeginfo
- *
- * 22 03-05-28 22:40 Leonh
- * support mepg 1 layer 2
- *
- * 21 03-05-26 18:51 Leonh
- *
- * 20 03-05-26 18:40 Leonh
- *
- * 19 03-04-02 11:29 Janeg
- * Include error code file.
- *
- * 18 03-03-10 16:16 Jerryc
- * clean up.
- *
- * 17 03-03-10 13:53 Jerryc
- * clean up the browser object implementation.
- *
- * 16 03-03-05 17:40 Jerryc
- * jerryc, fix some play modes.
- *
- * 15 03-03-04 15:01 Jerryc
- * jerryc, clean up
- *
- * 14 03-03-04 11:57 Jerryc
- * jerryc, add enum type enWINDOWTYPE.
- *
- * 13 03-03-04 11:50 Jerryc
- * jerryc, add function Clips_SetBrowserStyle.
- *
- * 12 03-03-04 11:34 Jerryc
- * jerry cai, merge new nav clips lib
- *
- * 11 03-02-08 0:36 Leslie
- * Add MANUAL_DIRECTORY_EXPLORER
- *
- * 10 03-01-10 12:21 Leslie
- * Add wide-character strings support
- *
- * 9 10/30/02 17:49 Rond
- *
- * 3 11/09/02 17:33 Atai
- * Vaddis 5e production update
- *
- * 24 21/08/02 17:25 Nirm
- * - Added WMA Content-Description.
- *
- * 23 19/08/02 22:27 Nirm
- * - Added Playback-Filter.
- *
- * 22 13/08/02 13:46 Nirm
- * - Added Clip-Status information.
- *
- * 21 30/07/02 20:35 Nirm
- * - Integrated Multi-Standard support for Clips.
- *
- * 20 15/05/02 15:46 Ettim
- * Added UI support including OSD for Angle and Transition in JPEG.
- *
- * 19 29/04/02 12:25 Nirm
- * - Fixes for JPEG Digest.
- *
- * 18 23/04/02 22:44 Nirm
- * - Moved some configurations to Config.h.
- *
- * 17 23/04/02 9:32 Nirm
- * - Added dependency in "Config.h".
- *
- * 16 3/27/02 13:18 Ettim
- * Replaced D_PICTURE_CD_ENABLED with CLIPS_JPEG_SUPPORT
- *
- * 15 27/03/02 9:20 Nirm
- * - Moved some privately-used definitions into Nav_Clips.c.
- *
- *
- * 14 3/26/02 19:14 Ettim
- * Added new clips navigation support.
- *
- * 12 4/03/02 14:18 Nirm
- * Compilation switches changed/updated.
- *
- * 11 4/03/02 14:08 Nirm
- * Compilation switches changed/updated.
- *
- * 10 2/28/02 2:50a Dingming
- * code porting for picture cd
- *
- * 9 2/21/02 5:23p Tomasp
- * Limited number of clips for 16MBit SDRAM version.
- * Limited directory name length 16MBit SDRAM version.
- *
- * 8 21/02/02 16:53 Nirm
- * - Fixed string-lenghts problem.
- *
- * 7 20/02/02 17:37 Nirm
- * - Added Implementation-Specific Data;
- * - Code cleanup.
- *
- * 6 19/02/02 9:40 Nirm
- * Prolonged the Filename.
- *
- * 5 18/02/02 20:33 Nirm
- * Integrated MP3-ID3 extraction.
- *
- * 4 18/02/02 11:33 Nirm
- * Feature configuration.
- *
- * 3 18/02/02 11:26 Nirm
- * Added MP3-ID3v1 support.
- *
- * 2 14/02/02 18:13 Nirm
- * Integration of the Clips Navigator.
- *
- * 1 7/02/02 7:49 Nirm
- ****************************************************************************************/
- #include "Config.h" // Global Configuration - do not remove!
- #ifndef __NAV_CLIPS_H_
- #define __NAV_CLIPS_H_
- #include "IncludeSysDefs.h"
- #include "PlaycoreCoremainCoremain.h"
- #include "PlaycoreFileSysFileSystem.h"
- #include "PlaycoreNav_ClipsClip.h"
- #include "PlaycoreNav_ClipsMP3.h"
- #include "PlaycoreNav_ClipsWMA.h"
- #include "playcorecoremaincore_err.h"
- #ifdef CLIPS_JPEG_SUPPORT
- #include "PlaycoreNav_ClipsJPEG.h"
- #endif
- #ifdef IS_OGG_VORBIS_CAPABLE
- #include "PlaycoreNav_ClipsOGG.h"
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // Constants and Enumerations
- typedef enum {
- eCLS_Uninitialized,
- eCLS_Building,
- eCLS_Finalized
- } enClipsListStatus;
- typedef enum {
- eWINDOWS_EXPLORER_STYLE,
- eSingle_LIST_STYLE
- } enClipsBrowserStyle;
- typedef enum
- {
- eCLIPS_UPDATE_NONE,
- eCLIPS_UPDATE_INDEX,
- eCLIPS_UPDATE_ALL
- }enCLIPS_UPDATE_TYPE;
- typedef enum
- {
- eSingle_WINDOW = 0, //eSingle_WINDOW must be 0 to maitain backward compatibility.
- eLEFT_WINDOW,
- eRIGHT_WINDOW
- }enWINDOWTYPE;
- typedef enum
- {
- eSingleItem,
- eSingleFolder,
- eWholeDisc
- } enClipsExplorerStyleBrowserPlayMode;
- /////////////////////////////////////////////////////////////////////////////
- // Common Structures
- typedef struct ClipInfoEx_TAG {
- // Standard Information
- // ClipInfo ciInfo;
- CurrClipInfo ciInfo;
- UINT8 eClipStatus;
- // Extended Information
- UINT8 bIsExtendedInfoAvailable;
- #ifdef CLIPS_ACQUIRE_EXTENDED_INFO
- /*
- UINT16 uPlaybackTime;
- UINT16 uAudioSamplingRateInHz;
- */
- //Angie_0810_2004:Move the MP3 and WMA extend info from gns to SCPAD for I86 memory reducing.
- WORD ExtInfo_sc_handle;
- MPEGInfo mpeginfo;
-
- #endif //CLIPS_ACQUIRE_EXTENDED_INFO
- } ClipInfoEx;
- /////////////////////////////////////////////////////////////////////////////
- // Defines
- #define SPUHdrSize 4
- #define DCSQ0Size 24
- #define DCSQTSize 30
- #define FourCCSize 4
- #define CkSizeSize 4
- #define DurationSize 27
- #define STDHeaderSize 26
- #define SPU_HEADER_LENGTH 4
- #define SPU_COMMAND_LENGTH 15
- #define MAX_SUBDIRS_CNT 150
- #ifdef CLIPS_USE_LONG_FILENAMES
- #define MAX_DIRNAME_LEN 65
- #else
- #define MAX_DIRNAME_LEN 8
- #endif //CLIPS_USE_LONG_FILENAMES
- //Angie_0810_2004:Move the MP3 and WMA extend info from gns to SCPAD for I86 memory reducing.
- #ifdef CLIPS_ACQUIRE_EXTENDED_INFO
- #define SC_CLIPS_EXTINFO_ADDR SC_CLIPS_NAV_ADDR//66DWORDs
- #endif
- #define SC_AVI_DRM_KEYS_ADDR SC_CLIPS_NAV_ADDR
- //#define SC_AVI_DRM_KEYS_SIZE 2048
- #define SC_AVI_DRM_KEYS_SIZE ((2224+3)/4)
- //#ifndef USE_AUX_SUBTITLES
- //#define SC_AVI_INDEX_TABLE_ADDR SC_AVI_DRM_KEYS_ADDR + SC_AVI_DRM_KEYS_SIZE
- //#else
- #define SC_AUX_SUBTITLES_STRINGS_ADDR SC_AVI_DRM_KEYS_ADDR + SC_AVI_DRM_KEYS_SIZE
- #define SC_AUX_SUBTITLES_STRINGS_SZ 114
- //#define SC_AVI_INDEX_TABLE_ADDR SC_AUX_SUBTITLES_STRINGS_ADDR + SC_AUX_SUBTITLES_STRINGS_SZ
- //#endif
- // <<< Robin_0903_2004
- #ifdef DIVX_SUPPORT_MULTI_SUBTITLE
- #define SC_AVI_EXTEND_SUBTITLE_TOTAL_NUM 1000
- #define SC_AVI_EXTEND_SUBTITLE_ADDR (SC_AUX_SUBTITLES_STRINGS_ADDR + SC_AUX_SUBTITLES_STRINGS_SZ)
- #define SC_AVI_EXTEND_SUBTITLE_SZ ( (SC_AVI_EXTEND_SUBTITLE_TOTAL_NUM * sizeof(Extend_Subtitle_Info_St))>>2 )
- #endif
- // >>> Robin_0903_2004
- #define SC_MPEG4_AUDIO_STREAM_INFO_SZIE_IN_DOWRD (((MAX_AUDS_PER_CLIP * SIZE_OF_AUDIO_STREAM_INFO) + 3) >> 2)
- #ifdef DIVX_SUPPORT_MULTI_SUBTITLE
- #define SC_MPEG4_AUDIO_STREAM_INFO_ADDR (SC_AVI_EXTEND_SUBTITLE_ADDR + SC_AVI_EXTEND_SUBTITLE_SZ)
- #else
- #define SC_MPEG4_AUDIO_STREAM_INFO_ADDR (SC_AUX_SUBTITLES_STRINGS_ADDR + SC_AUX_SUBTITLES_STRINGS_SZ)
- #endif
- #define SC_MPEG4_SUBTITLE_STREAM_INFO_SIZE_IN_DWORD (((MAX_SUB_PER_CLIP * SIZE_OF_SUBTITLE_STREAM_INFO) + 3) >> 2)
- #define SC_MPEG4_SUBTITLE_STREAM_INFO_ADDR (SC_MPEG4_AUDIO_STREAM_INFO_ADDR + SC_MPEG4_AUDIO_STREAM_INFO_SZIE_IN_DOWRD)
- #define SC_MPEG4_VIDEO_HEADER_DATA_SIZE_IN_DWORD ((MPEG4_VIDEO_HEADER_BUFFER_SIZE + 3) >> 2)
- #define SC_MPEG4_VIDEO_HEADER_DATA_ADDR (SC_MPEG4_SUBTITLE_STREAM_INFO_ADDR + SC_MPEG4_SUBTITLE_STREAM_INFO_SIZE_IN_DWORD)
- #ifdef IS_MP4_CAPABLE
- #define SC_MPEG4_VIDEO_SAMPLE_TABLE_ADDREX_BUFF_SIZE (SIZE_OF_MP4StreamSampleTableAddrEX_IN_DWORD)
- #define SC_MPEG4_VIDEO_SAMPLE_TABLE_ADDREX_BUFF_ADDR (SC_MPEG4_VIDEO_HEADER_DATA_ADDR + SC_MPEG4_VIDEO_HEADER_DATA_SIZE_IN_DWORD)
- #define SC_MPEG4_AUDIO_SAMPLE_TABLE_ADDREX_BUFF_SIZE (MAX_AUDS_PER_CLIP * SIZE_OF_MP4StreamSampleTableAddrEX_IN_DWORD)
- #define SC_MPEG4_AUDIO_SAMPLE_TABLE_ADDREX_BUFF_ADDR (SC_MPEG4_VIDEO_SAMPLE_TABLE_ADDREX_BUFF_ADDR + SC_MPEG4_VIDEO_SAMPLE_TABLE_ADDREX_BUFF_SIZE)
- #define SC_MPEG4_SUBTITLE_SAMPLE_TABLE_ADDREX_BUFF_SIZE (MAX_SUB_PER_CLIP * SIZE_OF_MP4StreamSampleTableAddrEX_IN_DWORD)
- #define SC_MPEG4_SUBTITLE_SAMPLE_TABLE_ADDREX_BUFF_ADDR (SC_MPEG4_AUDIO_SAMPLE_TABLE_ADDREX_BUFF_ADDR + SC_MPEG4_AUDIO_SAMPLE_TABLE_ADDREX_BUFF_SIZE)
- // Robin_0106_2005, reserve some unused smaple tables
- #define SC_MPEG4_RESERVED_SAMPLE_TABLE_ADDREX_BUFF_SIZE (MAX_RESERVED_PER_CLIP * SIZE_OF_MP4StreamSampleTableAddrEX_IN_DWORD)
- #define SC_MPEG4_RESERVED_SAMPLE_TABLE_ADDREX_BUFF_ADDR (SC_MPEG4_SUBTITLE_SAMPLE_TABLE_ADDREX_BUFF_ADDR + SC_MPEG4_SUBTITLE_SAMPLE_TABLE_ADDREX_BUFF_SIZE)
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // Public Services
- // <<< SEC BK.LIM101303 : Search first file if Root dose not have any file list to play.
- #ifdef EXINO2
- #ifdef MP3_SUBFOLDER_AUTOPLAY
- void Clips_set_Autoplay(BOOL bAutoplay);
- #endif
- #endif
- // SEC BK.LIM101303>>>
- enClipsListStatus Clips_getClipsListStatus(void);
- void Clips_findClips(UINT16 uTypesToFind);
- BOOL Clips_addClip(LPCWSTR i_pszFilename);
- BOOL Clips_addClipEx(const FindData *i_pFileInfo);
- void Clips_removeAllClips(void);
- void Clips_finalizeClipsList(void);
- BOOL Clips_getClipFileInfoAt(UINT16 uClipNumber, ClipInfo *o_pClipInfo);
- void Clips_setPresentationTime(enClipType eType, UINT8 uPresentationTime);
- UINT16 Clips_getAvailableTypes(void);
- UINT16 Clips_getPlaybackFilter(void);
- void Clips_setPlaybackFilter(UINT16 uTypesToPlay);
- void Clips_SetExplorerStyleBrowserPlayMode(enClipsExplorerStyleBrowserPlayMode ePlayMode);
- void Clips_SetExplorerStyleBrowserDiscScanMode(BOOL bDiscScanMode);
- void Browser_GetPeerFolderInfo(UINT16 uDirNum,ClipInfo *o_pInfo);
- void ClipsSysStateReset( void );
- void ClipsSysStateReset( void );
- void CyclicWriteDRAMData(const INT32 uiBufferStart,const INT32 uiBufferEnd,
- UINT32 uiAddress, UINT16* puiTarget, UINT32 uiLength );
- /////////////////////////////////////////////////////////////////////////////
- // Navigation Interface
- int Clips_Navigator(HDLR_OP op, EVENT evt, void *param);
- #endif //__NAV_CLIPS_H_