]> code.delx.au - pulseaudio/commitdiff
add new channel map argument to pa_simple_new()
authorLennart Poettering <lennart@poettering.net>
Wed, 17 May 2006 18:52:34 +0000 (18:52 +0000)
committerLennart Poettering <lennart@poettering.net>
Wed, 17 May 2006 18:52:34 +0000 (18:52 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@911 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/polyp/simple.c
src/polyp/simple.h
src/tests/pacat-simple.c
src/tests/parec-simple.c

index b56406c917f5190a30c3394443379cce3ddf68a8..84c46bf1c4de323994906e1fa17199ddf9e4745e 100644 (file)
@@ -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;
     }
index 9066826ba4a2188191eb7e426c595d153c5613c9..bf3cc330a3b811fbd6da0856893be236acdff627 100644 (file)
@@ -25,6 +25,7 @@
 #include <sys/types.h>
 
 #include <polyp/sample.h>
+#include <polyp/channelmap.h>
 #include <polyp/def.h>
 #include <polyp/cdecl.h>
 
@@ -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. */
     );
 
index 6a75c7903ac9ed224a70f286e67a8fa6e7ab4fce..544c31e382b6e6b3040eacd2444dcaeb55449ff8 100644 (file)
@@ -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;
     }
index fc2314acc9cdad98d9e5ed0299ebbb79bf454354..4463d54935fa7d181c6389fa0483c00508baf61a 100644 (file)
@@ -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;
     }