summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2025-04-14 17:52:39 +0300
committerGeorge Hazan <george.hazan@gmail.com>2025-04-14 17:52:39 +0300
commit4d1681dbd44a551bc40b920ec558e7dfbabf6110 (patch)
treeaa0a0bbf476293ece32678d9521058ef917e56b5
parent34569ef81b0182e390d4533425d162193f06e069 (diff)
Teams: more statuses from documentation
-rw-r--r--protocols/Teams/src/teams_endpoint.cpp25
-rw-r--r--protocols/Teams/src/teams_utils.cpp13
-rw-r--r--protocols/Teams/src/teams_utils.h1
3 files changed, 23 insertions, 16 deletions
diff --git a/protocols/Teams/src/teams_endpoint.cpp b/protocols/Teams/src/teams_endpoint.cpp
index 1b19cf4de5..5bf46cfbb8 100644
--- a/protocols/Teams/src/teams_endpoint.cpp
+++ b/protocols/Teams/src/teams_endpoint.cpp
@@ -184,9 +184,30 @@ void CTeamsProto::SetServerStatus(int iStatus)
{
auto *pReq = new AsyncHttpRequest(REQUEST_PUT, HOST_PRESENCE, "/me/endpoints", &CTeamsProto::OnStatusChanged);
+ const char *pszAvailability, *pszActivity;
+ switch (iStatus) {
+ case ID_STATUS_OFFLINE:
+ pszAvailability = pszActivity = "Offline";
+ break;
+ case ID_STATUS_NA:
+ case ID_STATUS_AWAY:
+ pszAvailability = pszActivity = "Away";
+ break;
+ case ID_STATUS_DND:
+ pszAvailability = "DoNotDisturb";
+ pszActivity = "Presenting";
+ break;
+ case ID_STATUS_OCCUPIED:
+ pszAvailability = "Busy";
+ pszActivity = "InACall";
+ break;
+ default:
+ pszAvailability = pszActivity = "Available";
+ }
+
JSONNode node(JSON_NODE);
- node << CHAR_PARAM("id", m_szEndpoint) << CHAR_PARAM("availability", MirandaToSkypeStatus(iStatus))
- << CHAR_PARAM("activity", "Available") << CHAR_PARAM("activityReporting", "Transport") << CHAR_PARAM("deviceType", "Desktop");
+ node << CHAR_PARAM("id", m_szEndpoint) << CHAR_PARAM("availability", pszAvailability)
+ << CHAR_PARAM("activity", pszActivity) << CHAR_PARAM("activityReporting", "Transport") << CHAR_PARAM("deviceType", "Desktop");
pReq->m_szParam = node.write().c_str();
PushRequest(pReq);
diff --git a/protocols/Teams/src/teams_utils.cpp b/protocols/Teams/src/teams_utils.cpp
index af6fc87219..c409419054 100644
--- a/protocols/Teams/src/teams_utils.cpp
+++ b/protocols/Teams/src/teams_utils.cpp
@@ -593,19 +593,6 @@ uint32_t Utf16toUtf32(const wchar_t *str)
//////////////////////////////////////////////////////////////////////////////////////////
-const char* MirandaToSkypeStatus(int status)
-{
- switch (status) {
- case ID_STATUS_OFFLINE: return "Offline";
- case ID_STATUS_AWAY: return "Away";
- case ID_STATUS_NA: return "BeRightBack";
- case ID_STATUS_DND: return "DoNotDisturb";
- case ID_STATUS_OCCUPIED: return "Busy";
- case ID_STATUS_IDLE: return "AvailableIdle";
- }
- return "Available";
-}
-
int SkypeToMirandaStatus(const char *status)
{
if (!mir_strcmpi(status, "Available"))
diff --git a/protocols/Teams/src/teams_utils.h b/protocols/Teams/src/teams_utils.h
index dc79d1e2b5..1fe980ef06 100644
--- a/protocols/Teams/src/teams_utils.h
+++ b/protocols/Teams/src/teams_utils.h
@@ -27,7 +27,6 @@ const wchar_t* GetSkypeNick(const wchar_t *szSkypeId);
CMStringA ParseUrl(const char *url, const char *token);
int SkypeToMirandaStatus(const char *status);
-const char *MirandaToSkypeStatus(int status);
bool AddBbcodes(CMStringA &str);