From 69c0b66ac6dc440db1e11301b77a50ec43ae8038 Mon Sep 17 00:00:00 2001 From: Takashi Sakamoto Date: Tue, 31 May 2022 10:41:31 +0900 Subject: [PATCH] seq: client_info: rewrite public API to return gboolean according to GNOME convention In GNOME convention, the throw function to report error at GError argument should return gboolean value to report the overall operation finishes successfully or not. This commit rewrite such public APIs with loss of backward compatibility. Signed-off-by: Takashi Sakamoto --- src/seq/alsaseq.map | 5 +++-- src/seq/client-info.c | 38 ++++++++++++++++++++++---------------- src/seq/client-info.h | 16 +++++++--------- 3 files changed, 32 insertions(+), 27 deletions(-) diff --git a/src/seq/alsaseq.map b/src/seq/alsaseq.map index 01a0df2..568601a 100644 --- a/src/seq/alsaseq.map +++ b/src/seq/alsaseq.map @@ -22,8 +22,6 @@ ALSA_GOBJECT_0_0_0 { "alsaseq_client_info_get_type"; "alsaseq_client_info_new"; - "alsaseq_client_info_set_event_filter"; - "alsaseq_client_info_get_event_filter"; "alsaseq_user_client_get_type"; "alsaseq_user_client_new"; @@ -222,4 +220,7 @@ ALSA_GOBJECT_0_3_0 { "alsaseq_user_client_get_queue_tempo"; "alsaseq_user_client_set_queue_timer"; "alsaseq_user_client_get_queue_timer"; + + "alsaseq_client_info_set_event_filter"; + "alsaseq_client_info_get_event_filter"; } ALSA_GOBJECT_0_2_0; diff --git a/src/seq/client-info.c b/src/seq/client-info.c index 8822366..40d5402 100644 --- a/src/seq/client-info.c +++ b/src/seq/client-info.c @@ -216,20 +216,21 @@ ALSASeqClientInfo *alsaseq_client_info_new() * @error: A [struct@GLib.Error]. * * Set the list of type of events configured to be listen. + * + * Returns: %TRUE when the overall operation finishes successfully, else %FALSE. */ -void alsaseq_client_info_set_event_filter(ALSASeqClientInfo *self, - const ALSASeqEventType *event_types, - gsize event_type_count, - GError **error) +gboolean alsaseq_client_info_set_event_filter(ALSASeqClientInfo *self, + const ALSASeqEventType *event_types, + gsize event_type_count, GError **error) { ALSASeqClientInfoPrivate *priv; int i; - g_return_if_fail(ALSASEQ_IS_CLIENT_INFO(self)); + g_return_val_if_fail(ALSASEQ_IS_CLIENT_INFO(self), FALSE); priv = alsaseq_client_info_get_instance_private(self); - g_return_if_fail(event_types != NULL); - g_return_if_fail(error == NULL || *error == NULL); + g_return_val_if_fail(event_types != NULL, FALSE); + g_return_val_if_fail(error == NULL || *error == NULL, FALSE); memset(priv->info.event_filter, 0, sizeof(priv->info.event_filter)); @@ -241,6 +242,8 @@ void alsaseq_client_info_set_event_filter(ALSASeqClientInfo *self, if (order < G_N_ELEMENTS(priv->info.event_filter)) priv->info.event_filter[order] |= 1u << idx; } + + return TRUE; } /** @@ -252,23 +255,24 @@ void alsaseq_client_info_set_event_filter(ALSASeqClientInfo *self, * @error: A [struct@GLib.Error]. * * Get the list of type of events configured to be listen. + * + * Returns: %TRUE when the overall operation finishes successfully, else %FALSE. */ -void alsaseq_client_info_get_event_filter(ALSASeqClientInfo *self, - ALSASeqEventType **event_types, - gsize *event_type_count, - GError **error) +gboolean alsaseq_client_info_get_event_filter(ALSASeqClientInfo *self, + ALSASeqEventType **event_types, + gsize *event_type_count, GError **error) { ALSASeqClientInfoPrivate *priv; unsigned int count; unsigned int index; int i; - g_return_if_fail(ALSASEQ_IS_CLIENT_INFO(self)); + g_return_val_if_fail(ALSASEQ_IS_CLIENT_INFO(self), FALSE); priv = alsaseq_client_info_get_instance_private(self); - g_return_if_fail(event_types != NULL); - g_return_if_fail(event_type_count != NULL); - g_return_if_fail(error == NULL || *error == NULL); + g_return_val_if_fail(event_types != NULL, FALSE); + g_return_val_if_fail(event_type_count != NULL, FALSE); + g_return_val_if_fail(error == NULL || *error == NULL, FALSE); count = 0; for (i = 0; i < SNDRV_SEQ_EVENT_NONE + 1; ++i) { @@ -283,7 +287,7 @@ void alsaseq_client_info_get_event_filter(ALSASeqClientInfo *self, if (count == 0) { *event_types = NULL; *event_type_count = 0; - return; + return TRUE; } *event_types = g_malloc0_n(count, sizeof(*event_types)); @@ -301,6 +305,8 @@ void alsaseq_client_info_get_event_filter(ALSASeqClientInfo *self, ++index; } } + + return TRUE; } void seq_client_info_refer_private(ALSASeqClientInfo *self, diff --git a/src/seq/client-info.h b/src/seq/client-info.h index 128275c..fe668d3 100644 --- a/src/seq/client-info.h +++ b/src/seq/client-info.h @@ -16,15 +16,13 @@ struct _ALSASeqClientInfoClass { ALSASeqClientInfo *alsaseq_client_info_new(); -void alsaseq_client_info_set_event_filter(ALSASeqClientInfo *self, - const ALSASeqEventType *event_types, - gsize event_type_count, - GError **error); - -void alsaseq_client_info_get_event_filter(ALSASeqClientInfo *self, - ALSASeqEventType **event_types, - gsize *event_type_count, - GError **error); +gboolean alsaseq_client_info_set_event_filter(ALSASeqClientInfo *self, + const ALSASeqEventType *event_types, + gsize event_type_count, GError **error); + +gboolean alsaseq_client_info_get_event_filter(ALSASeqClientInfo *self, + ALSASeqEventType **event_types, + gsize *event_type_count, GError **error); G_END_DECLS -- 2.47.3