Files
qt5-legatus-legacy/Lts/Plugins/AudioVideoManagement/Shared/plugin_settings.cpp
T
2026-08-13 18:33:10 +02:00

94 lines
2.3 KiB
C++
Executable File

/**
* @RDE_HEADER@
* PluginSettings
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Fröbel, NLSE, 2018-04-25
*/
#include "plugin_settings.h"
#include <nglsettings/nglsettings_settings.h>
#include <nglsettings/nglsettings_connections.h>
#include <ngltools/ngltools_filesystem.h>
#include <QtGlobal>
#include <QSettings>
namespace
{
const QString &AVA_SECTION()
{
static const QString key = QStringLiteral("AVS_WORKSTATION");
return key;
}
const QString &VD_SECTION()
{
static const QString key = QStringLiteral("AVS_WORKSTATION_VD");
return key;
}
//constexpr std::chrono::milliseconds DEFAULT_TIMEOUT(3000);
constexpr std::chrono::milliseconds DEFAULT_TIMEOUT(10000);
constexpr std::chrono::milliseconds DEFAULT_TIMEOUT_VD(60000); // export may take some time
} // anonymous namespace
namespace AudioVideoManagement
{
PluginSettings *PluginSettings::s_instance = nullptr;
PluginSettings::PluginSettings()
: PluginSettings(NGL::findProjectConfigFile())
{
Q_ASSERT(!s_instance);
s_instance = this;
}
PluginSettings::PluginSettings(const QString &pathToConfigFile)
: m_settings(new NGL::Settings(pathToConfigFile))
{
NGL::Connections::setIniFile(pathToConfigFile);
}
PluginSettings::~PluginSettings()
{
s_instance = nullptr;
}
PluginSettings *PluginSettings::instance()
{
Q_ASSERT(s_instance);
return s_instance;
}
bool PluginSettings::avaKeepAliveEnabled() const
{
static const QString key = QStringLiteral("%1/KeepAlive").arg(AVA_SECTION());
return m_settings->settings()->value(key, true).toBool();
}
std::chrono::milliseconds PluginSettings::avaTimeout() const
{
static const QString key = QStringLiteral("%1/Timeout").arg(AVA_SECTION());
return std::chrono::milliseconds(m_settings->settings()->value(key, static_cast<unsigned>(DEFAULT_TIMEOUT.count())).toUInt());
}
bool PluginSettings::vdKeepAliveEnabled() const
{
static const QString key = QStringLiteral("%1/KeepAlive").arg(VD_SECTION());
return m_settings->settings()->value(key, true).toBool();
}
std::chrono::milliseconds PluginSettings::vdTimeout() const
{
static const QString key = QStringLiteral("%1/Timeout").arg(VD_SECTION());
return std::chrono::milliseconds(m_settings->settings()->value(key, static_cast<unsigned>(DEFAULT_TIMEOUT_VD.count())).toUInt());
}
} // namespace AudioVideoManagement