Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

ID3_Frame Class Reference

The representative class of an id3v2 frame. More...

#include <id3/frame.h>

List of all members.

Public Methods

 ID3_Frame (ID3_FrameID id=ID3FID_NOFRAME)
 Default constructor; accepts as a default parameter the type of frame to create. More...

 ID3_Frame (const ID3_Frame &)
virtual ~ID3_Frame ()
void Clear ()
 Clears the frame of all data and resets the frame such that it can take on the form of any id3v2 frame that id3lib supports. More...

bool SetID (ID3_FrameID id)
 Establishes the internal structure of an ID3_FrameImpl object so that it represents the id3v2 frame indicated by the parameter. More...

ID3_FrameID GetID () const
 Returns the type of frame that the object represents. More...

ID3_FieldGetField (ID3_FieldID name) const
size_t NumFields () const
const char* GetDescription () const
const char* GetTextID () const
ID3_Frame& operator= (const ID3_Frame &)
bool HasChanged () const
bool Parse (ID3_Reader &)
void Render (ID3_Writer &) const
size_t Size ()
bool Contains (ID3_FieldID fld) const
bool SetSpec (ID3_V2Spec)
ID3_V2Spec GetSpec () const
bool SetCompression (bool b)
 Sets the compression flag within the frame. More...

bool GetCompression () const
 Returns whether or not the compression flag is set. More...

size_t GetDataSize () const
bool SetEncryptionID (uchar id)
uchar GetEncryptionID () const
bool SetGroupingID (uchar id)
uchar GetGroupingID () const
IteratorCreateIterator ()
ConstIteratorCreateIterator () const
ID3_FieldField (ID3_FieldID name) const
 Returns a pointer to the frame's internal field indicated by the parameter. More...


Static Public Methods

const char* GetDescription (ID3_FrameID)


Detailed Description

The representative class of an id3v2 frame.

id3lib defines frames in a funny way. Using some nice c++ conventions, ID3_FrameImpl class objects appear to be quite polymorphic; that is, they can take on many forms. The same ID3_FrameImpl class provides the facilities for the implementation of a complex APIC frame and for a simple text frame.

Author:
Dirk Mahoney
Version:
Id:
frame.cpp,v 1.32 2000/10/24 07:00:08 eldamitri Exp
See also:
ID3_Tag , ID3_Field , ID3_Err

Definition at line 38 of file frame.h.


Constructor & Destructor Documentation

ID3_Frame::ID3_Frame ( ID3_FrameID id = ID3FID_NOFRAME )
 

Default constructor; accepts as a default parameter the type of frame to create.

The parameter which will internally set the frame's structure. See SetID() for more details.

Parameters:
id   The type of frame to create
See also:
ID3_FrameID , SetID
Parameters:
id  

Definition at line 61 of file frame.cpp.

ID3_Frame::ID3_Frame ( const ID3_Frame & frame )
 

Parameters:
frame  

Definition at line 66 of file frame.cpp.

ID3_Frame::~ID3_Frame ( ) [virtual]
 

Definition at line 71 of file frame.cpp.


Member Function Documentation

void ID3_Frame::Clear ( )
 

Clears the frame of all data and resets the frame such that it can take on the form of any id3v2 frame that id3lib supports.

See also:
ID3_Tag::Clear

Definition at line 81 of file frame.cpp.

bool ID3_Frame::Contains ( ID3_FieldID fld ) const
 

Parameters:
fld  

Definition at line 208 of file frame.cpp.

Referenced by readTextFrame().

ConstIterator * ID3_Frame::CreateIterator ( ) const
 

Definition at line 315 of file frame.cpp.

Iterator * ID3_Frame::CreateIterator ( )
 

Definition at line 309 of file frame.cpp.

Referenced by ID3_FrameImpl::operator=().

ID3_Field & ID3_Frame::Field ( ID3_FieldID name ) const
 

Returns a pointer to the frame's internal field indicated by the parameter.

   ID3_TextEnc enc;
   enc = (ID3_TextEnc) myFrame.GetField(ID3FN_TEXTENC)->Get();
Parameters:
name   The name of the field to be retrieved
Returns:
A reference to the desired field
Parameters:
name  

Definition at line 141 of file frame.cpp.

bool ID3_Frame::GetCompression ( ) const
 

Returns whether or not the compression flag is set.

After parsing a tag, this will indicate whether or not the frame was compressed. After rendering a tag, however, it does not actually indicate if the frame is compressed rendering. It only indicates whether or not compression was attempted. A frame will not be compressed, even whent the compression flag is set, if the "compressed" data is no smaller than the "uncompressed" data.

