26 #ifndef TAGLIB_TABLEOFCONTENTSFRAME
27 #define TAGLIB_TABLEOFCONTENTSFRAME
45 class TAGLIB_EXPORT TableOfContentsFrame :
public ID3v2::Frame
47 friend class FrameFactory;
54 TableOfContentsFrame(
const ID3v2::Header *tagHeader,
const ByteVector &data);
61 TableOfContentsFrame(
const ByteVector &elementID,
62 const ByteVectorList &children = ByteVectorList(),
68 ~TableOfContentsFrame();
76 ByteVector elementID()
const;
84 bool isTopLevel()
const;
92 bool isOrdered()
const;
100 unsigned int entryCount()
const;
107 ByteVectorList childElements()
const;
115 void setElementID(
const ByteVector &eID);
123 void setIsTopLevel(
const bool &t);
131 void setIsOrdered(
const bool &o);
138 void setChildElements(
const ByteVectorList &l);
145 void addChildElement(
const ByteVector &cE);
152 void removeChildElement(
const ByteVector &cE);
181 const FrameList &embeddedFrameList()
const;
194 const FrameList &embeddedFrameList(
const ByteVector &frameID)
const;
203 void addEmbeddedFrame(Frame *frame);
212 void removeEmbeddedFrame(Frame *frame,
bool del =
true);
221 void removeEmbeddedFrames(
const ByteVector &
id);
223 virtual String toString()
const;
225 PropertyMap asProperties()
const;
234 static TableOfContentsFrame *findByElementID(
const Tag *tag,
const ByteVector &eID);
243 static TableOfContentsFrame *findTopLevel(
const Tag *tag);
246 virtual void parseFields(
const ByteVector &data);
247 virtual ByteVector renderFields()
const;
250 TableOfContentsFrame(
const ID3v2::Header *tagHeader,
const ByteVector &data, Header *h);
251 TableOfContentsFrame(
const TableOfContentsFrame &);
252 TableOfContentsFrame &operator=(
const TableOfContentsFrame &);
254 class TableOfContentsFramePrivate;
255 TableOfContentsFramePrivate *d;