]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
seq: client_info: rewrite public API to return gboolean according to GNOME convention
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Tue, 31 May 2022 01:41:31 +0000 (10:41 +0900)
committer坂本 貴史 <o-takashi@sakamocchi.jp>
Tue, 31 May 2022 02:31:59 +0000 (11:31 +0900)
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 <o-takashi@sakamocchi.jp>
src/seq/alsaseq.map
src/seq/client-info.c
src/seq/client-info.h

index 01a0df27f739ca0fbdce2994bd00525090311152..568601ad0936ed3248c75b2d0540cda796d225c7 100644 (file)
@@ -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;
index 882236687a88ad06ebda0f8ce8af66f4bf6c0087..40d5402ab1749b1bd3db066b1a6f418fb9f59c88 100644 (file)
@@ -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,
index 128275cce12fcf9b76e800b9816532dd35e5ec25..fe668d35523985ce5f24db4ca2e191af15abb2bb 100644 (file)
@@ -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