static bool rs_stop(void *data) { rsd_t *rsd = (rsd_t*)data; rsd_stop(rsd->rd); return true; }
int driver_rsound_close (struct roar_vio_calls * vio) { int r = 0; if ( rsd_stop(vio->inst) == -1 ) r = -1; if ( rsd_free(vio->inst) == -1 ) r = -1; return r; }
static void rs_free(void *data) { rsd_t *rsd = (rsd_t*)data; rsd_stop(rsd->rd); rsd_free(rsd->rd); fifo_free(rsd->buffer); slock_free(rsd->cond_lock); scond_free(rsd->cond); free(rsd); }
static void uninit(struct ao *ao, bool cut_audio) { struct priv *priv = ao->priv; /* The API does not provide a direct way to explicitly wait until * the last byte has been played server-side as this cannot be * guaranteed by backend drivers, so we approximate this behavior. */ if (!cut_audio) mp_sleep_us(rsd_delay_ms(priv->rd) * 1000); rsd_stop(priv->rd); rsd_free(priv->rd); }
static void reset(struct ao *ao) { struct priv *priv = ao->priv; rsd_stop(priv->rd); rsd_start(priv->rd); }