ID3_TagHeader Class Reference

#include <header_tag.h>

Inheritance diagram for ID3_TagHeader:

ID3_Header List of all members.

Public Types

enum  { HEADER_FLAG_UNSYNC = 1 << 7, HEADER_FLAG_EXTENDED = 1 << 6, HEADER_FLAG_EXPERIMENTAL = 1 << 5, HEADER_FLAG_FOOTER = 1 << 4 }
enum  { EXT_HEADER_FLAG_BIT1 = 1 << 7, EXT_HEADER_FLAG_BIT2 = 1 << 6, EXT_HEADER_FLAG_BIT3 = 1 << 5, EXT_HEADER_FLAG_BIT4 = 1 << 4 }
enum  {
  ID_SIZE = 3, MAJOR_OFFSET = 3, MINOR_OFFSET = 4, FLAGS_OFFSET = 5,
  SIZE_OFFSET = 6, SIZE = 10
}

Public Member Functions

 ID3_TagHeader ()
virtual ~ID3_TagHeader ()
 ID3_TagHeader (const ID3_TagHeader &rhs)
bool SetSpec (ID3_V2Spec)
size_t Size () const
void Render (ID3_Writer &) const
bool Parse (ID3_Reader &)
void ParseExtended (ID3_Reader &)
ID3_TagHeaderoperator= (const ID3_TagHeader &hdr)
bool SetUnsync (bool b)
bool GetUnsync () const
bool SetExtended (bool b)
bool GetExtended () const
bool SetExperimental (bool b)
bool GetExperimental () const
bool SetFooter (bool b)
bool GetFooter () const

Static Public Attributes

static const char *const ID = "ID3"

Detailed Description

Definition at line 34 of file header_tag.h.


Member Enumeration Documentation

anonymous enum

Enumerator:
HEADER_FLAG_UNSYNC 
HEADER_FLAG_EXTENDED 
HEADER_FLAG_EXPERIMENTAL 
HEADER_FLAG_FOOTER 

Definition at line 38 of file header_tag.h.

anonymous enum

Enumerator:
EXT_HEADER_FLAG_BIT1 
EXT_HEADER_FLAG_BIT2 
EXT_HEADER_FLAG_BIT3 
EXT_HEADER_FLAG_BIT4 

Definition at line 46 of file header_tag.h.

anonymous enum

Enumerator:
ID_SIZE 
MAJOR_OFFSET 
MINOR_OFFSET 
FLAGS_OFFSET 
SIZE_OFFSET 
SIZE 

Definition at line 101 of file header_tag.h.


Constructor & Destructor Documentation

ID3_TagHeader::ID3_TagHeader (  )  [inline]

Definition at line 54 of file header_tag.h.

virtual ID3_TagHeader::~ID3_TagHeader (  )  [inline, virtual]

Definition at line 55 of file header_tag.h.

ID3_TagHeader::ID3_TagHeader ( const ID3_TagHeader rhs  )  [inline]

Definition at line 56 of file header_tag.h.


Member Function Documentation

bool ID3_TagHeader::SetSpec ( ID3_V2Spec   )  [virtual]

Reimplemented from ID3_Header.

Definition at line 39 of file header_tag.cpp.

References ID3_Header::_flags, ID3_Header::_info, HEADER_FLAG_EXPERIMENTAL, HEADER_FLAG_EXTENDED, ID3_Flags::set(), and ID3_Header::SetSpec().

Referenced by ID3_TagImpl::Clear(), Parse(), dami::id3::v2::render(), ID3_TagImpl::SetSpec(), and ID3_TagImpl::Size().

size_t ID3_TagHeader::Size (  )  const [virtual]

Implements ID3_Header.

Definition at line 53 of file header_tag.cpp.

References ID3_Header::_info, ID3_Header::Info::extended_bytes, ID3_Header::Info::is_extended, and SIZE.

Referenced by ID3_TagImpl::Size().

void ID3_TagHeader::Render ( ID3_Writer  )  const [virtual]

Implements ID3_Header.

Definition at line 66 of file header_tag.cpp.

References ID3_Header::_flags, ID3_Writer::END_OF_WRITER, ID3_Flags::get(), HEADER_FLAG_EXTENDED, ID, ID3_V2SpecToRev(), ID3_V2SpecToVer(), ID3V2_3_0, ID3V2_4_0, ID3V2_LATEST, MASK8, ID3_Flags::test(), ID3_Writer::writeChar(), and ID3_Writer::writeChars().

