32#include "id3/io_decorators.h"
33#include "io_helpers.h"
34#include "io_strings.h"
36#if defined HAVE_SYS_PARAM_H
73 if (frame) frame->Render(writer);
83 ID3D_WARNING(
"id3::v2::render(): no frames to render" );
87 ID3D_NOTICE(
"id3::v2::render(): rendering" );
98 io::StringWriter frmWriter(frms);
101 ID3D_NOTICE(
"id3::v2::render(): rendering frames" );
102 renderFrames(frmWriter, tag);
107 ID3D_NOTICE(
"id3::v2::render(): rendering unsynced frames" );
108 io::UnsyncedWriter uw(frmWriter);
109 renderFrames(uw, tag);
111 ID3D_NOTICE(
"id3::v2::render(): numsyncs = " << uw.getNumSyncs() );
114 size_t frmSize = frms.size();
117 ID3D_WARNING(
"id3::v2::render(): rendered frame size is 0 bytes" );
123 ID3D_NOTICE(
"id3::v2::render(): padding size = " << nPadding );
131 for (
size_t i = 0; i < nPadding; ++i)
149 size_t bytesUsed = hdr.
Size();
151 size_t frameBytes = 0;
152 for (
const_iterator cur = _frames.begin(); cur != _frames.end(); ++cur)
156 (*cur)->SetSpec(this->
GetSpec());
157 frameBytes += (*cur)->Size();
166 bytesUsed += frameBytes;
170 bytesUsed += bytesUsed / 3;
188#define ID3_PADMULTIPLE (2048)
189#define ID3_PADMAX (4096)
226 return newSize - curSize;
The representative class of an id3v2 frame.
size_t GetAppendedBytes() const
size_t GetExtendedBytes() const
size_t PaddingSize(size_t) const
bool GetExperimental() const
size_t GetPrependedBytes() const
Frames::const_iterator const_iterator
void RenderExtHeader(uchar *)
ID3_V2Spec GetSpec() const
virtual size_type writeChars(const char_type buf[], size_type len)=0
Write up to len characters into buf and advance the internal position accordingly.
virtual int_type writeChar(char_type ch)
Write a single character and advance the internal position.
static const int_type END_OF_WRITER
void render(ID3_Writer &, const ID3_TagImpl &)
ID3_C_EXPORT String getArtist(const ID3_TagImpl &)
ID3_C_EXPORT size_t getGenreNum(const ID3_TagImpl &)
ID3_C_EXPORT String getTitle(const ID3_TagImpl &)
ID3_C_EXPORT String getAlbum(const ID3_TagImpl &)
ID3_C_EXPORT String getV1Comment(const ID3_TagImpl &)
void render(ID3_Writer &writer, const ID3_TagImpl &tag)
ID3_C_EXPORT String getYear(const ID3_TagImpl &)
ID3_C_EXPORT size_t getTrackNum(const ID3_TagImpl &)
size_t ID3_GetDataSize(const ID3_TagImpl &)