Go to the documentation of this file.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 #ifndef TAGLIB_RIFFFILE_H
00027 #define TAGLIB_RIFFFILE_H
00028
00029 #include "taglib_export.h"
00030 #include "tfile.h"
00031
00032 namespace TagLib {
00033
00035
00036 namespace RIFF {
00037
00039
00046 class TAGLIB_EXPORT File : public TagLib::File
00047 {
00048 public:
00052 virtual ~File();
00053
00054 protected:
00055
00056 enum Endianness { BigEndian, LittleEndian };
00057
00058 File(FileName file, Endianness endianness);
00059 File(IOStream *stream, Endianness endianness);
00060
00064 unsigned int riffSize() const;
00065
00069 unsigned int chunkCount() const;
00070
00074 unsigned int chunkOffset(unsigned int i) const;
00075
00079 unsigned int chunkDataSize(unsigned int i) const;
00080
00084 unsigned int chunkPadding(unsigned int i) const;
00085
00089 ByteVector chunkName(unsigned int i) const;
00090
00096 ByteVector chunkData(unsigned int i);
00097
00103 void setChunkData(unsigned int i, const ByteVector &data);
00104
00112 void setChunkData(const ByteVector &name, const ByteVector &data);
00113
00125 void setChunkData(const ByteVector &name, const ByteVector &data, bool alwaysCreate);
00126
00132 void removeChunk(unsigned int i);
00133
00140 void removeChunk(const ByteVector &name);
00141
00142 private:
00143 File(const File &);
00144 File &operator=(const File &);
00145
00146 void read();
00147 void writeChunk(const ByteVector &name, const ByteVector &data,
00148 unsigned long offset, unsigned long replace = 0);
00149
00153 void updateGlobalSize();
00154
00155 class FilePrivate;
00156 FilePrivate *d;
00157 };
00158 }
00159 }
00160
00161 #endif