From 0bf4ad6b66b1ea7626df28dc2417686b9e2d03f7 Mon Sep 17 00:00:00 2001 From: Riccardo Vangelisti Date: Mon, 27 Apr 2015 11:38:57 +0200 Subject: libmm-glib: added support for Modem.Voice and Call interfaces --- libmm-glib/mm-common-helpers.c | 66 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) (limited to 'libmm-glib/mm-common-helpers.c') 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) -- cgit v1.2.3-70-g09d2