]> granicus.if.org Git - taglib/commitdiff
Now working for replacing an existing riff chunk.
authorScott Wheeler <wheeler@kde.org>
Fri, 16 May 2008 06:22:36 +0000 (06:22 +0000)
committerScott Wheeler <wheeler@kde.org>
Fri, 16 May 2008 06:22:36 +0000 (06:22 +0000)
git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib@808240 283d02a7-25f6-0310-bc7c-ecb5cbfe19da

taglib/riff/aiff/aifffile.cpp
taglib/riff/rifffile.cpp

index cec725f5d07f27ba695e13101e83b47e1964704e..2f2498b4102eb4ac91714461a2d41a0ebe445a5e 100644 (file)
@@ -86,6 +86,8 @@ bool RIFF::AIFF::File::save()
     return false;
   }
 
+  setChunkData("ID3 ", d->tag->render());
+
   return true;
 }
 
index ce8d118e2e2de3d37f316cbfdbafe669a2cd1ae5..08227d877cb4a9168ef299697a4a13c95c6ebe4e 100644 (file)
@@ -127,7 +127,7 @@ void RIFF::File::setChunkData(const ByteVector &name, const ByteVector &data)
 
       // Now update the specific chunk
 
-      writeChunk(name, data, d->chunkOffsets[i] - 8, d->chunkOffsets[i] + 8);
+      writeChunk(name, data, d->chunkOffsets[i] - 8, d->chunkSizes[i] + 8);
 
       // Now update the internal offsets
 
@@ -169,8 +169,10 @@ void RIFF::File::read()
 void RIFF::File::writeChunk(const ByteVector &name, const ByteVector &data,
                             ulong offset, ulong replace)
 {
-  ByteVector value = name;
-  value.append(ByteVector::fromUInt(data.size(), d->endianness == BigEndian));
-  value.append(data);
-  insert(data, offset, replace);
+  debug("Writting chunk at " + String::number(offset));
+
+  ByteVector combined = name;
+  combined.append(ByteVector::fromUInt(data.size(), d->endianness == BigEndian));
+  combined.append(data);
+  insert(combined, offset, replace);
 }