From: Takashi Sakamoto Date: Sun, 9 Feb 2020 03:20:53 +0000 (+0900) Subject: timer: user_instance: add APIs to pause/continue event emission X-Git-Tag: v0.1.0~321 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=9902a42be1a2b807e7718f2bca61b8d9b415ae00;p=alsa-gobject.git timer: user_instance: add APIs to pause/continue event emission Signed-off-by: Takashi Sakamoto --- diff --git a/src/timer/alsatimer.map b/src/timer/alsatimer.map index d50a33f..04a9832 100644 --- a/src/timer/alsatimer.map +++ b/src/timer/alsatimer.map @@ -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"; diff --git a/src/timer/user-instance.c b/src/timer/user-instance.c index d9886d9..9db4b1e 100644 --- a/src/timer/user-instance.c +++ b/src/timer/user-instance.c @@ -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); +} diff --git a/src/timer/user-instance.h b/src/timer/user-instance.h index c4e4da7..311b92e 100644 --- a/src/timer/user-instance.h +++ b/src/timer/user-instance.h @@ -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 diff --git a/tests/alsatimer-user-instance b/tests/alsatimer-user-instance index acc04c4..48de47e 100644 --- a/tests/alsatimer-user-instance +++ b/tests/alsatimer-user-instance @@ -24,6 +24,8 @@ methods = ( 'do_handle_disconnection', 'start', 'stop', + 'pause', + 'continue_', ) signals = ( 'handle-event',