]> git.alsa-project.org Git - alsa-gobject.git/commitdiff
timer: user_instance: add an API to start instance for timer device
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 4dbfe694526b77b63412563eb22f44326ccfc343..d34158cb54807be7ad7ad8a013d25c77f664aa2c 100644 (file)
@@ -37,6 +37,7 @@ ALSA_GOBJECT_0_0_0 {
     "alsatimer_user_instance_set_params";
     "alsatimer_user_instance_get_status";
     "alsatimer_user_instance_create_source";
+    "alsatimer_user_instance_start";
 
     "alsatimer_instance_info_get_type";
 
index 6ade25a7dac5ec47dfdc858cfac8b4ad75cf6d39..2d6d22953ea1ca0bb2d3eff502ec30dd8e11ba57 100644 (file)
@@ -444,3 +444,21 @@ void alsatimer_user_instance_create_source(ALSATimerUserInstance *self,
     src->event_data = g_object_new(event_data_class,
                                   "type", priv->event_data_type, NULL);
 }
+
+/**
+ * alsatimer_user_instance_start:
+ * @self: A #ALSATimerUserInstance.
+ * @error: A #GError.
+ *
+ * Start event emission.
+ */
+void alsatimer_user_instance_start(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_START) < 0)
+        generate_error(error, errno);
+}
index c271084b7f40fa9d93784fa7965a25236d1a6ed1..ba91e2d143ce95af3a4b26a4432fd2b71663be38 100644 (file)
@@ -102,6 +102,8 @@ void alsatimer_user_instance_get_status(ALSATimerUserInstance *self,
 void alsatimer_user_instance_create_source(ALSATimerUserInstance *self,
                                          GSource **gsrc, GError **error);
 
+void alsatimer_user_instance_start(ALSATimerUserInstance *self, GError **error);
+
 G_END_DECLS
 
 #endif
index 83df59dfa5232e5757f952a769017b0fe3561320..f86cf55244533b34f52ca23c917a7ce403b24cdd 100644 (file)
@@ -22,6 +22,7 @@ methods = (
     'create_source',
     'do_handle_event',
     'do_handle_disconnection',
+    'start',
 )
 signals = (
     'handle-event',