36 #if defined HAVE_SYS_PARAM_H 37 #include <sys/param.h> 51 size_t track = id3::v2::getTrackNum(tag);
52 String comment = id3::v2::getV1Comment(tag);
63 writer.
writeChar((
char) id3::v2::getGenreNum(tag));
73 if (frame) frame->Render(writer);
83 ID3D_WARNING(
"id3::v2::render(): no frames to render" );
87 ID3D_NOTICE(
"id3::v2::render(): rendering" );
101 ID3D_NOTICE(
"id3::v2::render(): rendering frames" );
102 renderFrames(frmWriter, tag);
107 ID3D_NOTICE(
"id3::v2::render(): rendering unsynced frames" );
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)
142 if (this->NumFrames() == 0)
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;
168 if (this->GetUnsync())
170 bytesUsed += bytesUsed / 3;
173 bytesUsed += this->PaddingSize(bytesUsed);
188 #define ID3_PADMULTIPLE (2048) 189 #define ID3_PADMAX (4096) 222 newSize = tempSize -
ID3_GetDataSize(*
this) - this->GetAppendedBytes () -
226 return newSize - curSize;
size_t GetExtendedBytes() 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.
static const int_type END_OF_WRITER
size_type getNumSyncs() const
size_t ID3_GetDataSize(const ID3_TagImpl &tag)
void render(ID3_Writer &writer, const ID3_TagImpl &tag)
size_t PaddingSize(size_t) const
bool GetExperimental() const
void render(ID3_Writer &, const ID3_TagImpl &)
void flush()
Flush the writer.
ID3_C_EXPORT size_t writeTrailingSpaces(ID3_Writer &, String, size_t)
void RenderExtHeader(uchar *)
ID3_V2Spec GetSpec() const
The representative class of an id3v2 frame.
Frames::const_iterator const_iterator
virtual int_type writeChar(char_type ch)
Write a single character and advance the internal position.