MediaInfoList.h

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 
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

Generated on 30 Oct 2016 for MediaInfoLib by  doxygen 1.4.7