rtaglib 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. data/History.txt +4 -0
  2. data/Manifest.txt +84 -9
  3. data/README.txt +0 -0
  4. data/Rakefile +30 -27
  5. data/{test/data → data}/440Hz-5sec.flac +0 -0
  6. data/{test/data → data}/440Hz-5sec.mp3 +0 -0
  7. data/{test/data → data}/440Hz-5sec.mpc +0 -0
  8. data/{test/data → data}/440Hz-5sec.ogg +0 -0
  9. data/{test/data → data}/440Hz-5sec.wv +0 -0
  10. data/data/test_jason.mp3 +0 -0
  11. data/data/test_jason.ogg +0 -0
  12. data/ext/Rakefile +10 -0
  13. data/ext/tagfile/Rakefile.rb +42 -0
  14. data/ext/tagfile/rake_ext_conf.rb +29 -0
  15. data/ext/tagfile/tagfile.c +11 -7
  16. data/ext/taglib/Rakefile.rb +48 -0
  17. data/ext/taglib/rake_ext_conf.rb +33 -0
  18. data/ext/taglib/taglib-mswin32/bin/tag.dll +0 -0
  19. data/ext/taglib/taglib-mswin32/bin/tag_c.dll +0 -0
  20. data/ext/taglib/taglib-mswin32/bin/tag_cd.dll +0 -0
  21. data/ext/taglib/taglib-mswin32/bin/tagd.dll +0 -0
  22. data/ext/taglib/taglib-mswin32/bin/taglib-config +55 -0
  23. data/ext/taglib/taglib-mswin32/include/taglib/apefooter.h +173 -0
  24. data/ext/taglib/taglib-mswin32/include/taglib/apeitem.h +204 -0
  25. data/ext/taglib/taglib-mswin32/include/taglib/apetag.h +162 -0
  26. data/ext/taglib/taglib-mswin32/include/taglib/attachedpictureframe.h +220 -0
  27. data/ext/taglib/taglib-mswin32/include/taglib/audioproperties.h +110 -0
  28. data/ext/taglib/taglib-mswin32/include/taglib/commentsframe.h +168 -0
  29. data/ext/taglib/taglib-mswin32/include/taglib/fileref.h +262 -0
  30. data/ext/taglib/taglib-mswin32/include/taglib/flacfile.h +201 -0
  31. data/ext/taglib/taglib-mswin32/include/taglib/flacproperties.h +92 -0
  32. data/ext/taglib/taglib-mswin32/include/taglib/generalencapsulatedobjectframe.h +174 -0
  33. data/ext/taglib/taglib-mswin32/include/taglib/id3v1genres.h +66 -0
  34. data/ext/taglib/taglib-mswin32/include/taglib/id3v1tag.h +180 -0
  35. data/ext/taglib/taglib-mswin32/include/taglib/id3v2extendedheader.h +93 -0
  36. data/ext/taglib/taglib-mswin32/include/taglib/id3v2footer.h +82 -0
  37. data/ext/taglib/taglib-mswin32/include/taglib/id3v2frame.h +414 -0
  38. data/ext/taglib/taglib-mswin32/include/taglib/id3v2framefactory.h +167 -0
  39. data/ext/taglib/taglib-mswin32/include/taglib/id3v2header.h +175 -0
  40. data/ext/taglib/taglib-mswin32/include/taglib/id3v2synchdata.h +70 -0
  41. data/ext/taglib/taglib-mswin32/include/taglib/id3v2tag.h +300 -0
  42. data/ext/taglib/taglib-mswin32/include/taglib/mpcfile.h +175 -0
  43. data/ext/taglib/taglib-mswin32/include/taglib/mpcproperties.h +85 -0
  44. data/ext/taglib/taglib-mswin32/include/taglib/mpegfile.h +277 -0
  45. data/ext/taglib/taglib-mswin32/include/taglib/mpegheader.h +166 -0
  46. data/ext/taglib/taglib-mswin32/include/taglib/mpegproperties.h +118 -0
  47. data/ext/taglib/taglib-mswin32/include/taglib/oggfile.h +112 -0
  48. data/ext/taglib/taglib-mswin32/include/taglib/oggflacfile.h +118 -0
  49. data/ext/taglib/taglib-mswin32/include/taglib/oggpage.h +203 -0
  50. data/ext/taglib/taglib-mswin32/include/taglib/oggpageheader.h +232 -0
  51. data/ext/taglib/taglib-mswin32/include/taglib/relativevolumeframe.h +274 -0
  52. data/ext/taglib/taglib-mswin32/include/taglib/speexfile.h +99 -0
  53. data/ext/taglib/taglib-mswin32/include/taglib/speexproperties.h +89 -0
  54. data/ext/taglib/taglib-mswin32/include/taglib/tag.h +173 -0
  55. data/ext/taglib/taglib-mswin32/include/taglib/tag_c.h +288 -0
  56. data/ext/taglib/taglib-mswin32/include/taglib/taglib.h +177 -0
  57. data/ext/taglib/taglib-mswin32/include/taglib/taglib_export.h +39 -0
  58. data/ext/taglib/taglib-mswin32/include/taglib/tbytevector.h +409 -0
  59. data/ext/taglib/taglib-mswin32/include/taglib/tbytevectorlist.h +91 -0
  60. data/ext/taglib/taglib-mswin32/include/taglib/textidentificationframe.h +258 -0
  61. data/ext/taglib/taglib-mswin32/include/taglib/tfile.h +271 -0
  62. data/ext/taglib/taglib-mswin32/include/taglib/tlist.h +252 -0
  63. data/ext/taglib/taglib-mswin32/include/taglib/tlist.tcc +316 -0
  64. data/ext/taglib/taglib-mswin32/include/taglib/tmap.h +200 -0
  65. data/ext/taglib/taglib-mswin32/include/taglib/tmap.tcc +196 -0
  66. data/ext/taglib/taglib-mswin32/include/taglib/trueaudiofile.h +180 -0
  67. data/ext/taglib/taglib-mswin32/include/taglib/trueaudioproperties.h +93 -0
  68. data/ext/taglib/taglib-mswin32/include/taglib/tstring.h +456 -0
  69. data/ext/taglib/taglib-mswin32/include/taglib/tstringlist.h +115 -0
  70. data/ext/taglib/taglib-mswin32/include/taglib/uniquefileidentifierframe.h +113 -0
  71. data/ext/taglib/taglib-mswin32/include/taglib/unknownframe.h +79 -0
  72. data/ext/taglib/taglib-mswin32/include/taglib/unsynchronizedlyricsframe.h +157 -0
  73. data/ext/taglib/taglib-mswin32/include/taglib/urllinkframe.h +172 -0
  74. data/ext/taglib/taglib-mswin32/include/taglib/vorbisfile.h +118 -0
  75. data/ext/taglib/taglib-mswin32/include/taglib/vorbisproperties.h +125 -0
  76. data/ext/taglib/taglib-mswin32/include/taglib/wavpackfile.h +164 -0
  77. data/ext/taglib/taglib-mswin32/include/taglib/wavpackproperties.h +94 -0
  78. data/ext/taglib/taglib-mswin32/include/taglib/xingheader.h +100 -0
  79. data/ext/taglib/taglib-mswin32/include/taglib/xiphcomment.h +202 -0
  80. data/ext/taglib/taglib-mswin32/lib/pkgconfig/taglib_c.pc +12 -0
  81. data/ext/taglib/taglib-mswin32/lib/tag.lib +0 -0
  82. data/ext/taglib/taglib-mswin32/lib/tag_c.lib +0 -0
  83. data/ext/taglib/taglib_i386-mingw32.source +22645 -0
  84. data/ext/taglib/taglib_i386-mswin32.source +22645 -0
  85. data/ext/taglib/{taglib.cxx → taglib_x86_64-linux.source} +508 -75
  86. data/lib/TagLib.rb +3 -2
  87. data/lib/TagLib_doc.rb +1532 -1526
  88. data/lib/rtaglib_mswin32.rb +4 -0
  89. data/lib/tagfile.rb +6 -0
  90. data/swig/Doxyfile +0 -0
  91. data/swig/Rakefile +44 -19
  92. data/swig/TagLib_doc.rb +2755 -0
  93. data/swig/make_doc.rb +5 -4
  94. data/swig/process_cxx.rb +2 -2
  95. data/swig/rake_ext_conf.rb +33 -0
  96. data/swig/taglib.i +8 -5
  97. data/swig/test.rb +47 -39
  98. data/test/test_read.rb +4 -3
  99. data/test/test_taglib.rb +47 -39
  100. data/test/test_write.rb +4 -3
  101. metadata +96 -20
  102. data/ext/tagfile/extconf.rb +0 -14
  103. data/ext/taglib/extconf.rb +0 -22
  104. data/swig/extconf.rb +0 -22
