| 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 | |
|---|
| 48 | using namespace LIBEBML_NAMESPACE; |
|---|
| 49 | |
|---|
| 50 | START_LIBMATROSKA_NAMESPACE |
|---|
| 51 | |
|---|
| 52 | class 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 | |
|---|
| 63 | class 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 | |
|---|
| 74 | class 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 | |
|---|
| 85 | class 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 | |
|---|
| 96 | class 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 | |
|---|
| 107 | class 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 | |
|---|
| 118 | class 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 | |
|---|
| 129 | class 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 | |
|---|
| 140 | class 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 | |
|---|
| 151 | class 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 | |
|---|
| 162 | class 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 | |
|---|
| 173 | class 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 | |
|---|
| 184 | class 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 | |
|---|
| 195 | class 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 | |
|---|
| 207 | class 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 | |
|---|
| 218 | class 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 | |
|---|
| 229 | class 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 | |
|---|
| 240 | class 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 | |
|---|
| 251 | class 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 | |
|---|
| 262 | class 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 | |
|---|
| 273 | class 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 | |
|---|
| 285 | class 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 | |
|---|
| 296 | class 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 | |
|---|
| 308 | class 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 | |
|---|
| 319 | class 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 | |
|---|
| 330 | class 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 | |
|---|
| 341 | class 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 | |
|---|
| 352 | class 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 | |
|---|
| 364 | class 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 | |
|---|
| 375 | class 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 | |
|---|
| 386 | class 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 | |
|---|
| 397 | class 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 | |
|---|
| 408 | class 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 | |
|---|
| 419 | class 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 | |
|---|
| 430 | class 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 | |
|---|
| 441 | class 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 | |
|---|
| 452 | class 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 | |
|---|
| 463 | class 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 | |
|---|
| 474 | class 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 | |
|---|
| 485 | class 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 | |
|---|
| 496 | class 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 | |
|---|
| 507 | class 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 | |
|---|
| 518 | class 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 | |
|---|
| 530 | class 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 | |
|---|
| 541 | class 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 | |
|---|
| 552 | class 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 | |
|---|
| 563 | class 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 | |
|---|
| 574 | class 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 | |
|---|
| 585 | class 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 | |
|---|
| 596 | class 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 | |
|---|
| 607 | class 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 | |
|---|
| 618 | class 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 | |
|---|
| 630 | class 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 | |
|---|
| 641 | class 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 | |
|---|
| 652 | class 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 | |
|---|
| 663 | class 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 | |
|---|
| 674 | class 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 | |
|---|
| 685 | class 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 | |
|---|
| 697 | END_LIBMATROSKA_NAMESPACE |
|---|
| 698 | |
|---|
| 699 | #endif // LIBMATROSKA_TAG_H |
|---|