id3lib 3.8.3
Public Member Functions | Protected Member Functions | Friends | List of all members
ID3_FieldImpl Class Reference

#include <field_impl.h>

Inheritance diagram for ID3_FieldImpl:
ID3_Field

Public Member Functions

 ~ID3_FieldImpl ()
 
void Clear ()
 Clears any data and frees any memory associated with the field.
 
size_t Size () const
 Returns the size of a field.
 
size_t BinSize () const
 
size_t GetNumTextItems () const
 Returns the number of items in a text list.
 
ID3_Fieldoperator= (uint32 val)
 A shortcut for the Set method.
 
void Set (uint32)
 Sets the value of the field to the specified integer.
 
uint32 Get () const
 Returns the value of the integer field.
 
void SetInteger (uint32)
 
uint32 GetInteger () const
 
ID3_Fieldoperator= (const char *s)
 Shortcut for the Set operator.
 
size_t Set (const char *data)
 Copies the supplied string to the field.
 
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.
 
size_t Get (char *, size_t, size_t) const
 
const char * GetRawText () const
 
const char * GetRawTextItem (size_t) const
 
size_t Add (const char *data)
 
dami::String GetText () const
 
dami::String GetTextItem (size_t) const
 
size_t SetText (dami::String)
 
size_t AddText (dami::String)
 
ID3_Fieldoperator= (const unicode_t *s)
 Shortcut for the Set operator.
 
size_t Set (const unicode_t *)
 Copies the supplied unicode string to the field.
 
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.
 
size_t Get (unicode_t *buffer, size_t, size_t) const
 
size_t Add (const unicode_t *)
 
const unicode_tGetRawUnicodeText () const
 
const unicode_tGetRawUnicodeTextItem (size_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.
 
const ucharGetRawBinary () const
 
void FromFile (const char *)
 Copies binary data from the file specified to the field.
 
void ToFile (const char *sInfo) const
 Copies binary data from the field to the specified file.
 
size_t SetBinary (dami::BString)
 Copies the supplied unicode string to the field.
 
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 Member Functions

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 &)
 
- Protected Member Functions inherited from ID3_Field
virtual ~ID3_Field ()
 
 ID3_Field ()
 

Friends

class ID3_FrameImpl
 

Detailed Description

Definition at line 40 of file field_impl.h.

Constructor & Destructor Documentation

◆ ~ID3_FieldImpl()

ID3_FieldImpl::~ID3_FieldImpl ( )

Definition at line 914 of file field.cpp.

Member Function Documentation

◆ Add() [1/2]

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

Implements ID3_Field.

Definition at line 250 of file field_string_ascii.cpp.

◆ Add() [2/2]

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

Implements ID3_Field.

Definition at line 61 of file field_string_unicode.cpp.

◆ AddText()

size_t ID3_FieldImpl::AddText ( dami::String )

Definition at line 240 of file field_string_ascii.cpp.

◆ BinSize()

size_t ID3_FieldImpl::BinSize ( ) const
virtual

Implements ID3_Field.

Definition at line 992 of file field.cpp.

◆ Clear()

void ID3_FieldImpl::Clear ( )
virtual

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

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

Implements ID3_Field.

Definition at line 923 of file field.cpp.

◆ FromFile()

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");
@ ID3FN_DATA
Data field.
Definition globals.h:203

Implements ID3_Field.

Definition at line 136 of file field_binary.cpp.

◆ Get() [1/6]

uint32 ID3_FieldImpl::Get ( ) const
virtual

Returns the value of the integer field.

uint32 picType = myFrame.GetField(ID3FN_PICTURETYPE)->Get();
@ ID3FN_PICTURETYPE
Picture type field.
Definition globals.h:210
Returns
The value of the integer field

Implements ID3_Field.

Definition at line 72 of file field_integer.cpp.

◆ Get() [2/6]

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);
@ ID3FN_TEXT
Text field.
Definition globals.h:201

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*)

Implements ID3_Field.

Definition at line 87 of file field_string_ascii.cpp.

◆ Get() [3/6]

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

Implements ID3_Field.

Definition at line 106 of file field_string_ascii.cpp.

◆ Get() [4/6]

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));
unsigned char uchar
Definition globals.h:114

Implements ID3_Field.

Definition at line 113 of file field_binary.cpp.

