rtaglib 0.2.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +4 -0
- data/Manifest.txt +84 -9
- data/README.txt +0 -0
- data/Rakefile +30 -27
- data/{test/data → data}/440Hz-5sec.flac +0 -0
- data/{test/data → data}/440Hz-5sec.mp3 +0 -0
- data/{test/data → data}/440Hz-5sec.mpc +0 -0
- data/{test/data → data}/440Hz-5sec.ogg +0 -0
- data/{test/data → data}/440Hz-5sec.wv +0 -0
- data/data/test_jason.mp3 +0 -0
- data/data/test_jason.ogg +0 -0
- data/ext/Rakefile +10 -0
- data/ext/tagfile/Rakefile.rb +42 -0
- data/ext/tagfile/rake_ext_conf.rb +29 -0
- data/ext/tagfile/tagfile.c +11 -7
- data/ext/taglib/Rakefile.rb +48 -0
- data/ext/taglib/rake_ext_conf.rb +33 -0
- data/ext/taglib/taglib-mswin32/bin/tag.dll +0 -0
- data/ext/taglib/taglib-mswin32/bin/tag_c.dll +0 -0
- data/ext/taglib/taglib-mswin32/bin/tag_cd.dll +0 -0
- data/ext/taglib/taglib-mswin32/bin/tagd.dll +0 -0
- data/ext/taglib/taglib-mswin32/bin/taglib-config +55 -0
- data/ext/taglib/taglib-mswin32/include/taglib/apefooter.h +173 -0
- data/ext/taglib/taglib-mswin32/include/taglib/apeitem.h +204 -0
- data/ext/taglib/taglib-mswin32/include/taglib/apetag.h +162 -0
- data/ext/taglib/taglib-mswin32/include/taglib/attachedpictureframe.h +220 -0
- data/ext/taglib/taglib-mswin32/include/taglib/audioproperties.h +110 -0
- data/ext/taglib/taglib-mswin32/include/taglib/commentsframe.h +168 -0
- data/ext/taglib/taglib-mswin32/include/taglib/fileref.h +262 -0
- data/ext/taglib/taglib-mswin32/include/taglib/flacfile.h +201 -0
- data/ext/taglib/taglib-mswin32/include/taglib/flacproperties.h +92 -0
- data/ext/taglib/taglib-mswin32/include/taglib/generalencapsulatedobjectframe.h +174 -0
- data/ext/taglib/taglib-mswin32/include/taglib/id3v1genres.h +66 -0
- data/ext/taglib/taglib-mswin32/include/taglib/id3v1tag.h +180 -0
- data/ext/taglib/taglib-mswin32/include/taglib/id3v2extendedheader.h +93 -0
- data/ext/taglib/taglib-mswin32/include/taglib/id3v2footer.h +82 -0
- data/ext/taglib/taglib-mswin32/include/taglib/id3v2frame.h +414 -0
- data/ext/taglib/taglib-mswin32/include/taglib/id3v2framefactory.h +167 -0
- data/ext/taglib/taglib-mswin32/include/taglib/id3v2header.h +175 -0
- data/ext/taglib/taglib-mswin32/include/taglib/id3v2synchdata.h +70 -0
- data/ext/taglib/taglib-mswin32/include/taglib/id3v2tag.h +300 -0
- data/ext/taglib/taglib-mswin32/include/taglib/mpcfile.h +175 -0
- data/ext/taglib/taglib-mswin32/include/taglib/mpcproperties.h +85 -0
- data/ext/taglib/taglib-mswin32/include/taglib/mpegfile.h +277 -0
- data/ext/taglib/taglib-mswin32/include/taglib/mpegheader.h +166 -0
- data/ext/taglib/taglib-mswin32/include/taglib/mpegproperties.h +118 -0
- data/ext/taglib/taglib-mswin32/include/taglib/oggfile.h +112 -0
- data/ext/taglib/taglib-mswin32/include/taglib/oggflacfile.h +118 -0
- data/ext/taglib/taglib-mswin32/include/taglib/oggpage.h +203 -0
- data/ext/taglib/taglib-mswin32/include/taglib/oggpageheader.h +232 -0
- data/ext/taglib/taglib-mswin32/include/taglib/relativevolumeframe.h +274 -0
- data/ext/taglib/taglib-mswin32/include/taglib/speexfile.h +99 -0
- data/ext/taglib/taglib-mswin32/include/taglib/speexproperties.h +89 -0
- data/ext/taglib/taglib-mswin32/include/taglib/tag.h +173 -0
- data/ext/taglib/taglib-mswin32/include/taglib/tag_c.h +288 -0
- data/ext/taglib/taglib-mswin32/include/taglib/taglib.h +177 -0
- data/ext/taglib/taglib-mswin32/include/taglib/taglib_export.h +39 -0
- data/ext/taglib/taglib-mswin32/include/taglib/tbytevector.h +409 -0
- data/ext/taglib/taglib-mswin32/include/taglib/tbytevectorlist.h +91 -0
- data/ext/taglib/taglib-mswin32/include/taglib/textidentificationframe.h +258 -0
- data/ext/taglib/taglib-mswin32/include/taglib/tfile.h +271 -0
- data/ext/taglib/taglib-mswin32/include/taglib/tlist.h +252 -0
- data/ext/taglib/taglib-mswin32/include/taglib/tlist.tcc +316 -0
- data/ext/taglib/taglib-mswin32/include/taglib/tmap.h +200 -0
- data/ext/taglib/taglib-mswin32/include/taglib/tmap.tcc +196 -0
- data/ext/taglib/taglib-mswin32/include/taglib/trueaudiofile.h +180 -0
- data/ext/taglib/taglib-mswin32/include/taglib/trueaudioproperties.h +93 -0
- data/ext/taglib/taglib-mswin32/include/taglib/tstring.h +456 -0
- data/ext/taglib/taglib-mswin32/include/taglib/tstringlist.h +115 -0
- data/ext/taglib/taglib-mswin32/include/taglib/uniquefileidentifierframe.h +113 -0
- data/ext/taglib/taglib-mswin32/include/taglib/unknownframe.h +79 -0
- data/ext/taglib/taglib-mswin32/include/taglib/unsynchronizedlyricsframe.h +157 -0
- data/ext/taglib/taglib-mswin32/include/taglib/urllinkframe.h +172 -0
- data/ext/taglib/taglib-mswin32/include/taglib/vorbisfile.h +118 -0
- data/ext/taglib/taglib-mswin32/include/taglib/vorbisproperties.h +125 -0
- data/ext/taglib/taglib-mswin32/include/taglib/wavpackfile.h +164 -0
- data/ext/taglib/taglib-mswin32/include/taglib/wavpackproperties.h +94 -0
- data/ext/taglib/taglib-mswin32/include/taglib/xingheader.h +100 -0
- data/ext/taglib/taglib-mswin32/include/taglib/xiphcomment.h +202 -0
- data/ext/taglib/taglib-mswin32/lib/pkgconfig/taglib_c.pc +12 -0
- data/ext/taglib/taglib-mswin32/lib/tag.lib +0 -0
- data/ext/taglib/taglib-mswin32/lib/tag_c.lib +0 -0
- data/ext/taglib/taglib_i386-mingw32.source +22645 -0
- data/ext/taglib/taglib_i386-mswin32.source +22645 -0
- data/ext/taglib/{taglib.cxx → taglib_x86_64-linux.source} +508 -75
- data/lib/TagLib.rb +3 -2
- data/lib/TagLib_doc.rb +1532 -1526
- data/lib/rtaglib_mswin32.rb +4 -0
- data/lib/tagfile.rb +6 -0
- data/swig/Doxyfile +0 -0
- data/swig/Rakefile +44 -19
- data/swig/TagLib_doc.rb +2755 -0
- data/swig/make_doc.rb +5 -4
- data/swig/process_cxx.rb +2 -2
- data/swig/rake_ext_conf.rb +33 -0
- data/swig/taglib.i +8 -5
- data/swig/test.rb +47 -39
- data/test/test_read.rb +4 -3
- data/test/test_taglib.rb +47 -39
- data/test/test_write.rb +4 -3
- metadata +96 -20
- data/ext/tagfile/extconf.rb +0 -14
- data/ext/taglib/extconf.rb +0 -22
- 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
|