diff --git a/include/OpenShotVersion.h.in b/include/OpenShotVersion.h.in index 89f4ed52..e15662b2 100644 --- a/include/OpenShotVersion.h.in +++ b/include/OpenShotVersion.h.in @@ -43,36 +43,28 @@ #define OPENSHOT_VERSION_SO @PROJECT_SO_VERSION@ /// Shared object version number. This increments any time the API and ABI changes (so old apps will no longer link) #include -using namespace std; namespace openshot { /// This struct holds version number information. Use the GetVersion() method to access the current version of libopenshot. struct OpenShotVersion { - int major; /// Major version number - int minor; /// Minor version number - int build; /// Build number - int so; /// Shared Object Number (incremented when API or ABI changes) + static const int Major = OPENSHOT_VERSION_MAJOR; /// Major version number + static const int Minor = OPENSHOT_VERSION_MINOR; /// Minor version number + static const int Build = OPENSHOT_VERSION_BUILD; /// Build number + static const int So = OPENSHOT_VERSION_SO; /// Shared Object Number (incremented when API or ABI changes) /// Get a string version of the version (i.e. "Major.Minor.Build") - string ToString() { - stringstream version_string; - version_string << major << "." << minor << "." << build; + inline static const std::string ToString() { + std::stringstream version_string; + version_string << Major << "." << Minor << "." << Build; return version_string.str(); } }; + static const openshot::OpenShotVersion Version; + /// Get the current version number of libopenshot (major, minor, and build number) - static OpenShotVersion GetVersion() { - OpenShotVersion version; - - // Set version info - version.major = OPENSHOT_VERSION_MAJOR; - version.minor = OPENSHOT_VERSION_MINOR; - version.build = OPENSHOT_VERSION_BUILD; - version.so = OPENSHOT_VERSION_SO; - - return version; - } + openshot::OpenShotVersion GetVersion(); } -#endif + +#endif // OPENSHOT_VERSION_H \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 4045b7d0..ec6a532d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -216,6 +216,7 @@ SET ( OPENSHOT_SOURCE_FILES Frame.cpp FrameMapper.cpp KeyFrame.cpp + OpenShotVersion.cpp ZmqLogger.cpp PlayerBase.cpp Point.cpp diff --git a/src/OpenShotVersion.cpp b/src/OpenShotVersion.cpp new file mode 100644 index 00000000..1bc73c3a --- /dev/null +++ b/src/OpenShotVersion.cpp @@ -0,0 +1,38 @@ +/** + * @file + * @brief Source file for GetVersion function + * @author Jonathan Thomas + * @author FeRD (Frank Dana) + * + * @ref License + */ + +/* LICENSE + * + * Copyright (c) 2008-2019 OpenShot Studios, LLC + * . This file is part of + * OpenShot Library (libopenshot), an open-source project dedicated to + * delivering high quality video editing and animation solutions to the + * world. For more information visit . + * + * OpenShot Library (libopenshot) is free software: you can redistribute it + * and/or modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * OpenShot Library (libopenshot) is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with OpenShot Library. If not, see . + */ + +#include "OpenShotVersion.h" + +namespace openshot { + OpenShotVersion GetVersion() { + return openshot::Version; + } +} \ No newline at end of file diff --git a/src/bindings/python/openshot.i b/src/bindings/python/openshot.i index 732a1313..a19919c1 100644 --- a/src/bindings/python/openshot.i +++ b/src/bindings/python/openshot.i @@ -123,6 +123,13 @@ } } +%extend openshot::OpenShotVersion { + // Give the struct a string representation + const std::string __str__() { + return std::string(OPENSHOT_VERSION_FULL); + } +} + %include "OpenShotVersion.h" %include "../../../include/ReaderBase.h" %include "../../../include/WriterBase.h"