]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
seq: use (inout) annotation to retrieve the status of queue
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Mon, 15 Jun 2020 02:11:59 +0000 (11:11 +0900)
committer坂本 貴史 <o-takashi@sakamocchi.jp>
Mon, 15 Jun 2020 08:30:38 +0000 (17:30 +0900)
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
src/seq/query.c
src/seq/query.h

index f81ae04b8f69365322b10d641e95e09745b296ab..8a076b9ccb68b3235658330e331732bdf2c0fed3 100644 (file)
@@ -727,7 +727,7 @@ void alsaseq_get_queue_info_by_name(const gchar *name,
  * alsaseq_get_queue_status:
  * @queue_id: The numerical ID of queue, except for entries in
  *            ALSASeqSpecificQueueId.
- * @queue_status: (out): The current status of queue.
+ * @queue_status: (inout): The current status of queue.
  * @error: A #GError.
  *
  * Get current status of queue.
@@ -736,7 +736,8 @@ void alsaseq_get_queue_info_by_name(const gchar *name,
  * with SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS command for ALSA sequencer character
  * device.
  */
-void alsaseq_get_queue_status(guint queue_id, ALSASeqQueueStatus **queue_status,
+void alsaseq_get_queue_status(guint queue_id,
+                              ALSASeqQueueStatus *const *queue_status,
                               GError **error)
 {
     struct snd_seq_queue_status *status;
@@ -754,16 +755,12 @@ void alsaseq_get_queue_status(guint queue_id, ALSASeqQueueStatus **queue_status,
         return;
     }
 
-    *queue_status = g_object_new(ALSASEQ_TYPE_QUEUE_STATUS, NULL);
+    g_return_if_fail(ALSASEQ_IS_QUEUE_STATUS(*queue_status));
     seq_queue_status_refer_private(*queue_status, &status);
 
     status->queue = (int)queue_id;
-    if (ioctl(fd, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, status) < 0) {
+    if (ioctl(fd, SNDRV_SEQ_IOCTL_GET_QUEUE_STATUS, status) < 0)
         generate_error(error, errno);
-        close(fd);
-        g_object_unref(*queue_status);
-        return;
-    }
 
     close(fd);
 }
index 08aa68d0673f4964360eb22970649ed559efd745..eb4ce0d339eab704c8bcc0aafb501b889d9fc351 100644 (file)
@@ -49,7 +49,8 @@ void alsaseq_get_queue_info_by_name(const gchar *name,
                                     ALSASeqQueueInfo **queue_info,
                                     GError **error);
 
-void alsaseq_get_queue_status(guint queue_id, ALSASeqQueueStatus **queue_status,
+void alsaseq_get_queue_status(guint queue_id,
+                              ALSASeqQueueStatus *const *queue_status,
                               GError **error);
 
 G_END_DECLS