MediaInfoLib 0.7
|
00001 /* Copyright (c) MediaArea.net SARL. All Rights Reserved. 00002 * 00003 * Use of this source code is governed by a BSD-style license that can 00004 * be found in the License.html file in the root of the source tree. 00005 */ 00006 00007 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00008 // 00009 // Give information about a lot of media files 00010 // 00011 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 00012 00013 //--------------------------------------------------------------------------- 00014 #ifndef MediaInfoListH 00015 #define MediaInfoListH 00016 //--------------------------------------------------------------------------- 00017 00018 //--------------------------------------------------------------------------- 00019 #include "MediaInfo/MediaInfo.h" 00020 //--------------------------------------------------------------------------- 00021 00022 //--------------------------------------------------------------------------- 00023 #undef MEDIAINFO_EXP 00024 #if defined(_WIN32) && !defined(__MINGW32__) //MinGW32 does not support _declspec 00025 #ifdef MEDIAINFO_DLL_EXPORT 00026 #define MEDIAINFO_EXP 00027 #else 00028 #define MEDIAINFO_EXP 00029 #endif 00030 #else //defined(_WIN32) && !defined(__MINGW32__) 00031 #if __GNUC__ >= 4 00032 #define MEDIAINFO_EXP __attribute__ ((visibility("default"))) 00033 #else 00034 #define MEDIAINFO_EXP 00035 #endif 00036 #endif //defined(_WIN32) && !defined(__MINGW32__) 00037 00038 #if !defined(__WINDOWS__) 00039 #define __stdcall //Supported only on windows 00040 #endif //!defined(_WIN32) 00041 //--------------------------------------------------------------------------- 00042 00043 namespace MediaInfoLib 00044 { 00045 00046 class MediaInfoList_Internal; 00047 00048 //*************************************************************************** 00051 //*************************************************************************** 00052 00053 class MEDIAINFO_EXP MediaInfoList 00054 { 00055 public : 00056 //Class 00059 MediaInfoList (size_t Count_Init=64); 00060 ~MediaInfoList (); 00061 00062 //Files 00070 size_t Open (const String &File, const fileoptions_t Options=FileOption_Nothing); 00077 size_t Open_Buffer_Init (ZenLib::int64u File_Size=(ZenLib::int64u)-1, ZenLib::int64u File_Offset=0); 00085 size_t Open_Buffer_Continue (size_t FilePos, const ZenLib::int8u* Buffer, size_t Buffer_Size); 00091 ZenLib::int64u Open_Buffer_Continue_GoTo_Get (size_t FilePos); 00097 size_t Open_Buffer_Finalize (size_t FilePos); 00104 size_t Save (size_t FilePos); 00110 void Close (size_t FilePos=(size_t)-1); 00111 00119 String Inform (size_t FilePos=(size_t)-1, size_t Reserved=0); 00120 00121 //Get 00132 String Get (size_t FilePos, stream_t StreamKind, size_t StreamNumber, size_t Parameter, info_t KindOfInfo=Info_Text); //Get info, FilePos=File position, StreamKind=General video audio text chapter, StreamNumber=stream number, PosInStream=parameter you want, KindOfInfo=name, text, measure, options, name (language), measure (language), info, how to 00145 String Get (size_t FilePos, stream_t StreamKind, size_t StreamNumber, const String &Parameter, info_t KindOfInfo=Info_Text, info_t KindOfSearch=Info_Name); //Get info, FilePos=File position, StreamKind=General video audio text chapter, StreamNumber=stream number, PosInStream=parameter you want, KindOfInfo=name text measure options name(language) measure(language) information how to, KindOfSearch=which Kind Of information Parameter must be searched? 00146 00147 //Set 00160 size_t Set (const String &ToSet, size_t FilePos, stream_t StreamKind, size_t StreamNumber, size_t Parameter, const String &OldValue=String()); //Get info, FilePos=File position, StreamKind=General video audio text chapter, StreamNumber=stream number, PosInStream=parameter you want, KindOfInfo=name, text, measure, options name(language) measure(language) information how to 00173 size_t Set (const String &ToSet, size_t FilePos, stream_t StreamKind, size_t StreamNumber, const String &Parameter, const String &OldValue=String()); //Get info, FilePos=File position, StreamKind=General video audio text chapter, StreamNumber=stream number, PosInStream=parameter you want, KindOfInfo=name text measure options name (language) measure (language) information how to, KindOfSearch=which Kind Of information Parameter must be searched? 00174 00175 //Output_Buffered 00182 char* Output_Buffer_Get (size_t FilePos, size_t &Output_Buffer_Size); 00183 00184 //Info 00190 String Option (const String &Option, const String &Value=String()); 00196 static String Option_Static (const String &Option, const String &Value=String()); 00204 size_t State_Get (); 00211 size_t Count_Get (size_t FilePos, stream_t StreamKind, size_t StreamNumber=(size_t)-1); 00214 size_t Count_Get (); 00215 00216 private : 00217 MediaInfoList_Internal* Internal; 00218 00219 //Constructor 00220 MediaInfoList (const MediaInfoList&); // Prevent copy-construction 00221 MediaInfoList& operator=(const MediaInfoList&); // Prevent assignment 00222 }; 00223 00224 } //NameSpace 00225 #endif