/**
* alsatimer_user_instance_get_status:
* @self: A #ALSATimerUserInstance.
- * @instance_status: (out): A #ALSATimerInstanceStatus.
+ * @instance_status: (inout): A #ALSATimerInstanceStatus.
* @error: A #GError.
*
* Get the latest status of instance.
* SNDRV_TIMER_IOCTL_STATUS command for ALSA timer character device.
*/
void alsatimer_user_instance_get_status(ALSATimerUserInstance *self,
- ALSATimerInstanceStatus **instance_status,
- GError **error)
+ ALSATimerInstanceStatus *const *instance_status,
+ GError **error)
{
ALSATimerUserInstancePrivate *priv;
struct snd_timer_status *status;
g_return_if_fail(ALSATIMER_IS_USER_INSTANCE(self));
priv = alsatimer_user_instance_get_instance_private(self);
- *instance_status = g_object_new(ALSATIMER_TYPE_INSTANCE_STATUS, NULL);
+ g_return_if_fail(ALSATIMER_IS_INSTANCE_STATUS(*instance_status));
timer_instance_status_refer_private(*instance_status, &status);
- if (ioctl(priv->fd, SNDRV_TIMER_IOCTL_STATUS, status) < 0) {
+ if (ioctl(priv->fd, SNDRV_TIMER_IOCTL_STATUS, status) < 0)
generate_error(error, errno);
- g_object_unref(*instance_status);
- }
}
static gboolean timer_user_instance_check_src(GSource *gsrc)
GError **error);
void alsatimer_user_instance_get_status(ALSATimerUserInstance *self,
- ALSATimerInstanceStatus **instance_status,
- GError **error);
+ ALSATimerInstanceStatus *const *instance_status,
+ GError **error);
void alsatimer_user_instance_create_source(ALSATimerUserInstance *self,
GSource **gsrc, GError **error);