00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00032
00033 #ifndef __METADATA_DVD_H__
00034 #define __METADATA_DVD_H__
00035
00036 #include "metadata_handler.h"
00037
00038 #define DVD_AUXDATA_TITLE_COUNT "DVD_TITLES"
00039 #define DVD_AUXDATA_CHAPTERS "DVD_CHAPTERS"
00040 #define DVD_AUXDATA_AUDIO_TRACKS "DVD_AUDIO_TRACKS"
00041
00042
00043
00044 typedef enum
00045 {
00046 DVD_Title,
00047 DVD_TitleDuration,
00048 DVD_TitleCount,
00049
00050 DVD_Chapter,
00051 DVD_ChapterCount,
00052 DVD_ChapterDuration,
00053 DVD_ChapterRestDuration,
00054
00055 DVD_AudioStreamID,
00056 DVD_AudioTrack,
00057 DVD_AudioTrackCount,
00058 DVD_AudioTrackFormat,
00059 DVD_AudioTrackStreamID,
00060 DVD_AudioTrackChannels,
00061 DVD_AudioTrackSampleFreq,
00062 DVD_AudioTrackLanguage,
00063 } dvd_aux_key_names_t;
00064
00065
00067 class DVDHandler : public MetadataHandler
00068 {
00069 public:
00070 DVDHandler();
00071 virtual void fillMetadata(zmm::Ref<CdsItem> item);
00072 virtual zmm::Ref<IOHandler> serveContent(zmm::Ref<CdsItem> item, int resNum, off_t *data_size);
00073
00075 static zmm::String renderKey(dvd_aux_key_names_t name, int title_idx = 0,
00076 int chapter_idx = 0, int audio_track_idx = 0);
00077 };
00078
00079 #endif // __METADATA_DVD_H__