aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2019-07-02 14:38:49 +0200
committerAleksander Morgado <aleksander@aleksander.es>2019-07-11 23:21:00 +0200
commit213c60b76d1c0455a4f95b927514de2ef1388ed5 (patch)
tree0f260b2db54d57937f1d318ade674dc4750288f0
parent8bc38110c98566955de89b3af57910cedaedbf68 (diff)
api,call: new Multiparty boolean property
It will be set to TRUE if this call is part of a multiparty call.
-rw-r--r--cli/mmcli-call.c1
-rw-r--r--cli/mmcli-output.c1
-rw-r--r--cli/mmcli-output.h1
-rw-r--r--docs/reference/libmm-glib/libmm-glib-sections.txt3
-rw-r--r--introspection/org.freedesktop.ModemManager1.Call.xml7
-rw-r--r--libmm-glib/mm-call.c18
-rw-r--r--libmm-glib/mm-call.h2
-rw-r--r--src/mm-base-call.c13
-rw-r--r--src/mm-base-call.h29
9 files changed, 62 insertions, 13 deletions
diff --git a/cli/mmcli-call.c b/cli/mmcli-call.c
index 83a0c017..f3fd9382 100644
--- a/cli/mmcli-call.c
+++ b/cli/mmcli-call.c
@@ -162,6 +162,7 @@ print_call_info (MMCall *call)
mmcli_output_string (MMC_F_CALL_GENERAL_DBUS_PATH, mm_call_get_path (call));
mmcli_output_string (MMC_F_CALL_PROPERTIES_NUMBER, mm_call_get_number (call));
mmcli_output_string (MMC_F_CALL_PROPERTIES_DIRECTION, mm_call_direction_get_string (mm_call_get_direction (call)));
+ mmcli_output_string (MMC_F_CALL_PROPERTIES_MULTIPARTY, mm_call_get_multiparty (call) ? "yes" : "no");
mmcli_output_string (MMC_F_CALL_PROPERTIES_STATE, mm_call_state_get_string (mm_call_get_state (call)));
mmcli_output_string (MMC_F_CALL_PROPERTIES_STATE_REASON, mm_call_state_reason_get_string (mm_call_get_state_reason (call)));
mmcli_output_string (MMC_F_CALL_PROPERTIES_AUDIO_PORT, mm_call_get_audio_port (call));
diff --git a/cli/mmcli-output.c b/cli/mmcli-output.c
index 0242460c..7699f25e 100644
--- a/cli/mmcli-output.c
+++ b/cli/mmcli-output.c
@@ -227,6 +227,7 @@ static FieldInfo field_infos[] = {
[MMC_F_CALL_GENERAL_DBUS_PATH] = { "call.dbus-path", "dbus path", MMC_S_CALL_GENERAL, },
[MMC_F_CALL_PROPERTIES_NUMBER] = { "call.properties.number", "number", MMC_S_CALL_PROPERTIES, },
[MMC_F_CALL_PROPERTIES_DIRECTION] = { "call.properties.direction", "direction", MMC_S_CALL_PROPERTIES, },
+ [MMC_F_CALL_PROPERTIES_MULTIPARTY] = { "call.properties.multiparty", "multiparty", MMC_S_CALL_PROPERTIES, },
[MMC_F_CALL_PROPERTIES_STATE] = { "call.properties.state", "state", MMC_S_CALL_PROPERTIES, },
[MMC_F_CALL_PROPERTIES_STATE_REASON] = { "call.properties.state-reason", "state reason", MMC_S_CALL_PROPERTIES, },
[MMC_F_CALL_PROPERTIES_AUDIO_PORT] = { "call.properties.audio-port", "audio port", MMC_S_CALL_PROPERTIES, },
diff --git a/cli/mmcli-output.h b/cli/mmcli-output.h
index 7793f797..024d2440 100644
--- a/cli/mmcli-output.h
+++ b/cli/mmcli-output.h
@@ -243,6 +243,7 @@ typedef enum {
MMC_F_CALL_GENERAL_DBUS_PATH,
MMC_F_CALL_PROPERTIES_NUMBER,
MMC_F_CALL_PROPERTIES_DIRECTION,
+ MMC_F_CALL_PROPERTIES_MULTIPARTY,
MMC_F_CALL_PROPERTIES_STATE,
MMC_F_CALL_PROPERTIES_STATE_REASON,
MMC_F_CALL_PROPERTIES_AUDIO_PORT,
diff --git a/docs/reference/libmm-glib/libmm-glib-sections.txt b/docs/reference/libmm-glib/libmm-glib-sections.txt
index 5daaff5c..dc92cec5 100644
--- a/docs/reference/libmm-glib/libmm-glib-sections.txt
+++ b/docs/reference/libmm-glib/libmm-glib-sections.txt
@@ -1332,6 +1332,7 @@ mm_call_get_audio_port
mm_call_dup_audio_port
mm_call_get_audio_format
mm_call_peek_audio_format
+mm_call_get_multiparty
<SUBSECTION Methods>
mm_call_start
mm_call_start_finish
@@ -3246,6 +3247,7 @@ mm_gdbus_call_dup_audio_format
mm_gdbus_call_dup_audio_port
mm_gdbus_call_get_audio_format
mm_gdbus_call_get_audio_port
+mm_gdbus_call_get_multiparty
<SUBSECTION Methods>
mm_gdbus_call_call_accept
mm_gdbus_call_call_accept_finish
@@ -3269,6 +3271,7 @@ mm_gdbus_call_set_state
mm_gdbus_call_set_state_reason
mm_gdbus_call_set_audio_format
mm_gdbus_call_set_audio_port
+mm_gdbus_call_set_multiparty
mm_gdbus_call_complete_accept
mm_gdbus_call_complete_hangup
mm_gdbus_call_complete_send_dtmf
diff --git a/introspection/org.freedesktop.ModemManager1.Call.xml b/introspection/org.freedesktop.ModemManager1.Call.xml
index 0f704f2f..d32b0836 100644
--- a/introspection/org.freedesktop.ModemManager1.Call.xml
+++ b/introspection/org.freedesktop.ModemManager1.Call.xml
@@ -128,6 +128,13 @@
<property name="Number" type="s" access="read" />
<!--
+ Multiparty:
+
+ Whether the call is currently part of a multiparty conference call.
+ -->
+ <property name="Multiparty" type="b" access="read" />
+
+ <!--
AudioPort:
If call audio is routed via the host, the name of the kernel device that
diff --git a/libmm-glib/mm-call.c b/libmm-glib/mm-call.c
index 7800249d..1ee624e2 100644
--- a/libmm-glib/mm-call.c
+++ b/libmm-glib/mm-call.c
@@ -148,6 +148,24 @@ mm_call_get_direction (MMCall *self)
/*****************************************************************************/
/**
+ * mm_call_get_multiparty:
+ * @self: A #MMCall.
+ *
+ * Gets whether the call is part of a multiparty call.
+ *
+ * Returns: %TRUE if the call is part of a multiparty call, %FALSE otherwise..
+ */
+gboolean
+mm_call_get_multiparty (MMCall *self)
+{
+ g_return_val_if_fail (MM_IS_CALL (self), FALSE);
+
+ return mm_gdbus_call_get_multiparty (MM_GDBUS_CALL (self));
+}
+
+/*****************************************************************************/
+
+/**
* mm_call_get_state:
* @self: A #MMCall.
*
diff --git a/libmm-glib/mm-call.h b/libmm-glib/mm-call.h
index 9344367b..d073120f 100644
--- a/libmm-glib/mm-call.h
+++ b/libmm-glib/mm-call.h
@@ -76,6 +76,8 @@ MMCallStateReason mm_call_get_state_reason (MMCall *self);
MMCallDirection mm_call_get_direction (MMCall *self);
+gboolean mm_call_get_multiparty (MMCall *self);
+
const gchar *mm_call_get_audio_port (MMCall *self);
gchar *mm_call_dup_audio_port (MMCall *self);
diff --git a/src/mm-base-call.c b/src/mm-base-call.c
index 6ff7153d..ccf1222f 100644
--- a/src/mm-base-call.c
+++ b/src/mm-base-call.c
@@ -770,6 +770,19 @@ mm_base_call_get_state (MMBaseCall *self)
return (MMCallState) mm_gdbus_call_get_state (MM_GDBUS_CALL (self));
}
+gboolean
+mm_base_call_get_multiparty (MMBaseCall *self)
+{
+ return mm_gdbus_call_get_multiparty (MM_GDBUS_CALL (self));
+}
+
+void
+mm_base_call_set_multiparty (MMBaseCall *self,
+ gboolean multiparty)
+{
+ return mm_gdbus_call_set_multiparty (MM_GDBUS_CALL (self), multiparty);
+}
+
/*****************************************************************************/
/* Current call index, only applicable while the call is ongoing
* See 3GPP TS 22.030 [27], subclause 6.5.5.1.
diff --git a/src/mm-base-call.h b/src/mm-base-call.h
index e858e08f..279edec1 100644
--- a/src/mm-base-call.h
+++ b/src/mm-base-call.h
@@ -104,19 +104,22 @@ MMBaseCall *mm_base_call_new (MMBaseModem *modem,
gboolean supports_dialing_to_ringing,
gboolean supports_ringing_to_active);
-void mm_base_call_export (MMBaseCall *self);
-void mm_base_call_unexport (MMBaseCall *self);
-
-const gchar *mm_base_call_get_path (MMBaseCall *self);
-const gchar *mm_base_call_get_number (MMBaseCall *self);
-MMCallDirection mm_base_call_get_direction (MMBaseCall *self);
-MMCallState mm_base_call_get_state (MMBaseCall *self);
-guint mm_base_call_get_index (MMBaseCall *self);
-
-void mm_base_call_set_number (MMBaseCall *self,
- const gchar *number);
-void mm_base_call_set_index (MMBaseCall *self,
- guint index);
+void mm_base_call_export (MMBaseCall *self);
+void mm_base_call_unexport (MMBaseCall *self);
+
+const gchar *mm_base_call_get_path (MMBaseCall *self);
+const gchar *mm_base_call_get_number (MMBaseCall *self);
+MMCallDirection mm_base_call_get_direction (MMBaseCall *self);
+MMCallState mm_base_call_get_state (MMBaseCall *self);
+guint mm_base_call_get_index (MMBaseCall *self);
+gboolean mm_base_call_get_multiparty (MMBaseCall *self);
+
+void mm_base_call_set_number (MMBaseCall *self,
+ const gchar *number);
+void mm_base_call_set_index (MMBaseCall *self,
+ guint index);
+void mm_base_call_set_multiparty (MMBaseCall *self,
+ gboolean multiparty);
void mm_base_call_change_state (MMBaseCall *self,
MMCallState new_state,