An ID3v2 relative volume adjustment frame implementation. More...
#include <relativevolumeframe.h>
Classes | |
struct | PeakVolume |
Struct that stores the relevant values for ID3v2 peak volume. More... | |
Public Types | |
enum | ChannelType { Other = 0x00 , MasterVolume = 0x01 , FrontRight = 0x02 , FrontLeft = 0x03 , BackRight = 0x04 , BackLeft = 0x05 , FrontCentre = 0x06 , BackCentre = 0x07 , Subwoofer = 0x08 } |
Protected Member Functions | |
void | parseFields (const ByteVector &data) override |
ByteVector | renderFields () const override |
Protected Member Functions inherited from TagLib::ID3v2::Frame | |
Frame (const ByteVector &data) | |
Frame (Header *h) | |
void | setHeader (Header *h, bool deleteCurrent=true) |
void | parse (const ByteVector &data) |
virtual void | parseFields (const ByteVector &data)=0 |
virtual ByteVector | renderFields () const =0 |
ByteVector | fieldData (const ByteVector &frameData) const |
String | readStringField (const ByteVector &data, String::Type encoding, int *position=nullptr) |
String::Type | checkTextEncoding (const StringList &fields, String::Type encoding) const |
virtual PropertyMap | asProperties () const |
Friends | |
class | FrameFactory |
Additional Inherited Members | |
Static Public Member Functions inherited from TagLib::ID3v2::Frame | |
static ByteVector | textDelimiter (String::Type t) |
static ByteVector | keyToFrameID (const String &) |
static String | frameIDToKey (const ByteVector &) |
Static Public Attributes inherited from TagLib::ID3v2::Frame | |
static const String | instrumentPrefix |
static const String | commentPrefix |
static const String | lyricsPrefix |
static const String | urlPrefix |
Static Protected Member Functions inherited from TagLib::ID3v2::Frame | |
static void | splitProperties (const PropertyMap &original, PropertyMap &singleFrameProperties, PropertyMap &tiplProperties, PropertyMap &tmclProperties) |
An ID3v2 relative volume adjustment frame implementation.
This is an implementation of ID3v2 relative volume adjustment. The presence of this frame makes it possible to specify an increase in volume for an audio file or specific audio tracks in that file.
Multiple relative volume adjustment frames may be present in the tag each with a unique identification and describing volume adjustment for different channel types.
This indicates the type of volume adjustment that should be applied.
TagLib::ID3v2::RelativeVolumeFrame::RelativeVolumeFrame | ( | ) |
Constructs a RelativeVolumeFrame. The relevant data should be set manually.
TagLib::ID3v2::RelativeVolumeFrame::RelativeVolumeFrame | ( | const ByteVector & | data | ) |
Constructs a RelativeVolumeFrame based on the contents of data.
|
override |
Destroys the RelativeVolumeFrame instance.
|
delete |
List< ChannelType > TagLib::ID3v2::RelativeVolumeFrame::channels | ( | ) | const |
Returns a list of channels with information currently in the frame.
String TagLib::ID3v2::RelativeVolumeFrame::identification | ( | ) | const |
Returns the identification for this frame.
|
delete |
|
overrideprotectedvirtual |
Called by parse() to parse the field data. It makes this information available through the public API. This must be overridden by the subclasses.
Implements TagLib::ID3v2::Frame.
PeakVolume TagLib::ID3v2::RelativeVolumeFrame::peakVolume | ( | ChannelType | type = MasterVolume | ) | const |
Returns the peak volume (represented as a length and a string of bits).
This defaults to returning the value for the master volume channel if available and returns 0 if the specified channel does not exist.
|
overrideprotectedvirtual |
Render the field data back to a binary format in a ByteVector. This must be overridden by subclasses.
Implements TagLib::ID3v2::Frame.
void TagLib::ID3v2::RelativeVolumeFrame::setIdentification | ( | const String & | s | ) |
Sets the identification of the frame to s. The string is used to identify the situation and/or device where this adjustment should apply.
void TagLib::ID3v2::RelativeVolumeFrame::setPeakVolume | ( | const PeakVolume & | peak, |
ChannelType | type = MasterVolume |
||
) |
Sets the peak volume to peak.
By default this sets the value for the master volume.
void TagLib::ID3v2::RelativeVolumeFrame::setVolumeAdjustment | ( | float | adjustment, |
ChannelType | type = MasterVolume |
||
) |
Set the relative volume adjustment in decibels to adjustment.
By default this sets the value for the master volume.
void TagLib::ID3v2::RelativeVolumeFrame::setVolumeAdjustmentIndex | ( | short | index, |
ChannelType | type = MasterVolume |
||
) |
Set the volume adjustment to index. As indicated by the ID3v2 standard this is a 16-bit signed integer that reflects the decibels of adjustment when divided by 512.
By default this sets the value for the master volume.
|
overridevirtual |
float TagLib::ID3v2::RelativeVolumeFrame::volumeAdjustment | ( | ChannelType | type = MasterVolume | ) | const |
Returns the relative volume adjustment in decibels.
This defaults to returning the value for the master volume channel if available and returns 0 if the specified channel does not exist.
short TagLib::ID3v2::RelativeVolumeFrame::volumeAdjustmentIndex | ( | ChannelType | type = MasterVolume | ) | const |
Returns the relative volume adjustment "index". As indicated by the ID3v2 standard this is a 16-bit signed integer that reflects the decibels of adjustment when divided by 512.
This defaults to returning the value for the master volume channel if available and returns 0 if the specified channel does not exist.
|
friend |