@@ -0,0 +1,115 @@
1
+ /***************************************************************************
2
+ copyright : (C) 2002 - 2008 by Scott Wheeler
3
+ email : wheeler@kde.org
4
+ ***************************************************************************/
5
+
6
+ /***************************************************************************
7
+ * This library is free software; you can redistribute it and/or modify *
8
+ * it under the terms of the GNU Lesser General Public License version *
9
+ * 2.1 as published by the Free Software Foundation. *
10
+ * *
11
+ * This library is distributed in the hope that it will be useful, but *
12
+ * WITHOUT ANY WARRANTY; without even the implied warranty of *
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
14
+ * Lesser General Public License for more details. *
15
+ * *
16
+ * You should have received a copy of the GNU Lesser General Public *
17
+ * License along with this library; if not, write to the Free Software *
18
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
19
+ * USA *
20
+ * *
21
+ * Alternatively, this file is available under the Mozilla Public *
22
+ * License Version 1.1. You may obtain a copy of the License at *
23
+ * http://www.mozilla.org/MPL/ *
24
+ ***************************************************************************/
25
+
26
+ #ifndef TAGLIB_STRINGLIST_H
27
+ #define TAGLIB_STRINGLIST_H
28
+
29
+ #include "tstring.h"
30
+ #include "tlist.h"
31
+ #include "tbytevectorlist.h"
32
+ #include "taglib_export.h"
33
+
34
+ #include <iostream>
35
+
36
+ namespace TagLib {
37
+
38
+ //! A list of strings
39
+
40
+ /*!
41
+ * This is a spcialization of the List class with some members convention for
42
+ * string operations.
43
+ */
44
+
45
+ class TAGLIB_EXPORT StringList : public List<String>
46
+ {
47
+ public:
48
+
49
+ /*!
50
+ * Constructs an empty StringList.
51
+ */
52
+ StringList();
53
+
54
+ /*!
55
+ * Make a shallow, implicitly shared, copy of \a l. Because this is
56
+ * implicitly shared, this method is lightweight and suitable for
57
+ * pass-by-value usage.
58
+ */
59
+ StringList(const StringList &l);
60
+
61
+ /*!
62
+ * Constructs a StringList with \a s as a member.
63
+ */
64
+ StringList(const String &s);
65
+
66
+ /*!
67
+ * Makes a deep copy of the data in \a vl.
68
+ *
69
+ * \note This should only be used with the 8-bit codecs Latin1 and UTF8, when
70
+ * used with other codecs it will simply print a warning and exit.
71
+ */
72
+ StringList(const ByteVectorList &vl, String::Type t = String::Latin1);
73
+
74
+ /*!
75
+ * Destroys this StringList instance.
76
+ */
77
+ virtual ~StringList();
78
+
79
+ /*!
80
+ * Concatenate the list of strings into one string separated by \a separator.
81
+ */
82
+ String toString(const String &separator = " ") const;
83
+
84
+ /*!
85
+ * Appends \a s to the end of the list and returns a reference to the
86
+ * list.
87
+ */
88
+ StringList &append(const String &s);
89
+
90
+ /*!
91
+ * Appends all of the values in \a l to the end of the list and returns a
92
+ * reference to the list.
93
+ */
94
+ StringList &append(const StringList &l);
95
+
96
+ /*!
97
+ * Splits the String \a s into several strings at \a pattern. This will not include
98
+ * the pattern in the returned strings.
99
+ */
100
+ static StringList split(const String &s, const String &pattern);
101
+
102
+ private:
103
+ class StringListPrivate;
104
+ StringListPrivate *d;
105
+ };
106
+
107
+ }
108
+
109
+ /*!
110
+ * \related TagLib::StringList
111
+ * Send the StringList to an output stream.
112
+ */
113
+ std::ostream &operator<<(std::ostream &s, const TagLib::StringList &l);
114
+
115
+ #endif
@@ -0,0 +1,113 @@
1
+ /***************************************************************************
2
+ copyright : (C) 2002 - 2008 by Scott Wheeler
3
+ email : wheeler@kde.org
4
+ ***************************************************************************/
5
+
6
+ /***************************************************************************
7
+ * This library is free software; you can redistribute it and/or modify *
8
+ * it under the terms of the GNU Lesser General Public License version *
9
+ * 2.1 as published by the Free Software Foundation. *
10
+ * *
11
+ * This library is distributed in the hope that it will be useful, but *
12
+ * WITHOUT ANY WARRANTY; without even the implied warranty of *
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
14
+ * Lesser General Public License for more details. *
15
+ * *
16
+ * You should have received a copy of the GNU Lesser General Public *
17
+ * License along with this library; if not, write to the Free Software *
18
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
19
+ * USA *
20
+ * *
21
+ * Alternatively, this file is available under the Mozilla Public *
22
+ * License Version 1.1. You may obtain a copy of the License at *
23
+ * http://www.mozilla.org/MPL/ *
24
+ ***************************************************************************/
25
+
26
+ #ifndef TAGLIB_UNIQUEFILEIDENTIFIERFRAME
27
+ #define TAGLIB_UNIQUEFILEIDENTIFIERFRAME
28
+
29
+ #include <id3v2frame.h>
30
+
31
+ namespace TagLib {
32
+
33
+ namespace ID3v2 {
34
+
35
+ /*!
36
+ * This is an implementation of ID3v2 unique file identifier frames. This
37
+ * frame is used to identify the file in an arbitrary database identified
38
+ * by the owner field.
39
+ */
40
+
41
+ //! An implementation of ID3v2 unique identifier frames
42
+
43
+ class TAGLIB_EXPORT UniqueFileIdentifierFrame : public ID3v2::Frame
44
+ {
45
+ friend class FrameFactory;
46
+
47
+ public:
48
+ /*!
49
+ * Creates a uniqe file identifier frame based on \a data.
50
+ */
51
+ UniqueFileIdentifierFrame(const ByteVector &data);
52
+
53
+ /*!
54
+ * Creates a unique file identifier frame with the owner \a owner and
55
+ * the identification \a id.
56
+ */
57
+ UniqueFileIdentifierFrame(const String &owner, const ByteVector &id);
58
+
59
+ /*!
60
+ * Destroys the frame.
61
+ */
62
+ ~UniqueFileIdentifierFrame();
63
+
64
+ /*!
65
+ * Returns the owner for the frame; essentially this is the key for
66
+ * determining which identification scheme this key belongs to. This
67
+ * will usually either be an email address or URL for the person or tool
68
+ * used to create the unique identifier.
69
+ *
70
+ * \see setOwner()
71
+ */
72
+ String owner() const;
73
+
74
+ /*!
75
+ * Returns the unique identifier. Though sometimes this is a text string
76
+ * it also may be binary data and as much should be assumed when handling
77
+ * it.
78
+ */
79
+ ByteVector identifier() const;
80
+
81
+ /*!
82
+ * Sets the owner of the identification scheme to \a s.
83
+ *
84
+ * \see owner()
85
+ */
86
+ void setOwner(const String &s);
87
+
88
+ /*!
89
+ * Sets the unique file identifier to \a v.
90
+ *
91
+ * \see identifier()
92
+ */
93
+ void setIdentifier(const ByteVector &v);
94
+
95
+ virtual String toString() const;
96
+
97
+ protected:
98
+ virtual void parseFields(const ByteVector &data);
99
+ virtual ByteVector renderFields() const;
100
+
101
+ private:
102
+ UniqueFileIdentifierFrame(const UniqueFileIdentifierFrame &);
103
+ UniqueFileIdentifierFrame &operator=(UniqueFileIdentifierFrame &);
104
+
105
+ UniqueFileIdentifierFrame(const ByteVector &data, Header *h);
106
+
107
+ class UniqueFileIdentifierFramePrivate;
108
+ UniqueFileIdentifierFramePrivate *d;
109
+ };
110
+ }
111
+ }
112
+
113
+ #endif
@@ -0,0 +1,79 @@
1
+ /***************************************************************************
2
+ copyright : (C) 2002 - 2008 by Scott Wheeler
3
+ email : wheeler@kde.org
4
+ ***************************************************************************/
5
+
6
+ /***************************************************************************
7
+ * This library is free software; you can redistribute it and/or modify *
8
+ * it under the terms of the GNU Lesser General Public License version *
9
+ * 2.1 as published by the Free Software Foundation. *
10
+ * *
11
+ * This library is distributed in the hope that it will be useful, but *
12
+ * WITHOUT ANY WARRANTY; without even the implied warranty of *
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
14
+ * Lesser General Public License for more details. *
15
+ * *
16
+ * You should have received a copy of the GNU Lesser General Public *
17
+ * License along with this library; if not, write to the Free Software *
18
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
19
+ * USA *
20
+ * *
21
+ * Alternatively, this file is available under the Mozilla Public *
22
+ * License Version 1.1. You may obtain a copy of the License at *
23
+ * http://www.mozilla.org/MPL/ *
24
+ ***************************************************************************/
25
+
26
+ #ifndef TAGLIB_UNKNOWNFRAME_H
27
+ #define TAGLIB_UNKNOWNFRAME_H
28
+
29
+ #include <id3v2frame.h>
30
+ #include "taglib_export.h"
31
+
32
+ namespace TagLib {
33
+
34
+ namespace ID3v2 {
35
+
36
+ //! A frame type \e unknown to TagLib.
37
+
38
+ /*!
39
+ * This class represents a frame type not known (or more often simply
40
+ * unimplemented) in TagLib. This is here provide a basic API for
41
+ * manipulating the binary data of unknown frames and to provide a means
42
+ * of rendering such \e unknown frames.
43
+ *
44
+ * Please note that a cleaner way of handling frame types that TagLib
45
+ * does not understand is to subclass ID3v2::Frame and ID3v2::FrameFactory
46
+ * to have your frame type supported through the standard ID3v2 mechanism.
47
+ */
48
+
49
+ class TAGLIB_EXPORT UnknownFrame : public Frame
50
+ {
51
+ friend class FrameFactory;
52
+
53
+ public:
54
+ UnknownFrame(const ByteVector &data);
55
+ virtual ~UnknownFrame();
56
+
57
+ virtual String toString() const;
58
+
59
+ /*!
60
+ * Returns the field data (everything but the header) for this frame.
61
+ */
62
+ ByteVector data() const;
63
+
64
+ protected:
65
+ virtual void parseFields(const ByteVector &data);
66
+ virtual ByteVector renderFields() const;
67
+
68
+ private:
69
+ UnknownFrame(const ByteVector &data, Header *h);
70
+ UnknownFrame(const UnknownFrame &);
71
+ UnknownFrame &operator=(const UnknownFrame &);
72
+
73
+ class UnknownFramePrivate;
74
+ UnknownFramePrivate *d;
75
+ };
76
+
77
+ }
78
+ }
79
+ #endif
@@ -0,0 +1,157 @@
1
+ /***************************************************************************
2
+ copyright : (C) 2002 - 2008 by Scott Wheeler
3
+ email : wheeler@kde.org
4
+ copyright : (C) 2006 by Urs Fleisch
5
+ email : ufleisch@users.sourceforge.net
6
+ ***************************************************************************/
7
+
8
+ /***************************************************************************
9
+ * This library is free software; you can redistribute it and/or modify *
10
+ * it under the terms of the GNU Lesser General Public License version *
11
+ * 2.1 as published by the Free Software Foundation. *
12
+ * *
13
+ * This library is distributed in the hope that it will be useful, but *
14
+ * WITHOUT ANY WARRANTY; without even the implied warranty of *
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
16
+ * Lesser General Public License for more details. *
17
+ * *
18
+ * You should have received a copy of the GNU Lesser General Public *
19
+ * License along with this library; if not, write to the Free Software *
20
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
21
+ * USA *
22
+ * *
23
+ * Alternatively, this file is available under the Mozilla Public *
24
+ * License Version 1.1. You may obtain a copy of the License at *
25
+ * http://www.mozilla.org/MPL/ *
26
+ ***************************************************************************/
27
+
28
+ #ifndef TAGLIB_UNSYNCHRONIZEDLYRICSFRAME_H
29
+ #define TAGLIB_UNSYNCHRONIZEDLYRICSFRAME_H
30
+
31
+ #include <id3v2frame.h>
32
+
33
+ namespace TagLib {
34
+
35
+ namespace ID3v2 {
36
+
37
+ //! ID3v2 unsynchronized lyrics frame
38
+ /*!
39
+ * An implementation of ID3v2 unsynchronized lyrics.
40
+ */
41
+ class TAGLIB_EXPORT UnsynchronizedLyricsFrame : public Frame
42
+ {
43
+ friend class FrameFactory;
44
+
45
+ public:
46
+ /*!
47
+ * Construct an empty unsynchronized lyrics frame that will use the text encoding
48
+ * \a encoding.
49
+ */
50
+ explicit UnsynchronizedLyricsFrame(String::Type encoding = String::Latin1);
51
+
52
+ /*!
53
+ * Construct a unsynchronized lyrics frame based on the data in \a data.
54
+ */
55
+ explicit UnsynchronizedLyricsFrame(const ByteVector &data);
56
+
57
+ /*!
58
+ * Destroys this UnsynchronizedLyricsFrame instance.
59
+ */
60
+ virtual ~UnsynchronizedLyricsFrame();
61
+
62
+ /*!
63
+ * Returns the text of this unsynchronized lyrics frame.
64
+ *
65
+ * \see text()
66
+ */
67
+ virtual String toString() const;
68
+
69
+ /*!
70
+ * Returns the language encoding as a 3 byte encoding as specified by
71
+ * <a href="http://en.wikipedia.org/wiki/ISO_639">ISO-639-2</a>.
72
+ *
73
+ * \note Most taggers simply ignore this value.
74
+ *
75
+ * \see setLanguage()
76
+ */
77
+ ByteVector language() const;
78
+
79
+ /*!
80
+ * Returns the description of this unsynchronized lyrics frame.
81
+ *
82
+ * \note Most taggers simply ignore this value.
83
+ *
84
+ * \see setDescription()
85
+ */
86
+ String description() const;
87
+
88
+ /*!
89
+ * Returns the text of this unsynchronized lyrics frame.
90
+ *
91
+ * \see setText()
92
+ */
93
+ String text() const;
94
+
95
+ /*!
96
+ * Set the language using the 3 byte language code from
97
+ * <a href="http://en.wikipedia.org/wiki/ISO_639">ISO-639-2</a> to
98
+ * \a languageCode.
99
+ *
100
+ * \see language()
101
+ */
102
+ void setLanguage(const ByteVector &languageCode);
103
+
104
+ /*!
105
+ * Sets the description of the unsynchronized lyrics frame to \a s.
106
+ *
107
+ * \see decription()
108
+ */
109
+ void setDescription(const String &s);
110
+
111
+ /*!
112
+ * Sets the text portion of the unsynchronized lyrics frame to \a s.
113
+ *
114
+ * \see text()
115
+ */
116
+ virtual void setText(const String &s);
117
+
118
+ /*!
119
+ * Returns the text encoding that will be used in rendering this frame.
120
+ * This defaults to the type that was either specified in the constructor
121
+ * or read from the frame when parsed.
122
+ *
123
+ * \see setTextEncoding()
124
+ * \see render()
125
+ */
126
+ String::Type textEncoding() const;
127
+
128
+ /*!
129
+ * Sets the text encoding to be used when rendering this frame to
130
+ * \a encoding.
131
+ *
132
+ * \see textEncoding()
133
+ * \see render()
134
+ */
135
+ void setTextEncoding(String::Type encoding);
136
+
137
+ protected:
138
+ // Reimplementations.
139
+
140
+ virtual void parseFields(const ByteVector &data);
141
+ virtual ByteVector renderFields() const;
142
+
143
+ private:
144
+ /*!
145
+ * The constructor used by the FrameFactory.
146
+ */
147
+ UnsynchronizedLyricsFrame(const ByteVector &data, Header *h);
148
+ UnsynchronizedLyricsFrame(const UnsynchronizedLyricsFrame &);
149
+ UnsynchronizedLyricsFrame &operator=(const UnsynchronizedLyricsFrame &);
150
+
151
+ class UnsynchronizedLyricsFramePrivate;
152
+ UnsynchronizedLyricsFramePrivate *d;
153
+ };
154
+
155
+ }
156
+ }
157
+ #endif