blob: 471b25f59cc6749871b7861070d8b0deaf457ac0 [file] [log] [blame]
/*
* Copyright (C) 2020 by Savoir-faire Linux
* Author: Yang Wang <yang.wang@savoirfairelinux.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "settingsadaptor.h"
#include "api/newdevicemodel.h"
SettingsAdaptor::SettingsAdaptor(QObject *parent)
: QObject(parent)
{}
///Singleton
SettingsAdaptor &
SettingsAdaptor::instance()
{
static auto instance = new SettingsAdaptor;
return *instance;
}
QString
SettingsAdaptor::getDir_Document()
{
return QDir::toNativeSeparators(
QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation));
}
QString
SettingsAdaptor::getDir_Download()
{
QString downloadPath = QDir::toNativeSeparators(LRCInstance::dataTransferModel().downloadDirectory);
if (downloadPath.isEmpty()) {
downloadPath = lrc::api::DataTransferModel::createDefaultDirectory();
setDownloadPath(downloadPath);
LRCInstance::dataTransferModel().downloadDirectory = downloadPath;
}
#ifdef Q_OS_WIN
int pos = downloadPath.lastIndexOf(QChar('\\'));
#else
int pos = downloadPath.lastIndexOf(QChar('/'));
#endif
if (pos == downloadPath.length() - 1)
downloadPath.truncate(pos);
return downloadPath;
}
bool
SettingsAdaptor::getSettingsValue_CloseOrMinimized()
{
QSettings settings("jami.net", "Jami");
return settings.value(SettingsKey::closeOrMinimized).toBool();
}
bool
SettingsAdaptor::getSettingsValue_EnableNotifications()
{
QSettings settings("jami.net", "Jami");
return settings.value(SettingsKey::enableNotifications).toBool();
}
bool
SettingsAdaptor::getSettingsValue_AutoUpdate()
{
QSettings settings("jami.net", "Jami");
return settings.value(SettingsKey::autoUpdate).toBool();
}
void
SettingsAdaptor::setClosedOrMin(bool state)
{
QSettings settings("jami.net", "Jami");
settings.setValue(SettingsKey::closeOrMinimized, state);
}
void
SettingsAdaptor::setNotifications(bool state)
{
QSettings settings("jami.net", "Jami");
settings.setValue(SettingsKey::enableNotifications, state);
}
void
SettingsAdaptor::setUpdateAutomatic(bool state)
{
#ifdef Q_OS_WIN
QSettings settings("jami.net", "Jami");
settings.setValue(SettingsKey::autoUpdate, state);
#endif
}
void
SettingsAdaptor::setRunOnStartUp(bool state)
{
if (Utils::CheckStartupLink(L"Jami")) {
if (!state) {
Utils::DeleteStartupLink(L"Jami");
}
} else if (state) {
Utils::CreateStartupLink(L"Jami");
}
}
void
SettingsAdaptor::setDownloadPath(QString dir)
{
QSettings settings("jami.net", "Jami");
settings.setValue(SettingsKey::downloadPath, dir);
LRCInstance::dataTransferModel().downloadDirectory = dir + "/";
}
lrc::api::video::ResRateList
SettingsAdaptor::get_ResRateList(lrc::api::video::Channel channel, QString device)
{
auto deviceCapabilities = get_DeviceCapabilities(device);
return deviceCapabilities[channel];
}
int
SettingsAdaptor::get_DeviceCapabilitiesSize(const QString &device)
{
return get_DeviceCapabilities(device).size();
}
QVector<QString>
SettingsAdaptor::getResolutions(const QString &device)
{
QVector<QString> resolutions;
auto currentSettings = LRCInstance::avModel().getDeviceSettings(device);
auto currentChannel = currentSettings.channel.isEmpty() ? "default" : currentSettings.channel;
auto channelCaps = get_ResRateList(currentChannel, device);
for (auto [resolution, frameRateList] : channelCaps) {
for (auto rate : frameRateList) {
resolutions.append(resolution);
}
}
return resolutions;
}
QVector<int>
SettingsAdaptor::getFrameRates(const QString &device)
{
QVector<int> rates;
auto currentSettings = LRCInstance::avModel().getDeviceSettings(device);
auto currentChannel = currentSettings.channel.isEmpty() ? "default" : currentSettings.channel;
auto channelCaps = get_ResRateList(currentChannel, device);
for (auto [resolution, frameRateList] : channelCaps) {
for (auto rate : frameRateList) {
rates.append((int) rate);
}
}
return rates;
}
lrc::api::video::Capabilities
SettingsAdaptor::get_DeviceCapabilities(const QString &device)
{
return LRCInstance::avModel().getDeviceCapabilities(device);
}
QString
SettingsAdaptor::get_Video_Settings_Channel(const QString &deviceId)
{
auto settings = LRCInstance::avModel().getDeviceSettings(deviceId);
return (QString) settings.channel;
}
QString
SettingsAdaptor::get_Video_Settings_Name(const QString &deviceId)
{
auto settings = LRCInstance::avModel().getDeviceSettings(deviceId);
return (QString) settings.name;
}
QString
SettingsAdaptor::get_Video_Settings_Id(const QString &deviceId)
{
auto settings = LRCInstance::avModel().getDeviceSettings(deviceId);
return (QString) settings.id;
}
qreal
SettingsAdaptor::get_Video_Settings_Rate(const QString &deviceId)
{
auto settings = LRCInstance::avModel().getDeviceSettings(deviceId);
return (qreal) settings.rate;
}
QString
SettingsAdaptor::get_Video_Settings_Size(const QString &deviceId)
{
auto settings = LRCInstance::avModel().getDeviceSettings(deviceId);
return (QString) settings.size;
}
void
SettingsAdaptor::set_Video_Settings_Rate_And_Resolution(const QString &deviceId,
qreal rate,
const QString &resolution)
{
auto settings = LRCInstance::avModel().getDeviceSettings(deviceId);
settings.rate = rate;
settings.size = resolution;
LRCInstance::avModel().setDeviceSettings(settings);
}
const lrc::api::account::Info &
SettingsAdaptor::getCurrentAccountInfo()
{
return LRCInstance::getCurrentAccountInfo();
}
const Q_INVOKABLE lrc::api::profile::Info &
SettingsAdaptor::getCurrentAccount_Profile_Info()
{
return LRCInstance::getCurrentAccountInfo().profileInfo;
}
lrc::api::ContactModel *
SettingsAdaptor::getContactModel()
{
return getCurrentAccountInfo().contactModel.get();
}
lrc::api::NewDeviceModel *
SettingsAdaptor::getDeviceModel()
{
return getCurrentAccountInfo().deviceModel.get();
}
QString
SettingsAdaptor::get_CurrentAccountInfo_RegisteredName()
{
return LRCInstance::getCurrentAccountInfo().registeredName;
}
QString
SettingsAdaptor::get_CurrentAccountInfo_Id()
{
return LRCInstance::getCurrentAccountInfo().id;
}
bool
SettingsAdaptor::get_CurrentAccountInfo_Enabled()
{
return LRCInstance::getCurrentAccountInfo().enabled;
}
QString
SettingsAdaptor::getCurrentAccount_Profile_Info_Uri()
{
return getCurrentAccount_Profile_Info().uri;
}
QString
SettingsAdaptor::getCurrentAccount_Profile_Info_Alias()
{
return getCurrentAccount_Profile_Info().alias;
}
int
SettingsAdaptor::getCurrentAccount_Profile_Info_Type()
{
return (int) (getCurrentAccount_Profile_Info().type);
}
QString
SettingsAdaptor::getAccountBestName()
{
return Utils::bestNameForAccount(LRCInstance::getCurrentAccountInfo());
}
QString
SettingsAdaptor::getAvatarImage_Base64(int avatarSize)
{
auto &accountInfo = LRCInstance::getCurrentAccountInfo();
auto avatar = Utils::accountPhoto(accountInfo, {avatarSize, avatarSize});
return QString::fromLatin1(Utils::QImageToByteArray(avatar).toBase64().data());
}
bool
SettingsAdaptor::getIsDefaultAvatar()
{
auto &accountInfo = LRCInstance::getCurrentAccountInfo();
return accountInfo.profileInfo.avatar.isEmpty();
}
bool
SettingsAdaptor::setCurrAccAvatar(QString avatarImgBase64)
{
QImage avatarImg;
const bool ret = avatarImg.loadFromData(QByteArray::fromBase64(avatarImgBase64.toLatin1()));
if (!ret) {
qDebug() << "Current avatar loading from base64 fail";
return false;
} else {
LRCInstance::setCurrAccAvatar(QPixmap::fromImage(avatarImg));
}
return true;
}
void
SettingsAdaptor::clearCurrentAvatar()
{
LRCInstance::setCurrAccAvatar(QPixmap());
}
lrc::api::account::ConfProperties_t
SettingsAdaptor::getAccountConfig()
{
return LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
}
QString
SettingsAdaptor::getAccountConfig_Manageruri()
{
return getAccountConfig().managerUri;
}
QString
SettingsAdaptor::getAccountConfig_Username()
{
return getAccountConfig().username;
}
QString
SettingsAdaptor::getAccountConfig_Hostname()
{
return getAccountConfig().hostname;
}
QString
SettingsAdaptor::getAccountConfig_Password()
{
return getAccountConfig().password;
}
QString
SettingsAdaptor::getAccountConfig_ProxyServer()
{
return getAccountConfig().proxyServer;
}
bool
SettingsAdaptor::getAccountConfig_PeerDiscovery()
{
return getAccountConfig().peerDiscovery;
}
bool
SettingsAdaptor::getAccountConfig_DHT_PublicInCalls()
{
return getAccountConfig().DHT.PublicInCalls;
}
bool
SettingsAdaptor::getAccountConfig_AutoAnswer()
{
return getAccountConfig().autoAnswer;
}
QString
SettingsAdaptor::getAccountConfig_RingNS_Uri()
{
return getAccountConfig().RingNS.uri;
}
bool
SettingsAdaptor::getAccountConfig_ProxyEnabled()
{
return getAccountConfig().proxyEnabled;
}
QString
SettingsAdaptor::getAccountConfig_TLS_CertificateListFile()
{
return getAccountConfig().TLS.certificateListFile;
}
QString
SettingsAdaptor::getAccountConfig_TLS_CertificateFile()
{
return getAccountConfig().TLS.certificateFile;
}
QString
SettingsAdaptor::getAccountConfig_TLS_PrivateKeyFile()
{
return getAccountConfig().TLS.privateKeyFile;
}
bool
SettingsAdaptor::getAccountConfig_TLS_Enable()
{
return getAccountConfig().TLS.enable;
}
QString
SettingsAdaptor::getAccountConfig_TLS_Password()
{
return getAccountConfig().TLS.password;
}
bool
SettingsAdaptor::getAccountConfig_TLS_VerifyServer()
{
return getAccountConfig().TLS.verifyServer;
}
bool
SettingsAdaptor::getAccountConfig_TLS_VerifyClient()
{
return getAccountConfig().TLS.verifyClient;
}
bool
SettingsAdaptor::getAccountConfig_TLS_RequireClientCertificate()
{
return getAccountConfig().TLS.requireClientCertificate;
}
int
SettingsAdaptor::getAccountConfig_TLS_Method_inInt()
{
return (int) getAccountConfig().TLS.method;
}
QString
SettingsAdaptor::getAccountConfig_TLS_Servername()
{
return getAccountConfig().TLS.serverName;
}
int
SettingsAdaptor::getAccountConfig_TLS_NegotiationTimeoutSec()
{
return getAccountConfig().TLS.negotiationTimeoutSec;
}
bool
SettingsAdaptor::getAccountConfig_SRTP_Enabled()
{
return getAccountConfig().SRTP.enable;
}
int
SettingsAdaptor::getAccountConfig_SRTP_KeyExchange()
{
return (int) getAccountConfig().SRTP.keyExchange;
}
bool
SettingsAdaptor::getAccountConfig_SRTP_RtpFallback()
{
return getAccountConfig().SRTP.rtpFallback;
}
bool
SettingsAdaptor::getAccountConfig_UpnpEnabled()
{
return getAccountConfig().upnpEnabled;
}
bool
SettingsAdaptor::getAccountConfig_TURN_Enabled()
{
return getAccountConfig().TURN.enable;
}
QString
SettingsAdaptor::getAccountConfig_TURN_Server()
{
return getAccountConfig().TURN.server;
}
QString
SettingsAdaptor::getAccountConfig_TURN_Username()
{
return getAccountConfig().TURN.username;
}
QString
SettingsAdaptor::getAccountConfig_TURN_Password()
{
return getAccountConfig().TURN.password;
}
QString
SettingsAdaptor::getAccountConfig_TURN_Realm()
{
return getAccountConfig().TURN.realm;
}
bool
SettingsAdaptor::getAccountConfig_STUN_Enabled()
{
return getAccountConfig().STUN.enable;
}
QString
SettingsAdaptor::getAccountConfig_STUN_Server()
{
return getAccountConfig().STUN.server;
}
bool
SettingsAdaptor::getAccountConfig_Video_Enabled()
{
return getAccountConfig().Video.videoEnabled;
}
int
SettingsAdaptor::getAccountConfig_Video_VideoPortMin()
{
return getAccountConfig().Video.videoPortMin;
}
int
SettingsAdaptor::getAccountConfig_Video_VideoPortMax()
{
return getAccountConfig().Video.videoPortMax;
}
int
SettingsAdaptor::getAccountConfig_Audio_AudioPortMin()
{
return getAccountConfig().Audio.audioPortMin;
}
int
SettingsAdaptor::getAccountConfig_Audio_AudioPortMax()
{
return getAccountConfig().Audio.audioPortMax;
}
bool
SettingsAdaptor::getAccountConfig_Ringtone_RingtoneEnabled()
{
return getAccountConfig().Ringtone.ringtoneEnabled;
}
QString
SettingsAdaptor::getAccountConfig_Ringtone_RingtonePath()
{
return getAccountConfig().Ringtone.ringtonePath;
}
int
SettingsAdaptor::getAccountConfig_Registration_Expire()
{
return getAccountConfig().Registration.expire;
}
int
SettingsAdaptor::getAccountConfig_Localport()
{
return getAccountConfig().localPort;
}
bool
SettingsAdaptor::getAccountConfig_PublishedSameAsLocal()
{
return getAccountConfig().publishedSameAsLocal;
}
QString
SettingsAdaptor::getAccountConfig_PublishedAddress()
{
return getAccountConfig().publishedAddress;
}
int
SettingsAdaptor::getAccountConfig_PublishedPort()
{
return getAccountConfig().publishedPort;
}
QString
SettingsAdaptor::getAccountConfig_Mailbox()
{
return getAccountConfig().mailbox;
}
void
SettingsAdaptor::setAccountConfig_Username(QString input)
{
auto confProps = getAccountConfig();
confProps.username = input;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setAccountConfig_Hostname(QString input)
{
auto confProps = getAccountConfig();
confProps.hostname = input;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setAccountConfig_Password(QString input)
{
auto confProps = getAccountConfig();
confProps.password = input;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setAccountConfig_ProxyServer(QString input)
{
auto confProps = getAccountConfig();
confProps.proxyServer = input;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setAutoConnectOnLocalNetwork(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.peerDiscovery = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setCallsUntrusted(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.DHT.PublicInCalls = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setAutoAnswerCalls(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.autoAnswer = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setEnableRingtone(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.Ringtone.ringtoneEnabled = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setEnableProxy(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.proxyEnabled = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setUseUPnP(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.upnpEnabled = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setUseTURN(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TURN.enable = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setUseSTUN(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.STUN.enable = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setVideoState(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.Video.videoEnabled = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setUseSRTP(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.SRTP.enable = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setUseSDES(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.SRTP.keyExchange = state ? lrc::api::account::KeyExchangeProtocol::SDES
: lrc::api::account::KeyExchangeProtocol::NONE;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setUseRTPFallback(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.SRTP.rtpFallback = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setUseTLS(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TLS.enable = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setVerifyCertificatesServer(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TLS.verifyServer = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setVerifyCertificatesClient(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TLS.verifyClient = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setRequireCertificatesIncomingTLS(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TLS.requireClientCertificate = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setUseCustomAddressAndPort(bool state)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.publishedSameAsLocal = state;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setNameServer(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.RingNS.uri = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setProxyAddress(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.proxyServer = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setBootstrapAddress(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.hostname = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setTURNAddress(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TURN.server = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setTURNUsername(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TURN.username = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setTURNPassword(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TURN.password = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setTURNRealm(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TURN.realm = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::setSTUNAddress(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.STUN.server = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::lineEditVoiceMailDialCodeEditFinished(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.mailbox = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::outgoingTLSServerNameLineEditTextChanged(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TLS.serverName = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::lineEditSIPCertPasswordLineEditTextChanged(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TLS.password = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::lineEditSIPCustomAddressLineEditTextChanged(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.publishedAddress = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::customPortSIPSpinBoxValueChanged(int value)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.publishedPort = value;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::negotiationTimeoutSpinBoxValueChanged(int value)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TLS.negotiationTimeoutSec = value;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::registrationTimeoutSpinBoxValueChanged(int value)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.Registration.expire = value;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::networkInterfaceSpinBoxValueChanged(int value)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.localPort = value;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::audioRTPMinPortSpinBoxEditFinished(int value)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.Audio.audioPortMin = value;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::audioRTPMaxPortSpinBoxEditFinished(int value)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.Audio.audioPortMax = value;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::videoRTPMinPortSpinBoxEditFinished(int value)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.Video.videoPortMin = value;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::videoRTPMaxPortSpinBoxEditFinished(int value)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.Video.videoPortMax = value;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::tlsProtocolComboBoxIndexChanged(const int &index)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
if (static_cast<int>(confProps.TLS.method) != index) {
if (index == 0) {
confProps.TLS.method = lrc::api::account::TlsMethod::DEFAULT;
} else if (index == 1) {
confProps.TLS.method = lrc::api::account::TlsMethod::TLSv1;
} else if (index == 2) {
confProps.TLS.method = lrc::api::account::TlsMethod::TLSv1_1;
} else {
confProps.TLS.method = lrc::api::account::TlsMethod::TLSv1_2;
}
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
}
void
SettingsAdaptor::setDeviceName(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.deviceName = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::unbanContact(int index)
{
auto bannedContactList = LRCInstance::getCurrentAccountInfo().contactModel->getBannedContacts();
auto it = bannedContactList.begin();
std::advance(it, index);
auto contactInfo = LRCInstance::getCurrentAccountInfo().contactModel->getContact(*it);
LRCInstance::getCurrentAccountInfo().contactModel->addContact(contactInfo);
}
void
SettingsAdaptor::audioCodecsStateChange(unsigned int id, bool isToEnable)
{
auto audioCodecList = LRCInstance::getCurrentAccountInfo().codecModel->getAudioCodecs();
LRCInstance::getCurrentAccountInfo().codecModel->enable(id, isToEnable);
}
void
SettingsAdaptor::videoCodecsStateChange(unsigned int id, bool isToEnable)
{
auto videoCodecList = LRCInstance::getCurrentAccountInfo().codecModel->getVideoCodecs();
LRCInstance::getCurrentAccountInfo().codecModel->enable(id, isToEnable);
}
void
SettingsAdaptor::decreaseAudioCodecPriority(unsigned int id)
{
LRCInstance::getCurrentAccountInfo().codecModel->decreasePriority(id, false);
}
void
SettingsAdaptor::increaseAudioCodecPriority(unsigned int id)
{
LRCInstance::getCurrentAccountInfo().codecModel->increasePriority(id, false);
}
void
SettingsAdaptor::decreaseVideoCodecPriority(unsigned int id)
{
LRCInstance::getCurrentAccountInfo().codecModel->decreasePriority(id, true);
}
void
SettingsAdaptor::increaseVideoCodecPriority(unsigned int id)
{
LRCInstance::getCurrentAccountInfo().codecModel->increasePriority(id, true);
}
void
SettingsAdaptor::set_RingtonePath(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.Ringtone.ringtonePath = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::set_FileCACert(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TLS.certificateListFile = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::set_FileUserCert(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TLS.certificateFile = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}
void
SettingsAdaptor::set_FilePrivateKey(QString text)
{
auto confProps = LRCInstance::accountModel().getAccountConfig(LRCInstance::getCurrAccId());
confProps.TLS.privateKeyFile = text;
LRCInstance::accountModel().setAccountConfig(LRCInstance::getCurrAccId(), confProps);
}