|
Lennart Poettering |
3205b5 |
From d9a839d51255c939f394f770b249c8a4a9600122 Mon Sep 17 00:00:00 2001
|
|
Lennart Poettering |
3205b5 |
From: Troy Moure <twmoure@szypr.net>
|
|
Lennart Poettering |
3205b5 |
Date: Thu, 18 Jun 2009 14:55:21 +0100
|
|
Lennart Poettering |
3205b5 |
Subject: [PATCH 01/11] alsa-plugins/pulse: Implement 'pause'.
|
|
Lennart Poettering |
3205b5 |
|
|
Lennart Poettering |
3205b5 |
Just cork or uncork the stream to pause or unpause it.
|
|
Lennart Poettering |
3205b5 |
|
|
Lennart Poettering |
3205b5 |
Signed-off-by: Troy Moure <twmoure@szypr.net>
|
|
Lennart Poettering |
3205b5 |
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
Lennart Poettering |
3205b5 |
---
|
|
Lennart Poettering |
3205b5 |
pulse/pcm_pulse.c | 25 +++++++++++++++++++++++++
|
|
Lennart Poettering |
3205b5 |
1 files changed, 25 insertions(+), 0 deletions(-)
|
|
Lennart Poettering |
3205b5 |
|
|
Lennart Poettering |
3205b5 |
diff --git a/pulse/pcm_pulse.c b/pulse/pcm_pulse.c
|
|
Lennart Poettering |
3205b5 |
index db8d1e1..c276839 100644
|
|
Lennart Poettering |
3205b5 |
--- a/pulse/pcm_pulse.c
|
|
Lennart Poettering |
3205b5 |
+++ b/pulse/pcm_pulse.c
|
|
Lennart Poettering |
3205b5 |
@@ -739,6 +739,30 @@ static int pulse_close(snd_pcm_ioplug_t * io)
|
|
Lennart Poettering |
3205b5 |
return 0;
|
|
Lennart Poettering |
3205b5 |
}
|
|
Lennart Poettering |
3205b5 |
|
|
Lennart Poettering |
3205b5 |
+static int pulse_pause(snd_pcm_ioplug_t * io, int enable)
|
|
Lennart Poettering |
3205b5 |
+{
|
|
Lennart Poettering |
3205b5 |
+ snd_pcm_pulse_t *pcm = io->private_data;
|
|
Lennart Poettering |
3205b5 |
+ int err = 0;
|
|
Lennart Poettering |
3205b5 |
+
|
|
Lennart Poettering |
3205b5 |
+ assert (pcm);
|
|
Lennart Poettering |
3205b5 |
+ assert (pcm->p);
|
|
Lennart Poettering |
3205b5 |
+
|
|
Lennart Poettering |
3205b5 |
+ pa_threaded_mainloop_lock(pcm->p->mainloop);
|
|
Lennart Poettering |
3205b5 |
+
|
|
Lennart Poettering |
3205b5 |
+ if (pcm->stream) {
|
|
Lennart Poettering |
3205b5 |
+ pa_operation *o;
|
|
Lennart Poettering |
3205b5 |
+ o = pa_stream_cork(pcm->stream, enable, NULL, NULL);
|
|
Lennart Poettering |
3205b5 |
+ if (o)
|
|
Lennart Poettering |
3205b5 |
+ pa_operation_unref(o);
|
|
Lennart Poettering |
3205b5 |
+ else
|
|
Lennart Poettering |
3205b5 |
+ err = -EIO;
|
|
Lennart Poettering |
3205b5 |
+ }
|
|
Lennart Poettering |
3205b5 |
+
|
|
Lennart Poettering |
3205b5 |
+ pa_threaded_mainloop_unlock(pcm->p->mainloop);
|
|
Lennart Poettering |
3205b5 |
+
|
|
Lennart Poettering |
3205b5 |
+ return err;
|
|
Lennart Poettering |
3205b5 |
+}
|
|
Lennart Poettering |
3205b5 |
+
|
|
Lennart Poettering |
3205b5 |
static const snd_pcm_ioplug_callback_t pulse_playback_callback = {
|
|
Lennart Poettering |
3205b5 |
.start = pulse_start,
|
|
Lennart Poettering |
3205b5 |
.stop = pulse_stop,
|
|
Lennart Poettering |
3205b5 |
@@ -750,6 +774,7 @@ static const snd_pcm_ioplug_callback_t pulse_playback_callback = {
|
|
Lennart Poettering |
3205b5 |
.prepare = pulse_prepare,
|
|
Lennart Poettering |
3205b5 |
.hw_params = pulse_hw_params,
|
|
Lennart Poettering |
3205b5 |
.close = pulse_close,
|
|
Lennart Poettering |
3205b5 |
+ .pause = pulse_pause
|
|
Lennart Poettering |
3205b5 |
};
|
|
Lennart Poettering |
3205b5 |
|
|
Lennart Poettering |
3205b5 |
|
|
Lennart Poettering |
3205b5 |
--
|
|
Lennart Poettering |
3205b5 |
1.6.4
|
|
Lennart Poettering |
3205b5 |
|