]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
timer: user_instance: add APIs to pause/continue event emission
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Sun, 9 Feb 2020 03:20:53 +0000 (12:20 +0900)
committer坂本 貴史 <o-takashi@sakamocchi.jp>
Tue, 11 Feb 2020 04:28:18 +0000 (13:28 +0900)
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
src/timer/alsatimer.map
src/timer/user-instance.c
src/timer/user-instance.h
tests/alsatimer-user-instance

index d50a33fb50416afbdc73b97600ecc78b573fd170..04a9832c7f39feeb1a4dc318e8547a1796beed19 100644 (file)
@@ -39,6 +39,8 @@ ALSA_GOBJECT_0_0_0 {
     "alsatimer_user_instance_create_source";
     "alsatimer_user_instance_start";
     "alsatimer_user_instance_stop";
+    "alsatimer_user_instance_pause";
+    "alsatimer_user_instance_continue";
 
     "alsatimer_instance_info_get_type";
 
index d9886d9f6ddb2c2789a55632bf052242f52548cd..9db4b1e949855fd9b2f8413b1263a33b98715102 100644 (file)
@@ -480,3 +480,40 @@ void alsatimer_user_instance_stop(ALSATimerUserInstance *self, GError **error)
     if (ioctl(priv->fd, SNDRV_TIMER_IOCTL_STOP) < 0)
         generate_error(error, errno);
 }
+
+/**
+ * alsatimer_user_instance_pause:
+ * @self: A #ALSATimerUserInstance.
+ * @error: A #GError.
+ *
+ * Stop event emission.
+ */
+void alsatimer_user_instance_pause(ALSATimerUserInstance *self, GError **error)
+{
+    ALSATimerUserInstancePrivate *priv;
+
+    g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self));
+    priv = alsatimer_user_instance_get_instance_private(self);
+
+    if (ioctl(priv->fd, SNDRV_TIMER_IOCTL_PAUSE) < 0)
+        generate_error(error, errno);
+}
+
+/**
+ * alsatimer_user_instance_continue:
+ * @self: A #ALSATimerUserInstance.
+ * @error: A #GError.
+ *
+ * Stop event emission.
+ */
+void alsatimer_user_instance_continue(ALSATimerUserInstance *self,
+                                      GError **error)
+{
+    ALSATimerUserInstancePrivate *priv;
+
+    g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self));
+    priv = alsatimer_user_instance_get_instance_private(self);
+
+    if (ioctl(priv->fd, SNDRV_TIMER_IOCTL_CONTINUE) < 0)
+        generate_error(error, errno);
+}
index c4e4da7ef7c0210c0b1d7878bcff2a45ea8bf263..311b92e3b02a9de76737948ed7fb46d0b5a11173 100644 (file)
@@ -106,6 +106,11 @@ void alsatimer_user_instance_start(ALSATimerUserInstance *self, GError **error);
 
 void alsatimer_user_instance_stop(ALSATimerUserInstance *self, GError **error);
 
+void alsatimer_user_instance_pause(ALSATimerUserInstance *self, GError **error);
+
+void alsatimer_user_instance_continue(ALSATimerUserInstance *self,
+                                      GError **error);
+
 G_END_DECLS
 
 #endif
index acc04c44d274e477f249823e076f85118b4a5155..48de47ee5fb15f49da335495fb8ddac7702dbc2a 100644 (file)
@@ -24,6 +24,8 @@ methods = (
     'do_handle_disconnection',
     'start',
     'stop',
+    'pause',
+    'continue_',
 )
 signals = (
     'handle-event',