]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
seq: event_cntr: rewrite public API to return gboolean according to GNOME convention topic/gnome-throw-convention
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Tue, 31 May 2022 01:41:31 +0000 (10:41 +0900)
committerTakashi Sakamoto <o-takashi@sakamocchi.jp>
Tue, 31 May 2022 01:41:31 +0000 (10:41 +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>
samples/seq
src/seq/alsaseq.map
src/seq/event-cntr.c
src/seq/event-cntr.h

index c5f3db4426937d0435852ab11e1f07afab1dca72..0cbb5e74eefe61fcf8368649333cdc6822999617 100755 (executable)
@@ -77,7 +77,7 @@ ev_cntr.set_queue_id(0, ALSASeq.SpecificQueueId.DIRECT)
 ev_cntr.set_dst(0, ALSASeq.Addr.new(ALSASeq.SpecificClientId.SYSTEM,
                                     ALSASeq.SpecificPortId.TIMER));
 ev_cntr.set_src(0, ALSASeq.Addr.new(client.get_property('client-id'), 0));
-data = ev_cntr.get_queue_data(0)
+_, data = ev_cntr.get_queue_data(0)
 data.set_queue_id(queue_id)
 ev_cntr.set_queue_data(0, data)
 
@@ -99,21 +99,28 @@ def handle_event(client, ev_cntr):
     print('{} events:'.format(count))
     for i in range(count):
         print('  Event {}:'.format(i))
-        print('    type:', ev_cntr.get_event_type(i).value_nick)
-        print('    tstamp-mode:', ev_cntr.get_tstamp_mode(i).value_nick)
-        print('    time-mode:', ev_cntr.get_time_mode(i).value_nick)
-        print('    length-mode:', ev_cntr.get_length_mode(i).value_nick)
-        print('    priority-mode:', ev_cntr.get_priority_mode(i).value_nick)
-        print('    tag:', ev_cntr.get_tag(i))
-        print('    queue-id:', ev_cntr.get_queue_id(i))
-        tstamp = ev_cntr.get_tstamp(i)
+        _, ev_type = ev_cntr.get_event_type(i)
+        print('    type:', ev_type.value_nick)
+        _, tstamp_mode = ev_cntr.get_tstamp_mode(i)
+        print('    tstamp-mode:', tstamp_mode.value_nick)
+        _, time_mode = ev_cntr.get_time_mode(i)
+        print('    time-mode:', time_mode.value_nick)
+        _, length_mode = ev_cntr.get_length_mode(i)
+        print('    length-mode:', length_mode.value_nick)
+        _, priority_mode = ev_cntr.get_priority_mode(i)
+        print('    priority-mode:', priority_mode.value_nick)
+        _, tag = ev_cntr.get_tag(i)
+        print('    tag:', tag)
+        _, queue_id = ev_cntr.get_queue_id(i)
+        print('    queue-id:', queue_id)
+        _, tstamp = ev_cntr.get_tstamp(i)
         if ev_cntr.get_tstamp_mode(i) == ALSASeq.EventTimestampMode.TICK:
             print('    tstamp:', tstamp.get_tick_time())
         else:
             print('    tstamp:', tstamp.get_real_time())
-        dst = ev_cntr.get_dst(i)
+        _, dst = ev_cntr.get_dst(i)
         print('    dst:', dst.get_client_id(), dst.get_port_id())
-        src = ev_cntr.get_src(i)
+        _, src = ev_cntr.get_src(i)
         print('    src:', src.get_client_id(), src.get_port_id())
 client.connect('handle-event', handle_event)
 
index 568601ad0936ed3248c75b2d0540cda796d225c7..fbd02b0c8122e6f3663d48a5228d8d0f747ff0b4 100644 (file)
@@ -132,47 +132,6 @@ ALSA_GOBJECT_0_0_0 {
     "alsaseq_event_cntr_get_type";
     "alsaseq_event_cntr_new";
     "alsaseq_event_cntr_count_events";
-    "alsaseq_event_cntr_calculate_pool_consumption";
-    "alsaseq_event_cntr_get_event_type";
-    "alsaseq_event_cntr_set_event_type";
-    "alsaseq_event_cntr_get_tstamp_mode";
-    "alsaseq_event_cntr_set_tstamp_mode";
-    "alsaseq_event_cntr_get_time_mode";
-    "alsaseq_event_cntr_set_time_mode";
-    "alsaseq_event_cntr_get_length_mode";
-    "alsaseq_event_cntr_set_length_mode";
-    "alsaseq_event_cntr_get_priority_mode";
-    "alsaseq_event_cntr_set_priority_mode";
-    "alsaseq_event_cntr_get_tag";
-    "alsaseq_event_cntr_set_tag";
-    "alsaseq_event_cntr_get_queue_id";
-    "alsaseq_event_cntr_set_queue_id";
-    "alsaseq_event_cntr_get_tstamp";
-    "alsaseq_event_cntr_set_tstamp";
-    "alsaseq_event_cntr_get_dst";
-    "alsaseq_event_cntr_set_dst";
-    "alsaseq_event_cntr_get_src";
-    "alsaseq_event_cntr_set_src";
-    "alsaseq_event_cntr_get_note_data";
-    "alsaseq_event_cntr_set_note_data";
-    "alsaseq_event_cntr_get_ctl_data";
-    "alsaseq_event_cntr_set_ctl_data";
-    "alsaseq_event_cntr_get_byte_data";
-    "alsaseq_event_cntr_set_byte_data";
-    "alsaseq_event_cntr_get_quadlet_data";
-    "alsaseq_event_cntr_set_quadlet_data";
-    "alsaseq_event_cntr_get_blob_data";
-    "alsaseq_event_cntr_set_blob_data";
-    "alsaseq_event_cntr_get_queue_data";
-    "alsaseq_event_cntr_set_queue_data";
-    "alsaseq_event_cntr_get_tstamp_data";
-    "alsaseq_event_cntr_set_tstamp_data";
-    "alsaseq_event_cntr_get_addr_data";
-    "alsaseq_event_cntr_set_addr_data";
-    "alsaseq_event_cntr_get_connect_data";
-    "alsaseq_event_cntr_set_connect_data";
-    "alsaseq_event_cntr_get_result_data";
-    "alsaseq_event_cntr_set_result_data";
   local:
     *;
 };
@@ -223,4 +182,46 @@ ALSA_GOBJECT_0_3_0 {
 
     "alsaseq_client_info_set_event_filter";
     "alsaseq_client_info_get_event_filter";
+
+    "alsaseq_event_cntr_calculate_pool_consumption";
+    "alsaseq_event_cntr_get_event_type";
+    "alsaseq_event_cntr_set_event_type";
+    "alsaseq_event_cntr_get_tstamp_mode";
+    "alsaseq_event_cntr_set_tstamp_mode";
+    "alsaseq_event_cntr_get_time_mode";
+    "alsaseq_event_cntr_set_time_mode";
+    "alsaseq_event_cntr_get_length_mode";
+    "alsaseq_event_cntr_set_length_mode";
+    "alsaseq_event_cntr_get_priority_mode";
+    "alsaseq_event_cntr_set_priority_mode";
+    "alsaseq_event_cntr_get_tag";
+    "alsaseq_event_cntr_set_tag";
+    "alsaseq_event_cntr_get_queue_id";
+    "alsaseq_event_cntr_set_queue_id";
+    "alsaseq_event_cntr_get_tstamp";
+    "alsaseq_event_cntr_set_tstamp";
+    "alsaseq_event_cntr_get_dst";
+    "alsaseq_event_cntr_set_dst";
+    "alsaseq_event_cntr_get_src";
+    "alsaseq_event_cntr_set_src";
+    "alsaseq_event_cntr_get_note_data";
+    "alsaseq_event_cntr_set_note_data";
+    "alsaseq_event_cntr_get_ctl_data";
+    "alsaseq_event_cntr_set_ctl_data";
+    "alsaseq_event_cntr_get_byte_data";
+    "alsaseq_event_cntr_set_byte_data";
+    "alsaseq_event_cntr_get_quadlet_data";
+    "alsaseq_event_cntr_set_quadlet_data";
+    "alsaseq_event_cntr_get_blob_data";
+    "alsaseq_event_cntr_set_blob_data";
+    "alsaseq_event_cntr_get_queue_data";
+    "alsaseq_event_cntr_set_queue_data";
+    "alsaseq_event_cntr_get_tstamp_data";
+    "alsaseq_event_cntr_set_tstamp_data";
+    "alsaseq_event_cntr_get_addr_data";
+    "alsaseq_event_cntr_set_addr_data";
+    "alsaseq_event_cntr_get_connect_data";
+    "alsaseq_event_cntr_set_connect_data";
+    "alsaseq_event_cntr_get_result_data";
+    "alsaseq_event_cntr_set_result_data";
 } ALSA_GOBJECT_0_2_0;
index 9d69c8dfb46993194f1998740b536748749eb4fc..e47f4ef3ae482927bf85b3793fe8258974bc2120 100644 (file)
@@ -216,20 +216,22 @@ void alsaseq_event_cntr_count_events(ALSASeqEventCntr *self, gsize *count)
  * @error: A [struct@GLib.Error].
  *
  * Calculate the amount of cells in client pool to be consumed by a part of events in the container.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_calculate_pool_consumption(ALSASeqEventCntr *self,
-                                    gsize count, gsize *cells, GError **error)
+gboolean alsaseq_event_cntr_calculate_pool_consumption(ALSASeqEventCntr *self, gsize count,
+                                                       gsize *cells, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
     gsize total;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(cells != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(cells != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     *cells = 0;
     total = 0;
@@ -242,6 +244,8 @@ void alsaseq_event_cntr_calculate_pool_consumption(ALSASeqEventCntr *self,
             break;
         ++total;
     }
+
+    return TRUE;
 }
 
 /**
@@ -252,26 +256,30 @@ void alsaseq_event_cntr_calculate_pool_consumption(ALSASeqEventCntr *self,
  * @error: A [struct@GLib.Error].
  *
  * Get the type of event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_event_type(ALSASeqEventCntr *self, gsize index,
-                                    ALSASeqEventType *ev_type, GError **error)
+gboolean alsaseq_event_cntr_get_event_type(ALSASeqEventCntr *self, gsize index,
+                                           ALSASeqEventType *ev_type, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(ev_type != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(ev_type != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *ev_type = (ALSASeqEventType)ev->type;
+
+    return TRUE;
 }
 
 /**
@@ -282,26 +290,29 @@ void alsaseq_event_cntr_get_event_type(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Set the type to event pointed by the index;
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_event_type(ALSASeqEventCntr *self,
-                                         gsize index, ALSASeqEventType ev_type,
-                                         GError **error)
+gboolean alsaseq_event_cntr_set_event_type(ALSASeqEventCntr *self, gsize index,
+                                           ALSASeqEventType ev_type, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     ev->type = (snd_seq_event_type_t)ev_type;
+
+    return TRUE;
 }
 
 /**
@@ -312,27 +323,30 @@ void alsaseq_event_cntr_set_event_type(ALSASeqEventCntr *self,
  * @error: A [struct@GLib.Error].
  *
  * Get the mode of timestamping for the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_tstamp_mode(ALSASeqEventCntr *self, gsize index,
-                                          ALSASeqEventTimestampMode *mode,
-                                          GError **error)
+gboolean alsaseq_event_cntr_get_tstamp_mode(ALSASeqEventCntr *self, gsize index,
+                                            ALSASeqEventTimestampMode *mode, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(mode != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(mode != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *mode = (ALSASeqEventTimestampMode)(ev->flags & SNDRV_SEQ_TIME_STAMP_MASK);
+
+    return TRUE;
 }
 
 /**
@@ -343,27 +357,30 @@ void alsaseq_event_cntr_get_tstamp_mode(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Set the mode of timestamping for the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_tstamp_mode(ALSASeqEventCntr *self, gsize index,
-                                          ALSASeqEventTimestampMode mode,
-                                          GError **error)
+gboolean alsaseq_event_cntr_set_tstamp_mode(ALSASeqEventCntr *self, gsize index,
+                                            ALSASeqEventTimestampMode mode, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     ev->flags &= ~SNDRV_SEQ_TIME_STAMP_MASK;
     ev->flags |= (unsigned char)mode;
+
+    return TRUE;
 }
 
 /**
@@ -374,27 +391,30 @@ void alsaseq_event_cntr_set_tstamp_mode(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the mode of time for the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_time_mode(ALSASeqEventCntr *self, gsize index,
-                                        ALSASeqEventTimeMode *mode,
-                                        GError **error)
+gboolean alsaseq_event_cntr_get_time_mode(ALSASeqEventCntr *self, gsize index,
+                                          ALSASeqEventTimeMode *mode, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(mode != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(mode != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *mode = (ALSASeqEventTimeMode)(ev->flags & SNDRV_SEQ_TIME_MODE_MASK);
+
+    return TRUE;
 }
 
 /**
@@ -405,27 +425,30 @@ void alsaseq_event_cntr_get_time_mode(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Set the mode of time for the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_time_mode(ALSASeqEventCntr *self, gsize index,
-                                        ALSASeqEventTimeMode mode,
-                                        GError **error)
+gboolean alsaseq_event_cntr_set_time_mode(ALSASeqEventCntr *self, gsize index,
+                                          ALSASeqEventTimeMode mode, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     ev->flags &= ~SNDRV_SEQ_TIME_MODE_MASK;
     ev->flags |= (unsigned char)mode;
+
+    return TRUE;
 }
 
 /**
@@ -436,27 +459,30 @@ void alsaseq_event_cntr_set_time_mode(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the mode of length for the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_length_mode(ALSASeqEventCntr *self, gsize index,
-                                          ALSASeqEventLengthMode *mode,
-                                          GError **error)
+gboolean alsaseq_event_cntr_get_length_mode(ALSASeqEventCntr *self, gsize index,
+                                            ALSASeqEventLengthMode *mode, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(mode != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(mode != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *mode = (ALSASeqEventLengthMode)(ev->flags & SNDRV_SEQ_EVENT_LENGTH_MASK);
+
+    return TRUE;
 }
 
 /**
@@ -467,27 +493,30 @@ void alsaseq_event_cntr_get_length_mode(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the mode of priority for the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_priority_mode(
-                                ALSASeqEventCntr *self, gsize index,
-                                ALSASeqEventPriorityMode *mode, GError **error)
+gboolean alsaseq_event_cntr_get_priority_mode(ALSASeqEventCntr *self, gsize index,
+                                              ALSASeqEventPriorityMode *mode, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(mode != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(mode != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *mode = (ALSASeqEventPriorityMode)(ev->flags & SNDRV_SEQ_PRIORITY_MASK);
+
+    return TRUE;
 }
 
 /**
@@ -498,27 +527,30 @@ void alsaseq_event_cntr_get_priority_mode(
  * @error: A [struct@GLib.Error].
  *
  * Set the mode of priority for the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_priority_mode(
-                                ALSASeqEventCntr *self, gsize index,
-                                ALSASeqEventPriorityMode mode, GError **error)
+gboolean alsaseq_event_cntr_set_priority_mode(ALSASeqEventCntr *self, gsize index,
+                                              ALSASeqEventPriorityMode mode, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     ev->flags &= ~SNDRV_SEQ_PRIORITY_MASK;
     ev->flags |= (unsigned char)mode;
+
+    return TRUE;
 }
 
 /**
@@ -529,26 +561,30 @@ void alsaseq_event_cntr_set_priority_mode(
  * @error: A [struct@GLib.Error].
  *
  * Get the tag assignd to the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_tag(ALSASeqEventCntr *self, gsize index,
-                                  gint8 *tag, GError **error)
+gboolean alsaseq_event_cntr_get_tag(ALSASeqEventCntr *self, gsize index, gint8 *tag,
+                                    GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(tag != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(tag != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *tag = ev->tag;
+
+    return TRUE;
 }
 
 /**
@@ -559,25 +595,28 @@ void alsaseq_event_cntr_get_tag(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the tag assignd to the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_tag(ALSASeqEventCntr *self, gsize index,
-                                  gint8 tag, GError **error)
+gboolean alsaseq_event_cntr_set_tag(ALSASeqEventCntr *self, gsize index, gint8 tag, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     ev->tag = tag;
+
+    return TRUE;
 }
 
 /**
@@ -589,26 +628,30 @@ void alsaseq_event_cntr_set_tag(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the numeric ID of queue to deliver the event.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_queue_id(ALSASeqEventCntr *self, gsize index,
-                                       guint8 *queue_id, GError **error)
+gboolean alsaseq_event_cntr_get_queue_id(ALSASeqEventCntr *self, gsize index, guint8 *queue_id,
+                                         GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(queue_id != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(queue_id != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *queue_id = ev->queue;
+
+    return TRUE;
 }
 
 /**
@@ -620,25 +663,29 @@ void alsaseq_event_cntr_get_queue_id(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Set the numeric ID of queue to deliver the event.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_queue_id(ALSASeqEventCntr *self, gsize index,
-                                       guint8 queue_id, GError **error)
+gboolean alsaseq_event_cntr_set_queue_id(ALSASeqEventCntr *self, gsize index, guint8 queue_id,
+                                         GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     ev->queue = queue_id;
+
+    return TRUE;
 }
 
 /**
@@ -650,26 +697,30 @@ void alsaseq_event_cntr_set_queue_id(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the timestamp of event pointed by index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_tstamp(ALSASeqEventCntr *self, gsize index,
-                                const ALSASeqTstamp **tstamp, GError **error)
+gboolean alsaseq_event_cntr_get_tstamp(ALSASeqEventCntr *self, gsize index,
+                                       const ALSASeqTstamp **tstamp, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(tstamp != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(tstamp != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *tstamp = (const ALSASeqTstamp *)&ev->time;
+
+    return TRUE;
 }
 
 /**
@@ -680,26 +731,30 @@ void alsaseq_event_cntr_get_tstamp(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Set the timestamp for the event pointed by index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_tstamp(ALSASeqEventCntr *self, gsize index,
-                                    const ALSASeqTstamp *tstamp, GError **error)
+gboolean alsaseq_event_cntr_set_tstamp(ALSASeqEventCntr *self, gsize index,
+                                       const ALSASeqTstamp *tstamp, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(tstamp != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(tstamp != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     ev->time = *tstamp;
+
+    return TRUE;
 }
 
 /**
@@ -710,26 +765,30 @@ void alsaseq_event_cntr_set_tstamp(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the destination of event pointed by index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_dst(ALSASeqEventCntr *self, gsize index,
-                                  const ALSASeqAddr **dst, GError **error)
+gboolean alsaseq_event_cntr_get_dst(ALSASeqEventCntr *self, gsize index, const ALSASeqAddr **dst,
+                                    GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(dst != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(dst != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *dst = (const ALSASeqAddr *)&ev->dest;
+
+    return TRUE;
 }
 
 /**
@@ -740,26 +799,30 @@ void alsaseq_event_cntr_get_dst(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Set the destination of event pointed by index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_dst(ALSASeqEventCntr *self, gsize index,
-                                  const ALSASeqAddr *dst, GError **error)
+gboolean alsaseq_event_cntr_set_dst(ALSASeqEventCntr *self, gsize index, const ALSASeqAddr *dst,
+                                    GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(dst != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(dst != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     ev->dest = *dst;
+
+    return TRUE;
 }
 
 /**
@@ -770,26 +833,30 @@ void alsaseq_event_cntr_set_dst(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the destination of event pointed by index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_src(ALSASeqEventCntr *self, gsize index,
-                                  const ALSASeqAddr **src, GError **error)
+gboolean alsaseq_event_cntr_get_src(ALSASeqEventCntr *self, gsize index, const ALSASeqAddr **src,
+                                    GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(src != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(src != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *src = (const ALSASeqAddr *)&ev->source;
+
+    return TRUE;
 }
 
 /**
@@ -800,35 +867,37 @@ void alsaseq_event_cntr_get_src(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Set the destination of event pointed by index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_src(ALSASeqEventCntr *self, gsize index,
-                                  const ALSASeqAddr *src, GError **error)
+gboolean alsaseq_event_cntr_set_src(ALSASeqEventCntr *self, gsize index, const ALSASeqAddr *src,
+                                    GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(src != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(src != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     ev->source = *src;
+
+    return TRUE;
 }
 
-static void ensure_fixed_length_event(ALSASeqEventCntrPrivate *priv,
-                                      struct snd_seq_event *ev, GError **error)
+static gboolean ensure_fixed_length_event(ALSASeqEventCntrPrivate *priv, struct snd_seq_event *ev,
+                                          GError **error)
 {
-    if (!priv->allocated) {
-        g_return_if_fail(priv->allocated);
-        return;
-    }
+    if (!priv->allocated)
+        g_return_val_if_fail(priv->allocated, FALSE);
 
     switch (ev->flags & SNDRV_SEQ_EVENT_LENGTH_MASK) {
     case SNDRV_SEQ_EVENT_LENGTH_VARIABLE:
@@ -852,11 +921,13 @@ static void ensure_fixed_length_event(ALSASeqEventCntrPrivate *priv,
 
     ev->flags &= ~SNDRV_SEQ_EVENT_LENGTH_MASK;
     ev->flags |= SNDRV_SEQ_EVENT_LENGTH_FIXED;
+
+    return TRUE;
 }
 
-static void ensure_variable_length_event(ALSASeqEventCntrPrivate *priv,
-                                struct snd_seq_event *ev, const guint8 *data,
-                                gsize size, GError **error)
+static gboolean ensure_variable_length_event(ALSASeqEventCntrPrivate *priv,
+                                             struct snd_seq_event *ev, const guint8 *data,
+                                             gsize size, GError **error)
 {
     guint8 *pos = (guint8 *)ev;
     ptrdiff_t from_head = pos + sizeof(*ev) - priv->buf;
@@ -864,10 +935,8 @@ static void ensure_variable_length_event(ALSASeqEventCntrPrivate *priv,
     guint8 *next_ev;
     guint8 *new;
 
-    if (!priv->allocated) {
-        g_return_if_fail(priv->allocated);
-        return;
-    }
+    if (!priv->allocated)
+        g_return_val_if_fail(priv->allocated, FALSE);
 
     switch (ev->flags & SNDRV_SEQ_EVENT_LENGTH_MASK) {
     case SNDRV_SEQ_EVENT_LENGTH_VARIABLE:
@@ -899,6 +968,8 @@ static void ensure_variable_length_event(ALSASeqEventCntrPrivate *priv,
 
     ev->flags &= ~SNDRV_SEQ_EVENT_LENGTH_MASK;
     ev->flags |= SNDRV_SEQ_EVENT_LENGTH_VARIABLE;
+
+    return TRUE;
 }
 
 /**
@@ -909,25 +980,29 @@ static void ensure_variable_length_event(ALSASeqEventCntrPrivate *priv,
  * @error: A [struct@GLib.Error].
  *
  * Get the note data of event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_note_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataNote **data, GError **error)
+gboolean alsaseq_event_cntr_get_note_data(ALSASeqEventCntr *self, gsize index,
+                                          const ALSASeqEventDataNote **data, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *data = (const ALSASeqEventDataNote *)&ev->data.note;
+
+    return TRUE;
 }
 
 /**
@@ -938,29 +1013,32 @@ void alsaseq_event_cntr_get_note_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Copy the note data to the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_note_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataNote *data, GError **error)
+gboolean alsaseq_event_cntr_set_note_data(ALSASeqEventCntr *self, gsize index,
+                                          const ALSASeqEventDataNote *data, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
-    ensure_fixed_length_event(priv, ev, error);
-    if (*error != NULL)
-        return;
+    if (!ensure_fixed_length_event(priv, ev, error))
+        return FALSE;
 
     ev->data.note = *(struct snd_seq_ev_note *)data;
+
+    return TRUE;
 }
 
 /**
@@ -971,25 +1049,29 @@ void alsaseq_event_cntr_set_note_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the control data of event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_ctl_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataCtl **data, GError **error)
+gboolean alsaseq_event_cntr_get_ctl_data(ALSASeqEventCntr *self, gsize index,
+                                         const ALSASeqEventDataCtl **data, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *data = (const ALSASeqEventDataCtl *)&ev->data.control;
+
+    return TRUE;
 }
 
 /**
@@ -1000,29 +1082,32 @@ void alsaseq_event_cntr_get_ctl_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Copy the control data to the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_ctl_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataCtl *data, GError **error)
+gboolean alsaseq_event_cntr_set_ctl_data(ALSASeqEventCntr *self, gsize index,
+                                         const ALSASeqEventDataCtl *data, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
-    ensure_fixed_length_event(priv, ev, error);
-    if (*error != NULL)
-        return;
+    if (!ensure_fixed_length_event(priv, ev, error))
+        return FALSE;
 
     ev->data.control = *(struct snd_seq_ev_ctrl *)data;
+
+    return TRUE;
 }
 
 /**
@@ -1033,25 +1118,29 @@ void alsaseq_event_cntr_set_ctl_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the byte data of event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_byte_data(ALSASeqEventCntr *self, gsize index,
-                                        const guint8 *data[12], GError **error)
+gboolean alsaseq_event_cntr_get_byte_data(ALSASeqEventCntr *self, gsize index,
+                                          const guint8 *data[12], GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *data = ev->data.raw8.d;
+
+    return TRUE;
 }
 
 /**
@@ -1062,29 +1151,32 @@ void alsaseq_event_cntr_get_byte_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Copy the byte data to the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_byte_data(ALSASeqEventCntr *self, gsize index,
-                                        const guint8 data[12], GError **error)
+gboolean alsaseq_event_cntr_set_byte_data(ALSASeqEventCntr *self, gsize index,
+                                          const guint8 data[12], GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
-    ensure_fixed_length_event(priv, ev, error);
-    if (*error != NULL)
-        return;
+    if (!ensure_fixed_length_event(priv, ev, error))
+        return FALSE;
 
     memcpy(ev->data.raw8.d, data, sizeof(ev->data.raw8.d));
+
+    return TRUE;
 }
 
 /**
@@ -1095,26 +1187,30 @@ void alsaseq_event_cntr_set_byte_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the quadlet data of event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_quadlet_data(ALSASeqEventCntr *self, gsize index,
-                                        const guint32 *data[3], GError **error)
+gboolean alsaseq_event_cntr_get_quadlet_data(ALSASeqEventCntr *self, gsize index,
+                                             const guint32 *data[3], GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *data = ev->data.raw32.d;
+
+    return TRUE;
 }
 
 /**
@@ -1125,30 +1221,33 @@ void alsaseq_event_cntr_get_quadlet_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Copy the quadlet data to the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_quadlet_data(ALSASeqEventCntr *self, gsize index,
-                                        const guint32 data[3], GError **error)
+gboolean alsaseq_event_cntr_set_quadlet_data(ALSASeqEventCntr *self, gsize index,
+                                             const guint32 data[3], GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
 
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
-    ensure_fixed_length_event(priv, ev, error);
-    if (*error != NULL)
-        return;
+    if (!ensure_fixed_length_event(priv, ev, error))
+        return FALSE;
 
     memcpy(ev->data.raw32.d, data, sizeof(ev->data.raw32.d));
+
+    return TRUE;
 }
 
 /**
@@ -1160,25 +1259,26 @@ void alsaseq_event_cntr_set_quadlet_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Refer to the blob data of event.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_blob_data(ALSASeqEventCntr *self, gsize index,
-                                        const guint8 **data, gsize *size,
-                                        GError **error)
+gboolean alsaseq_event_cntr_get_blob_data(ALSASeqEventCntr *self, gsize index,
+                                          const guint8 **data, gsize *size, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(size != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(size != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     switch (ev->flags & SNDRV_SEQ_EVENT_LENGTH_MASK) {
     case SNDRV_SEQ_EVENT_LENGTH_VARIABLE:
@@ -1192,9 +1292,10 @@ void alsaseq_event_cntr_get_blob_data(ALSASeqEventCntr *self, gsize index,
         break;
     }
     default:
-        g_return_if_reached();
-        break;
+        g_return_val_if_reached(FALSE);
     }
+
+    return TRUE;
 }
 
 /**
@@ -1206,26 +1307,27 @@ void alsaseq_event_cntr_get_blob_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Copy the quadlet data to the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_blob_data(ALSASeqEventCntr *self, gsize index,
-                                        const guint8 *data, gsize size,
-                                        GError **error)
+gboolean alsaseq_event_cntr_set_blob_data(ALSASeqEventCntr *self, gsize index,
+                                          const guint8 *data, gsize size, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
-    ensure_variable_length_event(priv, ev, data, size, error);
+    return ensure_variable_length_event(priv, ev, data, size, error);
 }
 
 /**
@@ -1236,25 +1338,29 @@ void alsaseq_event_cntr_set_blob_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the queue data of event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_queue_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataQueue **data, GError **error)
+gboolean alsaseq_event_cntr_get_queue_data(ALSASeqEventCntr *self, gsize index,
+                                           const ALSASeqEventDataQueue **data, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *data = (const ALSASeqEventDataQueue *)&ev->data.queue;
+
+    return TRUE;
 }
 
 /**
@@ -1265,29 +1371,32 @@ void alsaseq_event_cntr_get_queue_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Copy the queue data to the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_queue_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataQueue *data, GError **error)
+gboolean alsaseq_event_cntr_set_queue_data(ALSASeqEventCntr *self, gsize index,
+                                           const ALSASeqEventDataQueue *data, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
-    ensure_fixed_length_event(priv, ev, error);
-    if (*error != NULL)
-        return;
+    if (!ensure_fixed_length_event(priv, ev, error))
+        return FALSE;
 
     ev->data.queue = *(struct snd_seq_ev_queue_control *)data;
+
+    return TRUE;
 }
 
 /**
@@ -1298,25 +1407,29 @@ void alsaseq_event_cntr_set_queue_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the timestamp data of event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_tstamp_data(ALSASeqEventCntr *self, gsize index,
-                                    const ALSASeqTstamp **data, GError **error)
+gboolean alsaseq_event_cntr_get_tstamp_data(ALSASeqEventCntr *self, gsize index,
+                                            const ALSASeqTstamp **data, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *data = (const ALSASeqTstamp *)&ev->data.time;
+
+    return TRUE;
 }
 
 /**
@@ -1327,29 +1440,32 @@ void alsaseq_event_cntr_get_tstamp_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Copy the timestamp data to the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_tstamp_data(ALSASeqEventCntr *self, gsize index,
-                                    const ALSASeqTstamp *data, GError **error)
+gboolean alsaseq_event_cntr_set_tstamp_data(ALSASeqEventCntr *self, gsize index,
+                                            const ALSASeqTstamp *data, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
-    ensure_fixed_length_event(priv, ev, error);
-    if (*error != NULL)
-        return;
+    if (!ensure_fixed_length_event(priv, ev, error))
+        return FALSE;
 
     ev->data.time = *(union snd_seq_timestamp *)data;
+
+    return TRUE;
 }
 
 /**
@@ -1360,25 +1476,29 @@ void alsaseq_event_cntr_set_tstamp_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the address data of event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_addr_data(ALSASeqEventCntr *self, gsize index,
-                                    const ALSASeqAddr **data, GError **error)
+gboolean alsaseq_event_cntr_get_addr_data(ALSASeqEventCntr *self, gsize index,
+                                          const ALSASeqAddr **data, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *data = (const ALSASeqAddr *)&ev->data.time;
+
+    return TRUE;
 }
 
 /**
@@ -1389,29 +1509,32 @@ void alsaseq_event_cntr_get_addr_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Copy the address data to the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_addr_data(ALSASeqEventCntr *self, gsize index,
-                                        const ALSASeqAddr *data, GError **error)
+gboolean alsaseq_event_cntr_set_addr_data(ALSASeqEventCntr *self, gsize index,
+                                          const ALSASeqAddr *data, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
-    ensure_fixed_length_event(priv, ev, error);
-    if (*error != NULL)
-        return;
+    if (!ensure_fixed_length_event(priv, ev, error))
+        return FALSE;
 
     ev->data.addr = *(struct snd_seq_addr *)data;
+
+    return TRUE;
 }
 
 /**
@@ -1422,25 +1545,29 @@ void alsaseq_event_cntr_set_addr_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the connect data of event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_connect_data(ALSASeqEventCntr *self, gsize index,
-                        const ALSASeqEventDataConnect **data, GError **error)
+gboolean alsaseq_event_cntr_get_connect_data(ALSASeqEventCntr *self, gsize index,
+                                             const ALSASeqEventDataConnect **data, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *data = (const ALSASeqEventDataConnect *)&ev->data.connect;
+
+    return TRUE;
 }
 
 /**
@@ -1451,29 +1578,32 @@ void alsaseq_event_cntr_get_connect_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Copy the connect data to the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_connect_data(ALSASeqEventCntr *self, gsize index,
-                        const ALSASeqEventDataConnect *data, GError **error)
+gboolean alsaseq_event_cntr_set_connect_data(ALSASeqEventCntr *self, gsize index,
+                                             const ALSASeqEventDataConnect *data, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
-    ensure_fixed_length_event(priv, ev, error);
-    if (*error != NULL)
-        return;
+    if (!ensure_fixed_length_event(priv, ev, error))
+        return FALSE;
 
     ev->data.connect = *(struct snd_seq_connect *)data;
+
+    return TRUE;
 }
 
 /**
@@ -1484,25 +1614,29 @@ void alsaseq_event_cntr_set_connect_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Get the result data of event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_get_result_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataResult **data, GError **error)
+gboolean alsaseq_event_cntr_get_result_data(ALSASeqEventCntr *self, gsize index,
+                                            const ALSASeqEventDataResult **data, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
     *data = (const ALSASeqEventDataResult *)&ev->data.result;
+
+    return TRUE;
 }
 
 /**
@@ -1513,29 +1647,32 @@ void alsaseq_event_cntr_get_result_data(ALSASeqEventCntr *self, gsize index,
  * @error: A [struct@GLib.Error].
  *
  * Copy the result data to the event pointed by the index.
+ *
+ * Returns: %TRUE when the overall operation finishes successfully, else %FALSE.
  */
-void alsaseq_event_cntr_set_result_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataResult *data, GError **error)
+gboolean alsaseq_event_cntr_set_result_data(ALSASeqEventCntr *self, gsize index,
+                                            const ALSASeqEventDataResult *data, GError **error)
 {
     ALSASeqEventCntrPrivate *priv;
     struct event_iterator iter;
     struct snd_seq_event *ev;
 
-    g_return_if_fail(ALSASEQ_IS_EVENT_CNTR(self));
+    g_return_val_if_fail(ALSASEQ_IS_EVENT_CNTR(self), FALSE);
     priv = alsaseq_event_cntr_get_instance_private(self);
 
-    g_return_if_fail(data != NULL);
-    g_return_if_fail(error == NULL || *error == NULL);
+    g_return_val_if_fail(data != NULL, FALSE);
+    g_return_val_if_fail(error == NULL || *error == NULL, FALSE);
 
     event_iterator_init(&iter, priv->buf, priv->length, priv->allocated);
     ev = event_iterator_find(&iter, index);
-    g_return_if_fail(ev != NULL);
+    g_return_val_if_fail(ev != NULL, FALSE);
 
-    ensure_fixed_length_event(priv, ev, error);
-    if (*error != NULL)
-        return;
+    if (!ensure_fixed_length_event(priv, ev, error))
+        return FALSE;
 
     ev->data.result = *(struct snd_seq_result *)data;
+
+    return TRUE;
 }
 
 void seq_event_cntr_set_buf(ALSASeqEventCntr *self, guint8 *buf,
index d9d32ce4a0758342bcc49fe9fa4b5820333f890e..8fbf7a006380615351f458361fd24a336cfb599f 100644 (file)
@@ -18,116 +18,105 @@ ALSASeqEventCntr *alsaseq_event_cntr_new(guint count, GError **error);
 
 void alsaseq_event_cntr_count_events(ALSASeqEventCntr *self, gsize *count);
 
-void alsaseq_event_cntr_calculate_pool_consumption(ALSASeqEventCntr *self,
-                                    gsize count, gsize *cells, GError **error);
+gboolean alsaseq_event_cntr_calculate_pool_consumption(ALSASeqEventCntr *self, gsize count,
+                                                       gsize *cells, GError **error);
 
-void alsaseq_event_cntr_get_event_type(ALSASeqEventCntr *self, gsize index,
-                                    ALSASeqEventType *ev_type, GError **error);
-void alsaseq_event_cntr_set_event_type(ALSASeqEventCntr *self,
-                                         gsize index, ALSASeqEventType ev_type,
+gboolean alsaseq_event_cntr_get_event_type(ALSASeqEventCntr *self, gsize index,
+                                           ALSASeqEventType *ev_type, GError **error);
+gboolean alsaseq_event_cntr_set_event_type(ALSASeqEventCntr *self, gsize index,
+                                           ALSASeqEventType ev_type, GError **error);
+
+gboolean alsaseq_event_cntr_get_tstamp_mode(ALSASeqEventCntr *self, gsize index,
+                                            ALSASeqEventTimestampMode *mode, GError **error);
+gboolean alsaseq_event_cntr_set_tstamp_mode(ALSASeqEventCntr *self, gsize index,
+                                            ALSASeqEventTimestampMode mode, GError **error);
+
+gboolean alsaseq_event_cntr_get_time_mode(ALSASeqEventCntr *self, gsize index,
+                                          ALSASeqEventTimeMode *mode, GError **error);
+gboolean alsaseq_event_cntr_set_time_mode(ALSASeqEventCntr *self, gsize index,
+                                          ALSASeqEventTimeMode mode, GError **error);
+
+gboolean alsaseq_event_cntr_get_length_mode(ALSASeqEventCntr *self, gsize index,
+                                            ALSASeqEventLengthMode *mode, GError **error);
+
+gboolean alsaseq_event_cntr_get_priority_mode(ALSASeqEventCntr *self, gsize index,
+                                              ALSASeqEventPriorityMode *mode, GError **error);
+gboolean alsaseq_event_cntr_set_priority_mode(ALSASeqEventCntr *self, gsize index,
+                                              ALSASeqEventPriorityMode mode, GError **error);
+
+gboolean alsaseq_event_cntr_get_tag(ALSASeqEventCntr *self, gsize index, gint8 *tag,
+                                    GError **error);
+gboolean alsaseq_event_cntr_set_tag(ALSASeqEventCntr *self, gsize index, gint8 tag, GError **error);
+
+gboolean alsaseq_event_cntr_get_queue_id(ALSASeqEventCntr *self, gsize index, guint8 *queue_id,
+                                         GError **error);
+gboolean alsaseq_event_cntr_set_queue_id(ALSASeqEventCntr *self, gsize index, guint8 queue_id,
                                          GError **error);
 
-void alsaseq_event_cntr_get_tstamp_mode(ALSASeqEventCntr *self, gsize index,
-                                          ALSASeqEventTimestampMode *mode,
-                                          GError **error);
-void alsaseq_event_cntr_set_tstamp_mode(ALSASeqEventCntr *self, gsize index,
-                                          ALSASeqEventTimestampMode mode,
-                                          GError **error);
-
-void alsaseq_event_cntr_get_time_mode(ALSASeqEventCntr *self, gsize index,
-                                        ALSASeqEventTimeMode *mode,
-                                        GError **error);
-void alsaseq_event_cntr_set_time_mode(ALSASeqEventCntr *self, gsize index,
-                                        ALSASeqEventTimeMode mode,
-                                        GError **error);
-
-void alsaseq_event_cntr_get_length_mode(ALSASeqEventCntr *self, gsize index,
-                                          ALSASeqEventLengthMode *mode,
-                                          GError **error);
-
-void alsaseq_event_cntr_get_priority_mode(
-                                ALSASeqEventCntr *self, gsize index,
-                                ALSASeqEventPriorityMode *mode, GError **error);
-void alsaseq_event_cntr_set_priority_mode(
-                                ALSASeqEventCntr *self, gsize index,
-                                ALSASeqEventPriorityMode mode, GError **error);
-
-void alsaseq_event_cntr_get_tag(ALSASeqEventCntr *self, gsize index,
-                                  gint8 *tag, GError **error);
-void alsaseq_event_cntr_set_tag(ALSASeqEventCntr *self, gsize index,
-                                  gint8 tag, GError **error);
-
-void alsaseq_event_cntr_get_queue_id(ALSASeqEventCntr *self, gsize index,
-                                       guint8 *queue_id, GError **error);
-void alsaseq_event_cntr_set_queue_id(ALSASeqEventCntr *self, gsize index,
-                                       guint8 queue_id, GError **error);
-
-void alsaseq_event_cntr_get_tstamp(ALSASeqEventCntr *self, gsize index,
-                                const ALSASeqTstamp **tstamp, GError **error);
-void alsaseq_event_cntr_set_tstamp(ALSASeqEventCntr *self, gsize index,
-                                    const ALSASeqTstamp *tstamp, GError **error);
-
-void alsaseq_event_cntr_get_dst(ALSASeqEventCntr *self, gsize index,
-                                  const ALSASeqAddr **dst, GError **error);
-void alsaseq_event_cntr_set_dst(ALSASeqEventCntr *self, gsize index,
-                                  const ALSASeqAddr *dst, GError **error);
-
-void alsaseq_event_cntr_get_src(ALSASeqEventCntr *self, gsize index,
-                                  const ALSASeqAddr **src, GError **error);
-void alsaseq_event_cntr_set_src(ALSASeqEventCntr *self, gsize index,
-                                  const ALSASeqAddr *src, GError **error);
-
-void alsaseq_event_cntr_get_note_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataNote **data, GError **error);
-void alsaseq_event_cntr_set_note_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataNote *data, GError **error);
-
-void alsaseq_event_cntr_get_ctl_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataCtl **data, GError **error);
-void alsaseq_event_cntr_set_ctl_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataCtl *data, GError **error);
-
-void alsaseq_event_cntr_get_byte_data(ALSASeqEventCntr *self, gsize index,
-                                        const guint8 *data[12], GError **error);
-void alsaseq_event_cntr_set_byte_data(ALSASeqEventCntr *self, gsize index,
-                                        const guint8 data[12], GError **error);
-
-void alsaseq_event_cntr_get_quadlet_data(ALSASeqEventCntr *self, gsize index,
-                                        const guint32 *data[3], GError **error);
-void alsaseq_event_cntr_set_quadlet_data(ALSASeqEventCntr *self, gsize index,
-                                        const guint32 data[3], GError **error);
-
-void alsaseq_event_cntr_get_blob_data(ALSASeqEventCntr *self, gsize index,
-                                        const guint8 **data, gsize *size,
-                                        GError **error);
-void alsaseq_event_cntr_set_blob_data(ALSASeqEventCntr *self, gsize index,
-                                        const guint8 *data, gsize size,
-                                        GError **error);
-
-void alsaseq_event_cntr_get_queue_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataQueue **data, GError **error);
-void alsaseq_event_cntr_set_queue_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataQueue *data, GError **error);
-
-void alsaseq_event_cntr_get_tstamp_data(ALSASeqEventCntr *self, gsize index,
-                                    const ALSASeqTstamp **data, GError **error);
-void alsaseq_event_cntr_set_tstamp_data(ALSASeqEventCntr *self, gsize index,
-                                    const ALSASeqTstamp *data, GError **error);
-
-void alsaseq_event_cntr_get_addr_data(ALSASeqEventCntr *self, gsize index,
-                                    const ALSASeqAddr **data, GError **error);
-void alsaseq_event_cntr_set_addr_data(ALSASeqEventCntr *self, gsize index,
-                                    const ALSASeqAddr *data, GError **error);
-
-void alsaseq_event_cntr_get_connect_data(ALSASeqEventCntr *self, gsize index,
-                        const ALSASeqEventDataConnect **data, GError **error);
-void alsaseq_event_cntr_set_connect_data(ALSASeqEventCntr *self, gsize index,
-                        const ALSASeqEventDataConnect *data, GError **error);
-
-void alsaseq_event_cntr_get_result_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataResult **data, GError **error);
-void alsaseq_event_cntr_set_result_data(ALSASeqEventCntr *self, gsize index,
-                            const ALSASeqEventDataResult *data, GError **error);
+gboolean alsaseq_event_cntr_get_tstamp(ALSASeqEventCntr *self, gsize index,
+                                       const ALSASeqTstamp **tstamp, GError **error);
+gboolean alsaseq_event_cntr_set_tstamp(ALSASeqEventCntr *self, gsize index,
+                                       const ALSASeqTstamp *tstamp, GError **error);
+
+gboolean alsaseq_event_cntr_get_dst(ALSASeqEventCntr *self, gsize index, const ALSASeqAddr **dst,
+                                    GError **error);
+gboolean alsaseq_event_cntr_set_dst(ALSASeqEventCntr *self, gsize index, const ALSASeqAddr *dst,
+                                    GError **error);
+
+gboolean alsaseq_event_cntr_get_src(ALSASeqEventCntr *self, gsize index, const ALSASeqAddr **src,
+                                    GError **error);
+gboolean alsaseq_event_cntr_set_src(ALSASeqEventCntr *self, gsize index, const ALSASeqAddr *src,
+                                    GError **error);
+
+gboolean alsaseq_event_cntr_get_note_data(ALSASeqEventCntr *self, gsize index,
+                                          const ALSASeqEventDataNote **data, GError **error);
+gboolean alsaseq_event_cntr_set_note_data(ALSASeqEventCntr *self, gsize index,
+                                          const ALSASeqEventDataNote *data, GError **error);
+
+gboolean alsaseq_event_cntr_get_ctl_data(ALSASeqEventCntr *self, gsize index,
+                                         const ALSASeqEventDataCtl **data, GError **error);
+gboolean alsaseq_event_cntr_set_ctl_data(ALSASeqEventCntr *self, gsize index,
+                                         const ALSASeqEventDataCtl *data, GError **error);
+
+gboolean alsaseq_event_cntr_get_byte_data(ALSASeqEventCntr *self, gsize index,
+                                          const guint8 *data[12], GError **error);
+gboolean alsaseq_event_cntr_set_byte_data(ALSASeqEventCntr *self, gsize index,
+                                          const guint8 data[12], GError **error);
+
+gboolean alsaseq_event_cntr_get_quadlet_data(ALSASeqEventCntr *self, gsize index,
+                                             const guint32 *data[3], GError **error);
+gboolean alsaseq_event_cntr_set_quadlet_data(ALSASeqEventCntr *self, gsize index,
+                                             const guint32 data[3], GError **error);
+
+gboolean alsaseq_event_cntr_get_blob_data(ALSASeqEventCntr *self, gsize index,
+                                          const guint8 **data, gsize *size, GError **error);
+gboolean alsaseq_event_cntr_set_blob_data(ALSASeqEventCntr *self, gsize index,
+                                          const guint8 *data, gsize size, GError **error);
+
+gboolean alsaseq_event_cntr_get_queue_data(ALSASeqEventCntr *self, gsize index,
+                                           const ALSASeqEventDataQueue **data, GError **error);
+gboolean alsaseq_event_cntr_set_queue_data(ALSASeqEventCntr *self, gsize index,
+                                           const ALSASeqEventDataQueue *data, GError **error);
+
+gboolean alsaseq_event_cntr_get_tstamp_data(ALSASeqEventCntr *self, gsize index,
+                                            const ALSASeqTstamp **data, GError **error);
+gboolean alsaseq_event_cntr_set_tstamp_data(ALSASeqEventCntr *self, gsize index,
+                                            const ALSASeqTstamp *data, GError **error);
+
+gboolean alsaseq_event_cntr_get_addr_data(ALSASeqEventCntr *self, gsize index,
+                                          const ALSASeqAddr **data, GError **error);
+gboolean alsaseq_event_cntr_set_addr_data(ALSASeqEventCntr *self, gsize index,
+                                          const ALSASeqAddr *data, GError **error);
+
+gboolean alsaseq_event_cntr_get_connect_data(ALSASeqEventCntr *self, gsize index,
+                                             const ALSASeqEventDataConnect **data, GError **error);
+gboolean alsaseq_event_cntr_set_connect_data(ALSASeqEventCntr *self, gsize index,
+                                             const ALSASeqEventDataConnect *data, GError **error);
+
+gboolean alsaseq_event_cntr_get_result_data(ALSASeqEventCntr *self, gsize index,
+                                            const ALSASeqEventDataResult **data, GError **error);
+gboolean alsaseq_event_cntr_set_result_data(ALSASeqEventCntr *self, gsize index,
+                                            const ALSASeqEventDataResult *data, GError **error);
 
 G_END_DECLS