<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[135601] trunk/dports/audio/pulseaudio</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/135601">135601</a></dd>
<dt>Author</dt> <dd>ionic@macports.org</dd>
<dt>Date</dt> <dd>2015-04-27 14:00:35 -0700 (Mon, 27 Apr 2015)</dd>
</dl>
<h3>Log Message</h3>
<pre>pulseaudio: add record and playback module arguments for CoreAudio modules.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportsaudiopulseaudioPortfile">trunk/dports/audio/pulseaudio/Portfile</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkdportsaudiopulseaudiofilespatchsrc_modules_macosx_module_coreaudio_detect_devicecaddrecordplaybackmodargdiff">trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_detect_device.c-add-record-playback-modarg.diff</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportsaudiopulseaudioPortfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/audio/pulseaudio/Portfile (135600 => 135601)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -8,7 +8,7 @@
</span><span class="cx">
</span><span class="cx"> name pulseaudio
</span><span class="cx"> version 6.0
</span><del>-revision 3
</del><ins>+revision 4
</ins><span class="cx"> license LGPL-2.1
</span><span class="cx"> categories audio
</span><span class="cx"> maintainers ionic openmaintainer
</span><span class="lines">@@ -62,8 +62,8 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> # DO NOT USE! Maintainer-only helper. DO NOT USE!
</span><del>-#configure.cflags-append -g3 -ggdb3 -gdwarf-4 -O0
-#configure.cxxflags-append -g3 -ggdb3 -gdwarf-4 -O0
</del><ins>+configure.cflags-append -g3 -ggdb3 -gdwarf-4 -O0
+configure.cxxflags-append -g3 -ggdb3 -gdwarf-4 -O0
</ins><span class="cx">
</span><span class="cx"> # The last three patches make PulseAudio startup correctly.
</span><span class="cx"> # Will hopefully be merged upstream soon.
</span><span class="lines">@@ -78,7 +78,8 @@
</span><span class="cx"> patch-src_daemon_default.pa.in-skip-consolekit-and-systemdlogin.diff \
</span><span class="cx"> patch-src_modules_macosx_module_coreaudio_device.c-fix-device-names.diff \
</span><span class="cx"> patch-src_modules_macosx_module_coreaudio_device.c-fix-channels.diff \
</span><del>- patch-src_modules_macosx_module_coreaudio_device.c-respect-PA_NAME_MAX.diff
</del><ins>+ 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
</ins><span class="cx">
</span><span class="cx"> # reconfigure using upstream autogen.sh for intltool 0.51 compatibility
</span><span class="cx">
</span></span></pre></div>
<a id="trunkdportsaudiopulseaudiofilespatchsrc_modules_macosx_module_coreaudio_detect_devicecaddrecordplaybackmodargdiff"></a>
<div class="addfile"><h4>Added: trunk/dports/audio/pulseaudio/files/patch-src_modules_macosx_module_coreaudio_detect_device.c-add-record-playback-modarg.diff (0 => 135601)</h4>
<pre class="diff"><span>
<span class="info">--- 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)
</span><span class="lines">@@ -0,0 +1,123 @@
</span><ins>+--- 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))) {
</ins></span></pre>
</div>
</div>
</body>
</html>