// Copyright (c) 2012-2017 VideoStitch SAS // Copyright (c) 2018 stitchEm #pragma once #include <QDateTime> #include "libvideostitch-gui/common.hpp" namespace VideoStitch { namespace Helper { // Channels, in the order of stability enum class Channel { Unknown, Alpha, Beta, ReleaseCandidate, Stable }; QString getStringFromChannel(Channel channel); Channel getChannelFromString(const QString& str); /** * @brief The AppsVersion represents a version number of VS * example of string = v1.2.3.beta4 * majorVersion = 1 * minorVersion = 2 * patchVersion = 3 * channel = beta (optional) * channelVersion = 4 (optional) */ class VS_GUI_EXPORT AppsVersion { public: explicit AppsVersion(const QString& stringVersion = QString()); bool parseVersionString(const QString& stringVersion); bool isStableVersion() const; QString toString() const; bool operator==(const AppsVersion& other) const; bool operator!=(const AppsVersion& other) const; bool operator<(const AppsVersion& other) const; private: int majorVersion; int minorVersion; int patchVersion; Channel channel; int channelVersion; }; /** * @brief The AppsVersion represents a version number of VS * example of string = VahanaVR-v1.1.5.beta3-16246-g42c3f6ce8a-vahanavr12x.2011-10-05 * version = v1.1.5.beta3 * commitCount = 16246 (optional) * commitHash = g42c3f6ce8a (optional) * branchName = vahanavr12x * commidDate = 05-10-2011 */ class VS_GUI_EXPORT AppsInfo { public: explicit AppsInfo(const QString& stringAppInfo = QString()); const AppsVersion& getVersion() const { return version; } QDateTime getTimeStamp() const { return commitTimeStamp; } bool isDevVersion() const; QString toString() const; private: QString appName; AppsVersion version; int commitCount; QString commitHash; QString branchName; QDateTime commitTimeStamp; }; } // namespace Helper } // namespace VideoStitch