Commit 639a38d3 authored by Andreas Traczyk's avatar Andreas Traczyk

Revert "callmodel: expose setCurrentCall"

This reverts commit 595720c4.

Reason for revert: <INSERT REASONING HERE>

Change-Id: I3e31a71f417df6ba5dc776e18e239a2cb03b0f36
parent 595720c4
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#include <memory> #include <memory>
#include <vector> #include <vector>
#include <string> #include <string>
#include <atomic>
// Lrc // Lrc
#include "typedefs.h" #include "typedefs.h"
...@@ -111,11 +110,6 @@ public: ...@@ -111,11 +110,6 @@ public:
*/ */
static std::vector<std::string> getConferenceSubcalls(const std::string& id); static std::vector<std::string> getConferenceSubcalls(const std::string& id);
/**
* Preference
*/
static std::atomic_bool holdConferences;
private: private:
std::unique_ptr<LrcPimpl> lrcPimpl_; std::unique_ptr<LrcPimpl> lrcPimpl_;
}; };
......
...@@ -148,8 +148,7 @@ public: ...@@ -148,8 +148,7 @@ public:
void playDTMF(const std::string& callId, const std::string& value) const; void playDTMF(const std::string& callId, const std::string& value) const;
/** /**
* Toggle pause on a call. * Toggle pause on a call
* @warn only use this function for SIP calls
* @param callId * @param callId
*/ */
void togglePause(const std::string& callId) const; void togglePause(const std::string& callId) const;
...@@ -226,11 +225,6 @@ public: ...@@ -226,11 +225,6 @@ public:
*/ */
static std::string getSIPCallStatusString(const short& statusCode); static std::string getSIPCallStatusString(const short& statusCode);
/**
* Set a call as the current call (hold other calls)
*/
void setCurrentCall(const std::string& callId) const;
Q_SIGNALS: Q_SIGNALS:
/** /**
* Emitted when a call state changes * Emitted when a call state changes
......
...@@ -45,8 +45,6 @@ namespace lrc ...@@ -45,8 +45,6 @@ namespace lrc
using namespace api; using namespace api;
std::atomic_bool lrc::api::Lrc::holdConferences;
// To judge whether the call is finished or not depending on callState // To judge whether the call is finished or not depending on callState
bool isFinished(const QString& callState); bool isFinished(const QString& callState);
...@@ -67,7 +65,6 @@ public: ...@@ -67,7 +65,6 @@ public:
Lrc::Lrc(MigrationCb willDoMigrationCb, MigrationCb didDoMigrationCb) Lrc::Lrc(MigrationCb willDoMigrationCb, MigrationCb didDoMigrationCb)
{ {
lrc::api::Lrc::holdConferences.store(true);
#ifndef ENABLE_LIBWRAP #ifndef ENABLE_LIBWRAP
// Replace locale for timestamps // Replace locale for timestamps
std::locale::global(std::locale("")); std::locale::global(std::locale(""));
......
...@@ -139,8 +139,12 @@ public: ...@@ -139,8 +139,12 @@ public:
* Retrieve active conferences from the daemon and init the model * Retrieve active conferences from the daemon and init the model
*/ */
void initConferencesFromDaemon(); void initConferencesFromDaemon();
/**
* Set a call as the current call (hold other calls)
*/
void setCurrentCall(const std::string& callId);
bool manageCurrentCall_ {true}; bool manageCurrentCall_ {true};
std::string currentCall_ {}; bool dontHoldConferences_ {false};
std::map<std::string, std::string> pendingConferences_; std::map<std::string, std::string> pendingConferences_;
public Q_SLOTS: public Q_SLOTS:
...@@ -319,7 +323,7 @@ NewCallModel::togglePause(const std::string& callId) const ...@@ -319,7 +323,7 @@ NewCallModel::togglePause(const std::string& callId) const
if (call->status == call::Status::PAUSED) { if (call->status == call::Status::PAUSED) {
if (call->type == call::Type::DIALOG) { if (call->type == call::Type::DIALOG) {
CallManager::instance().unhold(callId.c_str()); CallManager::instance().unhold(callId.c_str());
setCurrentCall(callId); pimpl_->setCurrentCall(callId);
} else { } else {
CallManager::instance().unholdConference(callId.c_str()); CallManager::instance().unholdConference(callId.c_str());
} }
...@@ -578,37 +582,19 @@ NewCallModelPimpl::initConferencesFromDaemon() ...@@ -578,37 +582,19 @@ NewCallModelPimpl::initConferencesFromDaemon()
} }
void void
NewCallModel::setCurrentCall(const std::string& callId) const NewCallModelPimpl::setCurrentCall(const std::string& callId)
{ {
if (!pimpl_->manageCurrentCall_) return; if (!manageCurrentCall_) return;
auto it = pimpl_->pendingConferences_.find(callId); auto it = pendingConferences_.find(callId);
// Set current call only if not adding this call // Set current call only if not adding this call
// to a current conference // to a current conference
if (it != pimpl_->pendingConferences_.end()) return; if (it != pendingConferences_.end()) return;
if (!hasCall(callId)) return;
// The client should be able to set the current call multiple times
if (pimpl_->currentCall_ == callId) return;
pimpl_->currentCall_ = callId;
// Unhold call
auto& call = pimpl_->calls[callId];
if (call->status == call::Status::PAUSED) {
auto& call = pimpl_->calls[callId];
if (call->type == call::Type::DIALOG) {
CallManager::instance().unhold(callId.c_str());
} else {
CallManager::instance().unholdConference(callId.c_str());
}
}
std::vector<std::string> filterCalls; std::vector<std::string> filterCalls;
QStringList conferences = CallManager::instance().getConferenceList(); QStringList conferences = CallManager::instance().getConferenceList();
for (const auto& confId : conferences) { for (const auto& confId : conferences) {
QStringList callList = CallManager::instance().getParticipantList(confId); QStringList callList = CallManager::instance().getParticipantList(confId);
foreach(const auto& cid, callList) { foreach(const auto& callId, callList) {
filterCalls.emplace_back(cid.toStdString()); filterCalls.emplace_back(callId.toStdString());
} }
} }
for (const auto& cid : Lrc::activeCalls()) { for (const auto& cid : Lrc::activeCalls()) {
...@@ -617,12 +603,11 @@ NewCallModel::setCurrentCall(const std::string& callId) const ...@@ -617,12 +603,11 @@ NewCallModel::setCurrentCall(const std::string& callId) const
CallManager::instance().hold(cid.c_str()); CallManager::instance().hold(cid.c_str());
} }
} }
if (!lrc::api::Lrc::holdConferences) { if (dontHoldConferences_) {
return; return;
} }
for (const auto& confId : conferences) { for (const auto& confId : conferences) {
if (callId != confId.toStdString()) CallManager::instance().holdConference(confId);
CallManager::instance().holdConference(confId);
} }
} }
...@@ -710,18 +695,17 @@ NewCallModelPimpl::slotCallStateChanged(const std::string& callId, const std::st ...@@ -710,18 +695,17 @@ NewCallModelPimpl::slotCallStateChanged(const std::string& callId, const std::st
// NOTE: signal emission order matters, always emit CallStatusChanged before CallEnded // NOTE: signal emission order matters, always emit CallStatusChanged before CallEnded
emit linked.callStatusChanged(callId, code); emit linked.callStatusChanged(callId, code);
if (call->status == call::Status::OUTGOING_RINGING if (call->status == call::Status::OUTGOING_RINGING) {
&& linked.owner.profileInfo.type != profile::Type::SIP) { setCurrentCall(callId);
linked.setCurrentCall(callId);
} else if (call->status == call::Status::ENDED) { } else if (call->status == call::Status::ENDED) {
emit linked.callEnded(callId); emit linked.callEnded(callId);
} else if (call->status == call::Status::IN_PROGRESS) { } else if (call->status == call::Status::IN_PROGRESS) {
if (previousStatus == call::Status::INCOMING_RINGING if (previousStatus == call::Status::INCOMING_RINGING
|| previousStatus == call::Status::OUTGOING_RINGING) { || previousStatus == call::Status::OUTGOING_RINGING) {
if (previousStatus == call::Status::INCOMING_RINGING if (previousStatus == call::Status::INCOMING_RINGING)
&& linked.owner.profileInfo.type != profile::Type::SIP) setCurrentCall(callId);
linked.setCurrentCall(callId);
call->startTime = std::chrono::steady_clock::now(); call->startTime = std::chrono::steady_clock::now();
emit linked.callStarted(callId); emit linked.callStarted(callId);
sendProfile(callId); sendProfile(callId);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment