[polypaudio-commits] r802 - in /trunk/src/polypcore: modargs.c modargs.h
svnmailer-noreply at 0pointer.de
svnmailer-noreply at 0pointer.de
Wed Apr 26 08:37:46 PDT 2006
Author: lennart
Date: Wed Apr 26 17:37:44 2006
New Revision: 802
URL: http://0pointer.de/cgi-bin/viewcvs.cgi?rev=802&root=polypaudio&view=rev
Log:
add support for parsing channel maps as module arguments
Modified:
trunk/src/polypcore/modargs.c
trunk/src/polypcore/modargs.h
Modified: trunk/src/polypcore/modargs.c
URL: http://0pointer.de/cgi-bin/viewcvs.cgi/trunk/src/polypcore/modargs.c?rev=802&root=polypaudio&r1=801&r2=802&view=diff
==============================================================================
--- trunk/src/polypcore/modargs.c (original)
+++ trunk/src/polypcore/modargs.c Wed Apr 26 17:37:44 2006
@@ -259,3 +259,50 @@
return 0;
}
+
+int pa_modargs_get_channel_map(pa_modargs *ma, pa_channel_map *rmap) {
+ pa_channel_map map;
+ const char *cm;
+
+ assert(ma);
+ assert(rmap);
+
+ map = *rmap;
+
+ if ((cm = pa_modargs_get_value(ma, "channel_map", NULL)))
+ if (!pa_channel_map_parse(&map, cm))
+ return -1;
+
+ if (!pa_channel_map_valid(&map))
+ return -1;
+
+ *rmap = map;
+ return 0;
+}
+
+int pa_modargs_get_sample_spec_and_channel_map(pa_modargs *ma, pa_sample_spec *rss, pa_channel_map *rmap) {
+ pa_sample_spec ss;
+ pa_channel_map map;
+
+ assert(ma);
+ assert(rss);
+ assert(rmap);
+
+ ss = *rss;
+
+ if (pa_modargs_get_sample_spec(ma, &ss) < 0)
+ return -1;
+
+ pa_channel_map_init_auto(&map, ss.channels);
+
+ if (pa_modargs_get_channel_map(ma, &map) < 0)
+ return -1;
+
+ if (map.channels != ss.channels)
+ return -1;
+
+ *rmap = map;
+ *rss = ss;
+
+ return 0;
+}
Modified: trunk/src/polypcore/modargs.h
URL: http://0pointer.de/cgi-bin/viewcvs.cgi/trunk/src/polypcore/modargs.h?rev=802&root=polypaudio&r1=801&r2=802&view=diff
==============================================================================
--- trunk/src/polypcore/modargs.h (original)
+++ trunk/src/polypcore/modargs.h Wed Apr 26 17:37:44 2006
@@ -24,6 +24,7 @@
#include <inttypes.h>
#include <polyp/sample.h>
+#include <polyp/channelmap.h>
#include <polypcore/core.h>
typedef struct pa_modargs pa_modargs;
@@ -46,4 +47,14 @@
/* Return sample spec data from the three arguments "rate", "format" and "channels" */
int pa_modargs_get_sample_spec(pa_modargs *ma, pa_sample_spec *ss);
+/* Return channel map data from the argument "channel_map" */
+int pa_modargs_get_channel_map(pa_modargs *ma, pa_channel_map *map);
+
+/* Combination of pa_modargs_get_sample_spec() and
+pa_modargs_get_channel_map(). Not always suitable, since this routine
+initializes the map parameter based on the channels field of the ss
+structure if no channel_map is found, using pa_channel_map_init_auto() */
+
+int pa_modargs_get_sample_spec_and_channel_map(pa_modargs *ma, pa_sample_spec *ss, pa_channel_map *map);
+
#endif
More information about the pulseaudio-commits
mailing list