26 #ifndef TAGLIB_TABLEOFCONTENTSFRAME
27 #define TAGLIB_TABLEOFCONTENTSFRAME
43 class TAGLIB_EXPORT TableOfContentsFrame :
public ID3v2::Frame
45 friend class FrameFactory;
52 TableOfContentsFrame(
const ID3v2::Header *tagHeader,
const ByteVector &data);
59 TableOfContentsFrame(
const ByteVector &elementID,
60 const ByteVectorList &children = ByteVectorList(),
66 ~TableOfContentsFrame();
74 ByteVector elementID()
const;
82 bool isTopLevel()
const;
90 bool isOrdered()
const;
98 unsigned int entryCount()
const;
105 ByteVectorList childElements()
const;
113 void setElementID(
const ByteVector &eID);
121 void setIsTopLevel(
const bool &t);
129 void setIsOrdered(
const bool &o);
136 void setChildElements(
const ByteVectorList &l);
143 void addChildElement(
const ByteVector &cE);
150 void removeChildElement(
const ByteVector &cE);
179 const FrameList &embeddedFrameList()
const;
192 const FrameList &embeddedFrameList(
const ByteVector &frameID)
const;
201 void addEmbeddedFrame(Frame *frame);
210 void removeEmbeddedFrame(Frame *frame,
bool del =
true);
219 void removeEmbeddedFrames(
const ByteVector &
id);
221 virtual String toString()
const;
223 PropertyMap asProperties()
const;
232 static TableOfContentsFrame *findByElementID(
const Tag *tag,
const ByteVector &eID);
241 static TableOfContentsFrame *findTopLevel(
const Tag *tag);
244 virtual void parseFields(
const ByteVector &data);
245 virtual ByteVector renderFields()
const;
248 TableOfContentsFrame(
const ID3v2::Header *tagHeader,
const ByteVector &data, Header *h);
249 TableOfContentsFrame(
const TableOfContentsFrame &);
250 TableOfContentsFrame &operator=(
const TableOfContentsFrame &);
252 class TableOfContentsFramePrivate;
253 TableOfContentsFramePrivate *d;