diff --git a/src/newcallmodel.cpp b/src/newcallmodel.cpp index 21338964839adb890a9d0b33ef120c5f1a47656c..7d9a30aaeead5a813c93934980b0ff0416659820 100644 --- a/src/newcallmodel.cpp +++ b/src/newcallmodel.cpp @@ -48,6 +48,8 @@ #include <random> #include <map> +using namespace DRing::Media; + static std::uniform_int_distribution<int> dis {0, std::numeric_limits<int>::max()}; static const std::map<short, QString> sip_call_status_code_map {{0, QObject::tr("Null")}, @@ -292,9 +294,11 @@ NewCallModel::updateCallMediaList(const QString& callId, bool acceptVideo) for (auto it = callInfos->second->mediaList.begin(); it != callInfos->second->mediaList.end(); it++) { - if ((*it)["MEDIA_TYPE"] == "MEDIA_TYPE_VIDEO" && !acceptVideo) { - (*it)["ENABLED"] = "false"; - (*it)["MUTED"] = "true"; + if ((*it)[MediaAttributeKey::MEDIA_TYPE] + == MediaAttributeValue::VIDEO + && !acceptVideo) { + (*it)[MediaAttributeKey::ENABLED] = "false"; + (*it)[MediaAttributeKey::MUTED] = "true"; callInfos->second->videoMuted = !acceptVideo; } } @@ -307,15 +311,17 @@ QString NewCallModel::createCall(const QString& uri, bool isAudioOnly) { VectorMapStringString mediaList {}; - MapStringString mediaAttribute = {{"MEDIA_TYPE", "MEDIA_TYPE_AUDIO"}, - {"ENABLED", "true"}, - {"MUTED", "false"}, - {"SOURCE", ""}, - {"LABEL", "audio_0"}}; + MapStringString mediaAttribute = {{MediaAttributeKey::MEDIA_TYPE, + MediaAttributeValue::AUDIO}, + {MediaAttributeKey::ENABLED, "true"}, + {MediaAttributeKey::MUTED, "false"}, + {MediaAttributeKey::SOURCE, ""}, + {MediaAttributeKey::LABEL, "audio_0"}}; mediaList.push_back(mediaAttribute); if (!isAudioOnly) { - mediaAttribute["MEDIA_TYPE"] = "MEDIA_TYPE_VIDEO"; - mediaAttribute["LABEL"] = "video_0"; + mediaAttribute[MediaAttributeKey::MEDIA_TYPE] + = MediaAttributeValue::VIDEO; + mediaAttribute[MediaAttributeKey::LABEL] = "video_0"; mediaList.push_back(mediaAttribute); } #ifdef ENABLE_LIBWRAP @@ -358,19 +364,21 @@ NewCallModel::requestMediaChange(const QString& callId, const QString& mediaLabe int found = 0; for (auto& item : proposedList) { - if (item["LABEL"] == mediaLabel) { - item["ENABLED"] = "true"; - item["MUTED"] = item["MUTED"] == "true" ? "false" : "true"; + if (item[MediaAttributeKey::LABEL] == mediaLabel) { + item[MediaAttributeKey::ENABLED] = "true"; + item[MediaAttributeKey::MUTED] + = item[MediaAttributeKey::MUTED] == "true" ? "false" : "true"; break; } found++; } if (found == proposedList.size() && mediaLabel == "video_0") { - MapStringString mediaAttribute = {{"MEDIA_TYPE", "MEDIA_TYPE_VIDEO"}, - {"ENABLED", "true"}, - {"MUTED", "false"}, - {"SOURCE", ""}, - {"LABEL", "video_0"}}; + MapStringString mediaAttribute = {{MediaAttributeKey::MEDIA_TYPE, + MediaAttributeValue::VIDEO}, + {MediaAttributeKey::ENABLED, "true"}, + {MediaAttributeKey::MUTED, "false"}, + {MediaAttributeKey::SOURCE, ""}, + {MediaAttributeKey::LABEL, "video_0"}}; proposedList.push_back(mediaAttribute); // We should prepare it here for adding file and screen sharing // for now it supports only adding main video to an audio only call @@ -380,9 +388,9 @@ NewCallModel::requestMediaChange(const QString& callId, const QString& mediaLabe // update the mediaList because we will not receive signal // mediaNegotiationStatus if (found < callInfo->mediaList.size()) { - callInfo->mediaList[found]["MUTED"] = callInfo->mediaList[found]["MUTED"] == "true" - ? "false" - : "true"; + callInfo->mediaList[found][MediaAttributeKey::MUTED] + = callInfo->mediaList[found][MediaAttributeKey::MUTED] == "true" ? "false" + : "true"; if (callInfo->status == call::Status::IN_PROGRESS) emit callInfosChanged(owner.id, callId); } @@ -966,7 +974,8 @@ NewCallModelPimpl::slotIncomingCallWithMedia(const QString& accountId, callInfo->type = call::Type::DIALOG; callInfo->isAudioOnly = true; for (const auto& item : mediaList) { - if (item["MEDIA_TYPE"] == "MEDIA_TYPE_VIDEO") { + if (item[MediaAttributeKey::MEDIA_TYPE] + == MediaAttributeValue::VIDEO) { callInfo->isAudioOnly = false; break; } @@ -1006,9 +1015,10 @@ NewCallModelPimpl::slotMediaChangeRequested(const QString& accountId, auto answerMedia = QList<MapStringString>::fromVector(mediaList); for (auto& item : answerMedia) { - if (item["MEDIA_TYPE"] == "MEDIA_TYPE_VIDEO") { - item["MUTED"] = callInfo->videoMuted ? "true" : "false"; - item["ENABLED"] = "true"; + if (item[MediaAttributeKey::MEDIA_TYPE] + == MediaAttributeValue::VIDEO) { + item[MediaAttributeKey::MUTED] = callInfo->videoMuted ? "true" : "false"; + item[MediaAttributeKey::ENABLED] = "true"; } } CallManager::instance().answerMediaChangeRequest(callId, @@ -1105,14 +1115,17 @@ NewCallModelPimpl::slotMediaNegotiationStatus(const QString& callId, callInfo->isAudioOnly = true; for (const auto& item : mediaList) { - if (item["MEDIA_TYPE"] == "MEDIA_TYPE_VIDEO") { - if (item["ENABLED"] == "true") { - callInfo->isAudioOnly = false; - callInfo->videoMuted = item["MUTED"] == "true"; + if (item[MediaAttributeKey::MEDIA_TYPE] + == MediaAttributeValue::VIDEO) { + if (item[MediaAttributeKey::ENABLED] == "true") { + callInfo->isAudioOnly = false; } + callInfo->videoMuted = item[MediaAttributeKey::MUTED] == "true" + || item[MediaAttributeKey::ENABLED] == "false"; } - if (item["MEDIA_TYPE"] == "MEDIA_TYPE_AUDIO") { - callInfo->audioMuted = item["MUTED"] == "true"; + if (item[MediaAttributeKey::MEDIA_TYPE] + == MediaAttributeValue::AUDIO) { + callInfo->audioMuted = item[MediaAttributeKey::MUTED] == "true"; } }