From 24e2f9f906d898a70d28f8122be5a6a396da639f Mon Sep 17 00:00:00 2001 From: Julien Wadel Date: Mon, 2 May 2022 12:45:51 +0200 Subject: [PATCH] Fix transport selection. Fix conference creation and add feedback on status (light color next to start button) --- .../conferenceInfo/ConferenceInfoModel.cpp | 12 +++++++++-- .../conferenceInfo/ConferenceInfoModel.hpp | 3 ++- .../ConferenceScheduler.cpp | 5 +++-- .../ConferenceSchedulerListener.cpp | 4 +++- linphone-app/src/utils/LinphoneEnums.cpp | 9 ++++---- .../views/App/Main/Dialogs/NewConference.qml | 21 +++++++++++++++---- 6 files changed, 40 insertions(+), 14 deletions(-) diff --git a/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp b/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp index 0d5a11103..36f95c53c 100644 --- a/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp +++ b/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.cpp @@ -209,6 +209,7 @@ void ConferenceInfoModel::createConference(const int& securityLevel, const int& if( true || isScheduled()){ mConferenceScheduler = ConferenceScheduler::create(); connect(mConferenceScheduler.get(), &ConferenceScheduler::invitationsSent, this, &ConferenceInfoModel::onInvitationsSent); + connect(mConferenceScheduler.get(), &ConferenceScheduler::stateChanged, this, &ConferenceInfoModel::onStateChanged); mConferenceScheduler->getConferenceScheduler()->setInfo(mConferenceInfo); }else{ auto conferenceParameters = core->createConferenceParams(nullptr); @@ -236,7 +237,14 @@ void ConferenceInfoModel::createConference(const int& securityLevel, const int& //------------------------------------------------------------------------------------------------- - +void ConferenceInfoModel::onStateChanged(linphone::ConferenceSchedulerState state){ + qWarning() << "ConferenceInfoModel::onStateChanged: " << (int) state; + if( state == linphone::ConferenceSchedulerState::Ready) + emit conferenceCreated(); + else if( state == linphone::ConferenceSchedulerState::Error) + emit conferenceCreationFailed(); +} void ConferenceInfoModel::onInvitationsSent(const std::list> & failedInvitations) { + qWarning() << "ConferenceInfoModel::onInvitationsSent"; emit invitationsSent(); -} \ No newline at end of file +} diff --git a/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.hpp b/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.hpp index 842af2556..d6d9c1d8f 100644 --- a/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.hpp +++ b/linphone-app/src/components/conferenceInfo/ConferenceInfoModel.hpp @@ -79,7 +79,7 @@ public: // SCHEDULER - //virtual void onStateChanged(const std::shared_ptr & conferenceScheduler, linphone::ConferenceSchedulerState state) override; + virtual void onStateChanged(linphone::ConferenceSchedulerState state); virtual void onInvitationsSent(const std::list> & failedInvitations); @@ -94,6 +94,7 @@ signals: void isScheduledChanged(); void conferenceCreated(); + void conferenceCreationFailed(); void invitationsSent(); private: diff --git a/linphone-app/src/components/conferenceScheduler/ConferenceScheduler.cpp b/linphone-app/src/components/conferenceScheduler/ConferenceScheduler.cpp index c81419b50..480f473d8 100644 --- a/linphone-app/src/components/conferenceScheduler/ConferenceScheduler.cpp +++ b/linphone-app/src/components/conferenceScheduler/ConferenceScheduler.cpp @@ -52,8 +52,8 @@ std::shared_ptr ConferenceScheduler::getConferenc } void ConferenceScheduler::onStateChanged(linphone::ConferenceSchedulerState state) { - emit stateChanged(state); qWarning() << "ConferenceScheduler::onStateChanged : " << (int)state; + emit stateChanged(state); if( state == linphone::ConferenceSchedulerState::Ready) { std::shared_ptr params = CoreManager::getInstance()->getCore()->createDefaultChatRoomParams(); params->setBackend(linphone::ChatRoomBackend::Basic); @@ -62,5 +62,6 @@ void ConferenceScheduler::onStateChanged(linphone::ConferenceSchedulerState stat } void ConferenceScheduler::onInvitationsSent( const std::list> & failedInvitations) { + qWarning() << "ConferenceScheduler::onInvitationsSent"; emit invitationsSent(failedInvitations); -} \ No newline at end of file +} diff --git a/linphone-app/src/components/conferenceScheduler/ConferenceSchedulerListener.cpp b/linphone-app/src/components/conferenceScheduler/ConferenceSchedulerListener.cpp index 95264a569..8915e98cd 100644 --- a/linphone-app/src/components/conferenceScheduler/ConferenceSchedulerListener.cpp +++ b/linphone-app/src/components/conferenceScheduler/ConferenceSchedulerListener.cpp @@ -34,9 +34,11 @@ ConferenceSchedulerListener::~ConferenceSchedulerListener () { void ConferenceSchedulerListener::onStateChanged(const std::shared_ptr & conferenceScheduler, linphone::ConferenceSchedulerState state) { + qWarning() << "ConferenceSchedulerListener::onStateChanged" << (int) state; emit stateChanged(state); } void ConferenceSchedulerListener::onInvitationsSent(const std::shared_ptr & conferenceScheduler, const std::list> & failedInvitations) { + qWarning() << "ConferenceSchedulerListener::onInvitationsSent"; emit invitationsSent(failedInvitations); -} \ No newline at end of file +} diff --git a/linphone-app/src/utils/LinphoneEnums.cpp b/linphone-app/src/utils/LinphoneEnums.cpp index 40561e4a0..3d1f2d332 100644 --- a/linphone-app/src/utils/LinphoneEnums.cpp +++ b/linphone-app/src/utils/LinphoneEnums.cpp @@ -108,9 +108,10 @@ QString LinphoneEnums::toString(const LinphoneEnums::TransportType& type){ void LinphoneEnums::fromString(const QString& transportType, LinphoneEnums::TransportType *transport){ if (transportType.toUpper() == QLatin1String("TCP")) *transport = TransportTypeTcp; - if (transportType.toUpper() == QLatin1String("UDP")) + else if (transportType.toUpper() == QLatin1String("UDP")) *transport = TransportTypeUdp; - if (transportType.toUpper() == QLatin1String("TLS")) + else if (transportType.toUpper() == QLatin1String("TLS")) *transport = TransportTypeTls; - *transport = TransportTypeDtls; -} \ No newline at end of file + else + *transport = TransportTypeDtls; +} diff --git a/linphone-app/ui/views/App/Main/Dialogs/NewConference.qml b/linphone-app/ui/views/App/Main/Dialogs/NewConference.qml index 2d6c6d8cb..5562d143c 100644 --- a/linphone-app/ui/views/App/Main/Dialogs/NewConference.qml +++ b/linphone-app/ui/views/App/Main/Dialogs/NewConference.qml @@ -19,7 +19,13 @@ import 'qrc:/ui/scripts/Utils/utils.js' as Utils DialogPlus { id: conferenceManager property ConferenceInfoModel conferenceInfoModel: ConferenceInfoModel{ - onConferenceCreated: console.log("Conference has been created.") + onConferenceCreated: { + console.log("Conference has been created.") + creationStatus.icon = 'led_green' + } + onConferenceCreationFailed:{ console.log("Conference failed.") + creationStatus.icon = 'led_red' + } onInvitationsSent: { console.log("Conference => invitations sent. Check in log for invite states.") exit(1) @@ -106,9 +112,10 @@ DialogPlus { } onClicked: { + creationStatus.icon = 'led_orange' conferenceInfoModel.isScheduled = scheduledSwitch.checked if( scheduledSwitch.checked){ - var startDateTime = Utils.buidDate(dateField.getDate(), timeField.getTime()) + var startDateTime = Utils.buildDate(dateField.getDate(), timeField.getTime()) startDateTime.setSeconds(0) conferenceInfoModel.dateTime = startDateTime conferenceInfoModel.duration = durationField.text @@ -143,7 +150,13 @@ DialogPlus { } } } - + , Icon{ + id: creationStatus + height: 10 + width: 10 + visible: icon != '' + icon: '' + } ] buttonsAlignment: Qt.AlignRight @@ -542,4 +555,4 @@ DialogPlus { } } } -} \ No newline at end of file +}