source: libmatroska/matroska/KaxTag.h @ 977

Revision 977, 30.5 KB checked in by astrange, 5 years ago (diff)

Mirror libebml and libmatroska locally and point trunk's externals to them.

Maybe we should do this for all the tags/branches too?

Line 
1/****************************************************************************
2** libmatroska : parse Matroska files, see http://www.matroska.org/
3**
4** <file/class MATROSKA_DLL_API description>
5**
6** Copyright (C) 2002-2004 Steve Lhomme.  All rights reserved.
7**
8** This file is part of libmatroska.
9**
10** This library is free software; you can redistribute it and/or
11** modify it under the terms of the GNU Lesser General Public
12** License as published by the Free Software Foundation; either
13** version 2.1 of the License, or (at your option) any later version.
14**
15** This library is distributed in the hope that it will be useful,
16** but WITHOUT ANY WARRANTY; without even the implied warranty of
17** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18** Lesser General Public License for more details.
19**
20** You should have received a copy of the GNU Lesser General Public
21** License along with this library; if not, write to the Free Software
22** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
23**
24** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.**
25** Contact license@matroska.org if any conditions of this licensing are
26** not clear to you.
27**
28**********************************************************************/
29
30/*!
31        \file
32        \version \$Id: KaxTag.h,v 1.9 2004/04/14 23:26:17 robux4 Exp $
33        \author Jory Stone     <jcsston @ toughguy.net>
34        \author Steve Lhomme   <robux4 @ users.sf.net>
35*/
36#ifndef LIBMATROSKA_TAG_H
37#define LIBMATROSKA_TAG_H
38
39#include "matroska/KaxTypes.h"
40#include "ebml/EbmlMaster.h"
41#include "ebml/EbmlFloat.h"
42#include "ebml/EbmlSInteger.h"
43#include "ebml/EbmlUInteger.h"
44#include "ebml/EbmlString.h"
45#include "ebml/EbmlUnicodeString.h"
46#include "ebml/EbmlBinary.h"
47
48using namespace LIBEBML_NAMESPACE;
49
50START_LIBMATROSKA_NAMESPACE
51
52class MATROSKA_DLL_API KaxTag : public EbmlMaster {
53        public:
54                KaxTag();
55                KaxTag(const KaxTag & ElementToClone) :EbmlMaster(ElementToClone) {}
56                static EbmlElement & Create() {return *(new KaxTag);}
57                const EbmlCallbacks & Generic() const {return ClassInfos;}
58                static const EbmlCallbacks ClassInfos;
59                operator const EbmlId &() const {return ClassInfos.GlobalId;}
60                EbmlElement * Clone() const {return new KaxTag(*this);}
61};
62
63class MATROSKA_DLL_API KaxTagTargets : public EbmlMaster {
64        public:
65                KaxTagTargets();
66                KaxTagTargets(const KaxTagTargets & ElementToClone) :EbmlMaster(ElementToClone) {}
67                static EbmlElement & Create() {return *(new KaxTagTargets);}
68                const EbmlCallbacks & Generic() const {return ClassInfos;}
69                static const EbmlCallbacks ClassInfos;
70                operator const EbmlId &() const {return ClassInfos.GlobalId;}
71                EbmlElement * Clone() const {return new KaxTagTargets(*this);}
72};
73
74class MATROSKA_DLL_API KaxTagGeneral : public EbmlMaster {
75        public:
76                KaxTagGeneral();
77                KaxTagGeneral(const KaxTagGeneral & ElementToClone) :EbmlMaster(ElementToClone) {}
78                static EbmlElement & Create() {return *(new KaxTagGeneral);}
79                const EbmlCallbacks & Generic() const {return ClassInfos;}
80                static const EbmlCallbacks ClassInfos;
81                operator const EbmlId &() const {return ClassInfos.GlobalId;}
82                EbmlElement * Clone() const {return new KaxTagGeneral(*this);}
83};
84
85class MATROSKA_DLL_API KaxTagGenres : public EbmlMaster {
86        public:
87                KaxTagGenres();
88                KaxTagGenres(const KaxTagGenres & ElementToClone) :EbmlMaster(ElementToClone) {}
89                static EbmlElement & Create() {return *(new KaxTagGenres);}
90                const EbmlCallbacks & Generic() const {return ClassInfos;}
91                static const EbmlCallbacks ClassInfos;
92                operator const EbmlId &() const {return ClassInfos.GlobalId;}
93                EbmlElement * Clone() const {return new KaxTagGenres(*this);}
94};
95
96class MATROSKA_DLL_API KaxTagAudioSpecific : public EbmlMaster {
97        public:
98                KaxTagAudioSpecific();
99                KaxTagAudioSpecific(const KaxTagAudioSpecific & ElementToClone) :EbmlMaster(ElementToClone) {}
100                static EbmlElement & Create() {return *(new KaxTagAudioSpecific);}
101                const EbmlCallbacks & Generic() const {return ClassInfos;}
102                static const EbmlCallbacks ClassInfos;
103                operator const EbmlId &() const {return ClassInfos.GlobalId;}
104                EbmlElement * Clone() const {return new KaxTagAudioSpecific(*this);}
105};
106
107class MATROSKA_DLL_API KaxTagImageSpecific : public EbmlMaster {
108        public:
109                KaxTagImageSpecific();
110                KaxTagImageSpecific(const KaxTagImageSpecific & ElementToClone) :EbmlMaster(ElementToClone) {}
111                static EbmlElement & Create() {return *(new KaxTagImageSpecific);}
112                const EbmlCallbacks & Generic() const {return ClassInfos;}
113                static const EbmlCallbacks ClassInfos;
114                operator const EbmlId &() const {return ClassInfos.GlobalId;}
115                EbmlElement * Clone() const {return new KaxTagImageSpecific(*this);}
116};
117
118class MATROSKA_DLL_API KaxTagTargetTypeValue : public EbmlUInteger {
119        public:
120                KaxTagTargetTypeValue() :EbmlUInteger(50) {}
121                KaxTagTargetTypeValue(const KaxTagTargetTypeValue & ElementToClone) :EbmlUInteger(ElementToClone) {}
122                static EbmlElement & Create() {return *(new KaxTagTargetTypeValue);}
123                const EbmlCallbacks & Generic() const {return ClassInfos;}
124                static const EbmlCallbacks ClassInfos;
125                operator const EbmlId &() const {return ClassInfos.GlobalId;}
126                EbmlElement * Clone() const {return new KaxTagTargetTypeValue(*this);}
127};
128
129class MATROSKA_DLL_API KaxTagTargetType : public EbmlString {
130        public:
131                KaxTagTargetType() {}
132                KaxTagTargetType(const KaxTagTargetType & ElementToClone) :EbmlString(ElementToClone) {}
133                static EbmlElement & Create() {return *(new KaxTagTargetType);}
134                const EbmlCallbacks & Generic() const {return ClassInfos;}
135                static const EbmlCallbacks ClassInfos;
136                operator const EbmlId &() const {return ClassInfos.GlobalId;}
137                EbmlElement * Clone() const {return new KaxTagTargetType(*this);}
138};
139
140class MATROSKA_DLL_API KaxTagTrackUID : public EbmlUInteger {
141        public:
142                KaxTagTrackUID() :EbmlUInteger(0) {}
143                KaxTagTrackUID(const KaxTagTrackUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
144                static EbmlElement & Create() {return *(new KaxTagTrackUID);}
145                const EbmlCallbacks & Generic() const {return ClassInfos;}
146                static const EbmlCallbacks ClassInfos;
147                operator const EbmlId &() const {return ClassInfos.GlobalId;}
148                EbmlElement * Clone() const {return new KaxTagTrackUID(*this);}
149};
150
151class MATROSKA_DLL_API KaxTagEditionUID : public EbmlUInteger {
152        public:
153                KaxTagEditionUID() :EbmlUInteger(0) {}
154                KaxTagEditionUID(const KaxTagEditionUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
155                static EbmlElement & Create() {return *(new KaxTagEditionUID);}
156                const EbmlCallbacks & Generic() const {return ClassInfos;}
157                static const EbmlCallbacks ClassInfos;
158                operator const EbmlId &() const {return ClassInfos.GlobalId;}
159                EbmlElement * Clone() const {return new KaxTagEditionUID(*this);}
160};
161
162class MATROSKA_DLL_API KaxTagChapterUID : public EbmlUInteger {
163        public:
164                KaxTagChapterUID() :EbmlUInteger(0) {}
165                KaxTagChapterUID(const KaxTagChapterUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
166                static EbmlElement & Create() {return *(new KaxTagChapterUID);}
167                const EbmlCallbacks & Generic() const {return ClassInfos;}
168                static const EbmlCallbacks ClassInfos;
169                operator const EbmlId &() const {return ClassInfos.GlobalId;}
170                EbmlElement * Clone() const {return new KaxTagChapterUID(*this);}
171};
172
173class MATROSKA_DLL_API KaxTagAttachmentUID : public EbmlUInteger {
174        public:
175                KaxTagAttachmentUID() :EbmlUInteger(0) {}
176                KaxTagAttachmentUID(const KaxTagAttachmentUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
177                static EbmlElement & Create() {return *(new KaxTagAttachmentUID);}
178                const EbmlCallbacks & Generic() const {return ClassInfos;}
179                static const EbmlCallbacks ClassInfos;
180                operator const EbmlId &() const {return ClassInfos.GlobalId;}
181                EbmlElement * Clone() const {return new KaxTagAttachmentUID(*this);}
182};
183
184class MATROSKA_DLL_API KaxTagArchivalLocation : public EbmlUnicodeString {
185        public:
186                KaxTagArchivalLocation() {}
187                KaxTagArchivalLocation(const KaxTagArchivalLocation & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
188                static EbmlElement & Create() {return *(new KaxTagArchivalLocation);}
189                const EbmlCallbacks & Generic() const {return ClassInfos;}
190                static const EbmlCallbacks ClassInfos;
191                operator const EbmlId &() const {return ClassInfos.GlobalId;}
192                EbmlElement * Clone() const {return new KaxTagArchivalLocation(*this);}
193};
194
195class MATROSKA_DLL_API KaxTagAudioEncryption : public EbmlBinary {
196        public:
197                KaxTagAudioEncryption() {}
198                KaxTagAudioEncryption(const KaxTagAudioEncryption & ElementToClone) :EbmlBinary(ElementToClone){}
199                static EbmlElement & Create() {return *(new KaxTagAudioEncryption);}
200                bool ValidateSize() const {return true;} // we don't mind about what's inside
201                const EbmlCallbacks & Generic() const {return ClassInfos;}
202                static const EbmlCallbacks ClassInfos;
203                operator const EbmlId &() const {return ClassInfos.GlobalId;}
204                EbmlElement * Clone() const {return new KaxTagAudioEncryption(*this);}
205};
206
207class MATROSKA_DLL_API KaxTagAudioGain : public EbmlFloat {
208        public:
209                KaxTagAudioGain() {}
210                KaxTagAudioGain(const KaxTagAudioGain & ElementToClone) :EbmlFloat(ElementToClone) {}
211                static EbmlElement & Create() {return *(new KaxTagAudioGain);}
212                const EbmlCallbacks & Generic() const {return ClassInfos;}
213                static const EbmlCallbacks ClassInfos;
214                operator const EbmlId &() const {return ClassInfos.GlobalId;}
215                EbmlElement * Clone() const {return new KaxTagAudioGain(*this);}
216};
217
218class MATROSKA_DLL_API KaxTagAudioGenre : public EbmlString {
219        public:
220                KaxTagAudioGenre() {}
221                KaxTagAudioGenre(const KaxTagAudioGenre & ElementToClone) :EbmlString(ElementToClone) {}
222                static EbmlElement & Create() {return *(new KaxTagAudioGenre);}
223                const EbmlCallbacks & Generic() const {return ClassInfos;}
224                static const EbmlCallbacks ClassInfos;
225                operator const EbmlId &() const {return ClassInfos.GlobalId;}
226                EbmlElement * Clone() const {return new KaxTagAudioGenre(*this);}
227};
228
229class MATROSKA_DLL_API KaxTagAudioPeak : public EbmlFloat {
230        public:
231                KaxTagAudioPeak() {}
232                KaxTagAudioPeak(const KaxTagAudioPeak & ElementToClone) :EbmlFloat(ElementToClone) {}
233                static EbmlElement & Create() {return *(new KaxTagAudioPeak);}
234                const EbmlCallbacks & Generic() const {return ClassInfos;}
235                static const EbmlCallbacks ClassInfos;
236                operator const EbmlId &() const {return ClassInfos.GlobalId;}
237                EbmlElement * Clone() const {return new KaxTagAudioPeak(*this);}
238};
239
240class MATROSKA_DLL_API KaxTagBibliography : public EbmlUnicodeString {
241        public:
242                KaxTagBibliography() {}
243                KaxTagBibliography(const KaxTagBibliography & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
244                static EbmlElement & Create() {return *(new KaxTagBibliography);}
245                const EbmlCallbacks & Generic() const {return ClassInfos;}
246                static const EbmlCallbacks ClassInfos;
247                operator const EbmlId &() const {return ClassInfos.GlobalId;}
248                EbmlElement * Clone() const {return new KaxTagBibliography(*this);}
249};
250
251class MATROSKA_DLL_API KaxTagBPM : public EbmlFloat {
252        public:
253                KaxTagBPM() {}
254                KaxTagBPM(const KaxTagBPM & ElementToClone) :EbmlFloat(ElementToClone) {}
255                static EbmlElement & Create() {return *(new KaxTagBPM);}
256                const EbmlCallbacks & Generic() const {return ClassInfos;}
257                static const EbmlCallbacks ClassInfos;
258                operator const EbmlId &() const {return ClassInfos.GlobalId;}
259                EbmlElement * Clone() const {return new KaxTagBPM(*this);}
260};
261
262class MATROSKA_DLL_API KaxTagCaptureDPI : public EbmlUInteger {
263        public:
264                KaxTagCaptureDPI() {}
265                KaxTagCaptureDPI(const KaxTagCaptureDPI & ElementToClone) :EbmlUInteger(ElementToClone) {}
266                static EbmlElement & Create() {return *(new KaxTagCaptureDPI);}
267                const EbmlCallbacks & Generic() const {return ClassInfos;}
268                static const EbmlCallbacks ClassInfos;
269                operator const EbmlId &() const {return ClassInfos.GlobalId;}
270                EbmlElement * Clone() const {return new KaxTagCaptureDPI(*this);}
271};
272
273class MATROSKA_DLL_API KaxTagCaptureLightness : public EbmlBinary {
274        public:
275                KaxTagCaptureLightness() {}
276                KaxTagCaptureLightness(const KaxTagCaptureLightness & ElementToClone) :EbmlBinary(ElementToClone){}
277                static EbmlElement & Create() {return *(new KaxTagCaptureLightness);}
278                bool ValidateSize() const {return true;} // we don't mind about what's inside
279                const EbmlCallbacks & Generic() const {return ClassInfos;}
280                static const EbmlCallbacks ClassInfos;
281                operator const EbmlId &() const {return ClassInfos.GlobalId;}
282                EbmlElement * Clone() const {return new KaxTagCaptureLightness(*this);}
283};
284
285class MATROSKA_DLL_API KaxTagCapturePaletteSetting : public EbmlUInteger {
286        public:
287                KaxTagCapturePaletteSetting() {}
288                KaxTagCapturePaletteSetting(const KaxTagCapturePaletteSetting & ElementToClone) :EbmlUInteger(ElementToClone) {}
289                static EbmlElement & Create() {return *(new KaxTagCapturePaletteSetting);}
290                const EbmlCallbacks & Generic() const {return ClassInfos;}
291                static const EbmlCallbacks ClassInfos;
292                operator const EbmlId &() const {return ClassInfos.GlobalId;}
293                EbmlElement * Clone() const {return new KaxTagCapturePaletteSetting(*this);}
294};
295
296class MATROSKA_DLL_API KaxTagCaptureSharpness : public EbmlBinary {
297        public:
298                KaxTagCaptureSharpness() {}
299                KaxTagCaptureSharpness(const KaxTagCaptureSharpness & ElementToClone) :EbmlBinary(ElementToClone){}
300                static EbmlElement & Create() {return *(new KaxTagCaptureSharpness);}
301                bool ValidateSize() const {return true;} // we don't mind about what's inside
302                const EbmlCallbacks & Generic() const {return ClassInfos;}
303                static const EbmlCallbacks ClassInfos;
304                operator const EbmlId &() const {return ClassInfos.GlobalId;}
305                EbmlElement * Clone() const {return new KaxTagCaptureSharpness(*this);}
306};
307
308class MATROSKA_DLL_API KaxTagCropped : public EbmlUnicodeString {
309        public:
310                KaxTagCropped() {}
311                KaxTagCropped(const KaxTagCropped & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
312                static EbmlElement & Create() {return *(new KaxTagCropped);}
313                const EbmlCallbacks & Generic() const {return ClassInfos;}
314                static const EbmlCallbacks ClassInfos;
315                operator const EbmlId &() const {return ClassInfos.GlobalId;}
316                EbmlElement * Clone() const {return new KaxTagCropped(*this);}
317};
318
319class MATROSKA_DLL_API KaxTagDiscTrack : public EbmlUInteger {
320        public:
321                KaxTagDiscTrack() {}
322                KaxTagDiscTrack(const KaxTagDiscTrack & ElementToClone) :EbmlUInteger(ElementToClone) {}
323                static EbmlElement & Create() {return *(new KaxTagDiscTrack);}
324                const EbmlCallbacks & Generic() const {return ClassInfos;}
325                static const EbmlCallbacks ClassInfos;
326                operator const EbmlId &() const {return ClassInfos.GlobalId;}
327                EbmlElement * Clone() const {return new KaxTagDiscTrack(*this);}
328};
329
330class MATROSKA_DLL_API KaxTagEncoder : public EbmlUnicodeString {
331        public:
332                KaxTagEncoder() {}
333                KaxTagEncoder(const KaxTagEncoder & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
334                static EbmlElement & Create() {return *(new KaxTagEncoder);}
335                const EbmlCallbacks & Generic() const {return ClassInfos;}
336                static const EbmlCallbacks ClassInfos;
337                operator const EbmlId &() const {return ClassInfos.GlobalId;}
338                EbmlElement * Clone() const {return new KaxTagEncoder(*this);}
339};
340
341class MATROSKA_DLL_API KaxTagEncodeSettings : public EbmlUnicodeString {
342        public:
343                KaxTagEncodeSettings() {}
344                KaxTagEncodeSettings(const KaxTagEncodeSettings & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
345                static EbmlElement & Create() {return *(new KaxTagEncodeSettings);}
346                const EbmlCallbacks & Generic() const {return ClassInfos;}
347                static const EbmlCallbacks ClassInfos;
348                operator const EbmlId &() const {return ClassInfos.GlobalId;}
349                EbmlElement * Clone() const {return new KaxTagEncodeSettings(*this);}
350};
351
352class MATROSKA_DLL_API KaxTagEqualisation : public EbmlBinary {
353        public:
354                KaxTagEqualisation() {}
355                KaxTagEqualisation(const KaxTagEqualisation & ElementToClone) :EbmlBinary(ElementToClone){}
356                static EbmlElement & Create() {return *(new KaxTagEqualisation);}
357                bool ValidateSize() const {return true;} // we don't mind about what's inside
358                const EbmlCallbacks & Generic() const {return ClassInfos;}
359                static const EbmlCallbacks ClassInfos;
360                operator const EbmlId &() const {return ClassInfos.GlobalId;}
361                EbmlElement * Clone() const {return new KaxTagEqualisation(*this);}
362};
363
364class MATROSKA_DLL_API KaxTagFile : public EbmlUnicodeString {
365        public:
366                KaxTagFile() {}
367                KaxTagFile(const KaxTagFile & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
368                static EbmlElement & Create() {return *(new KaxTagFile);}
369                const EbmlCallbacks & Generic() const {return ClassInfos;}
370                static const EbmlCallbacks ClassInfos;
371                operator const EbmlId &() const {return ClassInfos.GlobalId;}
372                EbmlElement * Clone() const {return new KaxTagFile(*this);}
373};
374
375class MATROSKA_DLL_API KaxTagInitialKey : public EbmlString {
376        public:
377                KaxTagInitialKey() {}
378                KaxTagInitialKey(const KaxTagInitialKey & ElementToClone) :EbmlString(ElementToClone) {}
379                static EbmlElement & Create() {return *(new KaxTagInitialKey);}
380                const EbmlCallbacks & Generic() const {return ClassInfos;}
381                static const EbmlCallbacks ClassInfos;
382                operator const EbmlId &() const {return ClassInfos.GlobalId;}
383                EbmlElement * Clone() const {return new KaxTagInitialKey(*this);}
384};
385
386class MATROSKA_DLL_API KaxTagKeywords : public EbmlUnicodeString {
387        public:
388                KaxTagKeywords() {}
389                KaxTagKeywords(const KaxTagKeywords & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
390                static EbmlElement & Create() {return *(new KaxTagKeywords);}
391                const EbmlCallbacks & Generic() const {return ClassInfos;}
392                static const EbmlCallbacks ClassInfos;
393                operator const EbmlId &() const {return ClassInfos.GlobalId;}
394                EbmlElement * Clone() const {return new KaxTagKeywords(*this);}
395};
396
397class MATROSKA_DLL_API KaxTagLanguage : public EbmlString {
398        public:
399                KaxTagLanguage() {}
400                KaxTagLanguage(const KaxTagLanguage & ElementToClone) :EbmlString(ElementToClone) {}
401                static EbmlElement & Create() {return *(new KaxTagLanguage);}
402                const EbmlCallbacks & Generic() const {return ClassInfos;}
403                static const EbmlCallbacks ClassInfos;
404                operator const EbmlId &() const {return ClassInfos.GlobalId;}
405                EbmlElement * Clone() const {return new KaxTagLanguage(*this);}
406};
407
408class MATROSKA_DLL_API KaxTagLength : public EbmlUInteger {
409        public:
410                KaxTagLength() {}
411                KaxTagLength(const KaxTagLength & ElementToClone) :EbmlUInteger(ElementToClone) {}
412                static EbmlElement & Create() {return *(new KaxTagLength);}
413                const EbmlCallbacks & Generic() const {return ClassInfos;}
414                static const EbmlCallbacks ClassInfos;
415                operator const EbmlId &() const {return ClassInfos.GlobalId;}
416                EbmlElement * Clone() const {return new KaxTagLength(*this);}
417};
418
419class MATROSKA_DLL_API KaxTagMood : public EbmlUnicodeString {
420        public:
421                KaxTagMood() {}
422                KaxTagMood(const KaxTagMood & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
423                static EbmlElement & Create() {return *(new KaxTagMood);}
424                const EbmlCallbacks & Generic() const {return ClassInfos;}
425                static const EbmlCallbacks ClassInfos;
426                operator const EbmlId &() const {return ClassInfos.GlobalId;}
427                EbmlElement * Clone() const {return new KaxTagMood(*this);}
428};
429
430class MATROSKA_DLL_API KaxTagOfficialAudioFileURL : public EbmlString {
431        public:
432                KaxTagOfficialAudioFileURL() {}
433                KaxTagOfficialAudioFileURL(const KaxTagOfficialAudioFileURL & ElementToClone) :EbmlString(ElementToClone) {}
434                static EbmlElement & Create() {return *(new KaxTagOfficialAudioFileURL);}
435                const EbmlCallbacks & Generic() const {return ClassInfos;}
436                static const EbmlCallbacks ClassInfos;
437                operator const EbmlId &() const {return ClassInfos.GlobalId;}
438                EbmlElement * Clone() const {return new KaxTagOfficialAudioFileURL(*this);}
439};
440
441class MATROSKA_DLL_API KaxTagOfficialAudioSourceURL : public EbmlString {
442        public:
443                KaxTagOfficialAudioSourceURL() {}
444                KaxTagOfficialAudioSourceURL(const KaxTagOfficialAudioSourceURL & ElementToClone) :EbmlString(ElementToClone) {}
445                static EbmlElement & Create() {return *(new KaxTagOfficialAudioSourceURL);}
446                const EbmlCallbacks & Generic() const {return ClassInfos;}
447                static const EbmlCallbacks ClassInfos;
448                operator const EbmlId &() const {return ClassInfos.GlobalId;}
449                EbmlElement * Clone() const {return new KaxTagOfficialAudioSourceURL(*this);}
450};
451
452class MATROSKA_DLL_API KaxTagOriginalDimensions : public EbmlString {
453        public:
454                KaxTagOriginalDimensions() {}
455                KaxTagOriginalDimensions(const KaxTagOriginalDimensions & ElementToClone) :EbmlString(ElementToClone) {}
456                static EbmlElement & Create() {return *(new KaxTagOriginalDimensions);}
457                const EbmlCallbacks & Generic() const {return ClassInfos;}
458                static const EbmlCallbacks ClassInfos;
459                operator const EbmlId &() const {return ClassInfos.GlobalId;}
460                EbmlElement * Clone() const {return new KaxTagOriginalDimensions(*this);}
461};
462
463class MATROSKA_DLL_API KaxTagOriginalMediaType : public EbmlUnicodeString {
464        public:
465                KaxTagOriginalMediaType() {}
466                KaxTagOriginalMediaType(const KaxTagOriginalMediaType & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
467                static EbmlElement & Create() {return *(new KaxTagOriginalMediaType);}
468                const EbmlCallbacks & Generic() const {return ClassInfos;}
469                static const EbmlCallbacks ClassInfos;
470                operator const EbmlId &() const {return ClassInfos.GlobalId;}
471                EbmlElement * Clone() const {return new KaxTagOriginalMediaType(*this);}
472};
473
474class MATROSKA_DLL_API KaxTagPlayCounter : public EbmlUInteger {
475        public:
476                KaxTagPlayCounter() {}
477                KaxTagPlayCounter(const KaxTagPlayCounter & ElementToClone) :EbmlUInteger(ElementToClone) {}
478                static EbmlElement & Create() {return *(new KaxTagPlayCounter);}
479                const EbmlCallbacks & Generic() const {return ClassInfos;}
480                static const EbmlCallbacks ClassInfos;
481                operator const EbmlId &() const {return ClassInfos.GlobalId;}
482                EbmlElement * Clone() const {return new KaxTagPlayCounter(*this);}
483};                       
484
485class MATROSKA_DLL_API KaxTagPlaylistDelay : public EbmlUInteger {
486        public:
487                KaxTagPlaylistDelay() {}
488                KaxTagPlaylistDelay(const KaxTagPlaylistDelay & ElementToClone) :EbmlUInteger(ElementToClone) {}
489                static EbmlElement & Create() {return *(new KaxTagPlaylistDelay);}
490                const EbmlCallbacks & Generic() const {return ClassInfos;}
491                static const EbmlCallbacks ClassInfos;
492                operator const EbmlId &() const {return ClassInfos.GlobalId;}
493                EbmlElement * Clone() const {return new KaxTagPlaylistDelay(*this);}
494};
495
496class MATROSKA_DLL_API KaxTagPopularimeter : public EbmlSInteger {
497        public:
498                KaxTagPopularimeter() {}
499                KaxTagPopularimeter(const KaxTagPopularimeter & ElementToClone) :EbmlSInteger(ElementToClone) {}
500                static EbmlElement & Create() {return *(new KaxTagPopularimeter);}
501                const EbmlCallbacks & Generic() const {return ClassInfos;}
502                static const EbmlCallbacks ClassInfos;
503                operator const EbmlId &() const {return ClassInfos.GlobalId;}
504                EbmlElement * Clone() const {return new KaxTagPopularimeter(*this);}
505};
506
507class MATROSKA_DLL_API KaxTagProduct : public EbmlUnicodeString {
508        public:
509                KaxTagProduct() {}
510                KaxTagProduct(const KaxTagProduct & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
511                static EbmlElement & Create() {return *(new KaxTagProduct);}
512                const EbmlCallbacks & Generic() const {return ClassInfos;}
513                static const EbmlCallbacks ClassInfos;
514                operator const EbmlId &() const {return ClassInfos.GlobalId;}
515                EbmlElement * Clone() const {return new KaxTagProduct(*this);}
516};
517
518class MATROSKA_DLL_API KaxTagRating : public EbmlBinary {
519        public:
520                KaxTagRating() {}
521                KaxTagRating(const KaxTagRating & ElementToClone) :EbmlBinary(ElementToClone){}
522                static EbmlElement & Create() {return *(new KaxTagRating);}
523                bool ValidateSize() const {return true;} // we don't mind about what's inside
524                const EbmlCallbacks & Generic() const {return ClassInfos;}
525                static const EbmlCallbacks ClassInfos;
526                operator const EbmlId &() const {return ClassInfos.GlobalId;}
527                EbmlElement * Clone() const {return new KaxTagRating(*this);}
528};
529
530class MATROSKA_DLL_API KaxTagRecordLocation : public EbmlString {
531        public:
532                KaxTagRecordLocation() {}
533                KaxTagRecordLocation(const KaxTagRecordLocation & ElementToClone) :EbmlString(ElementToClone) {}
534                static EbmlElement & Create() {return *(new KaxTagRecordLocation);}
535                const EbmlCallbacks & Generic() const {return ClassInfos;}
536                static const EbmlCallbacks ClassInfos;
537                operator const EbmlId &() const {return ClassInfos.GlobalId;}
538                EbmlElement * Clone() const {return new KaxTagRecordLocation(*this);}
539};
540
541class MATROSKA_DLL_API KaxTagSetPart : public EbmlUInteger {
542        public:
543                KaxTagSetPart() {}
544                KaxTagSetPart(const KaxTagSetPart & ElementToClone) :EbmlUInteger(ElementToClone) {}
545                static EbmlElement & Create() {return *(new KaxTagSetPart);}
546                const EbmlCallbacks & Generic() const {return ClassInfos;}
547                static const EbmlCallbacks ClassInfos;
548                operator const EbmlId &() const {return ClassInfos.GlobalId;}
549                EbmlElement * Clone() const {return new KaxTagSetPart(*this);}
550};
551
552class MATROSKA_DLL_API KaxTagSource : public EbmlUnicodeString {
553        public:
554                KaxTagSource() {}
555                KaxTagSource(const KaxTagSource & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
556                static EbmlElement & Create() {return *(new KaxTagSource);}
557                const EbmlCallbacks & Generic() const {return ClassInfos;}
558                static const EbmlCallbacks ClassInfos;
559                operator const EbmlId &() const {return ClassInfos.GlobalId;}
560                EbmlElement * Clone() const {return new KaxTagSource(*this);}
561};
562
563class MATROSKA_DLL_API KaxTagSourceForm : public EbmlUnicodeString {
564        public:
565                KaxTagSourceForm() {}
566                KaxTagSourceForm(const KaxTagSourceForm & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
567                static EbmlElement & Create() {return *(new KaxTagSourceForm);}
568                const EbmlCallbacks & Generic() const {return ClassInfos;}
569                static const EbmlCallbacks ClassInfos;
570                operator const EbmlId &() const {return ClassInfos.GlobalId;}
571                EbmlElement * Clone() const {return new KaxTagSourceForm(*this);}
572};
573
574class MATROSKA_DLL_API KaxTagSubGenre : public EbmlString {
575        public:
576                KaxTagSubGenre() {}
577                KaxTagSubGenre(const KaxTagSubGenre & ElementToClone) :EbmlString(ElementToClone) {}
578                static EbmlElement & Create() {return *(new KaxTagSubGenre);}
579                const EbmlCallbacks & Generic() const {return ClassInfos;}
580                static const EbmlCallbacks ClassInfos;
581                operator const EbmlId &() const {return ClassInfos.GlobalId;}
582                EbmlElement * Clone() const {return new KaxTagSubGenre(*this);}
583};
584
585class MATROSKA_DLL_API KaxTagSubject : public EbmlUnicodeString {
586        public:
587                KaxTagSubject() {}
588                KaxTagSubject(const KaxTagSubject & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
589                static EbmlElement & Create() {return *(new KaxTagSubject);}
590                const EbmlCallbacks & Generic() const {return ClassInfos;}
591                static const EbmlCallbacks ClassInfos;
592                operator const EbmlId &() const {return ClassInfos.GlobalId;}
593                EbmlElement * Clone() const {return new KaxTagSubject(*this);}
594};
595
596class MATROSKA_DLL_API KaxTagUnsynchronisedText : public EbmlUnicodeString {
597        public:
598                KaxTagUnsynchronisedText() {}
599                KaxTagUnsynchronisedText(const KaxTagUnsynchronisedText & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
600                static EbmlElement & Create() {return *(new KaxTagUnsynchronisedText);}
601                const EbmlCallbacks & Generic() const {return ClassInfos;}
602                static const EbmlCallbacks ClassInfos;
603                operator const EbmlId &() const {return ClassInfos.GlobalId;}
604                EbmlElement * Clone() const {return new KaxTagUnsynchronisedText(*this);}
605};
606
607class MATROSKA_DLL_API KaxTagUserDefinedURL : public EbmlString {
608        public:
609                KaxTagUserDefinedURL() {}
610                KaxTagUserDefinedURL(const KaxTagUserDefinedURL & ElementToClone) :EbmlString(ElementToClone) {}
611                static EbmlElement & Create() {return *(new KaxTagUserDefinedURL);}
612                const EbmlCallbacks & Generic() const {return ClassInfos;}
613                static const EbmlCallbacks ClassInfos;
614                operator const EbmlId &() const {return ClassInfos.GlobalId;}
615                EbmlElement * Clone() const {return new KaxTagUserDefinedURL(*this);}
616};
617
618class MATROSKA_DLL_API KaxTagVideoGenre : public EbmlBinary {
619        public:
620                KaxTagVideoGenre() {}
621                KaxTagVideoGenre(const KaxTagVideoGenre & ElementToClone) :EbmlBinary(ElementToClone){}
622                static EbmlElement & Create() {return *(new KaxTagVideoGenre);}
623                bool ValidateSize() const {return (Size >= 2);}
624                const EbmlCallbacks & Generic() const {return ClassInfos;}
625                static const EbmlCallbacks ClassInfos;
626                operator const EbmlId &() const {return ClassInfos.GlobalId;}
627                EbmlElement * Clone() const {return new KaxTagVideoGenre(*this);}
628};
629
630class MATROSKA_DLL_API KaxTagSimple : public EbmlMaster {
631        public:
632                KaxTagSimple();
633                KaxTagSimple(const KaxTagSimple & ElementToClone) :EbmlMaster(ElementToClone) {}
634                static EbmlElement & Create() {return *(new KaxTagSimple);}
635                const EbmlCallbacks & Generic() const {return ClassInfos;}
636                static const EbmlCallbacks ClassInfos;
637                operator const EbmlId &() const {return ClassInfos.GlobalId;}
638                EbmlElement * Clone() const {return new KaxTagSimple(*this);}
639};
640
641class MATROSKA_DLL_API KaxTagName : public EbmlUnicodeString {
642        public:
643                KaxTagName() {}
644                KaxTagName(const KaxTagName & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
645                static EbmlElement & Create() {return *(new KaxTagName);}
646                const EbmlCallbacks & Generic() const {return ClassInfos;}
647                static const EbmlCallbacks ClassInfos;
648                operator const EbmlId &() const {return ClassInfos.GlobalId;}
649                EbmlElement * Clone() const {return new KaxTagName(*this);}
650};
651
652class MATROSKA_DLL_API KaxTagLangue : public EbmlString {
653        public:
654                KaxTagLangue(): EbmlString("und") {}
655                KaxTagLangue(const KaxTagLangue & ElementToClone) :EbmlString(ElementToClone) {}
656                static EbmlElement & Create() {return *(new KaxTagLangue);}
657                const EbmlCallbacks & Generic() const {return ClassInfos;}
658                static const EbmlCallbacks ClassInfos;
659                operator const EbmlId &() const {return ClassInfos.GlobalId;}
660                EbmlElement * Clone() const {return new KaxTagLangue(*this);}
661};
662
663class MATROSKA_DLL_API KaxTagDefault : public EbmlUInteger {
664        public:
665                KaxTagDefault() :EbmlUInteger(1) {}
666                KaxTagDefault(const KaxTagTrackUID & ElementToClone) :EbmlUInteger(ElementToClone) {}
667                static EbmlElement & Create() {return *(new KaxTagDefault);}
668                const EbmlCallbacks & Generic() const {return ClassInfos;}
669                static const EbmlCallbacks ClassInfos;
670                operator const EbmlId &() const {return ClassInfos.GlobalId;}
671                EbmlElement * Clone() const {return new KaxTagDefault(*this);}
672};
673
674class MATROSKA_DLL_API KaxTagString : public EbmlUnicodeString {
675        public:
676                KaxTagString() {}
677                KaxTagString(const KaxTagString & ElementToClone) :EbmlUnicodeString(ElementToClone) {}
678                static EbmlElement & Create() {return *(new KaxTagString);}
679                const EbmlCallbacks & Generic() const {return ClassInfos;}
680                static const EbmlCallbacks ClassInfos;
681                operator const EbmlId &() const {return ClassInfos.GlobalId;}
682                EbmlElement * Clone() const {return new KaxTagString(*this);}
683};
684
685class MATROSKA_DLL_API KaxTagBinary : public EbmlBinary {
686        public:
687                KaxTagBinary() {}
688                KaxTagBinary(const KaxTagBinary & ElementToClone) :EbmlBinary(ElementToClone){}
689                static EbmlElement & Create() {return *(new KaxTagBinary);}
690                bool ValidateSize() const {return (Size >= 0);}
691                const EbmlCallbacks & Generic() const {return ClassInfos;}
692                static const EbmlCallbacks ClassInfos;
693                operator const EbmlId &() const {return ClassInfos.GlobalId;}
694                EbmlElement * Clone() const {return new KaxTagBinary(*this);}
695};
696
697END_LIBMATROSKA_NAMESPACE
698
699#endif // LIBMATROSKA_TAG_H
Note: See TracBrowser for help on using the repository browser.