TagLib API Documentation
ebmlmksegment.h
Go to the documentation of this file.
1/***************************************************************************
2 * This library is free software; you can redistribute it and/or modify *
3 * it under the terms of the GNU Lesser General Public License version *
4 * 2.1 as published by the Free Software Foundation. *
5 * *
6 * This library is distributed in the hope that it will be useful, but *
7 * WITHOUT ANY WARRANTY; without even the implied warranty of *
8 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
9 * Lesser General Public License for more details. *
10 * *
11 * You should have received a copy of the GNU Lesser General Public *
12 * License along with this library; if not, write to the Free Software *
13 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA *
14 * 02110-1301 USA *
15 * *
16 * Alternatively, this file is available under the Mozilla Public *
17 * License Version 1.1. You may obtain a copy of the License at *
18 * http://www.mozilla.org/MPL/ *
19 ***************************************************************************/
20
21#ifndef TAGLIB_EBMLMKSEGMENT_H
22#define TAGLIB_EBMLMKSEGMENT_H
23#ifndef DO_NOT_DOCUMENT
24
25#include "ebmlmasterelement.h"
26#include "ebmlmktags.h"
27#include "ebmlmkattachments.h"
28#include "ebmlmkchapters.h"
29#include "ebmlmkseekhead.h"
30#include "ebmlmkcues.h"
31#include "ebmlmkinfo.h"
32#include "ebmlmktracks.h"
33#include "taglib.h"
34
35namespace TagLib {
36 namespace Matroska {
37 class Tag;
38 class Attachments;
39 class Chapters;
40 class SeekHead;
41 class Segment;
42 }
43
44 namespace EBML {
45 class MkSegment : public MasterElement
46 {
47 public:
48 MkSegment(int sizeLength, offset_t dataSize, offset_t offset);
49 MkSegment(Id, int sizeLength, offset_t dataSize, offset_t offset);
50 ~MkSegment() override;
51
52 offset_t segmentDataOffset() const;
53 bool read(File &file) override;
54 std::unique_ptr<Matroska::Tag> parseTag() const;
55 std::unique_ptr<Matroska::Attachments> parseAttachments() const;
56 std::unique_ptr<Matroska::Chapters> parseChapters() const;
57 std::unique_ptr<Matroska::SeekHead> parseSeekHead() const;
58 std::unique_ptr<Matroska::Cues> parseCues() const;
59 std::unique_ptr<Matroska::Segment> parseSegment() const;
60 void parseInfo(Matroska::Properties *properties) const;
61 void parseTracks(Matroska::Properties *properties) const;
62
63 private:
64 std::unique_ptr<MkTags> tags;
65 std::unique_ptr<MkAttachments> attachments;
66 std::unique_ptr<MkChapters> chapters;
67 std::unique_ptr<MkSeekHead> seekHead;
68 std::unique_ptr<MkCues> cues;
69 std::unique_ptr<MkInfo> info;
70 std::unique_ptr<MkTracks> tracks;
71 };
72 }
73}
74
75#endif
76#endif
A namespace for all TagLib related classes and functions.
Definition apefile.h:41
off_t offset_t
Definition taglib.h:64