From: Steve Lhomme Date: Mon, 15 Mar 2010 16:11:24 +0000 (+0000) Subject: add a macro to define all the pure virtual methods in a "concrete" EBML class (that... X-Git-Tag: release-0.9.0~48 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=781ba62fa0be0458a675478a4483779a6e99e29d;p=libmatroska add a macro to define all the pure virtual methods in a "concrete" EBML class (that correspond to an item in EBML streams) git-svn-id: https://matroska.svn.sourceforge.net/svnroot/matroska/trunk/libmatroska@16 a6f86f6d-0131-4f8e-9e7b-e335508773d5 --- diff --git a/matroska/KaxAttached.h b/matroska/KaxAttached.h index 26c40f8..e2a1743 100644 --- a/matroska/KaxAttached.h +++ b/matroska/KaxAttached.h @@ -50,91 +50,59 @@ class MATROSKA_DLL_API KaxAttached : public EbmlMaster { public: KaxAttached(); KaxAttached(const KaxAttached & ElementToClone) : EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxAttached);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - - operator const EbmlId &() const {return ClassInfos.GlobalId;} - bool IsYourId(const EbmlId & TestId) const; - EbmlElement * Clone() const {return new KaxAttached(*this);} + + EBML_CONCRETE_CLASS(KaxAttached) }; class MATROSKA_DLL_API KaxFileDescription : public EbmlUnicodeString { public: KaxFileDescription() {} KaxFileDescription(const KaxFileDescription & ElementToClone) : EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxFileDescription);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - - operator const EbmlId &() const {return ClassInfos.GlobalId;} - bool IsYourId(const EbmlId & TestId) const; - EbmlElement * Clone() const {return new KaxFileDescription(*this);} + + EBML_CONCRETE_CLASS(KaxFileDescription) }; class MATROSKA_DLL_API KaxFileName : public EbmlUnicodeString { public: KaxFileName() {} KaxFileName(const KaxFileName & ElementToClone) : EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxFileName);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - - operator const EbmlId &() const {return ClassInfos.GlobalId;} - bool IsYourId(const EbmlId & TestId) const; - EbmlElement * Clone() const {return new KaxFileName(*this);} + + EBML_CONCRETE_CLASS(KaxFileName) }; class MATROSKA_DLL_API KaxMimeType : public EbmlString { public: KaxMimeType() {} KaxMimeType(const KaxMimeType & ElementToClone) : EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxMimeType);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - - operator const EbmlId &() const {return ClassInfos.GlobalId;} - bool IsYourId(const EbmlId & TestId) const; - EbmlElement * Clone() const {return new KaxMimeType(*this);} + + EBML_CONCRETE_CLASS(KaxMimeType) }; class MATROSKA_DLL_API KaxFileData : public EbmlBinary { public: KaxFileData() {} KaxFileData(const KaxFileData & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxFileData);} - const EbmlCallbacks & Generic() const {return ClassInfos;} + bool ValidateSize() const {return true;} // we don't mind about what's inside - static const EbmlCallbacks ClassInfos; - - operator const EbmlId &() const {return ClassInfos.GlobalId;} - bool IsYourId(const EbmlId & TestId) const; - EbmlElement * Clone() const {return new KaxFileData(*this);} + + EBML_CONCRETE_CLASS(KaxFileData) }; class MATROSKA_DLL_API KaxFileReferral : public EbmlBinary { public: KaxFileReferral() {} KaxFileReferral(const KaxFileReferral & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxFileReferral);} - const EbmlCallbacks & Generic() const {return ClassInfos;} bool ValidateSize() const {return true;} // we don't mind about what's inside - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxFileReferral(*this);} + + EBML_CONCRETE_CLASS(KaxFileReferral) }; class MATROSKA_DLL_API KaxFileUID : public EbmlUInteger { public: KaxFileUID() {} KaxFileUID(const KaxFileUID & ElementToClone) : EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxFileUID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - - operator const EbmlId &() const {return ClassInfos.GlobalId;} - bool IsYourId(const EbmlId & TestId) const; - EbmlElement * Clone() const {return new KaxFileUID(*this);} + + EBML_CONCRETE_CLASS(KaxFileUID) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxAttachments.h b/matroska/KaxAttachments.h index ead8cb1..aded54e 100644 --- a/matroska/KaxAttachments.h +++ b/matroska/KaxAttachments.h @@ -46,11 +46,8 @@ class MATROSKA_DLL_API KaxAttachments : public EbmlMaster { public: KaxAttachments(); KaxAttachments(const KaxAttachments & ElementToClone) : EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxAttachments);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxAttachments(*this);} + + EBML_CONCRETE_CLASS(KaxAttachments) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxBlock.h b/matroska/KaxBlock.h index f114992..f48c472 100644 --- a/matroska/KaxBlock.h +++ b/matroska/KaxBlock.h @@ -126,11 +126,6 @@ class MATROSKA_DLL_API KaxBlockGroup : public EbmlMaster { public: KaxBlockGroup(); KaxBlockGroup(const KaxBlockGroup & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxBlockGroup);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxBlockGroup(*this);} ~KaxBlockGroup(); @@ -192,6 +187,8 @@ class MATROSKA_DLL_API KaxBlockGroup : public EbmlMaster { protected: KaxCluster * ParentCluster; const KaxTrackEntry * ParentTrack; + + EBML_CONCRETE_CLASS(KaxBlockGroup) }; class KaxInternalBlock : public EbmlBinary { @@ -278,22 +275,14 @@ class KaxInternalBlock : public EbmlBinary { class MATROSKA_DLL_API KaxBlock : public KaxInternalBlock { public: KaxBlock() :KaxInternalBlock(false) {} - static EbmlElement & Create() {return *(new KaxBlock);} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - const EbmlCallbacks & Generic() const {return ClassInfos;} - EbmlElement * Clone() const {return new KaxBlock(*this);} + + EBML_CONCRETE_CLASS(KaxBlock) }; #if MATROSKA_VERSION >= 2 class MATROSKA_DLL_API KaxSimpleBlock : public KaxInternalBlock { public: KaxSimpleBlock() :KaxInternalBlock(true) {} - static EbmlElement & Create() {return *(new KaxSimpleBlock);} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - const EbmlCallbacks & Generic() const {return ClassInfos;} - EbmlElement * Clone() const {return new KaxSimpleBlock(*this);} void SetKeyframe(bool b_keyframe) { bIsKeyframe = b_keyframe; } void SetDiscardable(bool b_discard) { bIsDiscardable = b_discard; } @@ -302,6 +291,8 @@ class MATROSKA_DLL_API KaxSimpleBlock : public KaxInternalBlock { bool IsDiscardable() const { return bIsDiscardable; } operator KaxInternalBlock &() { return *this; } + + EBML_CONCRETE_CLASS(KaxSimpleBlock) }; #endif // MATROSKA_VERSION @@ -355,11 +346,8 @@ class MATROSKA_DLL_API KaxBlockDuration : public EbmlUInteger { public: KaxBlockDuration() {} KaxBlockDuration(const KaxBlockDuration & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxBlockDuration);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxBlockDuration(*this);} + + EBML_CONCRETE_CLASS(KaxBlockDuration) }; #if MATROSKA_VERSION >= 2 @@ -367,10 +355,6 @@ class MATROSKA_DLL_API KaxBlockVirtual : public EbmlBinary { public: KaxBlockVirtual() :ParentCluster(NULL) {SetBuffer(DataBlock,sizeof(DataBlock)); SetValueIsSet(false);} KaxBlockVirtual(const KaxBlockVirtual & ElementToClone); - static EbmlElement & Create() {return *(new KaxBlockVirtual);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} bool ValidateSize() const {return true;} /*! @@ -380,14 +364,14 @@ class MATROSKA_DLL_API KaxBlockVirtual : public EbmlBinary { void SetParent(const KaxCluster & aParentCluster) {ParentCluster = &aParentCluster;} - EbmlElement * Clone() const {return new KaxBlockVirtual(*this);} - protected: uint64 Timecode; // temporary timecode of the first frame if there are more than one uint16 TrackNumber; binary DataBlock[5]; const KaxCluster * ParentCluster; + + EBML_CONCRETE_CLASS(KaxBlockVirtual) }; #endif // MATROSKA_VERSION @@ -395,59 +379,43 @@ class MATROSKA_DLL_API KaxBlockAdditional : public EbmlBinary { public: KaxBlockAdditional() {} KaxBlockAdditional(const KaxBlockAdditional & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxBlockAdditional);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - bool ValidateSize() const {return true;} + bool ValidateSize() const {return true;} - EbmlElement * Clone() const {return new KaxBlockAdditional(*this);} + EBML_CONCRETE_CLASS(KaxBlockAdditional) }; class MATROSKA_DLL_API KaxBlockAdditions : public EbmlMaster { public: KaxBlockAdditions(); KaxBlockAdditions(const KaxBlockAdditions & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxBlockAdditions);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxBlockAdditions(*this);} + + EBML_CONCRETE_CLASS(KaxBlockAdditions) }; class MATROSKA_DLL_API KaxBlockMore : public EbmlMaster { public: KaxBlockMore(); KaxBlockMore(const KaxBlockMore & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxBlockMore);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxBlockMore(*this);} + + EBML_CONCRETE_CLASS(KaxBlockMore) }; class MATROSKA_DLL_API KaxBlockAddID : public EbmlUInteger { public: KaxBlockAddID() :EbmlUInteger(1) {} KaxBlockAddID(const KaxBlockAddID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxBlockAddID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxBlockAddID(*this);} + + EBML_CONCRETE_CLASS(KaxBlockAddID) }; class MATROSKA_DLL_API KaxCodecState : public EbmlBinary { public: KaxCodecState() {} KaxCodecState(const KaxCodecState & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxCodecState);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - bool ValidateSize() const {return true;} - EbmlElement * Clone() const {return new KaxCodecState(*this);} + bool ValidateSize() const {return true;} + + EBML_CONCRETE_CLASS(KaxCodecState) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxBlockData.h b/matroska/KaxBlockData.h index fc12312..f209993 100644 --- a/matroska/KaxBlockData.h +++ b/matroska/KaxBlockData.h @@ -50,11 +50,8 @@ class MATROSKA_DLL_API KaxReferencePriority : public EbmlUInteger { public: KaxReferencePriority() :EbmlUInteger(0) {} KaxReferencePriority(const KaxReferencePriority & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxReferencePriority);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxReferencePriority(*this);} + + EBML_CONCRETE_CLASS(KaxReferencePriority) }; /*! @@ -64,11 +61,6 @@ class MATROSKA_DLL_API KaxReferenceBlock : public EbmlSInteger { public: KaxReferenceBlock() :RefdBlock(NULL), ParentBlock(NULL) {bTimecodeSet = false;} KaxReferenceBlock(const KaxReferenceBlock & ElementToClone) :EbmlSInteger(ElementToClone), bTimecodeSet(ElementToClone.bTimecodeSet) {} - static EbmlElement & Create() {return *(new KaxReferenceBlock);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxReferenceBlock(*this);} /*! \brief override this method to compute the timecode value @@ -85,6 +77,8 @@ class MATROSKA_DLL_API KaxReferenceBlock : public EbmlSInteger { const KaxBlockGroup * ParentBlock; void SetReferencedTimecode(int64 refTimecode) {*static_cast(this) = refTimecode; bTimecodeSet = true;}; bool bTimecodeSet; + + EBML_CONCRETE_CLASS(KaxReferenceBlock) }; #if MATROSKA_VERSION >= 2 @@ -92,11 +86,8 @@ class MATROSKA_DLL_API KaxReferenceVirtual : public EbmlSInteger { public: KaxReferenceVirtual() {} KaxReferenceVirtual(const KaxReferenceVirtual & ElementToClone) :EbmlSInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxReferenceVirtual);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxReferenceVirtual(*this);} + + EBML_CONCRETE_CLASS(KaxReferenceVirtual) }; #endif // MATROSKA_VERSION @@ -104,77 +95,56 @@ class MATROSKA_DLL_API KaxTimeSlice : public EbmlMaster { public: KaxTimeSlice(); KaxTimeSlice(const KaxTimeSlice & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTimeSlice);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTimeSlice(*this);} + + EBML_CONCRETE_CLASS(KaxTimeSlice) }; class MATROSKA_DLL_API KaxSlices : public EbmlMaster { public: KaxSlices(); KaxSlices(const KaxSlices & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxSlices);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxSlices(*this);} + + EBML_CONCRETE_CLASS(KaxSlices) }; class MATROSKA_DLL_API KaxSliceLaceNumber : public EbmlUInteger { public: KaxSliceLaceNumber() :EbmlUInteger(0) {} KaxSliceLaceNumber(const KaxSliceLaceNumber & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxSliceLaceNumber);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxSliceLaceNumber(*this);} + + EBML_CONCRETE_CLASS(KaxSliceLaceNumber) }; class MATROSKA_DLL_API KaxSliceFrameNumber : public EbmlUInteger { public: KaxSliceFrameNumber() :EbmlUInteger(0) {} KaxSliceFrameNumber(const KaxSliceFrameNumber & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxSliceFrameNumber);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxSliceFrameNumber(*this);} + + EBML_CONCRETE_CLASS(KaxSliceFrameNumber) }; class MATROSKA_DLL_API KaxSliceBlockAddID : public EbmlUInteger { public: KaxSliceBlockAddID() :EbmlUInteger(0) {} KaxSliceBlockAddID(const KaxSliceBlockAddID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxSliceBlockAddID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxSliceBlockAddID(*this);} + + EBML_CONCRETE_CLASS(KaxSliceBlockAddID) }; class MATROSKA_DLL_API KaxSliceDelay : public EbmlUInteger { public: KaxSliceDelay() :EbmlUInteger(0) {} KaxSliceDelay(const KaxSliceDelay & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxSliceDelay);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxSliceDelay(*this);} + + EBML_CONCRETE_CLASS(KaxSliceDelay) }; class MATROSKA_DLL_API KaxSliceDuration : public EbmlUInteger { public: KaxSliceDuration() {} KaxSliceDuration(const KaxSliceDuration & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxSliceDuration);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxSliceDuration(*this);} + + EBML_CONCRETE_CLASS(KaxSliceDuration) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxChapters.h b/matroska/KaxChapters.h index 56474c0..2c27697 100644 --- a/matroska/KaxChapters.h +++ b/matroska/KaxChapters.h @@ -50,301 +50,220 @@ class MATROSKA_DLL_API KaxChapters : public EbmlMaster { public: KaxChapters(); KaxChapters(const KaxChapters & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapters);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapters(*this);} + + EBML_CONCRETE_CLASS(KaxChapters) }; class MATROSKA_DLL_API KaxEditionEntry : public EbmlMaster { public: KaxEditionEntry(); KaxEditionEntry(const KaxEditionEntry & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxEditionEntry);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxEditionEntry(*this);} + + EBML_CONCRETE_CLASS(KaxEditionEntry) }; class MATROSKA_DLL_API KaxEditionUID : public EbmlUInteger { -public: - KaxEditionUID() {} - KaxEditionUID(const KaxEditionUID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxEditionUID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxEditionUID(*this);} + public: + KaxEditionUID() {} + KaxEditionUID(const KaxEditionUID & ElementToClone) :EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxEditionUID) }; class MATROSKA_DLL_API KaxEditionFlagHidden : public EbmlUInteger { -public: - KaxEditionFlagHidden(): EbmlUInteger(0) {} - KaxEditionFlagHidden(const KaxEditionFlagHidden & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxEditionFlagHidden);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxEditionFlagHidden(*this);} + public: + KaxEditionFlagHidden(): EbmlUInteger(0) {} + KaxEditionFlagHidden(const KaxEditionFlagHidden & ElementToClone) :EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxEditionFlagHidden) }; class MATROSKA_DLL_API KaxEditionFlagDefault : public EbmlUInteger { -public: - KaxEditionFlagDefault(): EbmlUInteger(0) {} - KaxEditionFlagDefault(const KaxEditionFlagDefault & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxEditionFlagDefault);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxEditionFlagDefault(*this);} + public: + KaxEditionFlagDefault(): EbmlUInteger(0) {} + KaxEditionFlagDefault(const KaxEditionFlagDefault & ElementToClone) :EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxEditionFlagDefault) }; class MATROSKA_DLL_API KaxEditionFlagOrdered : public EbmlUInteger { -public: - KaxEditionFlagOrdered(): EbmlUInteger(0) {} - KaxEditionFlagOrdered(const KaxEditionFlagOrdered & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxEditionFlagOrdered);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxEditionFlagOrdered(*this);} + public: + KaxEditionFlagOrdered(): EbmlUInteger(0) {} + KaxEditionFlagOrdered(const KaxEditionFlagOrdered & ElementToClone) :EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxEditionFlagOrdered) }; class MATROSKA_DLL_API KaxChapterAtom : public EbmlMaster { -public: - KaxChapterAtom(); - KaxChapterAtom(const KaxChapterAtom & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterAtom);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterAtom(*this);} + public: + KaxChapterAtom(); + KaxChapterAtom(const KaxChapterAtom & ElementToClone) :EbmlMaster(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterAtom) }; class MATROSKA_DLL_API KaxChapterUID : public EbmlUInteger { -public: - KaxChapterUID() {} - KaxChapterUID(const KaxChapterUID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterUID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterUID(*this);} + public: + KaxChapterUID() {} + KaxChapterUID(const KaxChapterUID & ElementToClone) :EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterUID) }; class MATROSKA_DLL_API KaxChapterTimeStart : public EbmlUInteger { -public: - KaxChapterTimeStart() {} - KaxChapterTimeStart(const KaxChapterTimeStart & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterTimeStart);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterTimeStart(*this);} + public: + KaxChapterTimeStart() {} + KaxChapterTimeStart(const KaxChapterTimeStart & ElementToClone) :EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterTimeStart) }; class MATROSKA_DLL_API KaxChapterTimeEnd : public EbmlUInteger { -public: - KaxChapterTimeEnd() {} - KaxChapterTimeEnd(const KaxChapterTimeEnd & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterTimeEnd);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterTimeEnd(*this);} + public: + KaxChapterTimeEnd() {} + KaxChapterTimeEnd(const KaxChapterTimeEnd & ElementToClone) :EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterTimeEnd) }; class MATROSKA_DLL_API KaxChapterFlagHidden : public EbmlUInteger { -public: - KaxChapterFlagHidden(): EbmlUInteger(0) {} - KaxChapterFlagHidden(const KaxChapterFlagHidden & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterFlagHidden);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterFlagHidden(*this);} + public: + KaxChapterFlagHidden(): EbmlUInteger(0) {} + KaxChapterFlagHidden(const KaxChapterFlagHidden & ElementToClone) :EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterFlagHidden) }; class MATROSKA_DLL_API KaxChapterFlagEnabled : public EbmlUInteger { -public: - KaxChapterFlagEnabled(): EbmlUInteger(1) {} - KaxChapterFlagEnabled(const KaxChapterFlagEnabled & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterFlagEnabled);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterFlagEnabled(*this);} + public: + KaxChapterFlagEnabled(): EbmlUInteger(1) {} + KaxChapterFlagEnabled(const KaxChapterFlagEnabled & ElementToClone) :EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterFlagEnabled) }; class MATROSKA_DLL_API KaxChapterSegmentUID : public EbmlBinary { -public: - KaxChapterSegmentUID() {} - KaxChapterSegmentUID(const KaxChapterSegmentUID & ElementToClone) :EbmlBinary(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterSegmentUID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterSegmentUID(*this);} - bool ValidateSize() const { return (Size == 16);} + public: + KaxChapterSegmentUID() {} + KaxChapterSegmentUID(const KaxChapterSegmentUID & ElementToClone) :EbmlBinary(ElementToClone) {} + bool ValidateSize() const { return (GetSize() == 16);} + + EBML_CONCRETE_CLASS(KaxChapterSegmentUID) }; class MATROSKA_DLL_API KaxChapterSegmentEditionUID : public EbmlBinary { -public: - KaxChapterSegmentEditionUID() {} - KaxChapterSegmentEditionUID(const KaxChapterSegmentEditionUID & ElementToClone) :EbmlBinary(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterSegmentEditionUID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterSegmentEditionUID(*this);} - bool ValidateSize() const { return (Size == 16);} + public: + KaxChapterSegmentEditionUID() {} + KaxChapterSegmentEditionUID(const KaxChapterSegmentEditionUID & ElementToClone) :EbmlBinary(ElementToClone) {} + bool ValidateSize() const { return (GetSize() == 16);} + + EBML_CONCRETE_CLASS(KaxChapterSegmentEditionUID) }; class MATROSKA_DLL_API KaxChapterPhysicalEquiv : public EbmlUInteger { -public: - KaxChapterPhysicalEquiv(): EbmlUInteger() {} - KaxChapterPhysicalEquiv(const KaxChapterPhysicalEquiv & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterPhysicalEquiv);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterPhysicalEquiv(*this);} + public: + KaxChapterPhysicalEquiv(): EbmlUInteger() {} + KaxChapterPhysicalEquiv(const KaxChapterPhysicalEquiv & ElementToClone) :EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterPhysicalEquiv) }; class MATROSKA_DLL_API KaxChapterTrack : public EbmlMaster { -public: - KaxChapterTrack(); - KaxChapterTrack(const KaxChapterTrack & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterTrack);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterTrack(*this);} + public: + KaxChapterTrack(); + KaxChapterTrack(const KaxChapterTrack & ElementToClone) :EbmlMaster(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterTrack) }; class MATROSKA_DLL_API KaxChapterTrackNumber : public EbmlUInteger { -public: - KaxChapterTrackNumber() {} - KaxChapterTrackNumber(const KaxChapterTrackNumber & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterTrackNumber);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterTrackNumber(*this);} + public: + KaxChapterTrackNumber() {} + KaxChapterTrackNumber(const KaxChapterTrackNumber & ElementToClone) :EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterTrackNumber) }; class MATROSKA_DLL_API KaxChapterDisplay : public EbmlMaster { -public: - KaxChapterDisplay(); - KaxChapterDisplay(const KaxChapterDisplay & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterDisplay);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterDisplay(*this);} + public: + KaxChapterDisplay(); + KaxChapterDisplay(const KaxChapterDisplay & ElementToClone) :EbmlMaster(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterDisplay) }; class MATROSKA_DLL_API KaxChapterString : public EbmlUnicodeString { -public: - KaxChapterString() {} - KaxChapterString(const KaxChapterString & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterString);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterString(*this);} + public: + KaxChapterString() {} + KaxChapterString(const KaxChapterString & ElementToClone) :EbmlUnicodeString(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterString) }; class MATROSKA_DLL_API KaxChapterLanguage : public EbmlString { -public: - KaxChapterLanguage() :EbmlString("eng") {} - KaxChapterLanguage(const KaxChapterLanguage & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterLanguage);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterLanguage(*this);} + public: + KaxChapterLanguage() :EbmlString("eng") {} + KaxChapterLanguage(const KaxChapterLanguage & ElementToClone) :EbmlString(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterLanguage) }; class MATROSKA_DLL_API KaxChapterCountry : public EbmlString { -public: - KaxChapterCountry() :EbmlString() {} - KaxChapterCountry(const KaxChapterCountry & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterCountry);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterCountry(*this);} + public: + KaxChapterCountry() :EbmlString() {} + KaxChapterCountry(const KaxChapterCountry & ElementToClone) :EbmlString(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterCountry) }; class MATROSKA_DLL_API KaxChapterProcess : public EbmlMaster { -public: - KaxChapterProcess(); - KaxChapterProcess(const KaxChapterProcess & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterProcess);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterProcess(*this);} + public: + KaxChapterProcess(); + KaxChapterProcess(const KaxChapterProcess & ElementToClone) :EbmlMaster(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterProcess) }; class MATROSKA_DLL_API KaxChapterProcessCodecID : public EbmlUInteger { -public: - KaxChapterProcessCodecID() :EbmlUInteger(0) {} - KaxChapterProcessCodecID(const KaxChapterProcessCodecID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterProcessCodecID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterProcessCodecID(*this);} + public: + KaxChapterProcessCodecID() :EbmlUInteger(0) {} + KaxChapterProcessCodecID(const KaxChapterProcessCodecID & ElementToClone) :EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterProcessCodecID) }; class MATROSKA_DLL_API KaxChapterProcessPrivate : public EbmlBinary { -public: - KaxChapterProcessPrivate() {} - KaxChapterProcessPrivate(const KaxChapterProcessPrivate & ElementToClone) :EbmlBinary(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterProcessPrivate);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterProcessPrivate(*this);} - bool ValidateSize() const {return true;} + public: + KaxChapterProcessPrivate() {} + KaxChapterProcessPrivate(const KaxChapterProcessPrivate & ElementToClone) :EbmlBinary(ElementToClone) {} + bool ValidateSize() const {return true;} + + EBML_CONCRETE_CLASS(KaxChapterProcessPrivate) }; class MATROSKA_DLL_API KaxChapterProcessCommand : public EbmlMaster { -public: - KaxChapterProcessCommand(); - KaxChapterProcessCommand(const KaxChapterProcessCommand & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterProcessCommand);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterProcessCommand(*this);} + public: + KaxChapterProcessCommand(); + KaxChapterProcessCommand(const KaxChapterProcessCommand & ElementToClone) :EbmlMaster(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterProcessCommand) }; class MATROSKA_DLL_API KaxChapterProcessTime : public EbmlUInteger { -public: - KaxChapterProcessTime() {} - KaxChapterProcessTime(const KaxChapterProcessTime & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterProcessTime);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterProcessTime(*this);} + public: + KaxChapterProcessTime() {} + KaxChapterProcessTime(const KaxChapterProcessTime & ElementToClone) :EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxChapterProcessTime) }; class MATROSKA_DLL_API KaxChapterProcessData : public EbmlBinary { -public: - KaxChapterProcessData() {} - KaxChapterProcessData(const KaxChapterProcessData & ElementToClone) :EbmlBinary(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterProcessData);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterProcessData(*this);} - bool ValidateSize() const {return true;} + public: + KaxChapterProcessData() {} + KaxChapterProcessData(const KaxChapterProcessData & ElementToClone) :EbmlBinary(ElementToClone) {} + bool ValidateSize() const {return true;} + + EBML_CONCRETE_CLASS(KaxChapterProcessData) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxCluster.h b/matroska/KaxCluster.h index 493147e..4c84d22 100644 --- a/matroska/KaxCluster.h +++ b/matroska/KaxCluster.h @@ -52,11 +52,6 @@ class MATROSKA_DLL_API KaxCluster : public EbmlMaster { public: KaxCluster(); KaxCluster(const KaxCluster & ElementToClone); - static EbmlElement & Create() {return *(new KaxCluster);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCluster(*this);} /*! \brief Addition of a frame without references @@ -161,6 +156,7 @@ class MATROSKA_DLL_API KaxCluster : public EbmlMaster { */ bool AddFrameInternal(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, KaxBlockGroup * & MyNewBlock, const KaxBlockGroup * PastBlock, const KaxBlockGroup * ForwBlock, LacingType lacing); + EBML_CONCRETE_CLASS(KaxCluster) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxClusterData.h b/matroska/KaxClusterData.h index 0e26a37..d6e9f7b 100644 --- a/matroska/KaxClusterData.h +++ b/matroska/KaxClusterData.h @@ -47,55 +47,40 @@ class MATROSKA_DLL_API KaxClusterTimecode : public EbmlUInteger { public: KaxClusterTimecode() {} KaxClusterTimecode(const KaxClusterTimecode & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxClusterTimecode);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxClusterTimecode(*this);} + + EBML_CONCRETE_CLASS(KaxClusterTimecode) }; class MATROSKA_DLL_API KaxClusterSilentTracks : public EbmlMaster { public: KaxClusterSilentTracks(); KaxClusterSilentTracks(const KaxClusterSilentTracks & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxClusterSilentTracks);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxClusterSilentTracks(*this);} + + EBML_CONCRETE_CLASS(KaxClusterSilentTracks) }; class MATROSKA_DLL_API KaxClusterSilentTrackNumber : public EbmlUInteger { public: KaxClusterSilentTrackNumber() {} KaxClusterSilentTrackNumber(const KaxClusterSilentTrackNumber & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxClusterSilentTrackNumber);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxClusterSilentTrackNumber(*this);} + + EBML_CONCRETE_CLASS(KaxClusterSilentTrackNumber) }; class MATROSKA_DLL_API KaxClusterPosition : public EbmlUInteger { public: KaxClusterPosition() {} KaxClusterPosition(const KaxClusterPosition & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxClusterPosition);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxClusterPosition(*this);} + + EBML_CONCRETE_CLASS(KaxClusterPosition) }; class MATROSKA_DLL_API KaxClusterPrevSize : public EbmlUInteger { public: KaxClusterPrevSize() {} KaxClusterPrevSize(const KaxClusterPrevSize & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxClusterPrevSize);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxClusterPrevSize(*this);} + + EBML_CONCRETE_CLASS(KaxClusterPrevSize) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxContentEncoding.h b/matroska/KaxContentEncoding.h index d1b241c..b6e3d2d 100644 --- a/matroska/KaxContentEncoding.h +++ b/matroska/KaxContentEncoding.h @@ -45,204 +45,142 @@ using namespace LIBEBML_NAMESPACE; START_LIBMATROSKA_NAMESPACE class MATROSKA_DLL_API KaxContentEncodings: public EbmlMaster { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentEncodings(); - KaxContentEncodings(const KaxContentEncodings &ElementToClone): - EbmlMaster(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentEncodings); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { return new KaxContentEncodings(*this); } + public: + KaxContentEncodings(); + KaxContentEncodings(const KaxContentEncodings &ElementToClone): + EbmlMaster(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxContentEncodings) }; class MATROSKA_DLL_API KaxContentEncoding: public EbmlMaster { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentEncoding(); - KaxContentEncoding(const KaxContentEncoding &ElementToClone): - EbmlMaster(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentEncoding); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { return new KaxContentEncoding(*this); } + public: + KaxContentEncoding(); + KaxContentEncoding(const KaxContentEncoding &ElementToClone): + EbmlMaster(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxContentEncoding) }; class MATROSKA_DLL_API KaxContentEncodingOrder: public EbmlUInteger { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentEncodingOrder(): EbmlUInteger(0) {} - KaxContentEncodingOrder(const KaxContentEncodingOrder &ElementToClone): - EbmlUInteger(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentEncodingOrder); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { return new KaxContentEncodingOrder(*this); } + public: + KaxContentEncodingOrder(): EbmlUInteger(0) {} + KaxContentEncodingOrder(const KaxContentEncodingOrder &ElementToClone): + EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxContentEncodingOrder) }; class MATROSKA_DLL_API KaxContentEncodingScope: public EbmlUInteger { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentEncodingScope(): EbmlUInteger(1) {} - KaxContentEncodingScope(const KaxContentEncodingScope &ElementToClone): - EbmlUInteger(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentEncodingScope); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { return new KaxContentEncodingScope(*this); } + public: + KaxContentEncodingScope(): EbmlUInteger(1) {} + KaxContentEncodingScope(const KaxContentEncodingScope &ElementToClone): + EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxContentEncodingScope) }; class MATROSKA_DLL_API KaxContentEncodingType: public EbmlUInteger { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentEncodingType(): EbmlUInteger(0) {} - KaxContentEncodingType(const KaxContentEncodingType &ElementToClone): - EbmlUInteger(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentEncodingType); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { return new KaxContentEncodingType(*this); } + public: + KaxContentEncodingType(): EbmlUInteger(0) {} + KaxContentEncodingType(const KaxContentEncodingType &ElementToClone): + EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxContentEncodingType) }; class MATROSKA_DLL_API KaxContentCompression: public EbmlMaster { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentCompression(); - KaxContentCompression(const KaxContentCompression &ElementToClone): - EbmlMaster(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentCompression); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { return new KaxContentCompression(*this); } + public: + KaxContentCompression(); + KaxContentCompression(const KaxContentCompression &ElementToClone): + EbmlMaster(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxContentCompression) }; class MATROSKA_DLL_API KaxContentCompAlgo: public EbmlUInteger { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentCompAlgo(): EbmlUInteger(0) {} - KaxContentCompAlgo(const KaxContentCompAlgo &ElementToClone): - EbmlUInteger(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentCompAlgo); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { return new KaxContentCompAlgo(*this); } + public: + KaxContentCompAlgo(): EbmlUInteger(0) {} + KaxContentCompAlgo(const KaxContentCompAlgo &ElementToClone): + EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxContentCompAlgo) }; class MATROSKA_DLL_API KaxContentCompSettings: public EbmlBinary { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentCompSettings() {} - KaxContentCompSettings(const KaxContentCompSettings &ElementToClone): - EbmlBinary(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentCompSettings); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { - return new KaxContentCompSettings(*this); - } - bool ValidateSize(void) const { return true; } + public: + KaxContentCompSettings() {} + KaxContentCompSettings(const KaxContentCompSettings &ElementToClone): + EbmlBinary(ElementToClone) {} + bool ValidateSize(void) const { return true; } + + EBML_CONCRETE_CLASS(KaxContentCompSettings) }; class MATROSKA_DLL_API KaxContentEncryption: public EbmlMaster { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentEncryption(); - KaxContentEncryption(const KaxContentEncryption &ElementToClone): - EbmlMaster(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentEncryption); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { return new KaxContentEncryption(*this); } + public: + KaxContentEncryption(); + KaxContentEncryption(const KaxContentEncryption &ElementToClone): + EbmlMaster(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxContentEncryption) }; class MATROSKA_DLL_API KaxContentEncAlgo: public EbmlUInteger { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentEncAlgo(): EbmlUInteger(0) {} - KaxContentEncAlgo(const KaxContentEncAlgo &ElementToClone): - EbmlUInteger(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentEncAlgo); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { return new KaxContentEncAlgo(*this); } + public: + KaxContentEncAlgo(): EbmlUInteger(0) {} + KaxContentEncAlgo(const KaxContentEncAlgo &ElementToClone): + EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxContentEncAlgo) }; class MATROSKA_DLL_API KaxContentEncKeyID: public EbmlBinary { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentEncKeyID() {} - KaxContentEncKeyID(const KaxContentEncKeyID &ElementToClone): - EbmlBinary(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentEncKeyID); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { return new KaxContentEncKeyID(*this); } - bool ValidateSize(void) const { return true; } + public: + KaxContentEncKeyID() {} + KaxContentEncKeyID(const KaxContentEncKeyID &ElementToClone): + EbmlBinary(ElementToClone) {} + bool ValidateSize(void) const { return true; } + + EBML_CONCRETE_CLASS(KaxContentEncKeyID) }; class MATROSKA_DLL_API KaxContentSignature: public EbmlBinary { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentSignature() {} - KaxContentSignature(const KaxContentSignature &ElementToClone): - EbmlBinary(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentSignature); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { return new KaxContentSignature(*this); } - bool ValidateSize(void) const { return true; } + public: + KaxContentSignature() {} + KaxContentSignature(const KaxContentSignature &ElementToClone): + EbmlBinary(ElementToClone) {} + bool ValidateSize(void) const { return true; } + + EBML_CONCRETE_CLASS(KaxContentSignature) }; class MATROSKA_DLL_API KaxContentSigKeyID: public EbmlBinary { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentSigKeyID() {} - KaxContentSigKeyID(const KaxContentSigKeyID &ElementToClone): - EbmlBinary(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentSigKeyID); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { return new KaxContentSigKeyID(*this); } - bool ValidateSize(void) const { return true; } + public: + KaxContentSigKeyID() {} + KaxContentSigKeyID(const KaxContentSigKeyID &ElementToClone): + EbmlBinary(ElementToClone) {} + bool ValidateSize(void) const { return true; } + + EBML_CONCRETE_CLASS(KaxContentSigKeyID) }; class MATROSKA_DLL_API KaxContentSigAlgo: public EbmlUInteger { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentSigAlgo() {} - KaxContentSigAlgo(const KaxContentSigAlgo &ElementToClone): - EbmlUInteger(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentSigAlgo); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { return new KaxContentSigAlgo(*this); } + public: + KaxContentSigAlgo() {} + KaxContentSigAlgo(const KaxContentSigAlgo &ElementToClone): + EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxContentSigAlgo) }; class MATROSKA_DLL_API KaxContentSigHashAlgo: public EbmlUInteger { -public: - static const EbmlCallbacks ClassInfos; - - KaxContentSigHashAlgo() {} - KaxContentSigHashAlgo(const KaxContentSigHashAlgo &ElementToClone): - EbmlUInteger(ElementToClone) {} - static EbmlElement &Create() { return *(new KaxContentSigHashAlgo); } - const EbmlCallbacks &Generic() const { return ClassInfos; } - operator const EbmlId &() const { return ClassInfos.GlobalId; } - EbmlElement *Clone() const { return new KaxContentSigHashAlgo(*this); } + public: + KaxContentSigHashAlgo() {} + KaxContentSigHashAlgo(const KaxContentSigHashAlgo &ElementToClone): + EbmlUInteger(ElementToClone) {} + + EBML_CONCRETE_CLASS(KaxContentSigHashAlgo) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxCues.h b/matroska/KaxCues.h index c39c1af..92d2f88 100644 --- a/matroska/KaxCues.h +++ b/matroska/KaxCues.h @@ -52,11 +52,6 @@ class MATROSKA_DLL_API KaxCues : public EbmlMaster { KaxCues(); KaxCues(const KaxCues & ElementToClone) :EbmlMaster(ElementToClone) {} ~KaxCues(); - static EbmlElement & Create() {return *(new KaxCues);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCues(*this);} bool AddBlockGroup(const KaxBlockGroup & BlockReference); bool AddBlockBlob(const KaxBlockBlob & BlockReference); @@ -91,6 +86,8 @@ class MATROSKA_DLL_API KaxCues : public EbmlMaster { std::vector myTempReferences; bool bGlobalTimecodeScaleIsSet; uint64 mGlobalTimecodeScale; + + EBML_CONCRETE_CLASS(KaxCues) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxCuesData.h b/matroska/KaxCuesData.h index 4c2c069..86d3c21 100644 --- a/matroska/KaxCuesData.h +++ b/matroska/KaxCuesData.h @@ -50,11 +50,6 @@ class MATROSKA_DLL_API KaxCuePoint : public EbmlMaster { public: KaxCuePoint(); KaxCuePoint(const KaxCuePoint & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCuePoint);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCuePoint(*this);} void PositionSet(const KaxBlockGroup & BlockReference, uint64 GlobalTimecodeScale); void PositionSet(const KaxBlockBlob & BlobReference, uint64 GlobalTimecodeScale); @@ -62,64 +57,51 @@ class MATROSKA_DLL_API KaxCuePoint : public EbmlMaster { const KaxCueTrackPositions * GetSeekPosition() const; bool Timecode(uint64 & aTimecode, uint64 GlobalTimecodeScale) const; + + EBML_CONCRETE_CLASS(KaxCuePoint) }; class MATROSKA_DLL_API KaxCueTime : public EbmlUInteger { public: KaxCueTime() {} KaxCueTime(const KaxCueTime & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCueTime);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCueTime(*this);} + + EBML_CONCRETE_CLASS(KaxCueTime) }; class MATROSKA_DLL_API KaxCueTrackPositions : public EbmlMaster { public: KaxCueTrackPositions(); KaxCueTrackPositions(const KaxCueTrackPositions & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCueTrackPositions);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCueTrackPositions(*this);} uint64 ClusterPosition() const; uint16 TrackNumber() const; + + EBML_CONCRETE_CLASS(KaxCueTrackPositions) }; class MATROSKA_DLL_API KaxCueTrack : public EbmlUInteger { public: KaxCueTrack() {} KaxCueTrack(const KaxCueTrack & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCueTrack);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCueTrack(*this);} + + EBML_CONCRETE_CLASS(KaxCueTrack) }; class MATROSKA_DLL_API KaxCueClusterPosition : public EbmlUInteger { public: KaxCueClusterPosition() {} KaxCueClusterPosition(const KaxCueClusterPosition & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCueClusterPosition);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCueClusterPosition(*this);} + + EBML_CONCRETE_CLASS(KaxCueClusterPosition) }; class MATROSKA_DLL_API KaxCueBlockNumber : public EbmlUInteger { public: KaxCueBlockNumber() :EbmlUInteger(1) {} KaxCueBlockNumber(const KaxCueBlockNumber & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCueBlockNumber);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCueBlockNumber(*this);} + + EBML_CONCRETE_CLASS(KaxCueBlockNumber) }; #if MATROSKA_VERSION >= 2 @@ -127,69 +109,51 @@ class MATROSKA_DLL_API KaxCueCodecState : public EbmlUInteger { public: KaxCueCodecState() :EbmlUInteger(0) {} KaxCueCodecState(const KaxCueCodecState & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCueCodecState);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCueCodecState(*this);} + + EBML_CONCRETE_CLASS(KaxCueCodecState) }; class MATROSKA_DLL_API KaxCueReference : public EbmlMaster { public: KaxCueReference(); KaxCueReference(const KaxCueReference & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCueReference);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCueReference(*this);} void AddReference(const KaxBlockGroup & BlockReferenced, uint64 GlobalTimecodeScale); void AddReference(const KaxBlockBlob & BlockReferenced, uint64 GlobalTimecodeScale); + + EBML_CONCRETE_CLASS(KaxCueReference) }; class MATROSKA_DLL_API KaxCueRefTime : public EbmlUInteger { public: KaxCueRefTime() {} KaxCueRefTime(const KaxCueRefTime & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCueRefTime);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCueRefTime(*this);} + + EBML_CONCRETE_CLASS(KaxCueRefTime) }; class MATROSKA_DLL_API KaxCueRefCluster : public EbmlUInteger { public: KaxCueRefCluster() {} KaxCueRefCluster(const KaxCueRefCluster & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCueRefCluster);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCueRefCluster(*this);} + + EBML_CONCRETE_CLASS(KaxCueRefCluster) }; class MATROSKA_DLL_API KaxCueRefNumber : public EbmlUInteger { public: KaxCueRefNumber() :EbmlUInteger(1) {} KaxCueRefNumber(const KaxCueRefNumber & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCueRefNumber);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCueRefNumber(*this);} + + EBML_CONCRETE_CLASS(KaxCueRefNumber) }; class MATROSKA_DLL_API KaxCueRefCodecState : public EbmlUInteger { public: KaxCueRefCodecState() :EbmlUInteger(0) {} KaxCueRefCodecState(const KaxCueRefCodecState & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCueRefCodecState);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCueRefCodecState(*this);} + + EBML_CONCRETE_CLASS(KaxCueRefCodecState) }; #endif // MATROSKA_VERSION diff --git a/matroska/KaxInfo.h b/matroska/KaxInfo.h index 5ba569b..8c422cf 100644 --- a/matroska/KaxInfo.h +++ b/matroska/KaxInfo.h @@ -47,33 +47,24 @@ class MATROSKA_DLL_API KaxInfo : public EbmlMaster { public: KaxInfo(); KaxInfo(const KaxInfo & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxInfo);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxInfo(*this);} + + EBML_CONCRETE_CLASS(KaxInfo) }; class MATROSKA_DLL_API KaxMuxingApp : public EbmlUnicodeString { public: KaxMuxingApp() {} KaxMuxingApp(const KaxMuxingApp & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxMuxingApp);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxMuxingApp(*this);} + + EBML_CONCRETE_CLASS(KaxMuxingApp) }; class MATROSKA_DLL_API KaxWritingApp : public EbmlUnicodeString { public: KaxWritingApp() {} KaxWritingApp(const KaxWritingApp & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxWritingApp);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxWritingApp(*this);} + + EBML_CONCRETE_CLASS(KaxWritingApp) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxInfoData.h b/matroska/KaxInfoData.h index 5325c1a..99c287d 100644 --- a/matroska/KaxInfoData.h +++ b/matroska/KaxInfoData.h @@ -53,170 +53,125 @@ class MATROSKA_DLL_API KaxSegmentUID : public EbmlBinary { public: KaxSegmentUID() {} KaxSegmentUID(const KaxSegmentUID & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxSegmentUID);} bool ValidateSize() const { return (GetSize() == 16);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxSegmentUID(*this);} + + EBML_CONCRETE_CLASS(KaxSegmentUID) }; class MATROSKA_DLL_API KaxSegmentFilename : public EbmlUnicodeString { public: KaxSegmentFilename() {} KaxSegmentFilename(const KaxSegmentFilename & ElementToClone) :EbmlUnicodeString(ElementToClone){} - static EbmlElement & Create() {return *(new KaxSegmentFilename);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxSegmentFilename(*this);} + + EBML_CONCRETE_CLASS(KaxSegmentFilename) }; class MATROSKA_DLL_API KaxPrevUID : public KaxSegmentUID { public: KaxPrevUID() {} KaxPrevUID(const KaxPrevUID & ElementToClone) :KaxSegmentUID(ElementToClone){} - static EbmlElement & Create() {return *(new KaxPrevUID);} bool ValidateSize() const { return (GetSize() == 16);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxPrevUID(*this);} + + EBML_CONCRETE_CLASS(KaxPrevUID) }; class MATROSKA_DLL_API KaxPrevFilename : public EbmlUnicodeString { public: KaxPrevFilename() :EbmlUnicodeString() {} KaxPrevFilename(const KaxPrevFilename & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxPrevFilename);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxPrevFilename(*this);} + + EBML_CONCRETE_CLASS(KaxPrevFilename) }; class MATROSKA_DLL_API KaxNextUID : public KaxSegmentUID { public: KaxNextUID() {} KaxNextUID(const KaxNextUID & ElementToClone) :KaxSegmentUID(ElementToClone){} - static EbmlElement & Create() {return *(new KaxNextUID);} bool ValidateSize() const { return (GetSize() == 16);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxNextUID(*this);} + + EBML_CONCRETE_CLASS(KaxNextUID) }; class MATROSKA_DLL_API KaxNextFilename : public EbmlUnicodeString { public: KaxNextFilename() {} KaxNextFilename(const KaxNextFilename & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxNextFilename);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxNextFilename(*this);} + + EBML_CONCRETE_CLASS(KaxNextFilename) }; class MATROSKA_DLL_API KaxSegmentFamily : public EbmlBinary { public: KaxSegmentFamily() {} KaxSegmentFamily(const KaxSegmentFamily & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxSegmentFamily);} bool ValidateSize() const { return (GetSize() == 16);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxSegmentFamily(*this);} + + EBML_CONCRETE_CLASS(KaxSegmentFamily) }; class MATROSKA_DLL_API KaxChapterTranslate : public EbmlMaster { public: KaxChapterTranslate(); KaxChapterTranslate(const KaxChapterTranslate & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterTranslate);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterTranslate(*this);} + + EBML_CONCRETE_CLASS(KaxChapterTranslate) }; class MATROSKA_DLL_API KaxChapterTranslateCodec : public EbmlUInteger { public: KaxChapterTranslateCodec() {} KaxChapterTranslateCodec(const KaxChapterTranslateCodec & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterTranslateCodec);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterTranslateCodec(*this);} + + EBML_CONCRETE_CLASS(KaxChapterTranslateCodec) }; class MATROSKA_DLL_API KaxChapterTranslateEditionUID : public EbmlUInteger { public: KaxChapterTranslateEditionUID() {} KaxChapterTranslateEditionUID(const KaxChapterTranslateEditionUID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxChapterTranslateEditionUID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterTranslateEditionUID(*this);} + + EBML_CONCRETE_CLASS(KaxChapterTranslateEditionUID) }; class MATROSKA_DLL_API KaxChapterTranslateID : public EbmlBinary { public: KaxChapterTranslateID() {} KaxChapterTranslateID(const KaxChapterTranslateID & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxChapterTranslateID);} bool ValidateSize() const { return true;} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxChapterTranslateID(*this);} + + EBML_CONCRETE_CLASS(KaxChapterTranslateID) }; class MATROSKA_DLL_API KaxTimecodeScale : public EbmlUInteger { public: KaxTimecodeScale() :EbmlUInteger(1000000) {} KaxTimecodeScale(const KaxTimecodeScale & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTimecodeScale);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTimecodeScale(*this);} + + EBML_CONCRETE_CLASS(KaxTimecodeScale) }; class MATROSKA_DLL_API KaxDuration : public EbmlFloat { public: KaxDuration(): EbmlFloat(FLOAT_64) {} KaxDuration(const KaxDuration & ElementToClone) :EbmlFloat(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxDuration);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxDuration(*this);} + + EBML_CONCRETE_CLASS(KaxDuration) }; class MATROSKA_DLL_API KaxDateUTC : public EbmlDate { public: KaxDateUTC() {} KaxDateUTC(const KaxDateUTC & ElementToClone) :EbmlDate(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxDateUTC);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxDateUTC(*this);} + + EBML_CONCRETE_CLASS(KaxDateUTC) }; class MATROSKA_DLL_API KaxTitle : public EbmlUnicodeString { public: KaxTitle() {} KaxTitle(const KaxTitle & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTitle);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTitle(*this);} + + EBML_CONCRETE_CLASS(KaxTitle) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxSeekHead.h b/matroska/KaxSeekHead.h index d3c2b4f..1382855 100644 --- a/matroska/KaxSeekHead.h +++ b/matroska/KaxSeekHead.h @@ -51,11 +51,6 @@ class MATROSKA_DLL_API KaxSeekHead : public EbmlMaster { public: KaxSeekHead(); KaxSeekHead(const KaxSeekHead & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxSeekHead);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxSeekHead(*this);} /*! \brief add an element to index in the Meta Seek data @@ -65,44 +60,37 @@ class MATROSKA_DLL_API KaxSeekHead : public EbmlMaster { KaxSeek * FindFirstOf(const EbmlCallbacks & Callbacks) const; KaxSeek * FindNextOf(const KaxSeek &aPrev) const; + + EBML_CONCRETE_CLASS(KaxSeekHead) }; class MATROSKA_DLL_API KaxSeek : public EbmlMaster { public: KaxSeek(); KaxSeek(const KaxSeek & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxSeek);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxSeek(*this);} int64 Location() const; bool IsEbmlId(const EbmlId & aId) const; bool IsEbmlId(const KaxSeek & aPoint) const; + + EBML_CONCRETE_CLASS(KaxSeek) }; class MATROSKA_DLL_API KaxSeekID : public EbmlBinary { public: KaxSeekID() {} KaxSeekID(const KaxSeekID & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxSeekID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} bool ValidateSize() const {return GetSize() <= 4;} - EbmlElement * Clone() const {return new KaxSeekID(*this);} + + EBML_CONCRETE_CLASS(KaxSeekID) }; class MATROSKA_DLL_API KaxSeekPosition : public EbmlUInteger { public: KaxSeekPosition() {} KaxSeekPosition(const KaxSeekPosition & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxSeekPosition);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxSeekPosition(*this);} + + EBML_CONCRETE_CLASS(KaxSeekPosition) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxSegment.h b/matroska/KaxSegment.h index 50fc6e0..cad6be9 100644 --- a/matroska/KaxSegment.h +++ b/matroska/KaxSegment.h @@ -46,11 +46,6 @@ class MATROSKA_DLL_API KaxSegment : public EbmlMaster { public: KaxSegment(); KaxSegment(const KaxSegment & ElementToClone); - static EbmlElement & Create() {return *(new KaxSegment);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxSegment(*this);} /*! \brief give the position of the element in the segment @@ -62,6 +57,8 @@ class MATROSKA_DLL_API KaxSegment : public EbmlMaster { \brief give the position of the element in the file */ uint64 GetGlobalPosition(uint64 aRelativePosition) const; + + EBML_CONCRETE_CLASS(KaxSegment) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxTag.h b/matroska/KaxTag.h index 98e64eb..9572ff7 100644 --- a/matroska/KaxTag.h +++ b/matroska/KaxTag.h @@ -53,645 +53,471 @@ class MATROSKA_DLL_API KaxTag : public EbmlMaster { public: KaxTag(); KaxTag(const KaxTag & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTag);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTag(*this);} + + EBML_CONCRETE_CLASS(KaxTag) }; class MATROSKA_DLL_API KaxTagTargets : public EbmlMaster { public: KaxTagTargets(); KaxTagTargets(const KaxTagTargets & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagTargets);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagTargets(*this);} + + EBML_CONCRETE_CLASS(KaxTagTargets) }; class MATROSKA_DLL_API KaxTagGeneral : public EbmlMaster { public: KaxTagGeneral(); KaxTagGeneral(const KaxTagGeneral & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagGeneral);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagGeneral(*this);} + + EBML_CONCRETE_CLASS(KaxTagGeneral) }; class MATROSKA_DLL_API KaxTagGenres : public EbmlMaster { public: KaxTagGenres(); KaxTagGenres(const KaxTagGenres & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagGenres);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagGenres(*this);} + + EBML_CONCRETE_CLASS(KaxTagGenres) }; class MATROSKA_DLL_API KaxTagAudioSpecific : public EbmlMaster { public: KaxTagAudioSpecific(); KaxTagAudioSpecific(const KaxTagAudioSpecific & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagAudioSpecific);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagAudioSpecific(*this);} + + EBML_CONCRETE_CLASS(KaxTagAudioSpecific) }; class MATROSKA_DLL_API KaxTagImageSpecific : public EbmlMaster { public: KaxTagImageSpecific(); KaxTagImageSpecific(const KaxTagImageSpecific & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagImageSpecific);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagImageSpecific(*this);} + + EBML_CONCRETE_CLASS(KaxTagImageSpecific) }; class MATROSKA_DLL_API KaxTagTargetTypeValue : public EbmlUInteger { public: KaxTagTargetTypeValue() :EbmlUInteger(50) {} KaxTagTargetTypeValue(const KaxTagTargetTypeValue & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagTargetTypeValue);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagTargetTypeValue(*this);} + + EBML_CONCRETE_CLASS(KaxTagTargetTypeValue) }; class MATROSKA_DLL_API KaxTagTargetType : public EbmlString { public: KaxTagTargetType() {} KaxTagTargetType(const KaxTagTargetType & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagTargetType);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagTargetType(*this);} + + EBML_CONCRETE_CLASS(KaxTagTargetType) }; class MATROSKA_DLL_API KaxTagTrackUID : public EbmlUInteger { public: KaxTagTrackUID() :EbmlUInteger(0) {} KaxTagTrackUID(const KaxTagTrackUID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagTrackUID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagTrackUID(*this);} + + EBML_CONCRETE_CLASS(KaxTagTrackUID) }; class MATROSKA_DLL_API KaxTagEditionUID : public EbmlUInteger { public: KaxTagEditionUID() :EbmlUInteger(0) {} KaxTagEditionUID(const KaxTagEditionUID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagEditionUID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagEditionUID(*this);} + + EBML_CONCRETE_CLASS(KaxTagEditionUID) }; class MATROSKA_DLL_API KaxTagChapterUID : public EbmlUInteger { public: KaxTagChapterUID() :EbmlUInteger(0) {} KaxTagChapterUID(const KaxTagChapterUID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagChapterUID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagChapterUID(*this);} + + EBML_CONCRETE_CLASS(KaxTagChapterUID) }; class MATROSKA_DLL_API KaxTagAttachmentUID : public EbmlUInteger { public: KaxTagAttachmentUID() :EbmlUInteger(0) {} KaxTagAttachmentUID(const KaxTagAttachmentUID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagAttachmentUID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagAttachmentUID(*this);} + + EBML_CONCRETE_CLASS(KaxTagAttachmentUID) }; class MATROSKA_DLL_API KaxTagArchivalLocation : public EbmlUnicodeString { public: KaxTagArchivalLocation() {} KaxTagArchivalLocation(const KaxTagArchivalLocation & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagArchivalLocation);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagArchivalLocation(*this);} + + EBML_CONCRETE_CLASS(KaxTagArchivalLocation) }; class MATROSKA_DLL_API KaxTagAudioEncryption : public EbmlBinary { public: KaxTagAudioEncryption() {} KaxTagAudioEncryption(const KaxTagAudioEncryption & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxTagAudioEncryption);} bool ValidateSize() const {return true;} // we don't mind about what's inside - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagAudioEncryption(*this);} + + EBML_CONCRETE_CLASS(KaxTagAudioEncryption) }; class MATROSKA_DLL_API KaxTagAudioGain : public EbmlFloat { public: KaxTagAudioGain() {} KaxTagAudioGain(const KaxTagAudioGain & ElementToClone) :EbmlFloat(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagAudioGain);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagAudioGain(*this);} + + EBML_CONCRETE_CLASS(KaxTagAudioGain) }; class MATROSKA_DLL_API KaxTagAudioGenre : public EbmlString { public: KaxTagAudioGenre() {} KaxTagAudioGenre(const KaxTagAudioGenre & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagAudioGenre);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagAudioGenre(*this);} + + EBML_CONCRETE_CLASS(KaxTagAudioGenre) }; class MATROSKA_DLL_API KaxTagAudioPeak : public EbmlFloat { public: KaxTagAudioPeak() {} KaxTagAudioPeak(const KaxTagAudioPeak & ElementToClone) :EbmlFloat(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagAudioPeak);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagAudioPeak(*this);} + + EBML_CONCRETE_CLASS(KaxTagAudioPeak) }; class MATROSKA_DLL_API KaxTagBibliography : public EbmlUnicodeString { public: KaxTagBibliography() {} KaxTagBibliography(const KaxTagBibliography & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagBibliography);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagBibliography(*this);} + + EBML_CONCRETE_CLASS(KaxTagBibliography) }; class MATROSKA_DLL_API KaxTagBPM : public EbmlFloat { public: KaxTagBPM() {} KaxTagBPM(const KaxTagBPM & ElementToClone) :EbmlFloat(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagBPM);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagBPM(*this);} + + EBML_CONCRETE_CLASS(KaxTagBPM) }; class MATROSKA_DLL_API KaxTagCaptureDPI : public EbmlUInteger { public: KaxTagCaptureDPI() {} KaxTagCaptureDPI(const KaxTagCaptureDPI & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagCaptureDPI);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagCaptureDPI(*this);} + + EBML_CONCRETE_CLASS(KaxTagCaptureDPI) }; class MATROSKA_DLL_API KaxTagCaptureLightness : public EbmlBinary { public: KaxTagCaptureLightness() {} KaxTagCaptureLightness(const KaxTagCaptureLightness & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxTagCaptureLightness);} bool ValidateSize() const {return true;} // we don't mind about what's inside - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagCaptureLightness(*this);} + + EBML_CONCRETE_CLASS(KaxTagCaptureLightness) }; class MATROSKA_DLL_API KaxTagCapturePaletteSetting : public EbmlUInteger { public: KaxTagCapturePaletteSetting() {} KaxTagCapturePaletteSetting(const KaxTagCapturePaletteSetting & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagCapturePaletteSetting);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagCapturePaletteSetting(*this);} + + EBML_CONCRETE_CLASS(KaxTagCapturePaletteSetting) }; class MATROSKA_DLL_API KaxTagCaptureSharpness : public EbmlBinary { public: KaxTagCaptureSharpness() {} KaxTagCaptureSharpness(const KaxTagCaptureSharpness & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxTagCaptureSharpness);} bool ValidateSize() const {return true;} // we don't mind about what's inside - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagCaptureSharpness(*this);} + + EBML_CONCRETE_CLASS(KaxTagCaptureSharpness) }; class MATROSKA_DLL_API KaxTagCropped : public EbmlUnicodeString { public: KaxTagCropped() {} KaxTagCropped(const KaxTagCropped & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagCropped);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagCropped(*this);} + + EBML_CONCRETE_CLASS(KaxTagCropped) }; class MATROSKA_DLL_API KaxTagDiscTrack : public EbmlUInteger { public: KaxTagDiscTrack() {} KaxTagDiscTrack(const KaxTagDiscTrack & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagDiscTrack);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagDiscTrack(*this);} + + EBML_CONCRETE_CLASS(KaxTagDiscTrack) }; class MATROSKA_DLL_API KaxTagEncoder : public EbmlUnicodeString { public: KaxTagEncoder() {} KaxTagEncoder(const KaxTagEncoder & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagEncoder);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagEncoder(*this);} + + EBML_CONCRETE_CLASS(KaxTagEncoder) }; class MATROSKA_DLL_API KaxTagEncodeSettings : public EbmlUnicodeString { public: KaxTagEncodeSettings() {} KaxTagEncodeSettings(const KaxTagEncodeSettings & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagEncodeSettings);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagEncodeSettings(*this);} + + EBML_CONCRETE_CLASS(KaxTagEncodeSettings) }; class MATROSKA_DLL_API KaxTagEqualisation : public EbmlBinary { public: KaxTagEqualisation() {} KaxTagEqualisation(const KaxTagEqualisation & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxTagEqualisation);} bool ValidateSize() const {return true;} // we don't mind about what's inside - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagEqualisation(*this);} + + EBML_CONCRETE_CLASS(KaxTagEqualisation) }; class MATROSKA_DLL_API KaxTagFile : public EbmlUnicodeString { public: KaxTagFile() {} KaxTagFile(const KaxTagFile & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagFile);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagFile(*this);} + + EBML_CONCRETE_CLASS(KaxTagFile) }; class MATROSKA_DLL_API KaxTagInitialKey : public EbmlString { public: KaxTagInitialKey() {} KaxTagInitialKey(const KaxTagInitialKey & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagInitialKey);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagInitialKey(*this);} + + EBML_CONCRETE_CLASS(KaxTagInitialKey) }; class MATROSKA_DLL_API KaxTagKeywords : public EbmlUnicodeString { public: KaxTagKeywords() {} KaxTagKeywords(const KaxTagKeywords & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagKeywords);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagKeywords(*this);} + + EBML_CONCRETE_CLASS(KaxTagKeywords) }; class MATROSKA_DLL_API KaxTagLanguage : public EbmlString { public: KaxTagLanguage() {} KaxTagLanguage(const KaxTagLanguage & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagLanguage);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagLanguage(*this);} + + EBML_CONCRETE_CLASS(KaxTagLanguage) }; class MATROSKA_DLL_API KaxTagLength : public EbmlUInteger { public: KaxTagLength() {} KaxTagLength(const KaxTagLength & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagLength);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagLength(*this);} + + EBML_CONCRETE_CLASS(KaxTagLength) }; class MATROSKA_DLL_API KaxTagMood : public EbmlUnicodeString { public: KaxTagMood() {} KaxTagMood(const KaxTagMood & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMood);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMood(*this);} + + EBML_CONCRETE_CLASS(KaxTagMood) }; class MATROSKA_DLL_API KaxTagOfficialAudioFileURL : public EbmlString { public: KaxTagOfficialAudioFileURL() {} KaxTagOfficialAudioFileURL(const KaxTagOfficialAudioFileURL & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagOfficialAudioFileURL);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagOfficialAudioFileURL(*this);} + + EBML_CONCRETE_CLASS(KaxTagOfficialAudioFileURL) }; class MATROSKA_DLL_API KaxTagOfficialAudioSourceURL : public EbmlString { public: KaxTagOfficialAudioSourceURL() {} KaxTagOfficialAudioSourceURL(const KaxTagOfficialAudioSourceURL & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagOfficialAudioSourceURL);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagOfficialAudioSourceURL(*this);} + + EBML_CONCRETE_CLASS(KaxTagOfficialAudioSourceURL) }; class MATROSKA_DLL_API KaxTagOriginalDimensions : public EbmlString { public: KaxTagOriginalDimensions() {} KaxTagOriginalDimensions(const KaxTagOriginalDimensions & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagOriginalDimensions);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagOriginalDimensions(*this);} + + EBML_CONCRETE_CLASS(KaxTagOriginalDimensions) }; class MATROSKA_DLL_API KaxTagOriginalMediaType : public EbmlUnicodeString { public: KaxTagOriginalMediaType() {} KaxTagOriginalMediaType(const KaxTagOriginalMediaType & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagOriginalMediaType);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagOriginalMediaType(*this);} + + EBML_CONCRETE_CLASS(KaxTagOriginalMediaType) }; class MATROSKA_DLL_API KaxTagPlayCounter : public EbmlUInteger { public: KaxTagPlayCounter() {} KaxTagPlayCounter(const KaxTagPlayCounter & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagPlayCounter);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagPlayCounter(*this);} + + EBML_CONCRETE_CLASS(KaxTagPlayCounter) }; class MATROSKA_DLL_API KaxTagPlaylistDelay : public EbmlUInteger { public: KaxTagPlaylistDelay() {} KaxTagPlaylistDelay(const KaxTagPlaylistDelay & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagPlaylistDelay);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagPlaylistDelay(*this);} + + EBML_CONCRETE_CLASS(KaxTagPlaylistDelay) }; class MATROSKA_DLL_API KaxTagPopularimeter : public EbmlSInteger { public: KaxTagPopularimeter() {} KaxTagPopularimeter(const KaxTagPopularimeter & ElementToClone) :EbmlSInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagPopularimeter);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagPopularimeter(*this);} + + EBML_CONCRETE_CLASS(KaxTagPopularimeter) }; class MATROSKA_DLL_API KaxTagProduct : public EbmlUnicodeString { public: KaxTagProduct() {} KaxTagProduct(const KaxTagProduct & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagProduct);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagProduct(*this);} + + EBML_CONCRETE_CLASS(KaxTagProduct) }; class MATROSKA_DLL_API KaxTagRating : public EbmlBinary { public: KaxTagRating() {} KaxTagRating(const KaxTagRating & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxTagRating);} bool ValidateSize() const {return true;} // we don't mind about what's inside - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagRating(*this);} + + EBML_CONCRETE_CLASS(KaxTagRating) }; class MATROSKA_DLL_API KaxTagRecordLocation : public EbmlString { public: KaxTagRecordLocation() {} KaxTagRecordLocation(const KaxTagRecordLocation & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagRecordLocation);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagRecordLocation(*this);} + + EBML_CONCRETE_CLASS(KaxTagRecordLocation) }; class MATROSKA_DLL_API KaxTagSetPart : public EbmlUInteger { public: KaxTagSetPart() {} KaxTagSetPart(const KaxTagSetPart & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagSetPart);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagSetPart(*this);} + + EBML_CONCRETE_CLASS(KaxTagSetPart) }; class MATROSKA_DLL_API KaxTagSource : public EbmlUnicodeString { public: KaxTagSource() {} KaxTagSource(const KaxTagSource & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagSource);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagSource(*this);} + + EBML_CONCRETE_CLASS(KaxTagSource) }; class MATROSKA_DLL_API KaxTagSourceForm : public EbmlUnicodeString { public: KaxTagSourceForm() {} KaxTagSourceForm(const KaxTagSourceForm & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagSourceForm);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagSourceForm(*this);} + + EBML_CONCRETE_CLASS(KaxTagSourceForm) }; class MATROSKA_DLL_API KaxTagSubGenre : public EbmlString { public: KaxTagSubGenre() {} KaxTagSubGenre(const KaxTagSubGenre & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagSubGenre);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagSubGenre(*this);} + + EBML_CONCRETE_CLASS(KaxTagSubGenre) }; class MATROSKA_DLL_API KaxTagSubject : public EbmlUnicodeString { public: KaxTagSubject() {} KaxTagSubject(const KaxTagSubject & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagSubject);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagSubject(*this);} + + EBML_CONCRETE_CLASS(KaxTagSubject) }; class MATROSKA_DLL_API KaxTagUnsynchronisedText : public EbmlUnicodeString { public: KaxTagUnsynchronisedText() {} KaxTagUnsynchronisedText(const KaxTagUnsynchronisedText & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagUnsynchronisedText);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagUnsynchronisedText(*this);} + + EBML_CONCRETE_CLASS(KaxTagUnsynchronisedText) }; class MATROSKA_DLL_API KaxTagUserDefinedURL : public EbmlString { public: KaxTagUserDefinedURL() {} KaxTagUserDefinedURL(const KaxTagUserDefinedURL & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagUserDefinedURL);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagUserDefinedURL(*this);} + + EBML_CONCRETE_CLASS(KaxTagUserDefinedURL) }; class MATROSKA_DLL_API KaxTagVideoGenre : public EbmlBinary { public: KaxTagVideoGenre() {} KaxTagVideoGenre(const KaxTagVideoGenre & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxTagVideoGenre);} - bool ValidateSize() const {return (Size >= 2);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagVideoGenre(*this);} + bool ValidateSize() const {return (GetSize() >= 2);} + + EBML_CONCRETE_CLASS(KaxTagVideoGenre) }; class MATROSKA_DLL_API KaxTagSimple : public EbmlMaster { public: KaxTagSimple(); KaxTagSimple(const KaxTagSimple & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagSimple);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagSimple(*this);} + + EBML_CONCRETE_CLASS(KaxTagSimple) }; class MATROSKA_DLL_API KaxTagName : public EbmlUnicodeString { public: KaxTagName() {} KaxTagName(const KaxTagName & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagName);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagName(*this);} + + EBML_CONCRETE_CLASS(KaxTagName) }; class MATROSKA_DLL_API KaxTagLangue : public EbmlString { public: KaxTagLangue(): EbmlString("und") {} KaxTagLangue(const KaxTagLangue & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagLangue);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagLangue(*this);} + + EBML_CONCRETE_CLASS(KaxTagLangue) }; class MATROSKA_DLL_API KaxTagDefault : public EbmlUInteger { public: KaxTagDefault() :EbmlUInteger(1) {} KaxTagDefault(const KaxTagTrackUID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagDefault);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagDefault(*this);} + + EBML_CONCRETE_CLASS(KaxTagDefault) }; class MATROSKA_DLL_API KaxTagString : public EbmlUnicodeString { public: KaxTagString() {} KaxTagString(const KaxTagString & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagString);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagString(*this);} + + EBML_CONCRETE_CLASS(KaxTagString) }; class MATROSKA_DLL_API KaxTagBinary : public EbmlBinary { public: KaxTagBinary() {} KaxTagBinary(const KaxTagBinary & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxTagBinary);} bool ValidateSize() const {return true;} // {return (GetSize() >= 0);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagBinary(*this);} + + EBML_CONCRETE_CLASS(KaxTagBinary) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxTagMulti.h b/matroska/KaxTagMulti.h index 36b7193..09cd3a0 100644 --- a/matroska/KaxTagMulti.h +++ b/matroska/KaxTagMulti.h @@ -126,441 +126,321 @@ class MATROSKA_DLL_API KaxTagMultiComment : public EbmlMaster { public: KaxTagMultiComment(); KaxTagMultiComment(const KaxTagMultiComment & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiComment);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiComment(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiComment) }; class MATROSKA_DLL_API KaxTagMultiCommentName : public EbmlString { public: KaxTagMultiCommentName() {} KaxTagMultiCommentName(const KaxTagMultiCommentName & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiCommentName);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiCommentName(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiCommentName) }; class MATROSKA_DLL_API KaxTagMultiCommentComments : public EbmlUnicodeString { public: KaxTagMultiCommentComments() {} KaxTagMultiCommentComments(const KaxTagMultiCommentComments & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiCommentComments);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiCommentComments(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiCommentComments) }; class MATROSKA_DLL_API KaxTagMultiCommentLanguage : public EbmlString { public: KaxTagMultiCommentLanguage() {} KaxTagMultiCommentLanguage(const KaxTagMultiCommentLanguage & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiCommentLanguage);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiCommentLanguage(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiCommentLanguage) }; class MATROSKA_DLL_API KaxTagMultiCommercial : public EbmlMaster { public: KaxTagMultiCommercial(); KaxTagMultiCommercial(const KaxTagMultiCommercial & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiCommercial);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiCommercial(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiCommercial) }; class MATROSKA_DLL_API KaxTagCommercial : public EbmlMaster { public: KaxTagCommercial(); KaxTagCommercial(const KaxTagCommercial & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagCommercial);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagCommercial(*this);} + + EBML_CONCRETE_CLASS(KaxTagCommercial) }; class MATROSKA_DLL_API KaxTagMultiCommercialType : public EbmlUInteger { public: KaxTagMultiCommercialType() {} KaxTagMultiCommercialType(const KaxTagMultiCommercialType & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiCommercialType);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiCommercialType(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiCommercialType) }; class MATROSKA_DLL_API KaxTagMultiCommercialAddress : public EbmlUnicodeString { public: KaxTagMultiCommercialAddress() {} KaxTagMultiCommercialAddress(const KaxTagMultiCommercialAddress & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiCommercialAddress);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiCommercialAddress(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiCommercialAddress) }; class MATROSKA_DLL_API KaxTagMultiCommercialURL : public EbmlString { public: KaxTagMultiCommercialURL() {} KaxTagMultiCommercialURL(const KaxTagMultiCommercialURL & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiCommercialURL);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiCommercialURL(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiCommercialURL) }; class MATROSKA_DLL_API KaxTagMultiCommercialEmail : public EbmlString { public: KaxTagMultiCommercialEmail() {} KaxTagMultiCommercialEmail(const KaxTagMultiCommercialEmail & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiCommercialEmail);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiCommercialEmail(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiCommercialEmail) }; class MATROSKA_DLL_API KaxTagMultiPrice : public EbmlMaster { public: KaxTagMultiPrice(); KaxTagMultiPrice(const KaxTagMultiPrice & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiPrice);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiPrice(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiPrice) }; class MATROSKA_DLL_API KaxTagMultiPriceCurrency : public EbmlString { public: KaxTagMultiPriceCurrency() {} KaxTagMultiPriceCurrency(const KaxTagMultiPriceCurrency & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiPriceCurrency);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiPriceCurrency(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiPriceCurrency) }; class MATROSKA_DLL_API KaxTagMultiPriceAmount : public EbmlFloat { public: KaxTagMultiPriceAmount() :EbmlFloat() {} KaxTagMultiPriceAmount(const KaxTagMultiPriceAmount & ElementToClone) :EbmlFloat(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiPriceAmount);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiPriceAmount(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiPriceAmount) }; class MATROSKA_DLL_API KaxTagMultiPricePriceDate : public EbmlDate { public: KaxTagMultiPricePriceDate() :EbmlDate() {} KaxTagMultiPricePriceDate(const KaxTagMultiPricePriceDate & ElementToClone) :EbmlDate(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiPricePriceDate);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiPricePriceDate(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiPricePriceDate) }; class MATROSKA_DLL_API KaxTagMultiDate : public EbmlMaster { public: KaxTagMultiDate(); KaxTagMultiDate(const KaxTagMultiDate & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiDate);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiDate(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiDate) }; class MATROSKA_DLL_API KaxTagDate : public EbmlMaster { public: KaxTagDate(); KaxTagDate(const KaxTagDate & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagDate);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagDate(*this);} + + EBML_CONCRETE_CLASS(KaxTagDate) }; class MATROSKA_DLL_API KaxTagMultiDateType : public EbmlUInteger { public: KaxTagMultiDateType() {} KaxTagMultiDateType(const KaxTagMultiDateType & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiDateType);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiDateType(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiDateType) }; class MATROSKA_DLL_API KaxTagMultiDateDateBegin : public EbmlDate { public: KaxTagMultiDateDateBegin() :EbmlDate() {} KaxTagMultiDateDateBegin(const KaxTagMultiDateDateBegin & ElementToClone) :EbmlDate(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiDateDateBegin);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiDateDateBegin(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiDateDateBegin) }; class MATROSKA_DLL_API KaxTagMultiDateDateEnd : public EbmlDate { public: KaxTagMultiDateDateEnd() :EbmlDate() {} KaxTagMultiDateDateEnd(const KaxTagMultiDateDateEnd & ElementToClone) :EbmlDate(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiDateDateEnd);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiDateDateEnd(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiDateDateEnd) }; class MATROSKA_DLL_API KaxTagMultiEntity : public EbmlMaster { public: KaxTagMultiEntity(); KaxTagMultiEntity(const KaxTagMultiEntity & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiEntity);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiEntity(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiEntity) }; class MATROSKA_DLL_API KaxTagEntity : public EbmlMaster { public: KaxTagEntity(); KaxTagEntity(const KaxTagEntity & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagEntity);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagEntity(*this);} + + EBML_CONCRETE_CLASS(KaxTagEntity) }; class MATROSKA_DLL_API KaxTagMultiEntityType : public EbmlUInteger { public: KaxTagMultiEntityType() {} KaxTagMultiEntityType(const KaxTagMultiEntityType & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiEntityType);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiEntityType(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiEntityType) }; class MATROSKA_DLL_API KaxTagMultiEntityName : public EbmlUnicodeString { public: KaxTagMultiEntityName() {} KaxTagMultiEntityName(const KaxTagMultiEntityName & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiEntityName);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiEntityName(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiEntityName) }; class MATROSKA_DLL_API KaxTagMultiEntityAddress : public EbmlUnicodeString { public: KaxTagMultiEntityAddress() {} KaxTagMultiEntityAddress(const KaxTagMultiEntityAddress & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiEntityAddress);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiEntityAddress(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiEntityAddress) }; class MATROSKA_DLL_API KaxTagMultiEntityURL : public EbmlString { public: KaxTagMultiEntityURL() {} KaxTagMultiEntityURL(const KaxTagMultiEntityURL & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiEntityURL);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiEntityURL(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiEntityURL) }; class MATROSKA_DLL_API KaxTagMultiEntityEmail : public EbmlString { public: KaxTagMultiEntityEmail() {} KaxTagMultiEntityEmail(const KaxTagMultiEntityEmail & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiEntityEmail);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiEntityEmail(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiEntityEmail) }; class MATROSKA_DLL_API KaxTagMultiIdentifier : public EbmlMaster { public: KaxTagMultiIdentifier(); KaxTagMultiIdentifier(const KaxTagMultiIdentifier & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiIdentifier);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiIdentifier(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiIdentifier) }; class MATROSKA_DLL_API KaxTagIdentifier : public EbmlMaster { public: KaxTagIdentifier(); KaxTagIdentifier(const KaxTagIdentifier & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagIdentifier);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagIdentifier(*this);} + + EBML_CONCRETE_CLASS(KaxTagIdentifier) }; class MATROSKA_DLL_API KaxTagMultiIdentifierType : public EbmlUInteger { public: KaxTagMultiIdentifierType() {} KaxTagMultiIdentifierType(const KaxTagMultiIdentifierType & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiIdentifierType);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiIdentifierType(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiIdentifierType) }; class MATROSKA_DLL_API KaxTagMultiIdentifierBinary : public EbmlBinary { public: KaxTagMultiIdentifierBinary() {} KaxTagMultiIdentifierBinary(const KaxTagMultiIdentifierBinary & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxTagMultiIdentifierBinary);} bool ValidateSize() const {return true;} // we don't mind about what's inside - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiIdentifierBinary(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiIdentifierBinary) }; class MATROSKA_DLL_API KaxTagMultiIdentifierString : public EbmlUnicodeString { public: KaxTagMultiIdentifierString() {} KaxTagMultiIdentifierString(const KaxTagMultiIdentifierString & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiIdentifierString);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiIdentifierString(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiIdentifierString) }; class MATROSKA_DLL_API KaxTagMultiLegal : public EbmlMaster { public: KaxTagMultiLegal(); KaxTagMultiLegal(const KaxTagMultiLegal & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiLegal);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiLegal(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiLegal) }; class MATROSKA_DLL_API KaxTagLegal : public EbmlMaster { public: KaxTagLegal(); KaxTagLegal(const KaxTagLegal & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagLegal);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagLegal(*this);} + + EBML_CONCRETE_CLASS(KaxTagLegal) }; class MATROSKA_DLL_API KaxTagMultiLegalType : public EbmlUInteger { public: KaxTagMultiLegalType() {} KaxTagMultiLegalType(const KaxTagMultiLegalType & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiLegalType);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiLegalType(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiLegalType) }; class MATROSKA_DLL_API KaxTagMultiLegalContent : public EbmlUnicodeString { public: KaxTagMultiLegalContent() {} KaxTagMultiLegalContent(const KaxTagMultiLegalContent & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiLegalContent);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiLegalContent(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiLegalContent) }; class MATROSKA_DLL_API KaxTagMultiLegalURL : public EbmlString { public: KaxTagMultiLegalURL() {} KaxTagMultiLegalURL(const KaxTagMultiLegalURL & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiLegalURL);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiLegalURL(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiLegalURL) }; class MATROSKA_DLL_API KaxTagMultiLegalAddress : public EbmlUnicodeString { public: KaxTagMultiLegalAddress() {} KaxTagMultiLegalAddress(const KaxTagMultiLegalAddress & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiLegalAddress);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiLegalAddress(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiLegalAddress) }; class MATROSKA_DLL_API KaxTagMultiTitle : public EbmlMaster { public: KaxTagMultiTitle(); KaxTagMultiTitle(const KaxTagMultiTitle & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiTitle);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiTitle(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiTitle) }; class MATROSKA_DLL_API KaxTagTitle : public EbmlMaster { public: KaxTagTitle(); KaxTagTitle(const KaxTagTitle & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagTitle);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagTitle(*this);} + + EBML_CONCRETE_CLASS(KaxTagTitle) }; class MATROSKA_DLL_API KaxTagMultiTitleType : public EbmlUInteger { public: KaxTagMultiTitleType() {} KaxTagMultiTitleType(const KaxTagMultiTitleType & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiTitleType);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiTitleType(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiTitleType) }; @@ -568,176 +448,132 @@ class MATROSKA_DLL_API KaxTagMultiTitleName : public EbmlUnicodeString { public: KaxTagMultiTitleName() {} KaxTagMultiTitleName(const KaxTagMultiTitleName & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiTitleName);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiTitleName(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiTitleName) }; class MATROSKA_DLL_API KaxTagMultiTitleSubTitle : public EbmlUnicodeString { public: KaxTagMultiTitleSubTitle() {} KaxTagMultiTitleSubTitle(const KaxTagMultiTitleSubTitle & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiTitleSubTitle);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiTitleSubTitle(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiTitleSubTitle) }; class MATROSKA_DLL_API KaxTagMultiTitleEdition : public EbmlUnicodeString { public: KaxTagMultiTitleEdition() {} KaxTagMultiTitleEdition(const KaxTagMultiTitleEdition & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiTitleEdition);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiTitleEdition(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiTitleEdition) }; class MATROSKA_DLL_API KaxTagMultiTitleAddress : public EbmlUnicodeString { public: KaxTagMultiTitleAddress() {} KaxTagMultiTitleAddress(const KaxTagMultiTitleAddress & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiTitleAddress);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiTitleAddress(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiTitleAddress) }; class MATROSKA_DLL_API KaxTagMultiTitleURL : public EbmlString { public: KaxTagMultiTitleURL() {} KaxTagMultiTitleURL(const KaxTagMultiTitleURL & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiTitleURL);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiTitleURL(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiTitleURL) }; class MATROSKA_DLL_API KaxTagMultiTitleEmail : public EbmlString { public: KaxTagMultiTitleEmail() {} KaxTagMultiTitleEmail(const KaxTagMultiTitleEmail & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiTitleEmail);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiTitleEmail(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiTitleEmail) }; class MATROSKA_DLL_API KaxTagMultiTitleLanguage : public EbmlString { public: KaxTagMultiTitleLanguage() {} KaxTagMultiTitleLanguage(const KaxTagMultiTitleLanguage & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiTitleLanguage);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiTitleLanguage(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiTitleLanguage) }; class MATROSKA_DLL_API KaxTagMultiAttachment : public EbmlMaster { public: KaxTagMultiAttachment(); KaxTagMultiAttachment(const KaxTagMultiAttachment & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagMultiAttachment);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagMultiAttachment(*this);} + + EBML_CONCRETE_CLASS(KaxTagMultiAttachment) }; class MATROSKA_DLL_API KaxTagAttachment : public EbmlMaster { public: KaxTagAttachment(); KaxTagAttachment(const KaxTagAttachment & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagAttachment);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagAttachment(*this);} + + EBML_CONCRETE_CLASS(KaxTagAttachment) }; class MATROSKA_DLL_API KaxTagAttachmentID : public EbmlUInteger { public: KaxTagAttachmentID() {} KaxTagAttachmentID(const KaxTagAttachmentID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTagAttachmentID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTagAttachmentID(*this);} + + EBML_CONCRETE_CLASS(KaxTagAttachmentID) }; #if 0 class MATROSKA_DLL_API KaxTagBPM : public EbmlFloat { public: KaxTagBPM() :EbmlFloat() {} - static EbmlElement & Create() {return *(new KaxTagBPM);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} + + EBML_CONCRETE_CLASS(KaxTagBPM) }; class MATROSKA_DLL_API KaxTagPopularimeter : public EbmlSInteger { public: KaxTagPopularimeter() {} - static EbmlElement & Create() {return *(new KaxTagPopularimeter);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} + + EBML_CONCRETE_CLASS(KaxTagPopularimeter) }; class MATROSKA_DLL_API KaxTagRating : public EbmlBinary { public: KaxTagRating() {} - static EbmlElement & Create() {return *(new KaxTagRating);} bool ValidateSize() const {return true;} // we don't mind about what's inside - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} + + EBML_CONCRETE_CLASS(KaxTagRating) }; class MATROSKA_DLL_API KaxTagSetPart : public EbmlUInteger { public: KaxTagSetPart() {} - static EbmlElement & Create() {return *(new KaxTagSetPart);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} + + EBML_CONCRETE_CLASS(KaxTagSetPart) }; class MATROSKA_DLL_API KaxTagUserDefinedURL : public EbmlString { public: KaxTagUserDefinedURL() {} - static EbmlElement & Create() {return *(new KaxTagUserDefinedURL);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} + + EBML_CONCRETE_CLASS(KaxTagUserDefinedURL) }; class MATROSKA_DLL_API KaxTagVideoSecondaryGenre : public EbmlBinary { public: KaxTagVideoSecondaryGenre() {} - static EbmlElement & Create() {return *(new KaxTagVideoSecondaryGenre);} bool ValidateSize() const {return (Size >= 4);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} + + EBML_CONCRETE_CLASS(KaxTagVideoSecondaryGenre) }; class MATROSKA_DLL_API KaxWritingApp : public EbmlUnicodeString { public: KaxWritingApp() {} - static EbmlElement & Create() {return *(new KaxWritingApp);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} + + EBML_CONCRETE_CLASS(KaxWritingApp) }; #endif diff --git a/matroska/KaxTags.h b/matroska/KaxTags.h index f6c4375..87acaae 100644 --- a/matroska/KaxTags.h +++ b/matroska/KaxTags.h @@ -46,11 +46,8 @@ class MATROSKA_DLL_API KaxTags : public EbmlMaster { public: KaxTags(); KaxTags(const KaxTags & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTags);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTags(*this);} + + EBML_CONCRETE_CLASS(KaxTags) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxTrackAudio.h b/matroska/KaxTrackAudio.h index ffbe259..7c02a1f 100644 --- a/matroska/KaxTrackAudio.h +++ b/matroska/KaxTrackAudio.h @@ -49,44 +49,32 @@ class MATROSKA_DLL_API KaxTrackAudio : public EbmlMaster { public: KaxTrackAudio(); KaxTrackAudio(const KaxTrackAudio & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackAudio);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackAudio(*this);} + + EBML_CONCRETE_CLASS(KaxTrackAudio) }; class MATROSKA_DLL_API KaxAudioSamplingFreq : public EbmlFloat { public: KaxAudioSamplingFreq() :EbmlFloat(8000.0) {} KaxAudioSamplingFreq(const KaxAudioSamplingFreq & ElementToClone) :EbmlFloat(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxAudioSamplingFreq);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxAudioSamplingFreq(*this);} + + EBML_CONCRETE_CLASS(KaxAudioSamplingFreq) }; class MATROSKA_DLL_API KaxAudioOutputSamplingFreq : public EbmlFloat { public: KaxAudioOutputSamplingFreq() :EbmlFloat() {} KaxAudioOutputSamplingFreq(const KaxAudioOutputSamplingFreq & ElementToClone) :EbmlFloat(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxAudioOutputSamplingFreq);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxAudioOutputSamplingFreq(*this);} + + EBML_CONCRETE_CLASS(KaxAudioOutputSamplingFreq) }; class MATROSKA_DLL_API KaxAudioChannels : public EbmlUInteger { public: KaxAudioChannels() :EbmlUInteger(1) {} KaxAudioChannels(const KaxAudioChannels & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxAudioChannels);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxAudioChannels(*this);} + + EBML_CONCRETE_CLASS(KaxAudioChannels) }; #if MATROSKA_VERSION >= 2 @@ -94,12 +82,9 @@ class MATROSKA_DLL_API KaxAudioPosition : public EbmlBinary { public: KaxAudioPosition() {} KaxAudioPosition(const KaxAudioPosition & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxAudioPosition);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - bool ValidateSize(void) const {return true;} - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxAudioPosition(*this);} + bool ValidateSize(void) const {return true;} + + EBML_CONCRETE_CLASS(KaxAudioPosition) }; #endif // MATROSKA_VERSION @@ -107,11 +92,8 @@ class MATROSKA_DLL_API KaxAudioBitDepth : public EbmlUInteger { public: KaxAudioBitDepth() {} KaxAudioBitDepth(const KaxAudioBitDepth & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxAudioBitDepth);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxAudioBitDepth(*this);} + + EBML_CONCRETE_CLASS(KaxAudioBitDepth) }; END_LIBMATROSKA_NAMESPACE diff --git a/matroska/KaxTrackEntryData.h b/matroska/KaxTrackEntryData.h index 0203ac8..155fa0e 100644 --- a/matroska/KaxTrackEntryData.h +++ b/matroska/KaxTrackEntryData.h @@ -52,33 +52,24 @@ class MATROSKA_DLL_API KaxTrackNumber : public EbmlUInteger { public: KaxTrackNumber() {} KaxTrackNumber(const KaxTrackNumber & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackNumber);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackNumber(*this);} + + EBML_CONCRETE_CLASS(KaxTrackNumber) }; class MATROSKA_DLL_API KaxTrackUID : public EbmlUInteger { public: KaxTrackUID() {} KaxTrackUID(const KaxTrackUID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackUID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackUID(*this);} + + EBML_CONCRETE_CLASS(KaxTrackUID) }; class MATROSKA_DLL_API KaxTrackType : public EbmlUInteger { public: KaxTrackType() {} KaxTrackType(const KaxTrackType & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackType);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackType(*this);} + + EBML_CONCRETE_CLASS(KaxTrackType) }; #if MATROSKA_VERSION >= 2 @@ -86,11 +77,8 @@ class MATROSKA_DLL_API KaxTrackFlagEnabled : public EbmlUInteger { public: KaxTrackFlagEnabled() :EbmlUInteger(1) {} KaxTrackFlagEnabled(const KaxTrackFlagEnabled & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackFlagEnabled);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackFlagEnabled(*this);} + + EBML_CONCRETE_CLASS(KaxTrackFlagEnabled) }; #endif // MATROSKA_VERSION @@ -98,212 +86,155 @@ class MATROSKA_DLL_API KaxTrackFlagDefault : public EbmlUInteger { public: KaxTrackFlagDefault() :EbmlUInteger(1) {} KaxTrackFlagDefault(const KaxTrackFlagDefault & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackFlagDefault);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackFlagDefault(*this);} + + EBML_CONCRETE_CLASS(KaxTrackFlagDefault) }; class MATROSKA_DLL_API KaxTrackFlagForced : public EbmlUInteger { public: KaxTrackFlagForced() :EbmlUInteger(0) {} KaxTrackFlagForced(const KaxTrackFlagForced & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackFlagForced);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackFlagForced(*this);} + + EBML_CONCRETE_CLASS(KaxTrackFlagForced) }; class MATROSKA_DLL_API KaxTrackFlagLacing : public EbmlUInteger { public: KaxTrackFlagLacing() :EbmlUInteger(1) {} KaxTrackFlagLacing(const KaxTrackFlagLacing & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackFlagLacing);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackFlagLacing(*this);} + + EBML_CONCRETE_CLASS(KaxTrackFlagLacing) }; class MATROSKA_DLL_API KaxTrackMinCache : public EbmlUInteger { public: KaxTrackMinCache() :EbmlUInteger(0) {} KaxTrackMinCache(const KaxTrackMinCache & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackMinCache);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackMinCache(*this);} + + EBML_CONCRETE_CLASS(KaxTrackMinCache) }; class MATROSKA_DLL_API KaxTrackMaxCache : public EbmlUInteger { public: KaxTrackMaxCache() {} KaxTrackMaxCache(const KaxTrackMaxCache & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackMaxCache);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackMaxCache(*this);} + + EBML_CONCRETE_CLASS(KaxTrackMaxCache) }; class MATROSKA_DLL_API KaxTrackDefaultDuration : public EbmlUInteger { public: KaxTrackDefaultDuration() {} KaxTrackDefaultDuration(const KaxTrackDefaultDuration & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackDefaultDuration);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackDefaultDuration(*this);} + + EBML_CONCRETE_CLASS(KaxTrackDefaultDuration) }; class MATROSKA_DLL_API KaxTrackTimecodeScale : public EbmlFloat { public: KaxTrackTimecodeScale() :EbmlFloat(1.0) {} KaxTrackTimecodeScale(const KaxTrackTimecodeScale & ElementToClone) :EbmlFloat(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackTimecodeScale);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackTimecodeScale(*this);} + + EBML_CONCRETE_CLASS(KaxTrackTimecodeScale) }; class MATROSKA_DLL_API KaxMaxBlockAdditionID : public EbmlUInteger { public: KaxMaxBlockAdditionID() :EbmlUInteger(0) {} KaxMaxBlockAdditionID(const KaxMaxBlockAdditionID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxMaxBlockAdditionID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxMaxBlockAdditionID(*this);} + + EBML_CONCRETE_CLASS(KaxMaxBlockAdditionID) }; class MATROSKA_DLL_API KaxTrackName : public EbmlUnicodeString { public: KaxTrackName() {} KaxTrackName(const KaxTrackName & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackName);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackName(*this);} + + EBML_CONCRETE_CLASS(KaxTrackName) }; class MATROSKA_DLL_API KaxTrackLanguage : public EbmlString { public: KaxTrackLanguage() :EbmlString("eng") {} KaxTrackLanguage(const KaxTrackLanguage & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackLanguage);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackLanguage(*this);} + + EBML_CONCRETE_CLASS(KaxTrackLanguage) }; class MATROSKA_DLL_API KaxCodecID : public EbmlString { public: KaxCodecID() {} KaxCodecID(const KaxCodecID & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCodecID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCodecID(*this);} + + EBML_CONCRETE_CLASS(KaxCodecID) }; class MATROSKA_DLL_API KaxCodecPrivate : public EbmlBinary { public: KaxCodecPrivate() {} KaxCodecPrivate(const KaxCodecPrivate & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxCodecPrivate);} bool ValidateSize() const {return true;} // we don't mind about what's inside - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCodecPrivate(*this);} + + EBML_CONCRETE_CLASS(KaxCodecPrivate) }; class MATROSKA_DLL_API KaxCodecName : public EbmlUnicodeString { public: KaxCodecName() {} KaxCodecName(const KaxCodecName & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCodecName);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCodecName(*this);} + + EBML_CONCRETE_CLASS(KaxCodecName) }; class MATROSKA_DLL_API KaxTrackAttachmentLink : public EbmlBinary { public: KaxTrackAttachmentLink() {} KaxTrackAttachmentLink(const KaxTrackAttachmentLink & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxTrackAttachmentLink);} bool ValidateSize() const {return true;} // we don't mind about what's inside - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackAttachmentLink(*this);} + + EBML_CONCRETE_CLASS(KaxTrackAttachmentLink) }; class MATROSKA_DLL_API KaxTrackOverlay : public EbmlUInteger { public: KaxTrackOverlay() {} KaxTrackOverlay(const KaxTrackOverlay & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackOverlay);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackOverlay(*this);} + + EBML_CONCRETE_CLASS(KaxTrackOverlay) }; class MATROSKA_DLL_API KaxTrackTranslate : public EbmlMaster { public: KaxTrackTranslate(); KaxTrackTranslate(const KaxTrackTranslate & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackTranslate);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackTranslate(*this);} + + EBML_CONCRETE_CLASS(KaxTrackTranslate) }; class MATROSKA_DLL_API KaxTrackTranslateCodec : public EbmlUInteger { public: KaxTrackTranslateCodec() {} KaxTrackTranslateCodec(const KaxTrackTranslateCodec & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackTranslateCodec);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackTranslateCodec(*this);} + + EBML_CONCRETE_CLASS(KaxTrackTranslateCodec) }; class MATROSKA_DLL_API KaxTrackTranslateEditionUID : public EbmlUInteger { public: KaxTrackTranslateEditionUID() {} KaxTrackTranslateEditionUID(const KaxTrackTranslateEditionUID & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackTranslateEditionUID);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackTranslateEditionUID(*this);} + + EBML_CONCRETE_CLASS(KaxTrackTranslateEditionUID) }; class MATROSKA_DLL_API KaxTrackTranslateTrackID : public EbmlBinary { public: KaxTrackTranslateTrackID() {} KaxTrackTranslateTrackID(const KaxTrackTranslateTrackID & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxTrackTranslateTrackID);} bool ValidateSize() const { return true;} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackTranslateTrackID(*this);} + + EBML_CONCRETE_CLASS(KaxTrackTranslateTrackID) }; #if MATROSKA_VERSION >= 2 @@ -311,44 +242,32 @@ class MATROSKA_DLL_API KaxCodecSettings : public EbmlUnicodeString { public: KaxCodecSettings() {} KaxCodecSettings(const KaxCodecSettings & ElementToClone) :EbmlUnicodeString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCodecSettings);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCodecSettings(*this);} + + EBML_CONCRETE_CLASS(KaxCodecSettings) }; class MATROSKA_DLL_API KaxCodecInfoURL : public EbmlString { public: KaxCodecInfoURL() {} KaxCodecInfoURL(const KaxCodecInfoURL & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCodecInfoURL);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCodecInfoURL(*this);} + + EBML_CONCRETE_CLASS(KaxCodecInfoURL) }; class MATROSKA_DLL_API KaxCodecDownloadURL : public EbmlString { public: KaxCodecDownloadURL() {} KaxCodecDownloadURL(const KaxCodecDownloadURL & ElementToClone) :EbmlString(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCodecDownloadURL);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCodecDownloadURL(*this);} + + EBML_CONCRETE_CLASS(KaxCodecDownloadURL) }; class MATROSKA_DLL_API KaxCodecDecodeAll : public EbmlUInteger { public: KaxCodecDecodeAll() :EbmlUInteger(1) {} KaxCodecDecodeAll(const KaxCodecDecodeAll & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxCodecDecodeAll);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxCodecDecodeAll(*this);} + + EBML_CONCRETE_CLASS(KaxCodecDecodeAll) }; #endif // MATROSKA_VERSION diff --git a/matroska/KaxTrackVideo.h b/matroska/KaxTrackVideo.h index 9a2678c..e50d2fb 100644 --- a/matroska/KaxTrackVideo.h +++ b/matroska/KaxTrackVideo.h @@ -49,11 +49,8 @@ class MATROSKA_DLL_API KaxTrackVideo : public EbmlMaster { public: KaxTrackVideo(); KaxTrackVideo(const KaxTrackVideo & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackVideo);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackVideo(*this);} + + EBML_CONCRETE_CLASS(KaxTrackVideo) }; #if MATROSKA_VERSION >= 2 @@ -61,22 +58,16 @@ class MATROSKA_DLL_API KaxVideoFlagInterlaced : public EbmlUInteger { public: KaxVideoFlagInterlaced() :EbmlUInteger(0) {} KaxVideoFlagInterlaced(const KaxVideoFlagInterlaced & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxVideoFlagInterlaced);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxVideoFlagInterlaced(*this);} + + EBML_CONCRETE_CLASS(KaxVideoFlagInterlaced) }; class MATROSKA_DLL_API KaxVideoStereoMode : public EbmlUInteger { public: KaxVideoStereoMode() :EbmlUInteger(0) {} KaxVideoStereoMode(const KaxVideoStereoMode & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxVideoStereoMode);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxVideoStereoMode(*this);} + + EBML_CONCRETE_CLASS(KaxVideoStereoMode) }; #endif // MATROSKA_VERSION @@ -84,88 +75,64 @@ class MATROSKA_DLL_API KaxVideoPixelWidth : public EbmlUInteger { public: KaxVideoPixelWidth() {} KaxVideoPixelWidth(const KaxVideoPixelWidth & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxVideoPixelWidth);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxVideoPixelWidth(*this);} + + EBML_CONCRETE_CLASS(KaxVideoPixelWidth) }; class MATROSKA_DLL_API KaxVideoPixelHeight : public EbmlUInteger { public: KaxVideoPixelHeight() {} KaxVideoPixelHeight(const KaxVideoPixelHeight & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxVideoPixelHeight);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxVideoPixelHeight(*this);} + + EBML_CONCRETE_CLASS(KaxVideoPixelHeight) }; class MATROSKA_DLL_API KaxVideoPixelCropBottom : public EbmlUInteger { public: KaxVideoPixelCropBottom(): EbmlUInteger(0) {} KaxVideoPixelCropBottom(const KaxVideoPixelCropBottom & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxVideoPixelCropBottom);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxVideoPixelCropBottom(*this);} + + EBML_CONCRETE_CLASS(KaxVideoPixelCropBottom) }; class MATROSKA_DLL_API KaxVideoPixelCropTop : public EbmlUInteger { public: KaxVideoPixelCropTop(): EbmlUInteger(0) {} KaxVideoPixelCropTop(const KaxVideoPixelCropTop & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxVideoPixelCropTop);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxVideoPixelCropTop(*this);} + + EBML_CONCRETE_CLASS(KaxVideoPixelCropTop) }; class MATROSKA_DLL_API KaxVideoPixelCropLeft : public EbmlUInteger { public: KaxVideoPixelCropLeft(): EbmlUInteger(0) {} KaxVideoPixelCropLeft(const KaxVideoPixelCropLeft & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxVideoPixelCropLeft);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxVideoPixelCropLeft(*this);} + + EBML_CONCRETE_CLASS(KaxVideoPixelCropLeft) }; class MATROSKA_DLL_API KaxVideoPixelCropRight : public EbmlUInteger { public: KaxVideoPixelCropRight(): EbmlUInteger(0) {} KaxVideoPixelCropRight(const KaxVideoPixelCropRight & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxVideoPixelCropRight);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxVideoPixelCropRight(*this);} + + EBML_CONCRETE_CLASS(KaxVideoPixelCropRight) }; class MATROSKA_DLL_API KaxVideoDisplayWidth : public EbmlUInteger { public: KaxVideoDisplayWidth() {} KaxVideoDisplayWidth(const KaxVideoDisplayWidth & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxVideoDisplayWidth);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxVideoDisplayWidth(*this);} + + EBML_CONCRETE_CLASS(KaxVideoDisplayWidth) }; class MATROSKA_DLL_API KaxVideoDisplayHeight : public EbmlUInteger { public: KaxVideoDisplayHeight() {} KaxVideoDisplayHeight(const KaxVideoDisplayHeight & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxVideoDisplayHeight);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxVideoDisplayHeight(*this);} + + EBML_CONCRETE_CLASS(KaxVideoDisplayHeight) }; #if MATROSKA_VERSION >= 2 @@ -173,22 +140,16 @@ class MATROSKA_DLL_API KaxVideoDisplayUnit : public EbmlUInteger { public: KaxVideoDisplayUnit() {} KaxVideoDisplayUnit(const KaxVideoDisplayUnit & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxVideoDisplayUnit);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxVideoDisplayUnit(*this);} + + EBML_CONCRETE_CLASS(KaxVideoDisplayUnit) }; class MATROSKA_DLL_API KaxVideoAspectRatio : public EbmlUInteger { public: KaxVideoAspectRatio() {} KaxVideoAspectRatio(const KaxVideoAspectRatio & ElementToClone) :EbmlUInteger(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxVideoAspectRatio);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxVideoAspectRatio(*this);} + + EBML_CONCRETE_CLASS(KaxVideoAspectRatio) }; #endif // MATROSKA_VERSION @@ -196,12 +157,9 @@ class MATROSKA_DLL_API KaxVideoColourSpace : public EbmlBinary { public: KaxVideoColourSpace() {} KaxVideoColourSpace(const KaxVideoColourSpace & ElementToClone) :EbmlBinary(ElementToClone){} - static EbmlElement & Create() {return *(new KaxVideoColourSpace);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; bool ValidateSize(void) const {return (GetSize() == 4);} - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxVideoColourSpace(*this);} + + EBML_CONCRETE_CLASS(KaxVideoColourSpace) }; #if MATROSKA_VERSION >= 2 @@ -209,11 +167,8 @@ class MATROSKA_DLL_API KaxVideoGamma : public EbmlFloat { public: KaxVideoGamma() {} KaxVideoGamma(const KaxVideoGamma & ElementToClone) :EbmlFloat(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxVideoGamma);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxVideoGamma(*this);} + + EBML_CONCRETE_CLASS(KaxVideoGamma) }; #endif // MATROSKA_VERSION @@ -221,12 +176,9 @@ class MATROSKA_DLL_API KaxVideoFrameRate : public EbmlFloat { public: KaxVideoFrameRate() {} KaxVideoFrameRate(const KaxVideoFrameRate & ElementToClone) :EbmlFloat(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxVideoFrameRate);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} uint32 RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault); - EbmlElement * Clone() const {return new KaxVideoFrameRate(*this);} + + EBML_CONCRETE_CLASS(KaxVideoFrameRate) }; diff --git a/matroska/KaxTracks.h b/matroska/KaxTracks.h index bd2224c..3b52524 100644 --- a/matroska/KaxTracks.h +++ b/matroska/KaxTracks.h @@ -48,22 +48,14 @@ class MATROSKA_DLL_API KaxTracks : public EbmlMaster { public: KaxTracks(); KaxTracks(const KaxTracks & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTracks);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTracks(*this);} + + EBML_CONCRETE_CLASS(KaxTracks) }; class MATROSKA_DLL_API KaxTrackEntry : public EbmlMaster { public: KaxTrackEntry(); KaxTrackEntry(const KaxTrackEntry & ElementToClone) :EbmlMaster(ElementToClone) {} - static EbmlElement & Create() {return *(new KaxTrackEntry);} - const EbmlCallbacks & Generic() const {return ClassInfos;} - static const EbmlCallbacks ClassInfos; - operator const EbmlId &() const {return ClassInfos.GlobalId;} - EbmlElement * Clone() const {return new KaxTrackEntry(*this);} EbmlUInteger & TrackNumber() const { return *(static_cast(FindElt(EBML_INFO(KaxTrackNumber)))); } @@ -89,6 +81,8 @@ class MATROSKA_DLL_API KaxTrackEntry : public EbmlMaster { protected: bool bGlobalTimecodeScaleIsSet; uint64 mGlobalTimecodeScale; + + EBML_CONCRETE_CLASS(KaxTrackEntry) }; END_LIBMATROSKA_NAMESPACE