29 const QByteArray &format, quint32 length,
30 quint32 phys_offset, quint32 phys_length)
31 :m_type(Sub), m_name(name), m_format(format), m_parent(parent),
32 m_chunk_length(length), m_phys_offset(phys_offset),
33 m_phys_length(phys_length), m_sub_chunks()
42 if (chunk)
delete chunk;
48 #define CHECK(x) if (x) return false; 60 qWarning(
"%s: physical length is not an even number: %u",
68 qWarning(
"%s: dataLength=%u, phys_length=%u",
74 if (chunk && !chunk->
isSane())
return false;
82 if (m_phys_length) --end;
98 unsigned int before = 0;
99 unsigned int after = 0;
101 while (it.hasNext()) {
103 if (!chunk)
continue;
104 if (chunk ==
this)
break;
110 if ((chunk ==
this) && (it.hasNext())) chunk = it.next();
111 while ((chunk !=
this) && (it.hasNext())) {
113 if (!chunk)
continue;
119 if (before + after != 0) {
121 index.setNum(before);
122 p +=
'(' + index +
')';
171 if (!chunk)
continue;
176 qDebug(
"%s: setting size from %u to %u",
193 qDebug(
"%s: resizing chunk from %u to %u",
206 const char *t =
"?unknown?";
208 case Root: t =
"ROOT";
break;
209 case Main: t =
"MAIN";
break;
210 case Sub: t =
"SUB";
break;
211 case Garbage: t =
"GARBAGE";
break;
212 case Empty: t =
"EMPTY";
break;
216 qDebug(
"[0x%08X-0x%08X] (%10u/%10u) %7s, '%s'",
Kwave::RIFFChunkList m_sub_chunks
quint32 physStart() const
quint32 physLength() const
const QByteArray path() const
quint32 dataStart() const
quint32 dataLength() const
Kwave::RIFFChunkList & subChunks()
bool isChildOf(Kwave::RIFFChunk *chunk)
Kwave::RIFFChunk * m_parent
RIFFChunk(Kwave::RIFFChunk *parent, const QByteArray &name, const QByteArray &format, quint32 length, quint32 phys_offset, quint32 phys_length)
const QByteArray & name() const
const QByteArray & format() const
void setLength(quint32 length)