aboutsummaryrefslogtreecommitdiff
path: root/libmm-glib/mm-common-helpers.c
diff options
context:
space:
mode:
authorRiccardo Vangelisti <riccardo.vangelisti@sadel.it>2015-04-27 11:38:57 +0200
committerAleksander Morgado <aleksander@aleksander.es>2015-08-02 10:39:12 +0200
commit0bf4ad6b66b1ea7626df28dc2417686b9e2d03f7 (patch)
tree4fb3fe9aea212c941954d94f4d040cfa6c5c9cfb /libmm-glib/mm-common-helpers.c
parent0feb4acef4d47bc3c22bb1b8f121e5959fb55901 (diff)
libmm-glib: added support for Modem.Voice and Call interfaces
Diffstat (limited to 'libmm-glib/mm-common-helpers.c')
-rw-r--r--libmm-glib/mm-common-helpers.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/libmm-glib/mm-common-helpers.c b/libmm-glib/mm-common-helpers.c
index fbaa81d1..804a9d40 100644
--- a/libmm-glib/mm-common-helpers.c
+++ b/libmm-glib/mm-common-helpers.c
@@ -1001,6 +1001,72 @@ mm_common_get_sms_cdma_service_category_from_string (const gchar *str,
return MM_SMS_CDMA_SERVICE_CATEGORY_UNKNOWN;
}
+MMCallDirection
+mm_common_get_call_direction_from_string (const gchar *str,
+ GError **error)
+{
+ GEnumClass *enum_class;
+ guint i;
+
+ enum_class = G_ENUM_CLASS (g_type_class_ref (MM_TYPE_CALL_DIRECTION));
+
+ for (i = 0; enum_class->values[i].value_nick; i++) {
+ if (!g_ascii_strcasecmp (str, enum_class->values[i].value_nick))
+ return enum_class->values[i].value;
+ }
+
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Couldn't match '%s' with a valid MMCallDirection value",
+ str);
+ return MM_CALL_DIRECTION_UNKNOWN;
+}
+
+MMCallState
+mm_common_get_call_state_from_string (const gchar *str,
+ GError **error)
+{
+ GEnumClass *enum_class;
+ guint i;
+
+ enum_class = G_ENUM_CLASS (g_type_class_ref (MM_TYPE_CALL_STATE));
+
+ for (i = 0; enum_class->values[i].value_nick; i++) {
+ if (!g_ascii_strcasecmp (str, enum_class->values[i].value_nick))
+ return enum_class->values[i].value;
+ }
+
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Couldn't match '%s' with a valid MMCallState value",
+ str);
+ return MM_CALL_STATE_UNKNOWN;
+}
+
+MMCallStateReason
+mm_common_get_call_state_reason_from_string (const gchar *str,
+ GError **error)
+{
+ GEnumClass *enum_class;
+ guint i;
+
+ enum_class = G_ENUM_CLASS (g_type_class_ref (MM_TYPE_CALL_STATE_REASON));
+
+ for (i = 0; enum_class->values[i].value_nick; i++) {
+ if (!g_ascii_strcasecmp (str, enum_class->values[i].value_nick))
+ return enum_class->values[i].value;
+ }
+
+ g_set_error (error,
+ MM_CORE_ERROR,
+ MM_CORE_ERROR_INVALID_ARGS,
+ "Couldn't match '%s' with a valid MMCallStateReason value",
+ str);
+ return MM_CALL_STATE_REASON_UNKNOWN;
+}
+
MMOmaFeature
mm_common_get_oma_features_from_string (const gchar *str,
GError **error)