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

ID3_FieldImpl Class Reference

#include <field_impl.h>

Inheritance diagram for ID3_FieldImpl::

ID3_Field List of all members.

Public Methods

 ~ID3_FieldImpl ()
void Clear ()
 Clears any data and frees any memory associated with the field. More...

size_t Size () const
 Returns the size of a field. More...

size_t BinSize () const
size_t GetNumTextItems () const
 Returns the number of items in a text list. More...

ID3_Fieldoperator= (uint32 val)
 A shortcut for the Set method. More...

void Set (uint32)
 Sets the value of the field to the specified integer. More...

uint32 Get () const
 Returns the value of the integer field. More...

void SetInteger (uint32)
uint32 GetInteger () const
ID3_Fieldoperator= (const char *s)
 Shortcut for the Set operator. More...

size_t Set (const char *data)
 Copies the supplied string to the field. You may dispose of the source string after a call to this method.
myFrame.GetField(ID3FN_TEXT)->Set("ID3Lib is very cool!");  
.
More...


size_t Get (char *, size_t) const
 Copies the contents of the field into the supplied buffer, up to the number of characters specified; for fields with multiple entries, the optional third parameter indicates which of the fields to retrieve. More...

size_t Get (char *, size_t, index_t) const
const char* GetRawText () const
const char* GetRawTextItem (index_t) const
size_t Add (const char *data)
dami::String GetText () const
dami::String GetTextItem (index_t) const
size_t SetText (dami::String)
size_t AddText (dami::String)
ID3_Fieldoperator= (const unicode_t *s)
 Shortcut for the Set operator. Performs similarly as operator=(const char *), taking a unicode_t string as a parameter rather than an ascii string. More...

size_t Set (const unicode_t *)
 Copies the supplied unicode string to the field. More...

size_t Get (unicode_t *buffer, size_t) const
 Copies the contents of the field into the supplied buffer, up to the number of characters specified; for fields with multiple entries, the optional third parameter indicates which of the fields to retrieve. More...

size_t Get (unicode_t *buffer, size_t, index_t) const
size_t Add (const unicode_t *)
const unicode_tGetRawUnicodeText () const
const unicode_tGetRawUnicodeTextItem (index_t) const
size_t Set (const uchar *buf, size_t size)
size_t Set (const char *buf, size_t size)
size_t Get (uchar *, size_t) const
 Copies the field's internal string to the buffer. More...

const ucharGetRawBinary () const
void FromFile (const char *)
 Copies binary data from the file specified to the field. More...

void ToFile (const char *sInfo) const
 Copies binary data from the field to the specified file. More...

size_t SetBinary (dami::BString)
 Copies the supplied unicode string to the field. More...

dami::BString GetBinary () const
ID3_Fieldoperator= (const ID3_Field &)
bool InScope (ID3_V2Spec spec) const
ID3_FieldID GetID () const
ID3_FieldType GetType () const
bool SetEncoding (ID3_TextEnc enc)
ID3_TextEnc GetEncoding () const
bool IsEncodable () const
void Render (ID3_Writer &) const
bool Parse (ID3_Reader &)
bool HasChanged () const

Protected Methods

void RenderInteger (ID3_Writer &) const
void RenderText (ID3_Writer &) const
void RenderBinary (ID3_Writer &) const
bool ParseInteger (ID3_Reader &)
bool ParseText (ID3_Reader &)
bool ParseBinary (ID3_Reader &)

Constructor & Destructor Documentation

ID3_FieldImpl::~ID3_FieldImpl ( )
 

Definition at line 919 of file field.cpp.


Member Function Documentation

size_t ID3_FieldImpl::Add ( const unicode_t * data ) [virtual]
 

Parameters:
data  

Reimplemented from ID3_Field.

Definition at line 69 of file field_string_unicode.cpp.

size_t ID3_FieldImpl::Add ( const char * data ) [virtual]
 

Parameters:
data  

Reimplemented from ID3_Field.

Definition at line 259 of file field_string_ascii.cpp.

size_t ID3_FieldImpl::AddText ( String data )
 

Parameters:
data  

Definition at line 249 of file field_string_ascii.cpp.

Referenced by ParseText().

size_t ID3_FieldImpl::BinSize ( ) const [virtual]
 

Reimplemented from ID3_Field.

Definition at line 997 of file field.cpp.

void ID3_FieldImpl::Clear ( ) [virtual]
 

Clears any data and frees any memory associated with the field.

See also:
ID3_Tag::Clear() , ID3_Frame::Clear()

Reimplemented from ID3_Field.

Definition at line 928 of file field.cpp.

Referenced by ParseInteger(), ParseText(), and SetInteger().

void ID3_FieldImpl::FromFile ( const char * info ) [virtual]
 

