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,220 @@
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_ATTACHEDPICTUREFRAME_H
27
+ #define TAGLIB_ATTACHEDPICTUREFRAME_H
28
+
29
+ #include <id3v2frame.h>
30
+ #include <id3v2header.h>
31
+ #include "taglib_export.h"
32
+
33
+ namespace TagLib {
34
+
35
+ namespace ID3v2 {
36
+
37
+ //! An ID3v2 attached picture frame implementation
38
+
39
+ /*!
40
+ * This is an implementation of ID3v2 attached pictures. Pictures may be
41
+ * included in tags, one per APIC frame (but there may be multiple APIC
42
+ * frames in a single tag). These pictures are usually in either JPEG or
43
+ * PNG format.
44
+ */
45
+
46
+ class TAGLIB_EXPORT AttachedPictureFrame : public Frame
47
+ {
48
+ friend class FrameFactory;
49
+
50
+ public:
51
+
52
+ /*!
53
+ * This describes the function or content of the picture.
54
+ */
55
+ enum Type {
56
+ //! A type not enumerated below
57
+ Other = 0x00,
58
+ //! 32x32 PNG image that should be used as the file icon
59
+ FileIcon = 0x01,
60
+ //! File icon of a different size or format
61
+ OtherFileIcon = 0x02,
62
+ //! Front cover image of the album
63
+ FrontCover = 0x03,
64
+ //! Back cover image of the album
65
+ BackCover = 0x04,
66
+ //! Inside leaflet page of the album
67
+ LeafletPage = 0x05,
68
+ //! Image from the album itself
69
+ Media = 0x06,
70
+ //! Picture of the lead artist or soloist
71
+ LeadArtist = 0x07,
72
+ //! Picture of the artist or performer
73
+ Artist = 0x08,
74
+ //! Picture of the conductor
75
+ Conductor = 0x09,
76
+ //! Picture of the band or orchestra
77
+ Band = 0x0A,
78
+ //! Picture of the composer
79
+ Composer = 0x0B,
80
+ //! Picture of the lyricist or text writer
81
+ Lyricist = 0x0C,
82
+ //! Picture of the recording location or studio
83
+ RecordingLocation = 0x0D,
84
+ //! Picture of the artists during recording
85
+ DuringRecording = 0x0E,
86
+ //! Picture of the artists during performance
87
+ DuringPerformance = 0x0F,
88
+ //! Picture from a movie or video related to the track
89
+ MovieScreenCapture = 0x10,
90
+ //! Picture of a large, coloured fish
91
+ ColouredFish = 0x11,
92
+ //! Illustration related to the track
93
+ Illustration = 0x12,
94
+ //! Logo of the band or performer
95
+ BandLogo = 0x13,
96
+ //! Logo of the publisher (record company)
97
+ PublisherLogo = 0x14
98
+ };
99
+
100
+ /*!
101
+ * Constructs an empty picture frame. The description, content and text
102
+ * encoding should be set manually.
103
+ */
104
+ AttachedPictureFrame();
105
+
106
+ /*!
107
+ * Constructs an AttachedPicture frame based on \a data.
108
+ */
109
+ explicit AttachedPictureFrame(const ByteVector &data);
110
+
111
+ /*!
112
+ * Destroys the AttahcedPictureFrame instance.
113
+ */
114
+ virtual ~AttachedPictureFrame();
115
+
116
+ /*!
117
+ * Returns a string containing the description and mime-type
118
+ */
119
+ virtual String toString() const;
120
+
121
+ /*!
122
+ * Returns the text encoding used for the description.
123
+ *
124
+ * \see setTextEncoding()
125
+ * \see description()
126
+ */
127
+ String::Type textEncoding() const;
128
+
129
+ /*!
130
+ * Set the text encoding used for the description.
131
+ *
132
+ * \see description()
133
+ */
134
+ void setTextEncoding(String::Type t);
135
+
136
+ /*!
137
+ * Returns the mime type of the image. This should in most cases be
138
+ * "image/png" or "image/jpeg".
139
+ */
140
+ String mimeType() const;
141
+
142
+ /*!
143
+ * Sets the mime type of the image. This should in most cases be
144
+ * "image/png" or "image/jpeg".
145
+ */
146
+ void setMimeType(const String &m);
147
+
148
+ /*!
149
+ * Returns the type of the image.
150
+ *
151
+ * \see Type
152
+ * \see setType()
153
+ */
154
+ Type type() const;
155
+
156
+ /*!
157
+ * Sets the type for the image.
158
+ *
159
+ * \see Type
160
+ * \see type()
161
+ */
162
+ void setType(Type t);
163
+
164
+ /*!
165
+ * Returns a text description of the image.
166
+ *
167
+ * \see setDescription()
168
+ * \see textEncoding()
169
+ * \see setTextEncoding()
170
+ */
171
+
172
+ String description() const;
173
+
174
+ /*!
175
+ * Sets a textual description of the image to \a desc.
176
+ *
177
+ * \see description()
178
+ * \see textEncoding()
179
+ * \see setTextEncoding()
180
+ */
181
+
182
+ void setDescription(const String &desc);
183
+
184
+ /*!
185
+ * Returns the image data as a ByteVector.
186
+ *
187
+ * \note ByteVector has a data() method that returns a const char * which
188
+ * should make it easy to export this data to external programs.
189
+ *
190
+ * \see setPicture()
191
+ * \see mimeType()
192
+ */
193
+ ByteVector picture() const;
194
+
195
+ /*!
196
+ * Sets the image data to \a p. \a p should be of the type specified in
197
+ * this frame's mime-type specification.
198
+ *
199
+ * \see picture()
200
+ * \see mimeType()
201
+ * \see setMimeType()
202
+ */
203
+ void setPicture(const ByteVector &p);
204
+
205
+ protected:
206
+ virtual void parseFields(const ByteVector &data);
207
+ virtual ByteVector renderFields() const;
208
+
209
+ private:
210
+ AttachedPictureFrame(const ByteVector &data, Header *h);
211
+ AttachedPictureFrame(const AttachedPictureFrame &);
212
+ AttachedPictureFrame &operator=(const AttachedPictureFrame &);
213
+
214
+ class AttachedPictureFramePrivate;
215
+ AttachedPictureFramePrivate *d;
216
+ };
217
+ }
218
+ }
219
+
220
+ #endif
@@ -0,0 +1,110 @@
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_AUDIOPROPERTIES_H
27
+ #define TAGLIB_AUDIOPROPERTIES_H
28
+
29
+ #include "taglib_export.h"
30
+
31
+ namespace TagLib {
32
+
33
+ //! A simple, abstract interface to common audio properties
34
+
35
+ /*!
36
+ * The values here are common to most audio formats. For more specific, codec
37
+ * dependant values, please see see the subclasses APIs. This is meant to
38
+ * compliment the TagLib::File and TagLib::Tag APIs in providing a simple
39
+ * interface that is sufficient for most applications.
40
+ */
41
+
42
+ class TAGLIB_EXPORT AudioProperties
43
+ {
44
+ public:
45
+
46
+ /*!
47
+ * Reading audio properties from a file can sometimes be very time consuming
48
+ * and for the most accurate results can often involve reading the entire
49
+ * file. Because in many situations speed is critical or the accuracy of the
50
+ * values is not particularly important this allows the level of desired
51
+ * accuracy to be set.
52
+ */
53
+ enum ReadStyle {
54
+ //! Read as little of the file as possible
55
+ Fast,
56
+ //! Read more of the file and make better values guesses
57
+ Average,
58
+ //! Read as much of the file as needed to report accurate values
59
+ Accurate
60
+ };
61
+
62
+ /*!
63
+ * Destroys this AudioProperties instance.
64
+ */
65
+ virtual ~AudioProperties();
66
+
67
+ /*!
68
+ * Returns the length of the file in seconds.
69
+ */
70
+ virtual int length() const = 0;
71
+
72
+ /*!
73
+ * Returns the most appropriate bit rate for the file in kb/s. For constant
74
+ * bitrate formats this is simply the bitrate of the file. For variable
75
+ * bitrate formats this is either the average or nominal bitrate.
76
+ */
77
+ virtual int bitrate() const = 0;
78
+
79
+ /*!
80
+ * Returns the sample rate in Hz.
81
+ */
82
+ virtual int sampleRate() const = 0;
83
+
84
+ /*!
85
+ * Returns the number of audio channels.
86
+ */
87
+ virtual int channels() const = 0;
88
+
89
+ protected:
90
+
91
+ /*!
92
+ * Construct an audio properties instance. This is protected as this class
93
+ * should not be instantiated directly, but should be instantiated via its
94
+ * subclasses and can be fetched from the FileRef or File APIs.
95
+ *
96
+ * \see ReadStyle
97
+ */
98
+ AudioProperties(ReadStyle style);
99
+
100
+ private:
101
+ AudioProperties(const AudioProperties &);
102
+ AudioProperties &operator=(const AudioProperties &);
103
+
104
+ class AudioPropertiesPrivate;
105
+ AudioPropertiesPrivate *d;
106
+ };
107
+
108
+ }
109
+
110
+ #endif
@@ -0,0 +1,168 @@
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_COMMENTSFRAME_H
27
+ #define TAGLIB_COMMENTSFRAME_H
28
+
29
+ #include <id3v2frame.h>
30
+ #include "taglib_export.h"
31
+
32
+ namespace TagLib {
33
+
34
+ namespace ID3v2 {
35
+
36
+ //! An implementation of ID3v2 comments
37
+
38
+ /*!
39
+ * This implements the ID3v2 comment format. An ID3v2 comment concists of
40
+ * a language encoding, a description and a single text field.
41
+ */
42
+
43
+ class TAGLIB_EXPORT CommentsFrame : public Frame
44
+ {
45
+ friend class FrameFactory;
46
+
47
+ public:
48
+ /*!
49
+ * Construct an empty comment frame that will use the text encoding
50
+ * \a encoding.
51
+ */
52
+ explicit CommentsFrame(String::Type encoding = String::Latin1);
53
+
54
+ /*!
55
+ * Construct a comment based on the data in \a data.
56
+ */
57
+ explicit CommentsFrame(const ByteVector &data);
58
+
59
+ /*!
60
+ * Destroys this CommentFrame instance.
61
+ */
62
+ virtual ~CommentsFrame();
63
+
64
+ /*!
65
+ * Returns the text of this comment.
66
+ *
67
+ * \see text()
68
+ */
69
+ virtual String toString() const;
70
+
71
+ /*!
72
+ * Returns the language encoding as a 3 byte encoding as specified by
73
+ * <a href="http://en.wikipedia.org/wiki/ISO_639">ISO-639-2</a>.
74
+ *
75
+ * \note Most taggers simply ignore this value.
76
+ *
77
+ * \see setLanguage()
78
+ */
79
+ ByteVector language() const;
80
+
81
+ /*!
82
+ * Returns the description of this comment.
83
+ *
84
+ * \note Most taggers simply ignore this value.
85
+ *
86
+ * \see setDescription()
87
+ */
88
+ String description() const;
89
+
90
+ /*!
91
+ * Returns the text of this comment.
92
+ *
93
+ * \see setText()
94
+ */
95
+ String text() const;
96
+
97
+ /*!
98
+ * Set the language using the 3 byte language code from
99
+ * <a href="http://en.wikipedia.org/wiki/ISO_639">ISO-639-2</a> to
100
+ * \a languageCode.
101
+ *
102
+ * \see language()
103
+ */
104
+ void setLanguage(const ByteVector &languageCode);
105
+
106
+ /*!
107
+ * Sets the description of the comment to \a s.
108
+ *
109
+ * \see decription()
110
+ */
111
+ void setDescription(const String &s);
112
+
113
+ /*!
114
+ * Sets the text portion of the comment to \a s.
115
+ *
116
+ * \see text()
117
+ */
118
+ virtual void setText(const String &s);
119
+
120
+ /*!
121
+ * Returns the text encoding that will be used in rendering this frame.
122
+ * This defaults to the type that was either specified in the constructor
123
+ * or read from the frame when parsed.
124
+ *
125
+ * \see setTextEncoding()
126
+ * \see render()
127
+ */
128
+ String::Type textEncoding() const;
129
+
130
+ /*!
131
+ * Sets the text encoding to be used when rendering this frame to
132
+ * \a encoding.
133
+ *
134
+ * \see textEncoding()
135
+ * \see render()
136
+ */
137
+ void setTextEncoding(String::Type encoding);
138
+
139
+ /*!
140
+ * Comments each have a unique description. This searches for a comment
141
+ * frame with the decription \a d and returns a pointer to it. If no
142
+ * frame is found that matches the given description null is returned.
143
+ *
144
+ * \see description()
145
+ */
146
+ static CommentsFrame *findByDescription(const Tag *tag, const String &d);
147
+
148
+ protected:
149
+ // Reimplementations.
150
+
151
+ virtual void parseFields(const ByteVector &data);
152
+ virtual ByteVector renderFields() const;
153
+
154
+ private:
155
+ /*!
156
+ * The constructor used by the FrameFactory.
157
+ */
158
+ CommentsFrame(const ByteVector &data, Header *h);
159
+ CommentsFrame(const CommentsFrame &);
160
+ CommentsFrame &operator=(const CommentsFrame &);
161
+
162
+ class CommentsFramePrivate;
163
+ CommentsFramePrivate *d;
164
+ };
165
+
166
+ }
167
+ }
168
+ #endif