◆ Get() [5/6]

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, size_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);
uint16 unicode_t
Definition globals.h:117
Parameters
bufferWhere the field's data is copied to
maxCharsThe maximum number of characters to copy to the buffer.
itemNumFor fields with multiple items (such as the involved people frame, the item number to retrieve.
See also
Get(char *, size_t, size_t)

Implements ID3_Field.

Definition at line 93 of file field_string_unicode.cpp.

◆ Get() [6/6]

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

Implements ID3_Field.

Definition at line 139 of file field_string_unicode.cpp.

◆ GetBinary()

BString ID3_FieldImpl::GetBinary ( ) const

Definition at line 81 of file field_binary.cpp.

◆ GetEncoding()

ID3_TextEnc ID3_FieldImpl::GetEncoding ( ) const
inlinevirtual

Implements ID3_Field.

Definition at line 105 of file field_impl.h.

◆ GetID()

ID3_FieldID ID3_FieldImpl::GetID ( ) const
inlinevirtual

Implements ID3_Field.

Definition at line 102 of file field_impl.h.

◆ GetInteger()

uint32 ID3_FieldImpl::GetInteger ( ) const

Definition at line 77 of file field_integer.cpp.

◆ GetNumTextItems()

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.

Implements ID3_Field.

Definition at line 399 of file field_string_ascii.cpp.

◆ GetRawBinary()

const uchar * ID3_FieldImpl::GetRawBinary ( ) const
virtual

Implements ID3_Field.

Definition at line 92 of file field_binary.cpp.

◆ GetRawText()

const char * ID3_FieldImpl::GetRawText ( ) const
virtual

Implements ID3_Field.

Definition at line 261 of file field_string_ascii.cpp.

◆ GetRawTextItem()

const char * ID3_FieldImpl::GetRawTextItem ( size_t index) const
virtual

Implements ID3_Field.

Definition at line 272 of file field_string_ascii.cpp.

◆ GetRawUnicodeText()

const unicode_t * ID3_FieldImpl::GetRawUnicodeText ( ) const
virtual

Implements ID3_Field.

Definition at line 111 of file field_string_unicode.cpp.

◆ GetRawUnicodeTextItem()

const unicode_t * ID3_FieldImpl::GetRawUnicodeTextItem ( size_t index) const
virtual

Implements ID3_Field.

Definition at line 122 of file field_string_unicode.cpp.

◆ GetText()

String ID3_FieldImpl::GetText ( ) const

Definition at line 124 of file field_string_ascii.cpp.

◆ GetTextItem()

String ID3_FieldImpl::GetTextItem ( size_t index) const

Definition at line 134 of file field_string_ascii.cpp.

◆ GetType()

ID3_FieldType ID3_FieldImpl::GetType ( ) const
inlinevirtual

Implements ID3_Field.

Definition at line 103 of file field_impl.h.

◆ HasChanged()

bool ID3_FieldImpl::HasChanged ( ) const
virtual

Implements ID3_Field.

Definition at line 968 of file field.cpp.

◆ InScope()

bool ID3_FieldImpl::InScope ( ID3_V2Spec spec) const
inlinevirtual

Implements ID3_Field.

Definition at line 99 of file field_impl.h.

◆ IsEncodable()

bool ID3_FieldImpl::IsEncodable ( ) const
inlinevirtual

Implements ID3_Field.

Definition at line 106 of file field_impl.h.

◆ operator=() [1/4]

ID3_Field & ID3_FieldImpl::operator= ( const char * data)
inlinevirtual

Shortcut for the Set operator.

Parameters
dataThe string to assign to this field
See also
Set(const char*)

Implements ID3_Field.

Definition at line 61 of file field_impl.h.

◆ operator=() [2/4]

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

Implements ID3_Field.

Definition at line 1143 of file field.cpp.

◆ operator=() [3/4]

ID3_Field & ID3_FieldImpl::operator= ( const unicode_t * s)
inlinevirtual

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
stringThe string to assign to the field

Implements ID3_Field.

Definition at line 75 of file field_impl.h.

◆ operator=() [4/4]

ID3_Field & ID3_FieldImpl::operator= ( uint32 val)
inlinevirtual

A shortcut for the Set method.

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

Implements ID3_Field.

Definition at line 53 of file field_impl.h.

◆ Parse()

bool ID3_FieldImpl::Parse ( ID3_Reader & reader)
virtual

Implements ID3_Field.

Definition at line 1043 of file field.cpp.

◆ ParseBinary()

bool ID3_FieldImpl::ParseBinary ( ID3_Reader & reader)
protected

Definition at line 195 of file field_binary.cpp.

◆ ParseInteger()

bool ID3_FieldImpl::ParseInteger ( ID3_Reader & reader)
protected

Definition at line 87 of file field_integer.cpp.

◆ ParseText()

bool ID3_FieldImpl::ParseText ( ID3_Reader & reader)
protected

Definition at line 327 of file field_string_ascii.cpp.

◆ Render()

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

Implements ID3_Field.

Definition at line 1112 of file field.cpp.

◆ RenderBinary()

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

Definition at line 203 of file field_binary.cpp.

◆ RenderInteger()

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

Definition at line 105 of file field_integer.cpp.

◆ RenderText()

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

Definition at line 376 of file field_string_ascii.cpp.

◆ Set() [1/5]

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

Definition at line 85 of file field_impl.h.

◆ Set() [2/5]

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!");

Implements ID3_Field.

Definition at line 45 of file field_string_ascii.cpp.

◆ Set() [3/5]

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

Implements ID3_Field.

Definition at line 39 of file field_binary.cpp.

◆ Set() [4/5]

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
stringThe unicode string to set this field to.
See also
Add(const unicode_t*)

Implements ID3_Field.

Definition at line 49 of file field_string_unicode.cpp.

◆ Set() [5/5]

void ID3_FieldImpl::Set ( uint32 val)
virtual

Sets the value of the field to the specified integer.

Parameters
dataThe data to assign to this field

Implements ID3_Field.

Definition at line 47 of file field_integer.cpp.

◆ SetBinary()

size_t ID3_FieldImpl::SetBinary ( dami::BString )

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.

Definition at line 55 of file field_binary.cpp.

◆ SetEncoding()

bool ID3_FieldImpl::SetEncoding ( ID3_TextEnc enc)
virtual

Implements ID3_Field.

Definition at line 1175 of file field.cpp.

◆ SetInteger()

void ID3_FieldImpl::SetInteger ( uint32 val)

Definition at line 52 of file field_integer.cpp.

◆ SetText()

size_t ID3_FieldImpl::SetText ( dami::String )

Definition at line 189 of file field_string_ascii.cpp.

◆ Size()

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, size_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).

Implements ID3_Field.

Definition at line 1018 of file field.cpp.

◆ ToFile()

void ID3_FieldImpl::ToFile ( const char * info) const
virtual

Copies binary data from the field to the specified file.

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

Implements ID3_Field.

Definition at line 172 of file field_binary.cpp.

Friends And Related Symbol Documentation

◆ ID3_FrameImpl

friend 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 for id3lib by doxygen 1.10.0