TagLib API Documentation
matroskaattachments.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_MATROSKAATTACHMENTS_H
22#define TAGLIB_MATROSKAATTACHMENTS_H
23
24#include <memory>
25#include "taglib_export.h"
26#include "tlist.h"
27#include "matroskaelement.h"
28
29namespace TagLib {
30 class File;
31
32 namespace EBML {
33 class MkAttachments;
34 }
35
36 namespace Matroska {
37 class AttachedFile;
38 class File;
39
42#ifndef DO_NOT_DOCUMENT
43 : private Element
44#endif
45 {
46 public:
49
52
54 virtual ~Attachments();
55
57 void addAttachedFile(const AttachedFile &file);
58
60 void removeAttachedFile(unsigned long long uid);
61
63 void clear();
64
67
68 private:
69 friend class EBML::MkAttachments;
70 friend class File;
71 class AttachmentsPrivate;
72
73 // private Element implementation
74 ByteVector renderInternal() override;
75 AttachedFileList &attachedFiles();
76
78 std::unique_ptr<AttachmentsPrivate> d;
79 };
80 }
81}
82
83#endif
A byte vector.
Definition tbytevector.h:46
A file class with some useful methods for tag manipulation.
Definition tfile.h:51
A generic, implicitly shared list.
Definition tlist.h:54
Attached file embedded into a Matroska file.
Definition matroskaattachedfile.h:35
Collection of attached files.
Definition matroskaattachments.h:45
void removeAttachedFile(unsigned long long uid)
Remove an attached file.
virtual ~Attachments()
Destroy attachments.
Attachments()
Construct attachments.
void clear()
Remove all attached files.
void addAttachedFile(const AttachedFile &file)
Add an attached file.
const AttachedFileList & attachedFileList() const
Get list of all attached files.
An implementation of TagLib::File with Matroska specific methods.
Definition matroskafile.h:40
A namespace for all TagLib related classes and functions.
Definition apefile.h:41
#define TAGLIB_EXPORT
Definition taglib_export.h:40
#define TAGLIB_MSVC_SUPPRESS_WARNING_NEEDS_TO_HAVE_DLL_INTERFACE
Definition taglib_export.h:55