summaryrefslogtreecommitdiffstats
path: root/src/protocol-native.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-07-10 19:04:21 +0000
committerLennart Poettering <lennart@poettering.net>2004-07-10 19:04:21 +0000
commit5ea96e312be3aa495e77786283e1edea7592047f (patch)
tree5a112621f1ddcf1883128df1a365c25a62752365 /src/protocol-native.c
parent70bb8165ec0aefef08d524dc72baa29df658b4c0 (diff)
implement parec-simple and matching simple recording API
add support for killing source outputs in native protocol fix channel management in client library git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@56 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'src/protocol-native.c')
-rw-r--r--src/protocol-native.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/protocol-native.c b/src/protocol-native.c
index fe086066..c7a7cce0 100644
--- a/src/protocol-native.c
+++ b/src/protocol-native.c
@@ -254,6 +254,31 @@ static void send_memblock(struct connection *c) {
}
}
+static void send_playback_stream_killed(struct playback_stream *p) {
+ struct pa_tagstruct *t;
+ assert(p);
+
+ t = pa_tagstruct_new(NULL, 0);
+ assert(t);
+ pa_tagstruct_putu32(t, PA_COMMAND_PLAYBACK_STREAM_KILLED);
+ pa_tagstruct_putu32(t, (uint32_t) -1); /* tag */
+ pa_tagstruct_putu32(t, p->index);
+ pa_pstream_send_tagstruct(p->connection->pstream, t);
+}
+
+static void send_record_stream_killed(struct record_stream *r) {
+ struct pa_tagstruct *t;
+ assert(r);
+
+ t = pa_tagstruct_new(NULL, 0);
+ assert(t);
+ pa_tagstruct_putu32(t, PA_COMMAND_RECORD_STREAM_KILLED);
+ pa_tagstruct_putu32(t, (uint32_t) -1); /* tag */
+ pa_tagstruct_putu32(t, r->index);
+ pa_pstream_send_tagstruct(r->connection->pstream, t);
+}
+
+
/*** sinkinput callbacks ***/
static int sink_input_peek_cb(struct pa_sink_input *i, struct pa_memchunk *chunk) {
@@ -283,6 +308,7 @@ static void sink_input_drop_cb(struct pa_sink_input *i, size_t length) {
static void sink_input_kill_cb(struct pa_sink_input *i) {
assert(i && i->userdata);
+ send_playback_stream_killed((struct playback_stream *) i->userdata);
playback_stream_free((struct playback_stream *) i->userdata);
}
@@ -308,6 +334,7 @@ static void source_output_push_cb(struct pa_source_output *o, const struct pa_me
static void source_output_kill_cb(struct pa_source_output *o) {
assert(o && o->userdata);
+ send_record_stream_killed((struct record_stream *) o->userdata);
record_stream_free((struct record_stream *) o->userdata);
}