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

#include <AbstractFrame.h>

Detailed Description

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

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

Public Member Functions

 AbstractFrame (TagLib::FileRef *file_ref, 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...
 

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 ()=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 ()=0
 

Protected Attributes

const char * _four =nullptr
 
TagLib::ID3v2::Tag * _tag =nullptr
 
ModelType_t _data_model
 
FrameType_t * _frame =nullptr
 

Member Function Documentation

template<typename ModelType_t, typename FrameType_t>
virtual TagLib::ID3v2::Frame* ID3v2Frame::AbstractFrame< 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 ID3v2Frame::DiscnumberFrame, and ID3v2Frame::PopularimeterFrame.

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

if the frame was found when called read()

Returns
true, if the frame was found
template<typename ModelType_t, typename FrameType_t>
virtual bool ID3v2Frame::AbstractFrame< 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
template<typename ModelType_t, typename FrameType_t>
virtual bool ID3v2Frame::AbstractFrame< 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