00001
00002
00003
00004
00005
00006
00007
00008
00009
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
00041 //---------------------------------------------------------------------------
00042
00043 namespace MediaInfoLib
00044 {
00045
00046 class MediaInfoList_Internal;
00047
00048
00051
00052
00053 class MEDIAINFO_EXP MediaInfoList
00054 {
00055 public :
00056
00059 MediaInfoList (size_t Count_Init=64);
00060 ~MediaInfoList ();
00061
00062
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
00132 String Get (size_t FilePos, stream_t StreamKind, size_t StreamNumber, size_t Parameter, info_t KindOfInfo=Info_Text);
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);
00146
00147
00160 size_t Set (const String &ToSet, size_t FilePos, stream_t StreamKind, size_t StreamNumber, size_t Parameter, const String &OldValue=String());
00173 size_t Set (const String &ToSet, size_t FilePos, stream_t StreamKind, size_t StreamNumber, const String &Parameter, const String &OldValue=String());
00174
00175
00182 char* Output_Buffer_Get (size_t FilePos, size_t &Output_Buffer_Size);
00183
00184
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
00220 MediaInfoList (const MediaInfoList&);
00221 MediaInfoList& operator=(const MediaInfoList&);
00222 };
00223
00224 }
00225 #endif