Copies binary data from the file specified to the field.

   myFrame.GetField(ID3FN_DATA)->FromFile("mypic.jpg");
Parameters:
info  

Reimplemented from ID3_Field.

Definition at line 141 of file field_binary.cpp.

size_t ID3_FieldImpl::Get ( uchar * buffer,
size_t max_bytes ) const [virtual]
 

Copies the field's internal string to the buffer.

It copies the data in the field into the buffer, for as many bytes as the field contains, or the size of buffer, whichever is smaller.

   uchar buffer[1024];
   myFrame.GetField(ID3FN_DATA)->Get(buffer, sizeof(buffer));
Parameters:
buffer  
max_bytes  

Reimplemented from ID3_Field.

Definition at line 118 of file field_binary.cpp.

size_t ID3_FieldImpl::Get ( unicode_t * buffer,
size_t maxLength,
index_t itemNum ) const [virtual]
 

Parameters:
buffer  
maxLength  
itemNum  

Reimplemented from ID3_Field.

Definition at line 147 of file field_string_unicode.cpp.

size_t ID3_FieldImpl::Get ( unicode_t * buffer,
size_t maxLength ) const [virtual]
 

Copies the contents of the field into the supplied buffer, up to the number of characters specified; for fields with multiple entries, the optional third parameter indicates which of the fields to retrieve.

Performs similarly as the ASCII Get(char *, size_t, index_t) method, taking a unicode_t string as a parameter rather than an ascii string. The maxChars parameter still represents the maximum number of characters, not bytes.

   unicode_t myBuffer[1024];
   size_t charsUsed = myFrame.GetField(ID3FN_UNICODE)->Get(buffer, 1024);
