115 lines
2.9 KiB
C++
115 lines
2.9 KiB
C++
#include "webradiosettings.h"
|
|
|
|
#include "zeiterfassungsettings.h"
|
|
|
|
const QString WebRadioSettings::m_urls("WebRadioPlugin/urls");
|
|
const QString WebRadioSettings::m_lastUrl("WebRadioPlugin/lastUrl");
|
|
const QString WebRadioSettings::m_volume("WebRadioPlugin/volume");
|
|
const QStringList WebRadioSettings::m_defaultUrls {
|
|
QStringLiteral("http://stream.drumandbass.fm:9002"),
|
|
QStringLiteral("http://stream.trap.fm:6002"),
|
|
QStringLiteral("http://stream.dubbase.fm:7002"),
|
|
QStringLiteral("http://lw1.mp3.tb-group.fm/hb.mp3"),
|
|
QStringLiteral("http://lw1.mp3.tb-group.fm/tb.mp3"),
|
|
QStringLiteral("http://lw1.mp3.tb-group.fm/tt.mp3"),
|
|
QStringLiteral("http://lw1.mp3.tb-group.fm/ht.mp3"),
|
|
QStringLiteral("http://lw1.mp3.tb-group.fm/trb.mp3"),
|
|
QStringLiteral("http://lw1.mp3.tb-group.fm/ct.mp3"),
|
|
QStringLiteral("http://lw1.mp3.tb-group.fm/clt.mp3"),
|
|
QStringLiteral("https://live.helsinki.at:8088/live160.ogg")
|
|
};
|
|
const int WebRadioSettings::m_defaultVolume(100);
|
|
|
|
WebRadioSettings::WebRadioSettings(ZeiterfassungSettings &settings, QObject *parent) :
|
|
QObject(parent),
|
|
m_settings(settings)
|
|
{
|
|
}
|
|
|
|
QStringList WebRadioSettings::urls() const
|
|
{
|
|
return m_settings.value(m_urls, m_defaultUrls).toStringList();
|
|
}
|
|
|
|
bool WebRadioSettings::setUrls(const QStringList &urls)
|
|
{
|
|
if(this->urls() == urls)
|
|
return true;
|
|
|
|
if(urls == m_defaultUrls)
|
|
m_settings.remove(m_urls);
|
|
else
|
|
m_settings.setValue(m_urls, urls);
|
|
|
|
m_settings.sync();
|
|
|
|
const auto success = m_settings.status() == QSettings::NoError;
|
|
if(success)
|
|
Q_EMIT urlsChanged(urls);
|
|
else
|
|
{
|
|
Q_EMIT m_settings.saveErrorOccured();
|
|
Q_EMIT saveErrorOccured();
|
|
}
|
|
|
|
return success;
|
|
}
|
|
|
|
QString WebRadioSettings::lastUrl() const
|
|
{
|
|
return m_settings.value(m_lastUrl).toString();
|
|
}
|
|
|
|
bool WebRadioSettings::setLastUrl(const QString &lastUrl)
|
|
{
|
|
if(this->lastUrl() == lastUrl)
|
|
return true;
|
|
|
|
if(lastUrl.isNull())
|
|
m_settings.remove(m_lastUrl);
|
|
else
|
|
m_settings.setValue(m_lastUrl, lastUrl);
|
|
|
|
m_settings.sync();
|
|
|
|
const auto success = m_settings.status() == QSettings::NoError;
|
|
if(success)
|
|
Q_EMIT lastUrlChanged(lastUrl);
|
|
else
|
|
{
|
|
Q_EMIT m_settings.saveErrorOccured();
|
|
Q_EMIT saveErrorOccured();
|
|
}
|
|
|
|
return success;
|
|
}
|
|
|
|
int WebRadioSettings::volume() const
|
|
{
|
|
return m_settings.value(m_volume, m_defaultVolume).toInt();
|
|
}
|
|
|
|
bool WebRadioSettings::setVolume(int volume)
|
|
{
|
|
if(this->volume() == volume)
|
|
return true;
|
|
|
|
if(volume == m_defaultVolume)
|
|
m_settings.remove(m_volume);
|
|
else
|
|
m_settings.setValue(m_volume, volume);
|
|
|
|
m_settings.sync();
|
|
|
|
const auto success = m_settings.status() == QSettings::NoError;
|
|
if(success)
|
|
Q_EMIT volumeChanged(volume);
|
|
else
|
|
{
|
|
Q_EMIT m_settings.saveErrorOccured();
|
|
Q_EMIT saveErrorOccured();
|
|
}
|
|
|
|
return success;
|
|
}
|