diff --git a/src/GDTFManager.cpp b/src/GDTFManager.cpp index fb8f41ac..789373b2 100644 --- a/src/GDTFManager.cpp +++ b/src/GDTFManager.cpp @@ -7768,6 +7768,8 @@ bool GdtfFixture::ImportFromZip(IZIPFilePtr& zipfile) IXMLFileNodePtr rootNode; if (VCOM_SUCCEEDED(xmlFile->GetRootNode( & rootNode))) { + rootNode->GetNodeAttributeValue(XML_GDTF_ROOTNODEATTRVERSION, gdtfFileVersion); + IXMLFileNodePtr fixtureNode; if (VCOM_SUCCEEDED(rootNode->GetChildNode(XML_GDTF_FixtureNodeName, & fixtureNode))) { diff --git a/src/GDTFManager.h b/src/GDTFManager.h index 4acacc57..7c18a2b0 100644 --- a/src/GDTFManager.h +++ b/src/GDTFManager.h @@ -2754,6 +2754,11 @@ namespace SceneData private: //------------------------------------------------ + // Parameters for the GdtfDataFile + TXString gdtfFileVersion = XML_GDTF_CurrentVersion; + TXString gdtfLatestVersion = XML_GDTF_CurrentVersion; + + //------------------------------------------------ // Parameters for a GdtfFixture TXString fName; TXString fShortName; @@ -2820,6 +2825,9 @@ namespace SceneData public: //---------------------------------------------------------------------------------------------------------------------------------------------------------------- // Getter + const TXString& GetGdtfFileVersion() const { return gdtfFileVersion; } + const TXString& GetCurrentGdtfVersion() const { return gdtfLatestVersion; } + const TXString& GetName() const; const TXString& GetShortName() const; const TXString& GetLongName() const; diff --git a/src/Implementation/CGdtfFixture.cpp b/src/Implementation/CGdtfFixture.cpp index 33db47de..951aaed1 100755 --- a/src/Implementation/CGdtfFixture.cpp +++ b/src/Implementation/CGdtfFixture.cpp @@ -219,6 +219,20 @@ VectorworksMVR::VCOMError VectorworksMVR::CGdtfFixtureImpl::ReadFromFile(IFileId return retVal; } +MvrString VectorworksMVR::CGdtfFixtureImpl::GetGdtfFileVersion() +{ + if(!fFixtureObject) {return "";} + + return fFixtureObject->GetGdtfFileVersion().GetCharPtr(); +} + +MvrString VectorworksMVR::CGdtfFixtureImpl::GetCurrentGdtfVersion() +{ + if(!fFixtureObject) {return "";} + + return fFixtureObject->GetCurrentGdtfVersion().GetCharPtr(); +} + MvrString VectorworksMVR::CGdtfFixtureImpl::GetName() { if(!fFixtureObject) {return "";} diff --git a/src/Implementation/CGdtfFixture.h b/src/Implementation/CGdtfFixture.h index 3476a5ea..643ed62f 100755 --- a/src/Implementation/CGdtfFixture.h +++ b/src/Implementation/CGdtfFixture.h @@ -27,6 +27,9 @@ namespace VectorworksMVR virtual VCOMError VCOM_CALLTYPE AddBufferToGdtfFile(MvrString filename, const char* inBuffer, size_t length, GdtfDefines::ERessourceType resType); virtual VCOMError VCOM_CALLTYPE Close(); + virtual MvrString VCOM_CALLTYPE GetGdtfFileVersion(); + virtual MvrString VCOM_CALLTYPE GetCurrentGdtfVersion(); + virtual MvrString VCOM_CALLTYPE GetName(); virtual MvrString VCOM_CALLTYPE GetShortName(); virtual MvrString VCOM_CALLTYPE GetLongName(); diff --git a/src/Include/IMediaRessourceVectorInterface.h b/src/Include/IMediaRessourceVectorInterface.h index 1fba084d..ef4b174b 100644 --- a/src/Include/IMediaRessourceVectorInterface.h +++ b/src/Include/IMediaRessourceVectorInterface.h @@ -1556,6 +1556,9 @@ class DYNAMIC_ATTRIBUTE IGdtfMacro : public IVWUnknown virtual VCOMError VCOM_CALLTYPE Close() = 0; + virtual MvrString VCOM_CALLTYPE GetGdtfFileVersion() = 0; + virtual MvrString VCOM_CALLTYPE GetCurrentGdtfVersion() = 0; + virtual MvrString VCOM_CALLTYPE GetName() = 0; virtual MvrString VCOM_CALLTYPE GetManufacturer() = 0; virtual VCOMError VCOM_CALLTYPE GetFixtureGUID(MvrUUID& uuid) = 0;