add setting : create end to end meetings and group calls
This commit is contained in:
parent
1c23fc44ff
commit
21ee3a5414
5 changed files with 75 additions and 18 deletions
|
|
@ -68,6 +68,7 @@ SettingsCore::SettingsCore(QObject *parent) : QObject(parent) {
|
||||||
LinphoneEnums::toVariant(LinphoneEnums::fromLinphone(settingsModel->getDefaultMediaEncryption()));
|
LinphoneEnums::toVariant(LinphoneEnums::fromLinphone(settingsModel->getDefaultMediaEncryption()));
|
||||||
|
|
||||||
mMediaEncryptionMandatory = settingsModel->getMediaEncryptionMandatory();
|
mMediaEncryptionMandatory = settingsModel->getMediaEncryptionMandatory();
|
||||||
|
mCreateEndToEndEncryptedMeetingsAndGroupCalls = settingsModel->getCreateEndToEndEncryptedMeetingsAndGroupCalls();
|
||||||
|
|
||||||
mCaptureGain = settingsModel->getCaptureGain();
|
mCaptureGain = settingsModel->getCaptureGain();
|
||||||
mPlaybackGain = settingsModel->getPlaybackGain();
|
mPlaybackGain = settingsModel->getPlaybackGain();
|
||||||
|
|
@ -129,6 +130,7 @@ SettingsCore::SettingsCore(const SettingsCore &settingsCore) {
|
||||||
mMediaEncryptions = settingsCore.mMediaEncryptions;
|
mMediaEncryptions = settingsCore.mMediaEncryptions;
|
||||||
mMediaEncryption = settingsCore.mMediaEncryption;
|
mMediaEncryption = settingsCore.mMediaEncryption;
|
||||||
mMediaEncryptionMandatory = settingsCore.mMediaEncryptionMandatory;
|
mMediaEncryptionMandatory = settingsCore.mMediaEncryptionMandatory;
|
||||||
|
mCreateEndToEndEncryptedMeetingsAndGroupCalls = settingsCore.mCreateEndToEndEncryptedMeetingsAndGroupCalls;
|
||||||
|
|
||||||
// Call
|
// Call
|
||||||
mVideoEnabled = settingsCore.mVideoEnabled;
|
mVideoEnabled = settingsCore.mVideoEnabled;
|
||||||
|
|
@ -323,6 +325,13 @@ void SettingsCore::setSelf(QSharedPointer<SettingsCore> me) {
|
||||||
mSettingsModelConnection->invokeToCore([this, mandatory]() { setMediaEncryptionMandatory(mandatory); });
|
mSettingsModelConnection->invokeToCore([this, mandatory]() { setMediaEncryptionMandatory(mandatory); });
|
||||||
});
|
});
|
||||||
|
|
||||||
|
mSettingsModelConnection->makeConnectToModel(&SettingsModel::createEndToEndEncryptedMeetingsAndGroupCallsChanged,
|
||||||
|
[this](bool endtoend) {
|
||||||
|
mSettingsModelConnection->invokeToCore([this, endtoend]() {
|
||||||
|
setCreateEndToEndEncryptedMeetingsAndGroupCalls(endtoend);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
mSettingsModelConnection->makeConnectToModel(
|
mSettingsModelConnection->makeConnectToModel(
|
||||||
&SettingsModel::videoDevicesChanged, [this](const QStringList devices) {
|
&SettingsModel::videoDevicesChanged, [this](const QStringList devices) {
|
||||||
mSettingsModelConnection->invokeToCore([this, devices]() { setVideoDevices(devices); });
|
mSettingsModelConnection->invokeToCore([this, devices]() { setVideoDevices(devices); });
|
||||||
|
|
@ -413,16 +422,16 @@ void SettingsCore::setSelf(QSharedPointer<SettingsCore> me) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
coreModelConnection->makeConnectToModel(&CoreModel::defaultAccountChanged, [this] (const std::shared_ptr<linphone::Core> &core,
|
coreModelConnection->makeConnectToModel(
|
||||||
const std::shared_ptr<linphone::Account> &account) {
|
&CoreModel::defaultAccountChanged,
|
||||||
QString accountDomain;
|
[this](const std::shared_ptr<linphone::Core> &core, const std::shared_ptr<linphone::Account> &account) {
|
||||||
if (account) {
|
QString accountDomain;
|
||||||
accountDomain = Utils::coreStringToAppString(account->getParams()->getDomain());
|
if (account) {
|
||||||
}
|
accountDomain = Utils::coreStringToAppString(account->getParams()->getDomain());
|
||||||
mSettingsModelConnection->invokeToCore([this, accountDomain]() {
|
}
|
||||||
setShowAccountDevices(accountDomain == mDefaultDomain);
|
mSettingsModelConnection->invokeToCore(
|
||||||
});
|
[this, accountDomain]() { setShowAccountDevices(accountDomain == mDefaultDomain); });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void SettingsCore::reset(const SettingsCore &settingsCore) {
|
void SettingsCore::reset(const SettingsCore &settingsCore) {
|
||||||
|
|
@ -448,6 +457,7 @@ void SettingsCore::reset(const SettingsCore &settingsCore) {
|
||||||
setMediaEncryption(settingsCore.mMediaEncryption);
|
setMediaEncryption(settingsCore.mMediaEncryption);
|
||||||
|
|
||||||
setMediaEncryptionMandatory(settingsCore.mMediaEncryptionMandatory);
|
setMediaEncryptionMandatory(settingsCore.mMediaEncryptionMandatory);
|
||||||
|
setCreateEndToEndEncryptedMeetingsAndGroupCalls(settingsCore.mCreateEndToEndEncryptedMeetingsAndGroupCalls);
|
||||||
|
|
||||||
setCaptureGain(settingsCore.mCaptureGain);
|
setCaptureGain(settingsCore.mCaptureGain);
|
||||||
setPlaybackGain(settingsCore.mPlaybackGain);
|
setPlaybackGain(settingsCore.mPlaybackGain);
|
||||||
|
|
@ -592,6 +602,18 @@ void SettingsCore::setMediaEncryptionMandatory(bool mandatory) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SettingsCore::getCreateEndToEndEncryptedMeetingsAndGroupCalls() const {
|
||||||
|
return mCreateEndToEndEncryptedMeetingsAndGroupCalls;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SettingsCore::setCreateEndToEndEncryptedMeetingsAndGroupCalls(bool endtoend) {
|
||||||
|
if (mCreateEndToEndEncryptedMeetingsAndGroupCalls != endtoend) {
|
||||||
|
mCreateEndToEndEncryptedMeetingsAndGroupCalls = endtoend;
|
||||||
|
emit createEndToEndEncryptedMeetingsAndGroupCallsChanged(endtoend);
|
||||||
|
setIsSaved(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool SettingsCore::isSaved() const {
|
bool SettingsCore::isSaved() const {
|
||||||
return mIsSaved;
|
return mIsSaved;
|
||||||
}
|
}
|
||||||
|
|
@ -911,6 +933,7 @@ void SettingsCore::writeIntoModel(std::shared_ptr<SettingsModel> model) const {
|
||||||
LinphoneEnums::toLinphone(LinphoneEnums::MediaEncryption(mMediaEncryption["id"].toInt())));
|
LinphoneEnums::toLinphone(LinphoneEnums::MediaEncryption(mMediaEncryption["id"].toInt())));
|
||||||
|
|
||||||
model->setMediaEncryptionMandatory(mMediaEncryptionMandatory);
|
model->setMediaEncryptionMandatory(mMediaEncryptionMandatory);
|
||||||
|
model->setCreateEndToEndEncryptedMeetingsAndGroupCalls(mCreateEndToEndEncryptedMeetingsAndGroupCalls);
|
||||||
|
|
||||||
model->setCaptureGain(mCaptureGain);
|
model->setCaptureGain(mCaptureGain);
|
||||||
model->setPlaybackGain(mPlaybackGain);
|
model->setPlaybackGain(mPlaybackGain);
|
||||||
|
|
@ -973,6 +996,7 @@ void SettingsCore::writeFromModel(const std::shared_ptr<SettingsModel> &model) {
|
||||||
mMediaEncryption = LinphoneEnums::toVariant(LinphoneEnums::fromLinphone(model->getDefaultMediaEncryption()));
|
mMediaEncryption = LinphoneEnums::toVariant(LinphoneEnums::fromLinphone(model->getDefaultMediaEncryption()));
|
||||||
|
|
||||||
mMediaEncryptionMandatory = model->getMediaEncryptionMandatory();
|
mMediaEncryptionMandatory = model->getMediaEncryptionMandatory();
|
||||||
|
mCreateEndToEndEncryptedMeetingsAndGroupCalls = model->getCreateEndToEndEncryptedMeetingsAndGroupCalls();
|
||||||
|
|
||||||
mCaptureGain = model->getCaptureGain();
|
mCaptureGain = model->getCaptureGain();
|
||||||
mPlaybackGain = model->getPlaybackGain();
|
mPlaybackGain = model->getPlaybackGain();
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,9 @@ public:
|
||||||
QVariantMap mediaEncryption READ getMediaEncryption WRITE setMediaEncryption NOTIFY mediaEncryptionChanged)
|
QVariantMap mediaEncryption READ getMediaEncryption WRITE setMediaEncryption NOTIFY mediaEncryptionChanged)
|
||||||
Q_PROPERTY(bool mediaEncryptionMandatory READ isMediaEncryptionMandatory WRITE setMediaEncryptionMandatory NOTIFY
|
Q_PROPERTY(bool mediaEncryptionMandatory READ isMediaEncryptionMandatory WRITE setMediaEncryptionMandatory NOTIFY
|
||||||
mediaEncryptionMandatoryChanged)
|
mediaEncryptionMandatoryChanged)
|
||||||
|
Q_PROPERTY(
|
||||||
|
bool createEndToEndEncryptedMeetingsAndGroupCalls READ getCreateEndToEndEncryptedMeetingsAndGroupCalls WRITE
|
||||||
|
setCreateEndToEndEncryptedMeetingsAndGroupCalls NOTIFY createEndToEndEncryptedMeetingsAndGroupCallsChanged)
|
||||||
|
|
||||||
Q_PROPERTY(QStringList videoDevices READ getVideoDevices NOTIFY videoDevicesChanged)
|
Q_PROPERTY(QStringList videoDevices READ getVideoDevices NOTIFY videoDevicesChanged)
|
||||||
Q_PROPERTY(QString videoDevice READ getVideoDevice WRITE setVideoDevice NOTIFY videoDeviceChanged)
|
Q_PROPERTY(QString videoDevice READ getVideoDevice WRITE setVideoDevice NOTIFY videoDeviceChanged)
|
||||||
|
|
@ -80,7 +83,8 @@ public:
|
||||||
Q_PROPERTY(bool dnd READ dndEnabled WRITE lEnableDnd NOTIFY dndChanged)
|
Q_PROPERTY(bool dnd READ dndEnabled WRITE lEnableDnd NOTIFY dndChanged)
|
||||||
Q_PROPERTY(bool isSaved READ isSaved WRITE setIsSaved NOTIFY isSavedChanged)
|
Q_PROPERTY(bool isSaved READ isSaved WRITE setIsSaved NOTIFY isSavedChanged)
|
||||||
|
|
||||||
Q_PROPERTY(bool showAccountDevices READ showAccountDevices WRITE setShowAccountDevices NOTIFY showAccountDevicesChanged)
|
Q_PROPERTY(
|
||||||
|
bool showAccountDevices READ showAccountDevices WRITE setShowAccountDevices NOTIFY showAccountDevicesChanged)
|
||||||
|
|
||||||
static QSharedPointer<SettingsCore> create();
|
static QSharedPointer<SettingsCore> create();
|
||||||
SettingsCore(QObject *parent = Q_NULLPTR);
|
SettingsCore(QObject *parent = Q_NULLPTR);
|
||||||
|
|
@ -154,6 +158,8 @@ public:
|
||||||
void setMediaEncryption(QVariantMap encryption);
|
void setMediaEncryption(QVariantMap encryption);
|
||||||
bool isMediaEncryptionMandatory() const;
|
bool isMediaEncryptionMandatory() const;
|
||||||
void setMediaEncryptionMandatory(bool mandatory);
|
void setMediaEncryptionMandatory(bool mandatory);
|
||||||
|
bool getCreateEndToEndEncryptedMeetingsAndGroupCalls() const;
|
||||||
|
void setCreateEndToEndEncryptedMeetingsAndGroupCalls(bool endtoend);
|
||||||
bool isSaved() const;
|
bool isSaved() const;
|
||||||
void setIsSaved(bool saved);
|
void setIsSaved(bool saved);
|
||||||
|
|
||||||
|
|
@ -259,6 +265,8 @@ signals:
|
||||||
|
|
||||||
void mediaEncryptionMandatoryChanged(bool mandatory);
|
void mediaEncryptionMandatoryChanged(bool mandatory);
|
||||||
|
|
||||||
|
void createEndToEndEncryptedMeetingsAndGroupCallsChanged(bool endtoend);
|
||||||
|
|
||||||
void isSavedChanged();
|
void isSavedChanged();
|
||||||
|
|
||||||
void lSetPlaybackDevice(QVariantMap device);
|
void lSetPlaybackDevice(QVariantMap device);
|
||||||
|
|
@ -305,6 +313,7 @@ private:
|
||||||
QVariantList mMediaEncryptions;
|
QVariantList mMediaEncryptions;
|
||||||
QVariantMap mMediaEncryption;
|
QVariantMap mMediaEncryption;
|
||||||
bool mMediaEncryptionMandatory;
|
bool mMediaEncryptionMandatory;
|
||||||
|
bool mCreateEndToEndEncryptedMeetingsAndGroupCalls;
|
||||||
|
|
||||||
// Call
|
// Call
|
||||||
bool mVideoEnabled;
|
bool mVideoEnabled;
|
||||||
|
|
@ -345,7 +354,7 @@ private:
|
||||||
QSettings mAppSettings;
|
QSettings mAppSettings;
|
||||||
QSharedPointer<SafeConnection<SettingsCore, SettingsModel>> mSettingsModelConnection;
|
QSharedPointer<SafeConnection<SettingsCore, SettingsModel>> mSettingsModelConnection;
|
||||||
|
|
||||||
//Account
|
// Account
|
||||||
QString mDefaultDomain;
|
QString mDefaultDomain;
|
||||||
bool mShowAccountDevices = false;
|
bool mShowAccountDevices = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -63,11 +63,12 @@ SettingsModel::SettingsModel() {
|
||||||
notifyConfigReady();
|
notifyConfigReady();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
QObject::connect(CoreModel::getInstance().get(), &CoreModel::defaultAccountChanged, this,
|
QObject::connect(
|
||||||
[this](const std::shared_ptr<linphone::Core> &core, const std::shared_ptr<linphone::Account> account) {
|
CoreModel::getInstance().get(), &CoreModel::defaultAccountChanged, this,
|
||||||
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
[this](const std::shared_ptr<linphone::Core> &core, const std::shared_ptr<linphone::Account> account) {
|
||||||
setDisableMeetingsFeature(account && !account->getParams()->getAudioVideoConferenceFactoryAddress());
|
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
||||||
});
|
setDisableMeetingsFeature(account && !account->getParams()->getAudioVideoConferenceFactoryAddress());
|
||||||
|
});
|
||||||
auto defaultAccount = core->getDefaultAccount();
|
auto defaultAccount = core->getDefaultAccount();
|
||||||
setDisableMeetingsFeature(defaultAccount && !defaultAccount->getParams()->getAudioVideoConferenceFactoryAddress());
|
setDisableMeetingsFeature(defaultAccount && !defaultAccount->getParams()->getAudioVideoConferenceFactoryAddress());
|
||||||
// Media cards must not be used twice (capture card + call) else we will get latencies issues and bad echo
|
// Media cards must not be used twice (capture card + call) else we will get latencies issues and bad echo
|
||||||
|
|
@ -350,6 +351,17 @@ void SettingsModel::setMediaEncryptionMandatory(bool mandatory) {
|
||||||
emit mediaEncryptionMandatoryChanged();
|
emit mediaEncryptionMandatoryChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SettingsModel::getCreateEndToEndEncryptedMeetingsAndGroupCalls() const {
|
||||||
|
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
||||||
|
return !!mConfig->getBool(SettingsModel::AppSection, "create_e2e_encrypted_conferences", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SettingsModel::setCreateEndToEndEncryptedMeetingsAndGroupCalls(bool endtoend) {
|
||||||
|
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
||||||
|
mConfig->setBool(SettingsModel::AppSection, "create_e2e_encrypted_conferences", endtoend);
|
||||||
|
emit createEndToEndEncryptedMeetingsAndGroupCallsChanged(endtoend);
|
||||||
|
}
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
QVariantMap SettingsModel::getPlaybackDevice() const {
|
QVariantMap SettingsModel::getPlaybackDevice() const {
|
||||||
|
|
@ -690,7 +702,8 @@ void SettingsModel::setShortcuts(QVariantList data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
QString SettingsModel::getDefaultDomain() const {
|
QString SettingsModel::getDefaultDomain() const {
|
||||||
return Utils::coreStringToAppString(mConfig->getString(SettingsModel::AppSection, "default_domain", "sip.linphone.org"));
|
return Utils::coreStringToAppString(
|
||||||
|
mConfig->getString(SettingsModel::AppSection, "default_domain", "sip.linphone.org"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// clang-format off
|
// clang-format off
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,9 @@ public:
|
||||||
bool getMediaEncryptionMandatory() const;
|
bool getMediaEncryptionMandatory() const;
|
||||||
void setMediaEncryptionMandatory(bool mandatory);
|
void setMediaEncryptionMandatory(bool mandatory);
|
||||||
|
|
||||||
|
bool getCreateEndToEndEncryptedMeetingsAndGroupCalls() const;
|
||||||
|
void setCreateEndToEndEncryptedMeetingsAndGroupCalls(bool endtoend);
|
||||||
|
|
||||||
QVariantMap getRingerDevice() const;
|
QVariantMap getRingerDevice() const;
|
||||||
void setRingerDevice(QVariantMap device);
|
void setRingerDevice(QVariantMap device);
|
||||||
|
|
||||||
|
|
@ -209,6 +212,7 @@ signals:
|
||||||
void conferenceLayoutChanged();
|
void conferenceLayoutChanged();
|
||||||
void mediaEncryptionChanged();
|
void mediaEncryptionChanged();
|
||||||
void mediaEncryptionMandatoryChanged();
|
void mediaEncryptionMandatoryChanged();
|
||||||
|
void createEndToEndEncryptedMeetingsAndGroupCallsChanged(bool endtoend);
|
||||||
|
|
||||||
void echoCancellationEnabledChanged(bool enabled);
|
void echoCancellationEnabledChanged(bool enabled);
|
||||||
void automaticallyRecordCallsEnabledChanged(bool enabled);
|
void automaticallyRecordCallsEnabledChanged(bool enabled);
|
||||||
|
|
|
||||||
|
|
@ -133,6 +133,13 @@ AbstractSettingsLayout {
|
||||||
propertyName: "mediaEncryptionMandatory"
|
propertyName: "mediaEncryptionMandatory"
|
||||||
propertyOwner: SettingsCpp
|
propertyOwner: SettingsCpp
|
||||||
}
|
}
|
||||||
|
SwitchSetting {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
//: Create end to end encrypted meetings and group calls
|
||||||
|
titleText: qsTr("settings_advanced_create_endtoend_encrypted_meetings_title")
|
||||||
|
propertyName: "createEndToEndEncryptedMeetingsAndGroupCalls"
|
||||||
|
propertyOwner: SettingsCpp
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue