From 4ea3c255efe74056d81b21cfef2ee6a0c3cb2dbd Mon Sep 17 00:00:00 2001 From: Jordan Walters Date: Wed, 3 Sep 2025 09:17:12 +0100 Subject: [PATCH 1/3] Add Getter accessor for --- src/GDTFManager.cpp | 2 ++ src/GDTFManager.h | 7 +++++++ src/Implementation/CGdtfFixture.cpp | 14 ++++++++++++++ src/Implementation/CGdtfFixture.h | 3 +++ 4 files changed, 26 insertions(+) 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..d2bd5a68 100644 --- a/src/GDTFManager.h +++ b/src/GDTFManager.h @@ -2754,6 +2754,10 @@ namespace SceneData private: //------------------------------------------------ + // Parameters for the GdtfDataFile + TXString gdtfFileVersion = XML_GDTF_CurrentVersion; + + //------------------------------------------------ // Parameters for a GdtfFixture TXString fName; TXString fShortName; @@ -2820,6 +2824,9 @@ namespace SceneData public: //---------------------------------------------------------------------------------------------------------------------------------------------------------------- // Getter + const TXString& GetGdtfFileVersion() const { return gdtfFileVersion; } + const TXString& GetCurrentGdtfVersion() const { return XML_GDTF_CurrentVersion; } + 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(); From 6a7fb9e93040b9a7cc0c5bfd17827cb583d8394a Mon Sep 17 00:00:00 2001 From: Jordan Walters Date: Wed, 3 Sep 2025 09:43:22 +0100 Subject: [PATCH 2/3] Forgot to add accessors to interface class. --- src/Include/IMediaRessourceVectorInterface.h | 3 +++ 1 file changed, 3 insertions(+) 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; From 39e5912fb763b3d4633834b37cc96215aae9bb0d Mon Sep 17 00:00:00 2001 From: Jordan Walters Date: Wed, 3 Sep 2025 10:33:32 +0100 Subject: [PATCH 3/3] Fix for accessor getting most up-to-date GDTF Data Version --- src/GDTFManager.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/GDTFManager.h b/src/GDTFManager.h index d2bd5a68..7c18a2b0 100644 --- a/src/GDTFManager.h +++ b/src/GDTFManager.h @@ -2756,6 +2756,7 @@ namespace SceneData //------------------------------------------------ // Parameters for the GdtfDataFile TXString gdtfFileVersion = XML_GDTF_CurrentVersion; + TXString gdtfLatestVersion = XML_GDTF_CurrentVersion; //------------------------------------------------ // Parameters for a GdtfFixture @@ -2825,7 +2826,7 @@ namespace SceneData //---------------------------------------------------------------------------------------------------------------------------------------------------------------- // Getter const TXString& GetGdtfFileVersion() const { return gdtfFileVersion; } - const TXString& GetCurrentGdtfVersion() const { return XML_GDTF_CurrentVersion; } + const TXString& GetCurrentGdtfVersion() const { return gdtfLatestVersion; } const TXString& GetName() const; const TXString& GetShortName() const;