Referenced by dami::id3::v2::render().

bool ID3_TagHeader::Parse ( ID3_Reader  )  [virtual]

Implements ID3_Header.

Definition at line 101 of file header_tag.cpp.

References ID3_Header::_flags, ID3_Header::_info, ID3_Header::Info::extended_bytes, ID3_Header::GetSpec(), HEADER_FLAG_EXTENDED, ID3_VerRevToV2Spec(), ID3V2_2_1, ID3_Tag::IsV2Tag(), ID3_Flags::set(), ID3_Header::SetDataSize(), SetSpec(), and ID3_Flags::test().

Referenced by dami::id3::v2::parse().

void ID3_TagHeader::ParseExtended ( ID3_Reader  ) 

Definition at line 134 of file header_tag.cpp.

References ID3_Header::_data_size, ID3_Header::_flags, ID3_Header::_info, EXT_HEADER_FLAG_BIT2, EXT_HEADER_FLAG_BIT3, EXT_HEADER_FLAG_BIT4, ID3_Header::Info::extended_bytes, ID3_Reader::getCur(), HEADER_FLAG_EXTENDED, ID3V2_3_0, ID3V2_4_0, ID3_Reader::readChar(), ID3_Flags::set(), and ID3_Reader::setCur().

Referenced by dami::id3::v2::parse().

ID3_TagHeader& ID3_TagHeader::operator= ( const ID3_TagHeader hdr  )  [inline]

Definition at line 63 of file header_tag.h.

References ID3_Header::operator=().

bool ID3_TagHeader::SetUnsync ( bool  b  )  [inline]

Definition at line 66 of file header_tag.h.

References ID3_Header::_changed, ID3_Header::_flags, HEADER_FLAG_UNSYNC, and ID3_Flags::set().

Referenced by dami::id3::v2::render(), and ID3_TagImpl::SetUnsync().

bool ID3_TagHeader::GetUnsync (  )  const [inline]

Definition at line 72 of file header_tag.h.

References ID3_Header::_flags, HEADER_FLAG_UNSYNC, and ID3_Flags::test().

Referenced by ID3_TagImpl::GetUnsync(), and dami::id3::v2::parse().

bool ID3_TagHeader::SetExtended ( bool  b  )  [inline]

Definition at line 73 of file header_tag.h.

References ID3_Header::_changed, ID3_Header::_flags, HEADER_FLAG_EXTENDED, and ID3_Flags::set().

Referenced by dami::id3::v2::render(), and ID3_TagImpl::SetExtended().

bool ID3_TagHeader::GetExtended (  )  const [inline]

Definition at line 79 of file header_tag.h.

References ID3_Header::_flags, HEADER_FLAG_EXTENDED, and ID3_Flags::test().

Referenced by ID3_TagImpl::GetExtended(), and dami::id3::v2::parse().

bool ID3_TagHeader::SetExperimental ( bool  b  )  [inline]

Definition at line 80 of file header_tag.h.

References ID3_Header::_changed, ID3_Header::_flags, HEADER_FLAG_EXPERIMENTAL, and ID3_Flags::set().

Referenced by dami::id3::v2::render(), and ID3_TagImpl::SetExperimental().

bool ID3_TagHeader::GetExperimental (  )  const [inline]

Definition at line 86 of file header_tag.h.

References ID3_Header::_flags, HEADER_FLAG_EXPERIMENTAL, and ID3_Flags::test().

Referenced by ID3_TagImpl::GetExperimental().

bool ID3_TagHeader::SetFooter ( bool  b  )  [inline]

Definition at line 87 of file header_tag.h.

References ID3_Header::_changed, ID3_Header::_flags, HEADER_FLAG_FOOTER, and ID3_Flags::set().

Referenced by dami::id3::v2::render().

bool ID3_TagHeader::GetFooter (  )  const [inline]

Definition at line 93 of file header_tag.h.

References ID3_Header::_flags, HEADER_FLAG_FOOTER, and ID3_Flags::test().

Referenced by ID3_TagImpl::GetFooter().


Member Data Documentation

const char *const ID3_TagHeader::ID = "ID3" [static]

Definition at line 100 of file header_tag.h.

Referenced by ID3_TagImpl::IsV2Tag(), and Render().


The documentation for this class was generated from the following files:
Generated on Mon Aug 20 17:48:46 2007 for id3lib by  doxygen 1.5.2