[pulseaudio-discuss] [PATCH] module-coreaudio-{device, detect}: implement record and playback modargs, curtesy of module-waveout.
Arun Raghavan
arun at accosted.net
Sun Jan 3 21:17:24 PST 2016
On Mon, 2015-04-27 at 23:11 +0200, Mihai Moldovan wrote:
> Signed-off-by: Mihai Moldovan <ionic at ionic.de>
> ---
> src/modules/macosx/module-coreaudio-detect.c | 23
> ++++++++++++++++++++---
> src/modules/macosx/module-coreaudio-device.c | 23
> ++++++++++++++++++++---
> 2 files changed, 40 insertions(+), 6 deletions(-)
>
> diff --git a/src/modules/macosx/module-coreaudio-detect.c
> b/src/modules/macosx/module-coreaudio-detect.c
> index d9c09da..a23aa2f 100644
> --- a/src/modules/macosx/module-coreaudio-detect.c
> +++ b/src/modules/macosx/module-coreaudio-detect.c
> @@ -39,10 +39,14 @@ PA_MODULE_AUTHOR("Daniel Mack");
> PA_MODULE_DESCRIPTION("CoreAudio device detection");
> PA_MODULE_VERSION(PACKAGE_VERSION);
> PA_MODULE_LOAD_ONCE(true);
> -PA_MODULE_USAGE("ioproc_frames=<passed on to module-coreaudio-
> device> ");
> +PA_MODULE_USAGE("ioproc_frames=<passed on to module-coreaudio-
> device> "
> + "record=<enable source?> "
> + "playback=<enable sink?> ");
>
> static const char* const valid_modargs[] = {
> "ioproc_frames",
> + "record",
> + "playback",
> NULL
> };
>
> @@ -58,6 +62,8 @@ struct userdata {
> int detect_fds[2];
> pa_io_event *detect_io;
> unsigned int ioproc_frames;
> + bool record;
> + bool playback;
> PA_LLIST_HEAD(ca_device, devices);
> };
>
> @@ -87,9 +93,9 @@ static int ca_device_added(struct pa_module *m,
> AudioObjectID id) {
> return 0;
>
> if (u->ioproc_frames)
> - args = pa_sprintf_malloc("object_id=%d ioproc_frames=%d",
> (int) id, u->ioproc_frames);
> + args = pa_sprintf_malloc("object_id=%d ioproc_frames=%d
> record=%d playback=%d", (int) id, u->ioproc_frames, (int) u->record,
> (int) u->playback);
> else
> - args = pa_sprintf_malloc("object_id=%d", (int) id);
> + args = pa_sprintf_malloc("object_id=%d record=%d
> playback=%d", (int) id, (int) u->record, (int) u->playback);
>
> pa_log_debug("Loading %s with arguments '%s'",
> DEVICE_MODULE_NAME, args);
> mod = pa_module_load(m->core, DEVICE_MODULE_NAME, args);
> @@ -212,6 +218,7 @@ int pa__init(pa_module *m) {
> pa_modargs *ma;
>
> pa_assert(m);
> + pa_assert(m->core);
>
> m->userdata = u;
>
> @@ -220,6 +227,16 @@ int pa__init(pa_module *m) {
> goto fail;
> }
>
> + if (pa_modargs_get_value_boolean(ma, "record", &u->record) < 0
> || pa_modargs_get_value_boolean(ma, "playback", &u->playback) < 0) {
> + pa_log("record= and playback= expect boolean argument.");
> + goto fail;
> + }
> +
> + if (!u->playback && !u->record) {
> + pa_log("neither playback nor record enabled for device.");
> + goto fail;
> + }
> +
>
Sorry about the super late review. Shouldn't u->record and u->playback
be true by default?
-- Arun
More information about the pulseaudio-discuss
mailing list