]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
seq: user_client: add an API to remove queued events
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Mon, 9 Dec 2019 14:02:38 +0000 (23:02 +0900)
committer坂本 貴史 <o-takashi@sakamocchi.jp>
Tue, 7 Apr 2020 08:08:24 +0000 (17:08 +0900)
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
src/seq/user-client.c
src/seq/user-client.h
tests/alsaseq-user-client

index 30a9658a6c017b2342b0aea0419354ea3dd0aa6d..66d7d2538b31d39f034fcf07ac3434cc33887cfd 100644 (file)
@@ -854,3 +854,26 @@ void alsaseq_user_client_get_queue_timer(ALSASeqUserClient *self,
     seq_queue_timer_refer_private(*queue_timer, &timer_ptr);
     *timer_ptr = timer;
 }
+
+/**
+ * alsaseq_user_client_remove_events:
+ * @self: A #ALSASeqUserClient.
+ * @filter: A #ALSASeqRemoveFilter.
+ * @error: A #GError.
+ *
+ * Remove queued events according to the filter.
+ */
+void alsaseq_user_client_remove_events(ALSASeqUserClient *self,
+                                       ALSASeqRemoveFilter *filter,
+                                       GError **error)
+{
+    ALSASeqUserClientPrivate *priv;
+
+    g_return_if_fail(ALSASEQ_IS_USER_CLIENT(self));
+    priv = alsaseq_user_client_get_instance_private(self);
+
+    if (ioctl(priv->fd, SNDRV_SEQ_IOCTL_REMOVE_EVENTS, filter) < 0) {
+        generate_error(error, errno);
+        return;
+    }
+}
index 408ca1590e4d53349cf8a5192a75e2237d681961..7e7a73260d6499ab8ab1bf37db53a08bb9fd26b4 100644 (file)
@@ -16,6 +16,7 @@
 #include <seq/queue-tempo.h>
 #include <seq/queue-timer.h>
 #include <seq/queue-timer-alsa.h>
+#include <seq/remove-filter.h>
 
 G_BEGIN_DECLS
 
@@ -139,6 +140,10 @@ void alsaseq_user_client_get_queue_timer(ALSASeqUserClient *self,
                                          ALSASeqQueueTimer **queue_timer,
                                          GError **error);
 
+void alsaseq_user_client_remove_events(ALSASeqUserClient *self,
+                                       ALSASeqRemoveFilter *filter,
+                                       GError **error);
+
 G_END_DECLS
 
 #endif
index 51b62d358b99e612465983d333eb16b6d3caa1ee..a7384c46175ddd88f5dfbf341b9ecb71f918a3d5 100644 (file)
@@ -35,6 +35,7 @@ methods = (
     'get_queue_tempo',
     'set_queue_timer',
     'get_queue_timer',
+    'remove_events',
 )
 signals = ()