Parameters:
buffer   Where the field's data is copied to
maxChars   The maximum number of characters to copy to the buffer.
itemNum   For fields with multiple items (such as the involved people frame, the item number to retrieve.
See also:
Get(char *, size_t, index_t)
Parameters:
buffer  
maxLength  

Reimplemented from ID3_Field.

Definition at line 101 of file field_string_unicode.cpp.

size_t ID3_FieldImpl::Get ( char * buf,
size_t maxLen,
index_t index ) const [virtual]
 

Parameters:
buf  
maxLen  
index  

Reimplemented from ID3_Field.

Definition at line 115 of file field_string_ascii.cpp.

size_t ID3_FieldImpl::Get ( char * buffer,
size_t maxLength ) const [virtual]
 

Copies the contents of the field into the supplied buffer, up to the number of characters specified; for fields with multiple entries, the optional third parameter indicates which of the fields to retrieve.

The third parameter is useful when using text lists (see Add(const char*) for more details). The default value for this third parameter is 1, which returns the entire string if the field contains only one item.

It returns the number of characters (not bytes necessarily, and not including any NULL terminator) of the supplied buffer that are now used.

   char myBuffer[1024];
   size_t charsUsed = myFrame.GetField(ID3FN_TEXT)->Get(buffer, 1024);

It fills the buffer with as much data from the field as is present in the field, or as large as the buffer, whichever is smaller.

   char myBuffer[1024];
   size_t charsUsed = myFrame.GetField(ID3FN_TEXT)->Get(buffer, 1024, 3);

This fills the buffer with up to the first 1024 characters from the third element of the text list.

See also:
Add(const char*)
Parameters:
buffer  
maxLength  

Reimplemented from ID3_Field.

Definition at line 96 of file field_string_ascii.cpp.

uint32 ID3_FieldImpl::Get ( ) const [virtual]
 

Returns the value of the integer field.

   uint32 picType = myFrame.GetField(ID3FN_PICTURETYPE)->Get();

Returns:
The value of the integer field

Reimplemented from ID3_Field.

Definition at line 77 of file field_integer.cpp.

dami::BString ID3_FieldImpl::GetBinary ( ) const
 

Definition at line 86 of file field_binary.cpp.

Referenced by operator=().

ID3_TextEnc ID3_FieldImpl::GetEncoding ( ) const [inline, virtual]
 

Reimplemented from ID3_Field.

Definition at line 105 of file field_impl.h.

Referenced by Add(), BinSize(), Clear(), Get(), GetRawText(), GetRawTextItem(), GetRawUnicodeText(), GetRawUnicodeTextItem(), GetTextItem(), ParseText(), RenderText(), Set(), SetEncoding(), and operator=().

ID3_FieldID ID3_FieldImpl::GetID ( ) const [inline, virtual]
 

Reimplemented from ID3_Field.

Definition at line 102 of file field_impl.h.

uint32 ID3_FieldImpl::GetInteger ( ) const
 

Definition at line 82 of file field_integer.cpp.

Referenced by Get(), and operator=().

size_t ID3_FieldImpl::GetNumTextItems ( ) const [virtual]
 

Returns the number of items in a text list.

   size_t numItems = myFrame.GetField(ID3FN_UNICODE)->GetNumItems();

Returns:
The number of items in a text list.

Reimplemented from ID3_Field.

Definition at line 408 of file field_string_ascii.cpp.

Referenced by Get(), GetRawTextItem(), and GetRawUnicodeTextItem().

const uchar * ID3_FieldImpl::GetRawBinary ( ) const [virtual]
 

Reimplemented from ID3_Field.

Definition at line 97 of file field_binary.cpp.

const char * ID3_FieldImpl::GetRawText ( ) const [virtual]
 

Reimplemented from ID3_Field.

Definition at line 270 of file field_string_ascii.cpp.

const char * ID3_FieldImpl::GetRawTextItem ( index_t index ) const [virtual]
 

Parameters:
index  

Reimplemented from ID3_Field.

Definition at line 281 of file field_string_ascii.cpp.

Referenced by GetTextItem().

const unicode_t * ID3_FieldImpl::GetRawUnicodeText ( ) const [virtual]
 

Reimplemented from ID3_Field.

Definition at line 119 of file field_string_unicode.cpp.

const unicode_t * ID3_FieldImpl::GetRawUnicodeTextItem ( index_t index ) const [virtual]
 

Parameters:
index  

Reimplemented from ID3_Field.

Definition at line 130 of file field_string_unicode.cpp.

Referenced by Get().

String ID3_FieldImpl::GetText ( ) const
 

Definition at line 133 of file field_string_ascii.cpp.

Referenced by Get(), and operator=().

String ID3_FieldImpl::GetTextItem ( index_t index ) const
 

Parameters:
index  

Definition at line 143 of file field_string_ascii.cpp.

Referenced by Get().

ID3_FieldType ID3_FieldImpl::GetType ( ) const [inline, virtual]
 

Reimplemented from ID3_Field.

Definition at line 103 of file field_impl.h.

Referenced by Add(), AddText(), FromFile(), Get(), GetBinary(), GetInteger(), GetRawBinary(), GetRawText(), GetRawTextItem(), GetRawUnicodeText(), GetRawUnicodeTextItem(), GetText(), GetTextItem(), Parse(), Render(), Set(), SetInteger(), SetText(), ToFile(), and operator=().

bool ID3_FieldImpl::HasChanged ( ) const [virtual]
 

Reimplemented from ID3_Field.

Definition at line 973 of file field.cpp.

bool ID3_FieldImpl::InScope ( ID3_V2Spec spec ) const [inline, virtual]
 

Parameters:
spec  

Reimplemented from ID3_Field.

Definition at line 99 of file field_impl.h.

bool ID3_FieldImpl::IsEncodable ( ) const [inline, virtual]
 

Reimplemented from ID3_Field.

Definition at line 106 of file field_impl.h.

Referenced by SetEncoding().

bool ID3_FieldImpl::Parse ( ID3_Reader & reader ) [virtual]
 

Parameters:
reader  

Reimplemented from ID3_Field.

Definition at line 1048 of file field.cpp.

bool ID3_FieldImpl::ParseBinary ( ID3_Reader & reader ) [protected]
 

Parameters:
reader  

Definition at line 200 of file field_binary.cpp.

Referenced by Parse().

bool ID3_FieldImpl::ParseInteger ( ID3_Reader & reader ) [protected]
 

Parameters:
reader  

Definition at line 92 of file field_integer.cpp.

Referenced by Parse().

bool ID3_FieldImpl::ParseText ( ID3_Reader & reader ) [protected]
 

Parameters:
reader  

Definition at line 336 of file field_string_ascii.cpp.

Referenced by Parse().

void ID3_FieldImpl::Render ( ID3_Writer & writer ) const [virtual]
 

Parameters:
writer  

Reimplemented from ID3_Field.

Definition at line 1116 of file field.cpp.

void ID3_FieldImpl::RenderBinary ( ID3_Writer & writer ) const [protected]
 

Parameters:
writer  

Definition at line 208 of file field_binary.cpp.

Referenced by Render().

void ID3_FieldImpl::RenderInteger ( ID3_Writer & writer ) const [protected]
 

Parameters:
writer  

Definition at line 110 of file field_integer.cpp.

Referenced by Render().

void ID3_FieldImpl::RenderText ( ID3_Writer & writer ) const [protected]
 

Parameters:
writer  

Definition at line 385 of file field_string_ascii.cpp.

Referenced by Render().

size_t ID3_FieldImpl::Set ( const char * buf,
size_t size ) [inline]
 

Parameters:
buf  
size  

Definition at line 85 of file field_impl.h.

size_t ID3_FieldImpl::Set ( const uchar * buf,
size_t size ) [virtual]
 

Parameters:
buf  
size  

Reimplemented from ID3_Field.

Definition at line 44 of file field_binary.cpp.

size_t ID3_FieldImpl::Set ( const unicode_t * data ) [virtual]
 

Copies the supplied unicode string to the field.

Performs similarly as the ASCII Set() method, taking a unicode_t string as a parameter rather than an ascii string.

Parameters:
string   The unicode string to set this field to.
See also:
Add(const unicode_t*)
Parameters:
data  

Reimplemented from ID3_Field.

Definition at line 57 of file field_string_unicode.cpp.

size_t ID3_FieldImpl::Set ( const char * data ) [virtual]
 

Copies the supplied string to the field. You may dispose of the source string after a call to this method.

myFrame.GetField(ID3FN_TEXT)->Set("ID3Lib is very cool!");  
.

Parameters:
data  

Reimplemented from ID3_Field.

Definition at line 54 of file field_string_ascii.cpp.

void ID3_FieldImpl::Set ( uint32 val ) [virtual]
 

Sets the value of the field to the specified integer.

Parameters:
data   The data to assign to this field
Parameters:
val  

Reimplemented from ID3_Field.

Definition at line 52 of file field_integer.cpp.

Referenced by FromFile(), and ParseInteger().

size_t ID3_FieldImpl::SetBinary ( BString data )
 

Copies the supplied unicode string to the field.

Again, like the string types, the binary Set() function copies the data so you may dispose of the source data after a call to this method.

Parameters:
data  

Definition at line 60 of file field_binary.cpp.

Referenced by operator=().

bool ID3_FieldImpl::SetEncoding ( ID3_TextEnc enc ) [virtual]
 

Parameters:
enc  

Reimplemented from ID3_Field.

Definition at line 1179 of file field.cpp.

Referenced by operator=().

void ID3_FieldImpl::SetInteger ( uint32 val )
 

Parameters:
val  

Definition at line 57 of file field_integer.cpp.

Referenced by Set(), and operator=().

size_t ID3_FieldImpl::SetText ( String data )
 

Parameters:
data  

Definition at line 198 of file field_string_ascii.cpp.

Referenced by ParseText(), and operator=().

size_t ID3_FieldImpl::Size ( ) const [virtual]
 

Returns the size of a field.

The value returned is dependent on the type of the field. For ASCII strings, this returns the number of characters in the field, not including any NULL-terminator. The same holds true for Unicode---it returns the number of characters in the field, not bytes, and this does not include the Unicode BOM, which isn't put in a Unicode string obtained by the Get(unicode_t*, size_t, index_t) method anyway. For binary and integer fields, this returns the number of bytes in the field.

   size_t howBig = myFrame.GetField(ID3FN_DATA)->Size();

Returns:
The size of the field, either in bytes (for binary or integer fields) or characters (for strings).

Reimplemented from ID3_Field.

Definition at line 1023 of file field.cpp.

Referenced by BinSize(), Get(), ParseInteger(), ParseText(), RenderBinary(), and ToFile().

void ID3_FieldImpl::ToFile ( const char * sInfo ) const [virtual]
 

Copies binary data from the field to the specified file.

   myFrame.GetField(ID3FN_DATA)->ToFile("output.bin");
Parameters:
sInfo  

Reimplemented from ID3_Field.

Definition at line 177 of file field_binary.cpp.

ID3_Field & ID3_FieldImpl::operator= ( const ID3_Field & rhs ) [virtual]
 

Parameters:
rhs  

Reimplemented from ID3_Field.

Definition at line 1147 of file field.cpp.

ID3_Field & ID3_FieldImpl::operator= ( const unicode_t * s ) [inline, virtual]
 

Shortcut for the Set operator. Performs similarly as operator=(const char *), taking a unicode_t string as a parameter rather than an ascii string.

See also:
Set(const unicode_t*)
Parameters:
string   The string to assign to the field
Parameters:
s  

Reimplemented from ID3_Field.

Definition at line 75 of file field_impl.h.

ID3_Field & ID3_FieldImpl::operator= ( const char * s ) [inline, virtual]
 

Shortcut for the Set operator.

Parameters:
data   The string to assign to this field
See also:
Set(const char*)
Parameters:
s  

Reimplemented from ID3_Field.

Definition at line 61 of file field_impl.h.

ID3_Field & ID3_FieldImpl::operator= ( uint32 val ) [inline, virtual]
 

A shortcut for the Set method.

   myFrame.GetField(ID3FN_PICTURETYPE)->= 0x0B;
Parameters:
val   The data to assign to this field
See also:
Set(uint32)
Parameters:
val  

Reimplemented from ID3_Field.

Definition at line 53 of file field_impl.h.


Friends And Related Function Documentation

class ID3_FrameImpl [friend]
 

Definition at line 42 of file field_impl.h.


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