Sayonara Player
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ID3v2::ID3v2Frame< ModelType_t, FrameType_t > Class Template Referenceabstract

The AbstractFrame class
for example AbstractFrame<Discnumber, TagLib::ID3v2::TextIdentificationFrame> More...

#include <ID3v2Frame.h>

Inheritance diagram for ID3v2::ID3v2Frame< ModelType_t, FrameType_t >:
Tagging::AbstractFrame< TagLib::ID3v2::Tag > Tagging::AbstractFrameHelper

Public Member Functions

 ID3v2Frame (TagLib::ID3v2::Tag *tag, const char *four)
 
virtual bool read (ModelType_t &data)
 sets the _data_model by reading from the frame More...
 
virtual bool write (const ModelType_t &data_model)
 insert the _data_model into the frame More...
 
bool is_frame_found () const
 if the frame was found when called read() More...
 
FrameType_t * frame ()
 

Protected Member Functions

virtual TagLib::ID3v2::Frame * create_id3v2_frame ()=0
 create_id3v2_frame creates new id3v2 frame if there's no frame we have to create it manually every subclass has to implement this function More...
 
virtual void map_model_to_frame (const ModelType_t &model, FrameType_t *frame)=0
 map_model_to_frame
maps the model to the frame and vice versa so the frame knows how to get/set data
 
virtual void map_frame_to_model (const FrameType_t *frame, ModelType_t &model)=0
 
TagLib::ID3v2::Tag * tag () const
 
void set_tag (TagLib::ID3v2::Tag *tag)
 
QString convert_string (const TagLib::String &str) const
 
TagLib::String convert_string (const QString &str) const
 
QString key () const
 
TagLib::String tag_key () const
 

Protected Attributes

FrameType_t * mFrame =nullptr
 

Detailed Description

template<typename ModelType_t, typename FrameType_t>
class ID3v2::ID3v2Frame< ModelType_t, FrameType_t >

The AbstractFrame class
for example AbstractFrame<Discnumber, TagLib::ID3v2::TextIdentificationFrame>

Member Function Documentation

◆ create_id3v2_frame()

template<typename ModelType_t , typename FrameType_t >
virtual TagLib::ID3v2::Frame* ID3v2::ID3v2Frame< ModelType_t, FrameType_t >::create_id3v2_frame ( )
protectedpure virtual

create_id3v2_frame creates new id3v2 frame if there's no frame we have to create it manually every subclass has to implement this function

Returns
pointer to newly created frame

Implemented in ID3v2::PopularimeterFrame, ID3v2::LyricsFrame, ID3v2::DiscnumberFrame, ID3v2::CoverFrame, ID3v2::ComposerFrame, and ID3v2::AlbumArtistFrame.

◆ is_frame_found()

template<typename ModelType_t , typename FrameType_t >
bool ID3v2::ID3v2Frame< ModelType_t, FrameType_t >::is_frame_found ( ) const
inline

if the frame was found when called read()

Returns
true, if the frame was found

◆ read()

template<typename ModelType_t , typename FrameType_t >
virtual bool ID3v2::ID3v2Frame< ModelType_t, FrameType_t >::read ( ModelType_t &  data)
inlinevirtual

sets the _data_model by reading from the frame

Parameters
datareference to data filled with _data_model
Returns
false, if frame cannot be accessed, true else

◆ write()

template<typename ModelType_t , typename FrameType_t >
virtual bool ID3v2::ID3v2Frame< ModelType_t, FrameType_t >::write ( const ModelType_t &  data_model)
inlinevirtual

insert the _data_model into the frame

Parameters
data_modelthe data model
Returns
false if frame cannot be accessed