[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdesupport/taglib
From:       Lukáš Lalinský <lalinsky () gmail ! com>
Date:       2010-11-28 12:54:53
Message-ID: 20101128125453.4A775AC8A3 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1201717 by lalinsky:

Work-in-progress support for writing FLAC picture

This will enable the possibility to add support for accessing the Seektable
and Cuesheet blocks, but I'm not planning on implementing that right now.

CCBUG:218696


 M  +3 -0      taglib/CMakeLists.txt  
 M  +1 -0      taglib/flac/flacfile.cpp  
 A             taglib/flac/flacmetadatablock.cpp   [License: LGPL (v2.1) (wrong address)]
 A             taglib/flac/flacmetadatablock.h   [License: LGPL (v2.1) (wrong address)]
 A             taglib/flac/flacmetadatablocks.cpp   [License: LGPL (v2.1) (wrong address)]
 A             taglib/flac/flacmetadatablocks.h   [License: LGPL (v2.1) (wrong address)]
 M  +24 -0     taglib/flac/flacpicture.cpp  
 M  +12 -1     taglib/flac/flacpicture.h  
 A             taglib/flac/flacunknownmetadatablock.cpp   [License: LGPL (v2.1) (wrong address)]
 A             taglib/flac/flacunknownmetadatablock.h   [License: LGPL (v2.1) (wrong address)]
 U             taglib/toolkit/tbytevector.h  
 M  +3 -0      tests/CMakeLists.txt  
 A             tests/test_flacmetadatablocks.cpp   [License: UNKNOWN]
 A             tests/test_flacpicture.cpp   [License: UNKNOWN]
 A             tests/test_flacunknownmetadatablock.cpp   [License: UNKNOWN]


--- trunk/kdesupport/taglib/taglib/CMakeLists.txt #1201716:1201717
@@ -95,6 +95,9 @@
 flac/flacfile.cpp
 flac/flacpicture.cpp
 flac/flacproperties.cpp
+flac/flacmetadatablock.cpp
+flac/flacmetadatablocks.cpp
+flac/flacunknownmetadatablock.cpp
 )
 
 SET(oggflacs_SRCS
--- trunk/kdesupport/taglib/taglib/flac/flacfile.cpp #1201716:1201717
@@ -36,6 +36,7 @@
 
 #include "flacpicture.h"
 #include "flacfile.h"
+#include "flacmetadatablock.h"
 
 using namespace TagLib;
 
--- trunk/kdesupport/taglib/taglib/flac/flacpicture.cpp #1201716:1201717
@@ -70,6 +70,11 @@
   delete d;
 }
 
+int FLAC::Picture::code() const
+{
+  return FLAC::MetadataBlock::Picture;
+}
+
 bool FLAC::Picture::parse(const ByteVector &data)
 {
   if(data.size() < 32) {
@@ -115,6 +120,25 @@
   return true;  
 }
 
+ByteVector FLAC::Picture::render() const
+{
+  ByteVector result;
+  result.append(ByteVector::fromUInt(d->type));
+  ByteVector mimeTypeData = d->mimeType.data(String::UTF8);
+  result.append(ByteVector::fromUInt(mimeTypeData.size()));
+  result.append(mimeTypeData);
+  ByteVector descriptionData = d->description.data(String::UTF8);
+  result.append(ByteVector::fromUInt(descriptionData.size()));
+  result.append(descriptionData);
+  result.append(ByteVector::fromUInt(d->width));
+  result.append(ByteVector::fromUInt(d->height));
+  result.append(ByteVector::fromUInt(d->colorDepth));
+  result.append(ByteVector::fromUInt(d->numColors));
+  result.append(ByteVector::fromUInt(d->data.size()));
+  result.append(d->data);
+  return result;
+}
+
 FLAC::Picture::Type FLAC::Picture::type() const
 {
   return d->type;
--- trunk/kdesupport/taglib/taglib/flac/flacpicture.h #1201716:1201717
@@ -30,12 +30,13 @@
 #include "tbytevector.h"
 #include "taglib_export.h"
 #include "attachedpictureframe.h"
+#include "flacmetadatablock.h"
 
 namespace TagLib {
 
   namespace FLAC {
 
-    class TAGLIB_EXPORT Picture
+    class TAGLIB_EXPORT Picture : public MetadataBlock
     {
     public:
       typedef ID3v2::AttachedPictureFrame::Type Type;
@@ -128,6 +129,16 @@
        */
       void setData(const ByteVector &data);
 
+      /*!
+       * Returns the FLAC metadata block type.
+       */
+      int code() const;
+
+      /*!
+       * Render the content of the block.
+       */
+      ByteVector render() const;
+
       bool parse(const ByteVector &rawData);
 
     private:
--- trunk/kdesupport/taglib/tests/CMakeLists.txt #1201716:1201717
@@ -40,6 +40,9 @@
   test_ogg.cpp
   test_oggflac.cpp
   test_flac.cpp
+  test_flacpicture.cpp
+  test_flacmetadatablocks.cpp
+  test_flacunknownmetadatablock.cpp
   test_ape.cpp
   test_apetag.cpp
   test_wav.cpp
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic