1 /***************************************************************************
2 copyright : (C) 2002 - 2008 by Scott Wheeler
3 email : wheeler@kde.org
4 ***************************************************************************/
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. *
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. *
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 *
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 ***************************************************************************/
26 #ifndef TAGLIB_UNIQUEFILEIDENTIFIERFRAME
27 #define TAGLIB_UNIQUEFILEIDENTIFIERFRAME
29 #include "id3v2frame.h"
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
41 //! An implementation of ID3v2 unique identifier frames
43 class TAGLIB_EXPORT UniqueFileIdentifierFrame : public ID3v2::Frame
45 friend class FrameFactory;
49 * Creates a uniqe file identifier frame based on \a data.
51 UniqueFileIdentifierFrame(const ByteVector &data);
54 * Creates a unique file identifier frame with the owner \a owner and
55 * the identification \a id.
57 UniqueFileIdentifierFrame(const String &owner, const ByteVector &id);
62 ~UniqueFileIdentifierFrame();
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.
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
79 ByteVector identifier() const;
82 * Sets the owner of the identification scheme to \a s.
86 void setOwner(const String &s);
89 * Sets the unique file identifier to \a v.
93 void setIdentifier(const ByteVector &v);
95 virtual String toString() const;
98 virtual void parseFields(const ByteVector &data);
99 virtual ByteVector renderFields() const;
102 UniqueFileIdentifierFrame(const UniqueFileIdentifierFrame &);
103 UniqueFileIdentifierFrame &operator=(UniqueFileIdentifierFrame &);
105 UniqueFileIdentifierFrame(const ByteVector &data, Header *h);
107 class UniqueFileIdentifierFramePrivate;
108 UniqueFileIdentifierFramePrivate *d;