From: Takashi Sakamoto Date: Tue, 31 May 2022 01:41:31 +0000 (+0900) Subject: seq: client_info: rewrite public API to return gboolean according to GNOME convention X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=69c0b66ac6dc440db1e11301b77a50ec43ae8038;p=alsa-gobject.git 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 --- 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