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_UNKNOWNFRAME_H
27 #define TAGLIB_UNKNOWNFRAME_H
29 #include "id3v2frame.h"
30 #include "taglib_export.h"
36 //! A frame type \e unknown to TagLib.
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.
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.
49 class TAGLIB_EXPORT UnknownFrame : public Frame
51 friend class FrameFactory;
54 UnknownFrame(const ByteVector &data);
55 virtual ~UnknownFrame();
57 virtual String toString() const;
60 * Returns the field data (everything but the header) for this frame.
62 ByteVector data() const;
65 virtual void parseFields(const ByteVector &data);
66 virtual ByteVector renderFields() const;
69 UnknownFrame(const ByteVector &data, Header *h);
70 UnknownFrame(const UnknownFrame &);
71 UnknownFrame &operator=(const UnknownFrame &);
73 class UnknownFramePrivate;
74 UnknownFramePrivate *d;