Definition at line 231 of file frame.cpp.

Referenced by ID3_FrameImpl::operator=().

size_t ID3_Frame::GetDataSize ( ) const
 

Definition at line 236 of file frame.cpp.

Referenced by parseFrames().

const char * ID3_Frame::GetDescription ( ID3_FrameID id ) [static]
 

Parameters:
id  

Definition at line 183 of file frame.cpp.

const char * ID3_Frame::GetDescription ( ) const
 

Definition at line 188 of file frame.cpp.

uchar ID3_Frame::GetEncryptionID ( ) const
 

Definition at line 246 of file frame.cpp.

Referenced by ID3_FrameImpl::operator=().

ID3_Field * ID3_Frame::GetField ( ID3_FieldID name ) const
 

Parameters:
name  

Definition at line 146 of file frame.cpp.

Referenced by Field(), ID3_AddAlbum(), ID3_AddArtist(), ID3_AddComment(), ID3_AddGenre(), ID3_AddLyricist(), ID3_AddLyrics(), ID3_AddSyncLyrics(), ID3_AddTitle(), ID3_AddTrack(), ID3_AddYear(), ID3_GetString(), ID3_GetSyncLyrics(), ID3_GetSyncLyricsInfo(), parseFrames(), and readTextFrame().

uchar ID3_Frame::GetGroupingID ( ) const
 

Definition at line 256 of file frame.cpp.

Referenced by ID3_FrameImpl::operator=().

ID3_FrameID ID3_Frame::GetID ( ) const
 

Returns the type of frame that the object represents.

Useful in conjunction with ID3_Tag::Find() method

Returns:
The type, or id, of the frame
See also:
ID3_Tag::Find

Definition at line 93 of file frame.cpp.

Referenced by ID3_AddComment(), ID3_RemoveComments(), ID3_FrameImpl::operator=(), and parseFrames().

ID3_V2Spec ID3_Frame::GetSpec ( ) const
 

Definition at line 125 of file frame.cpp.

Referenced by ID3_FrameImpl::operator=().

const char * ID3_Frame::GetTextID ( ) const
 

Definition at line 193 of file frame.cpp.

bool ID3_Frame::HasChanged ( ) const
 

Definition at line 169 of file frame.cpp.

size_t ID3_Frame::NumFields ( ) const
 

Definition at line 151 of file frame.cpp.

bool ID3_Frame::Parse ( ID3_Reader & reader )
 

Parameters:
reader  

Definition at line 198 of file frame.cpp.

Referenced by parseFrames().

void ID3_Frame::Render ( ID3_Writer & writer ) const
 

Parameters:
writer  

Definition at line 203 of file frame.cpp.

Referenced by renderFrames().

bool ID3_Frame::SetCompression ( bool b )
 

Sets the compression flag within the frame.

When the compression flag is is set, compression will be attempted. However, the frame might not actually be compressed after it is rendered if the "compressed" data is no smaller than the "uncompressed" data.

Parameters:
b  

Definition at line 218 of file frame.cpp.

bool ID3_Frame::SetEncryptionID ( uchar id )
 

Parameters:
id  

Definition at line 241 of file frame.cpp.

bool ID3_Frame::SetGroupingID ( uchar id )
 

Parameters:
id  

Definition at line 251 of file frame.cpp.

bool ID3_Frame::SetID ( ID3_FrameID id )
 

Establishes the internal structure of an ID3_FrameImpl object so that it represents the id3v2 frame indicated by the parameter.

Given an ID3_FrameID (a list of which is found in &lt;id3/field.h&gt;), SetID() will structure the object according to the frame you wish to implement.

Either using this call or via the constructor, this must be the first command performed on an ID3_FrameImpl object.

   myFrame.SetID(ID3FID_TITLE);
Parameters:
id   The type of frame this frame should be set to
See also:
ID3_FrameID
Parameters:
id  

Definition at line 115 of file frame.cpp.

bool ID3_Frame::SetSpec ( ID3_V2Spec spec )
 

Parameters:
spec  

Definition at line 120 of file frame.cpp.

Referenced by parseFrames().

size_t ID3_Frame::Size ( )
 

Definition at line 163 of file frame.cpp.

ID3_Frame & ID3_Frame::operator= ( const ID3_Frame & rFrame )
 

Parameters:
rFrame  

Definition at line 174 of file frame.cpp.


The documentation for this class was generated from the following files:
Generated at Sat Sep 8 15:51:12 2001 for id3lib by doxygen1.2.8 written by Dimitri van Heesch, © 1997-2001