TagLib API Documentation
Public Member Functions | Protected Types | Protected Member Functions | List of all members
TagLib::RIFF::File Class Reference

A RIFF file class with some useful methods specific to RIFF. More...

#include <rifffile.h>

Inheritance diagram for TagLib::RIFF::File:
[legend]
Collaboration diagram for TagLib::RIFF::File:
[legend]

Public Member Functions

 ~File () override
 
 File (const File &)=delete
 
Fileoperator= (const File &)=delete
 
- Public Member Functions inherited from TagLib::File
virtual ~File ()
 
 File (const File &)=delete
 
Fileoperator= (const File &)=delete
 
FileName name () const
 
virtual Tagtag () const =0
 
virtual PropertyMap properties () const
 
virtual void removeUnsupportedProperties (const StringList &properties)
 
virtual PropertyMap setProperties (const PropertyMap &properties)
 
virtual StringList complexPropertyKeys () const
 
virtual List< VariantMapcomplexProperties (const String &key) const
 
virtual bool setComplexProperties (const String &key, const List< VariantMap > &value)
 
virtual AudioPropertiesaudioProperties () const =0
 
virtual bool save ()=0
 
ByteVector readBlock (size_t length)
 
void writeBlock (const ByteVector &data)
 
offset_t find (const ByteVector &pattern, offset_t fromOffset=0, const ByteVector &before=ByteVector())
 
offset_t rfind (const ByteVector &pattern, offset_t fromOffset=0, const ByteVector &before=ByteVector())
 
void insert (const ByteVector &data, offset_t start=0, size_t replace=0)
 
void removeBlock (offset_t start=0, size_t length=0)
 
bool readOnly () const
 
bool isOpen () const
 
bool isValid () const
 
void seek (offset_t offset, Position p=Beginning)
 
void clear ()
 
offset_t tell () const
 
offset_t length ()
 

Protected Types

enum  Endianness { BigEndian , LittleEndian }
 

Protected Member Functions

 File (FileName file, Endianness endianness)
 
 File (IOStream *stream, Endianness endianness)
 
unsigned int riffSize () const
 
unsigned int chunkCount () const
 
offset_t chunkOffset (unsigned int i) const
 
unsigned int chunkDataSize (unsigned int i) const
 
unsigned int chunkPadding (unsigned int i) const
 
ByteVector chunkName (unsigned int i) const
 
ByteVector chunkData (unsigned int i)
 
void setChunkData (unsigned int i, const ByteVector &data)
 
void setChunkData (const ByteVector &name, const ByteVector &data)
 
void setChunkData (const ByteVector &name, const ByteVector &data, bool alwaysCreate)
 
void removeChunk (unsigned int i)
 
void removeChunk (const ByteVector &name)
 
- Protected Member Functions inherited from TagLib::File
 File (FileName fileName)
 
 File (IOStream *stream)
 
void setValid (bool valid)
 
void truncate (offset_t length)
 

Additional Inherited Members

- Public Types inherited from TagLib::File
enum  Position { Beginning , Current , End }
 
enum  StripTags { StripNone , StripOthers }
 
enum  DuplicateTags { Duplicate , DoNotDuplicate }
 
- Static Protected Member Functions inherited from TagLib::File
static unsigned int bufferSize ()
 

Detailed Description

A RIFF file class with some useful methods specific to RIFF.

This implements the generic TagLib::File API and additionally provides access to properties that are distinct to RIFF files, notably access to the different ID3 tags.

Member Enumeration Documentation

◆ Endianness

Enumerator
BigEndian 
LittleEndian 

Constructor & Destructor Documentation

◆ ~File()

TagLib::RIFF::File::~File ( )
overridevirtual

Destroys this instance of the File.

Reimplemented from TagLib::File.

Reimplemented in TagLib::RIFF::WAV::File.

◆ File() [1/3]

TagLib::RIFF::File::File ( const File )
delete

◆ File() [2/3]

TagLib::RIFF::File::File ( FileName  file,
Endianness  endianness 
)
protected

◆ File() [3/3]

TagLib::RIFF::File::File ( IOStream stream,
Endianness  endianness 
)
protected

Member Function Documentation

◆ chunkCount()

unsigned int TagLib::RIFF::File::chunkCount ( ) const
protected
Returns
The number of chunks in the file.

◆ chunkData()

ByteVector TagLib::RIFF::File::chunkData ( unsigned int  i)
protected

Reads the chunk data from the file and returns it.

Note
This will move the read pointer for the file.

◆ chunkDataSize()

unsigned int TagLib::RIFF::File::chunkDataSize ( unsigned int  i) const
protected
Returns
The size of the chunk data.

◆ chunkName()

ByteVector TagLib::RIFF::File::chunkName ( unsigned int  i) const
protected
Returns
The name of the specified chunk, for instance, "COMM" or "ID3 "

◆ chunkOffset()

offset_t TagLib::RIFF::File::chunkOffset ( unsigned int  i) const
protected
Returns
The offset within the file for the selected chunk number.

◆ chunkPadding()

unsigned int TagLib::RIFF::File::chunkPadding ( unsigned int  i) const
protected
Returns
The size of the padding after the chunk (can be either 0 or 1).

◆ operator=()

File & TagLib::RIFF::File::operator= ( const File )
delete

◆ removeChunk() [1/2]

void TagLib::RIFF::File::removeChunk ( const ByteVector name)
protected

Removes the chunk name.

Warning
This will update the file immediately.
This removes all the chunks with the given name.

◆ removeChunk() [2/2]

void TagLib::RIFF::File::removeChunk ( unsigned int  i)
protected

Removes the specified chunk.

Warning
This will update the file immediately.

◆ riffSize()

unsigned int TagLib::RIFF::File::riffSize ( ) const
protected
Returns
The size of the main RIFF chunk.

◆ setChunkData() [1/3]

void TagLib::RIFF::File::setChunkData ( const ByteVector name,
const ByteVector data 
)
protected

Sets the data for the chunk name to data. If a chunk with the given name already exists it will be overwritten, otherwise it will be created after the existing chunks.

Warning
This will update the file immediately.

◆ setChunkData() [2/3]

void TagLib::RIFF::File::setChunkData ( const ByteVector name,
const ByteVector data,
bool  alwaysCreate 
)
protected

Sets the data for the chunk name to data. If a chunk with the given name already exists it will be overwritten, otherwise it will be created after the existing chunks.

Note
If alwaysCreate is true, a new chunk is created regardless of whether or not the chunk name exists. It should only be used for "LIST" chunks.
Warning
This will update the file immediately.

◆ setChunkData() [3/3]

void TagLib::RIFF::File::setChunkData ( unsigned int  i,
const ByteVector data 
)
protected

Sets the data for the specified chunk to data.

Warning
This will update the file immediately.

The documentation for this class was generated from the following file: