Re: [alsa-devel] [PATCH v2] alsa-plugins/pulse: Implement 'pause'.
At Thu, 18 Jun 2009 14:55:21 +0100 (BST), Troy Moure wrote:
Just cork or uncork the stream to pause or unpause it.
Signed-off-by: Troy Moure twmoure@szypr.net
Applied now. Thanks!
Takashi
On Wed, 17 Jun 2009, Lennart Poettering wrote:
Looks mostly good to me, but:
...
pa_stream_cork() will return a pa_operation object on success. The least you need to do is call pa_operation_unref() on it, which you can safely do right-away. Otherwise this will leak memory.
Lennart
Thanks, Lennart, for looking at the first verson I sent. I've added a call to pa_operation_unref() as you suggested.
pulse/pcm_pulse.c | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/pulse/pcm_pulse.c b/pulse/pcm_pulse.c index db8d1e1..c276839 100644 --- a/pulse/pcm_pulse.c +++ b/pulse/pcm_pulse.c @@ -739,6 +739,30 @@ static int pulse_close(snd_pcm_ioplug_t * io) return 0; }
+static int pulse_pause(snd_pcm_ioplug_t * io, int enable) +{
- snd_pcm_pulse_t *pcm = io->private_data;
- int err = 0;
- assert (pcm);
- assert (pcm->p);
- pa_threaded_mainloop_lock(pcm->p->mainloop);
- if (pcm->stream) {
pa_operation *o;
o = pa_stream_cork(pcm->stream, enable, NULL, NULL);
if (o)
pa_operation_unref(o);
else
err = -EIO;
- }
- pa_threaded_mainloop_unlock(pcm->p->mainloop);
- return err;
+}
static const snd_pcm_ioplug_callback_t pulse_playback_callback = { .start = pulse_start, .stop = pulse_stop, @@ -750,6 +774,7 @@ static const snd_pcm_ioplug_callback_t pulse_playback_callback = { .prepare = pulse_prepare, .hw_params = pulse_hw_params, .close = pulse_close,
- .pause = pulse_pause
};
-- 1.6.2.2
-- Lennart Poettering Red Hat, Inc. lennart [at] poettering [dot] net http://0pointer.net/lennart/ GnuPG 0x1A015CC4
participants (1)
-
Takashi Iwai