[135601] trunk/dports/audio/pulseaudio
ionic at macports.org
ionic at macports.org
Mon Apr 27 14:00:35 PDT 2015
Revision: 135601
https://trac.macports.org/changeset/135601
Author: ionic at macports.org
Date: 2015-04-27 14:00:35 -0700 (Mon, 27 Apr 2015)
Log Message:
-----------
pulseaudio: add record and playback module arguments for CoreAudio modules.
Modified Paths:
--------------
trunk/dports/audio/pulseaudio/Portfile
Added Paths:
-----------
trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_detect_device.c-add-record-playback-modarg.diff
Modified: trunk/dports/audio/pulseaudio/Portfile
===================================================================
--- trunk/dports/audio/pulseaudio/Portfile 2015-04-27 20:47:54 UTC (rev 135600)
+++ trunk/dports/audio/pulseaudio/Portfile 2015-04-27 21:00:35 UTC (rev 135601)
@@ -8,7 +8,7 @@
name pulseaudio
version 6.0
-revision 3
+revision 4
license LGPL-2.1
categories audio
maintainers ionic openmaintainer
@@ -62,8 +62,8 @@
}
# DO NOT USE! Maintainer-only helper. DO NOT USE!
-#configure.cflags-append -g3 -ggdb3 -gdwarf-4 -O0
-#configure.cxxflags-append -g3 -ggdb3 -gdwarf-4 -O0
+configure.cflags-append -g3 -ggdb3 -gdwarf-4 -O0
+configure.cxxflags-append -g3 -ggdb3 -gdwarf-4 -O0
# The last three patches make PulseAudio startup correctly.
# Will hopefully be merged upstream soon.
@@ -78,7 +78,8 @@
patch-src_daemon_default.pa.in-skip-consolekit-and-systemdlogin.diff \
patch-src_modules_macosx_module_coreaudio_device.c-fix-device-names.diff \
patch-src_modules_macosx_module_coreaudio_device.c-fix-channels.diff \
- patch-src_modules_macosx_module_coreaudio_device.c-respect-PA_NAME_MAX.diff
+ patch-src_modules_macosx_module_coreaudio_device.c-respect-PA_NAME_MAX.diff \
+ patch-src_modules_macosx_module_coreaudio_detect_device.c-add-record-playback-modarg.diff
# reconfigure using upstream autogen.sh for intltool 0.51 compatibility
Added: trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_detect_device.c-add-record-playback-modarg.diff
===================================================================
--- trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_detect_device.c-add-record-playback-modarg.diff (rev 0)
+++ trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_detect_device.c-add-record-playback-modarg.diff 2015-04-27 21:00:35 UTC (rev 135601)
@@ -0,0 +1,123 @@
+--- src/modules/macosx/module-coreaudio-detect.c.old 2015-04-27 21:10:17.000000000 +0200
++++ src/modules/macosx/module-coreaudio-detect.c 2015-04-27 22:09:07.000000000 +0200
+@@ -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_mod
+ 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;
++ }
++
+ pa_modargs_get_value_u32(ma, "ioproc_frames", &u->ioproc_frames);
+
+ property_address.mSelector = kAudioHardwarePropertyDevices;
+--- src/modules/macosx/module-coreaudio-device.c.old 2015-04-27 21:10:17.000000000 +0200
++++ src/modules/macosx/module-coreaudio-device.c 2015-04-27 22:04:21.000000000 +0200
+@@ -58,11 +58,15 @@ PA_MODULE_DESCRIPTION("CoreAudio device"
+ PA_MODULE_VERSION(PACKAGE_VERSION);
+ PA_MODULE_LOAD_ONCE(false);
+ PA_MODULE_USAGE("object_id=<the CoreAudio device id> "
+- "ioproc_frames=<audio frames per IOProc call> ");
++ "ioproc_frames=<audio frames per IOProc call> "
++ "record=<enable source?> "
++ "playback=<enable sink?> ");
+
+ static const char* const valid_modargs[] = {
+ "object_id",
+ "ioproc_frames",
++ "record",
++ "playback",
+ NULL
+ };
+
+@@ -772,6 +776,7 @@ int pa__init(pa_module *m) {
+ UInt32 size, frames;
+ struct userdata *u = NULL;
+ pa_modargs *ma = NULL;
++ bool record = true, playback = true;
+ char tmp[64];
+ pa_card_new_data card_new_data;
+ pa_card_profile *p;
+@@ -786,6 +791,16 @@ int pa__init(pa_module *m) {
+ goto fail;
+ }
+
++ if (pa_modargs_get_value_boolean(ma, "record", &record) < 0 || pa_modargs_get_value_boolean(ma, "playback", &playback) < 0) {
++ pa_log("record= and playback= expect boolean argument.");
++ goto fail;
++ }
++
++ if (!playback && !record) {
++ pa_log("neither playback nor record enabled for device.");
++ goto fail;
++ }
++
+ u = pa_xnew0(struct userdata, 1);
+ u->module = m;
+ m->userdata = u;
+@@ -845,10 +860,12 @@ int pa__init(pa_module *m) {
+ PA_LLIST_HEAD_INIT(coreaudio_sink, u->sinks);
+
+ /* create sinks */
+- ca_device_create_streams(m, false);
++ if (playback)
++ ca_device_create_streams(m, false);
+
+ /* create sources */
+- ca_device_create_streams(m, true);
++ if (record)
++ ca_device_create_streams(m, true);
+
+ /* create the message thread */
+ if (!(u->thread = pa_thread_new(u->device_name, thread_func, u))) {
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20150427/938d00e2/attachment-0001.html>
More information about the macports-changes
mailing list