summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksandermj@chromium.org>2022-12-05 22:34:14 +0000
committerAleksander Morgado <aleksandermj@chromium.org>2022-12-05 22:34:14 +0000
commit099726d3c0dd592621c771193ec2b9459af50095 (patch)
treed5b383855e4166d698b8075cc8017c208713a7b2
parentd9771dab6031d0c2a974245f03862aa581b1c83b (diff)
downloadlibmbim-099726d3c0dd592621c771193ec2b9459af50095.tar.gz
libmbim-glib,enums: MbimSmsStatusFlag is flags, not enum
A compat method for mbim_sms_status_flag_get_string() is given. The enum itself is considered API/ABI compatible because the numeric values of the items didn't change. Fixes https://gitlab.freedesktop.org/mobile-broadband/libmbim/-/issues/36
-rw-r--r--docs/reference/libmbim-glib/libmbim-glib-common.sections5
-rw-r--r--src/libmbim-glib/mbim-compat.c15
-rw-r--r--src/libmbim-glib/mbim-compat.h16
-rw-r--r--src/libmbim-glib/mbim-enums.h4
4 files changed, 36 insertions, 4 deletions
diff --git a/docs/reference/libmbim-glib/libmbim-glib-common.sections b/docs/reference/libmbim-glib/libmbim-glib-common.sections
index 1425e2c..8de81d4 100644
--- a/docs/reference/libmbim-glib/libmbim-glib-common.sections
+++ b/docs/reference/libmbim-glib/libmbim-glib-common.sections
@@ -465,7 +465,7 @@ mbim_sms_flag_get_string
mbim_sms_cdma_lang_get_string
mbim_sms_cdma_encoding_get_string
mbim_sms_status_get_string
-mbim_sms_status_flag_get_string
+mbim_sms_status_flag_build_string_from_mask
mbim_ussd_action_get_string
mbim_ussd_response_get_string
mbim_ussd_session_state_get_string
@@ -562,7 +562,6 @@ mbim_sms_cdma_lang_build_string_from_mask
mbim_sms_flag_build_string_from_mask
mbim_sms_format_build_string_from_mask
mbim_sms_status_build_string_from_mask
-mbim_sms_status_flag_build_string_from_mask
mbim_sms_storage_state_build_string_from_mask
mbim_ussd_action_build_string_from_mask
mbim_ussd_response_build_string_from_mask
@@ -911,6 +910,8 @@ mbim_message_ms_basic_connect_extensions_lte_attach_status_notification_parse
MBIM_NW_ERROR_UNKNOWN
<SUBSECTION>
MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_NETWORK_BLACKLIST
+<SUBSECTION>
+mbim_sms_status_flag_get_string
<SUBSECTION Private>
MbimDeprecatedCidBasicConnect
MbimDeprecatedRegistrationFlag
diff --git a/src/libmbim-glib/mbim-compat.c b/src/libmbim-glib/mbim-compat.c
index 9fef35c..dc1f321 100644
--- a/src/libmbim-glib/mbim-compat.c
+++ b/src/libmbim-glib/mbim-compat.c
@@ -109,4 +109,19 @@ mbim_message_ms_basic_connect_extensions_lte_attach_status_notification_parse (
return TRUE;
}
+/*****************************************************************************/
+/* MbimSmsStatusFlag is flags, not an enum */
+
+const gchar *
+mbim_sms_status_flag_get_string (MbimSmsStatusFlag val)
+{
+ const gchar *sms_status_flag_values[] = {
+ [MBIM_SMS_STATUS_FLAG_NONE] = "none",
+ [MBIM_SMS_STATUS_FLAG_MESSAGE_STORE_FULL] = "message-store-full",
+ [MBIM_SMS_STATUS_FLAG_NEW_MESSAGE] = "new-message",
+ };
+
+ return ((guint)val < G_N_ELEMENTS (sms_status_flag_values)) ? sms_status_flag_values[val] : NULL;
+}
+
#endif /* MBIM_DISABLE_DEPRECATED */
diff --git a/src/libmbim-glib/mbim-compat.h b/src/libmbim-glib/mbim-compat.h
index 4447cd2..c3587ad 100644
--- a/src/libmbim-glib/mbim-compat.h
+++ b/src/libmbim-glib/mbim-compat.h
@@ -288,6 +288,22 @@ typedef int MbimDeprecatedCidMsBasicConnectExtensions;
*/
#define MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_NETWORK_BLACKLIST (MbimDeprecatedCidMsBasicConnectExtensions) MBIM_CID_MS_BASIC_CONNECT_EXTENSIONS_NETWORK_DENYLIST
+/*****************************************************************************/
+/* MbimSmsStatusFlag is flags, not an enum */
+
+/**
+ * mbim_sms_status_flag_get_string:
+ * @val: a MbimSmsStatusFlag.
+ *
+ * Gets the nickname string for the #MbimSmsStatusFlag specified at @val.
+ *
+ * Returns: (transfer none): a string with the nickname, or %NULL if not found. Do not free the returned value.
+ *
+ * Since: 1.4
+ * Deprecated: 1.30: Use mbim_sms_status_flag_build_string_from_mask() instead.
+ */
+const gchar *mbim_sms_status_flag_get_string (MbimSmsStatusFlag val);
+
#endif /* MBIM_DISABLE_DEPRECATED */
G_END_DECLS
diff --git a/src/libmbim-glib/mbim-enums.h b/src/libmbim-glib/mbim-enums.h
index 3b54825..b38e572 100644
--- a/src/libmbim-glib/mbim-enums.h
+++ b/src/libmbim-glib/mbim-enums.h
@@ -977,8 +977,8 @@ typedef enum { /*< since=1.4 >*/
*/
typedef enum { /*< since=1.4 >*/
MBIM_SMS_STATUS_FLAG_NONE = 0,
- MBIM_SMS_STATUS_FLAG_MESSAGE_STORE_FULL = 1,
- MBIM_SMS_STATUS_FLAG_NEW_MESSAGE = 2
+ MBIM_SMS_STATUS_FLAG_MESSAGE_STORE_FULL = 1 << 0,
+ MBIM_SMS_STATUS_FLAG_NEW_MESSAGE = 1 << 1,
} MbimSmsStatusFlag;
/*****************************************************************************/