An implementation of TagLib::File with MPC specific methods.
More...
#include <mpcfile.h>
|
| File (FileName file, bool readProperties=true, Properties::ReadStyle propertiesStyle=Properties::Average) |
|
| File (IOStream *stream, bool readProperties=true, Properties::ReadStyle propertiesStyle=Properties::Average) |
|
| ~File () override |
|
| File (const File &)=delete |
|
File & | operator= (const File &)=delete |
|
TagLib::Tag * | tag () const override |
|
PropertyMap | properties () const override |
|
void | removeUnsupportedProperties (const StringList &properties) override |
|
PropertyMap | setProperties (const PropertyMap &) override |
|
Properties * | audioProperties () const override |
|
bool | save () override |
|
ID3v1::Tag * | ID3v1Tag (bool create=false) |
|
APE::Tag * | APETag (bool create=false) |
|
void | strip (int tags=AllTags) |
|
bool | hasID3v1Tag () const |
|
bool | hasAPETag () const |
|
virtual | ~File () |
|
| File (const File &)=delete |
|
File & | operator= (const File &)=delete |
|
FileName | name () const |
|
virtual Tag * | tag () const =0 |
|
virtual PropertyMap | properties () const |
|
virtual void | removeUnsupportedProperties (const StringList &properties) |
|
virtual PropertyMap | setProperties (const PropertyMap &properties) |
|
virtual StringList | complexPropertyKeys () const |
|
virtual List< VariantMap > | complexProperties (const String &key) const |
|
virtual bool | setComplexProperties (const String &key, const List< VariantMap > &value) |
|
virtual AudioProperties * | audioProperties () 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 () |
|
An implementation of TagLib::File with MPC specific methods.
This implements and provides an interface for MPC files to the TagLib::Tag and TagLib::AudioProperties interfaces by way of implementing the abstract TagLib::File API as well as providing some additional information specific to MPC files. The only invalid tag combination supported is an ID3v1 tag after an APE tag.
◆ TagTypes
This set of flags is used for various operations and is suitable for being OR-ed together.
Enumerator |
---|
NoTags | Empty set. Matches no tag types.
|
ID3v1 | Matches ID3v1 tags.
|
ID3v2 | Matches ID3v2 tags.
|
APE | Matches APE tags.
|
AllTags | Matches all tag types.
|
◆ File() [1/3]
Constructs an MPC file from file. If readProperties is true
the file's audio properties will also be read.
- Note
- In the current implementation, propertiesStyle is ignored.
◆ File() [2/3]
Constructs an MPC file from stream. If readProperties is true
the file's audio properties will also be read.
- Note
- TagLib will not take ownership of the stream, the caller is responsible for deleting it after the File object.
-
In the current implementation, propertiesStyle is ignored.
◆ ~File()
TagLib::MPC::File::~File |
( |
| ) |
|
|
overridevirtual |
◆ File() [3/3]
TagLib::MPC::File::File |
( |
const File & |
| ) |
|
|
delete |
◆ APETag()
APE::Tag * TagLib::MPC::File::APETag |
( |
bool |
create = false | ) |
|
Returns a pointer to the APE tag of the file.
If create is false
(the default) this may return a null pointer if there is no valid APE tag. If create is true
it will create an APE tag if one does not exist and returns a valid pointer. If there already is an ID3v1 tag, the new APE tag will be placed before it.
- Note
- This may return a valid pointer regardless of whether or not the file on disk has an APE tag. Use hasAPETag() to check if the file on disk actually has an APE tag.
-
The Tag is still owned by the MPC::File and should not be deleted by the user. It will be deleted when the file (object) is destroyed.
- See also
- hasAPETag()
◆ audioProperties()
Properties * TagLib::MPC::File::audioProperties |
( |
| ) |
const |
|
overridevirtual |
Returns the MPC::Properties for this file. If no audio properties were read then this will return a null pointer.
Implements TagLib::File.
◆ hasAPETag()
bool TagLib::MPC::File::hasAPETag |
( |
| ) |
const |
Returns whether or not the file on disk actually has an APE tag.
- See also
- APETag()
◆ hasID3v1Tag()
bool TagLib::MPC::File::hasID3v1Tag |
( |
| ) |
const |
Returns whether or not the file on disk actually has an ID3v1 tag.
- See also
- ID3v1Tag()
◆ ID3v1Tag()
ID3v1::Tag * TagLib::MPC::File::ID3v1Tag |
( |
bool |
create = false | ) |
|
Returns a pointer to the ID3v1 tag of the file.
If create is false
(the default) this returns a null pointer if there is no valid APE tag. If create is true
it will create an APE tag if one does not exist and returns a valid pointer.
- Note
- This may return a valid pointer regardless of whether or not the file on disk has an ID3v1 tag. Use hasID3v1Tag() to check if the file on disk actually has an ID3v1 tag.
-
The Tag is still owned by the MPC::File and should not be deleted by the user. It will be deleted when the file (object) is destroyed.
- See also
- hasID3v1Tag()
◆ isSupported()
static bool TagLib::MPC::File::isSupported |
( |
IOStream * |
stream | ) |
|
|
static |
Returns whether or not the given stream can be opened as an MPC file.
- Note
- This method is designed to do a quick check. The result may not necessarily be correct.
◆ operator=()
File & TagLib::MPC::File::operator= |
( |
const File & |
| ) |
|
|
delete |
◆ properties()
Implements the unified property interface – export function. If the file contains both an APE and an ID3v1 tag, only the APE tag will be converted to the PropertyMap.
Reimplemented from TagLib::File.
◆ removeUnsupportedProperties()
void TagLib::MPC::File::removeUnsupportedProperties |
( |
const StringList & |
properties | ) |
|
|
overridevirtual |
Removes unsupported properties, or a subset of them, from the file's metadata. The parameter properties must contain only entries from properties().unsupportedData().
Reimplemented from TagLib::File.
◆ save()
bool TagLib::MPC::File::save |
( |
| ) |
|
|
overridevirtual |
Saves the file.
This returns true
if the save was successful.
Implements TagLib::File.
◆ setProperties()
Implements the unified property interface – import function. Affects only the APEv2 tag which will be created if necessary. If an ID3v1 tag exists, it will be updated as well.
Reimplemented from TagLib::File.
◆ strip()
void TagLib::MPC::File::strip |
( |
int |
tags = AllTags | ) |
|
This will remove the tags that match the OR-ed together TagTypes from the file. By default it removes all tags.
- Warning
- This will also invalidate pointers to the tags as their memory will be freed.
- Note
- In order to make the removal permanent save() still needs to be called.
◆ tag()
Returns the Tag for this file. This will be an APE tag, an ID3v1 tag or a combination of the two.
Implements TagLib::File.
The documentation for this class was generated from the following file: