Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef TAGLIB_APEITEM_H
00027 #define TAGLIB_APEITEM_H
00028
00029 #include "tbytevector.h"
00030 #include "tstring.h"
00031 #include "tstringlist.h"
00032
00033 namespace TagLib {
00034
00035 namespace APE {
00036
00038
00042 class TAGLIB_EXPORT Item
00043 {
00044 public:
00048 enum ItemTypes {
00050 Text = 0,
00052 Binary = 1,
00054 Locator = 2
00055 };
00059 Item();
00060
00064
00065 Item(const String &key, const String &value);
00066
00070 Item(const String &key, const StringList &values);
00071
00076 Item(const String &key, const ByteVector &value, bool binary);
00077
00081 Item(const Item &item);
00082
00086 virtual ~Item();
00087
00091 Item &operator=(const Item &item);
00092
00096 String key() const;
00097
00102 ByteVector binaryData() const;
00103
00108 void setBinaryData(const ByteVector &value);
00109
00110 #ifndef DO_NOT_DOCUMENT
00111
00112 ByteVector value() const;
00113 #endif
00114
00118 void setKey(const String &key);
00119
00125 void setValue(const String &value);
00126
00133 void setValues(const StringList &values);
00134
00140 void appendValue(const String &value);
00141
00147 void appendValues(const StringList &values);
00148
00152 int size() const;
00153
00159 String toString() const;
00160
00161 #ifndef DO_NOT_DOCUMENT
00162
00163 StringList toStringList() const;
00164 #endif
00165
00170 StringList values() const;
00171
00175 ByteVector render() const;
00176
00180 void parse(const ByteVector& data);
00181
00185 void setReadOnly(bool readOnly);
00186
00190 bool isReadOnly() const;
00191
00197 void setType(ItemTypes type);
00198
00202 ItemTypes type() const;
00203
00207 bool isEmpty() const;
00208
00209 private:
00210 class ItemPrivate;
00211 ItemPrivate *d;
00212 };
00213 }
00214
00215 }
00216
00217 #endif
00218
00219