Wow, thank you! m.
2011/5/14 Tanu Kaskinen <ta...@iki.fi>: > --- > src/modules/module-loopback.c | 18 +++++++++++++----- > 1 files changed, 13 insertions(+), 5 deletions(-) > > diff --git a/src/modules/module-loopback.c b/src/modules/module-loopback.c > index 9a8640b..024337f 100644 > --- a/src/modules/module-loopback.c > +++ b/src/modules/module-loopback.c > @@ -59,7 +59,8 @@ PA_MODULE_USAGE( > "sink_input_role=<media.role for the sink input> " > "source_output_role=<media.role for the source output> " > "source_dont_move=<boolean> " > - "sink_dont_move=<boolean>"); > + "sink_dont_move=<boolean> " > + "remix=<remix channels?> "); > > #define DEFAULT_LATENCY_MSEC 200 > > @@ -120,6 +121,7 @@ static const char* const valid_modargs[] = { > "source_output_role", > "source_dont_move", > "sink_dont_move", > + "remix", > NULL, > }; > > @@ -407,7 +409,7 @@ static int sink_input_pop_cb(pa_sink_input *i, size_t > nbytes, pa_memchunk *chunk > u->in_pop = FALSE; > > if (pa_memblockq_peek(u->memblockq, chunk) < 0) { > - pa_log_info("Coud not peek into queue"); > + pa_log_info("Could not peek into queue"); > return -1; > } > > @@ -645,6 +647,7 @@ int pa__init(pa_module *m) { > pa_memchunk silence; > uint32_t adjust_time_sec; > const char *n; > + pa_bool_t remix = TRUE; > > pa_assert(m); > > @@ -663,6 +666,11 @@ int pa__init(pa_module *m) { > goto fail; > } > > + if (pa_modargs_get_value_boolean(ma, "remix", &remix) < 0) { > + pa_log("Invalid boolean remix parameter"); > + goto fail; > + } > + > ss = sink->sample_spec; > map = sink->channel_map; > if (pa_modargs_get_sample_spec_and_channel_map(ma, &ss, &map, > PA_CHANNEL_MAP_DEFAULT) < 0) { > @@ -713,7 +721,7 @@ int pa__init(pa_module *m) { > > pa_sink_input_new_data_set_sample_spec(&sink_input_data, &ss); > pa_sink_input_new_data_set_channel_map(&sink_input_data, &map); > - sink_input_data.flags = PA_SINK_INPUT_VARIABLE_RATE; > + sink_input_data.flags = PA_SINK_INPUT_VARIABLE_RATE | (remix ? 0 : > PA_SINK_INPUT_NO_REMIX); > > sink_dont_move = FALSE; > if (pa_modargs_get_value_boolean(ma, "sink_dont_move", &sink_dont_move) < > 0) { > @@ -764,8 +772,8 @@ int pa__init(pa_module *m) { > pa_proplist_sets(source_output_data.proplist, > PA_PROP_MEDIA_ICON_NAME, n); > > pa_source_output_new_data_set_sample_spec(&source_output_data, &ss); > - pa_sink_input_new_data_set_channel_map(&sink_input_data, &map); > - source_output_data.flags = (pa_source_output_flags_t)0; > + pa_source_output_new_data_set_channel_map(&source_output_data, &map); > + source_output_data.flags = (remix ? 0 : PA_SOURCE_OUTPUT_NO_REMIX); > > source_dont_move = FALSE; > if (pa_modargs_get_value_boolean(ma, "source_dont_move", > &source_dont_move) < 0) { > -- > 1.7.5.1 > > _______________________________________________ > pulseaudio-discuss mailing list > pulseaudio-discuss@mail.0pointer.de > https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss > _______________________________________________ pulseaudio-discuss mailing list pulseaudio-discuss@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss