From ee35a063b2c10564d43a611fcf6ada398851b1d6 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 17 May 2006 18:52:34 +0000 Subject: add new channel map argument to pa_simple_new() git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@911 fefdeb5f-60dc-0310-8127-8f9354f1896f --- src/polyp/simple.c | 4 +++- src/polyp/simple.h | 9 ++++++--- src/tests/pacat-simple.c | 2 +- src/tests/parec-simple.c | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/polyp/simple.c b/src/polyp/simple.c index b56406c9..84c46bf1 100644 --- a/src/polyp/simple.c +++ b/src/polyp/simple.c @@ -140,6 +140,7 @@ pa_simple* pa_simple_new( const char *dev, const char *stream_name, const pa_sample_spec *ss, + const pa_channel_map *map, const pa_buffer_attr *attr, int *rerror) { @@ -150,6 +151,7 @@ pa_simple* pa_simple_new( CHECK_VALIDITY_RETURN_ANY(rerror, dir == PA_STREAM_PLAYBACK || dir == PA_STREAM_RECORD, PA_ERR_INVALID, NULL); CHECK_VALIDITY_RETURN_ANY(rerror, !dev || *dev, PA_ERR_INVALID, NULL); CHECK_VALIDITY_RETURN_ANY(rerror, ss && pa_sample_spec_valid(ss), PA_ERR_INVALID, NULL); + CHECK_VALIDITY_RETURN_ANY(rerror, !map || (pa_channel_map_valid(map) && map->channels == ss->channels), PA_ERR_INVALID, NULL) p = pa_xnew(pa_simple, 1); p->context = NULL; @@ -184,7 +186,7 @@ pa_simple* pa_simple_new( goto unlock_and_fail; } - if (!(p->stream = pa_stream_new(p->context, stream_name, ss, NULL))) { + if (!(p->stream = pa_stream_new(p->context, stream_name, ss, map))) { error = pa_context_errno(p->context); goto unlock_and_fail; } diff --git a/src/polyp/simple.h b/src/polyp/simple.h index 9066826b..bf3cc330 100644 --- a/src/polyp/simple.h +++ b/src/polyp/simple.h @@ -25,6 +25,7 @@ #include #include +#include #include #include @@ -57,6 +58,7 @@ * NULL, // Use the default device. * "Music", // Description of our stream. * &ss, // Our sample format. + * NULL, // Use default channel map * NULL, // Use default buffering attributes. * NULL, // Ignore error code. * ); @@ -112,11 +114,12 @@ typedef struct pa_simple pa_simple; pa_simple* pa_simple_new( const char *server, /**< Server name, or NULL for default */ const char *name, /**< A descriptive name for this client (application name, ...) */ - pa_stream_direction_t dir, /**< Open this stream for recording or playback? */ + pa_stream_direction_t dir, /**< Open this stream for recording or playback? */ const char *dev, /**< Sink (resp. source) name, or NULL for default */ const char *stream_name, /**< A descriptive name for this client (application name, song title, ...) */ - const pa_sample_spec *ss, /**< The sample type to use */ - const pa_buffer_attr *attr, /**< Buffering attributes, or NULL for default */ + const pa_sample_spec *ss, /**< The sample type to use */ + const pa_channel_map *map, /**< The channel map to use, or NULL for default */ + const pa_buffer_attr *attr, /**< Buffering attributes, or NULL for default */ int *error /**< A pointer where the error code is stored when the routine returns NULL. It is OK to pass NULL here. */ ); diff --git a/src/tests/pacat-simple.c b/src/tests/pacat-simple.c index 6a75c790..544c31e3 100644 --- a/src/tests/pacat-simple.c +++ b/src/tests/pacat-simple.c @@ -66,7 +66,7 @@ int main(PA_GCC_UNUSED int argc, char*argv[]) { } /* Create a new playback stream */ - if (!(s = pa_simple_new(NULL, argv[0], PA_STREAM_PLAYBACK, NULL, "playback", &ss, NULL, &error))) { + if (!(s = pa_simple_new(NULL, argv[0], PA_STREAM_PLAYBACK, NULL, "playback", &ss, NULL, NULL, &error))) { fprintf(stderr, __FILE__": pa_simple_new() failed: %s\n", pa_strerror(error)); goto finish; } diff --git a/src/tests/parec-simple.c b/src/tests/parec-simple.c index fc2314ac..4463d549 100644 --- a/src/tests/parec-simple.c +++ b/src/tests/parec-simple.c @@ -67,7 +67,7 @@ int main(PA_GCC_UNUSED int argc, char*argv[]) { int error; /* Create the recording stream */ - if (!(s = pa_simple_new(NULL, argv[0], PA_STREAM_RECORD, NULL, "record", &ss, NULL, &error))) { + if (!(s = pa_simple_new(NULL, argv[0], PA_STREAM_RECORD, NULL, "record", &ss, NULL, NULL, &error))) { fprintf(stderr, __FILE__": pa_simple_new() failed: %s\n", pa_strerror(error)); goto finish; } -- cgit