This changeset is required for proper jackdbus handling of
parameters. jackd handling of parameters is improved by making
driver/internal parameters order on commandline irrelevant. E.g.
"jackd -d alsa -d hw:Intel,0 -P hw:Intel,3" should now give same
result as
"jackd -d alsa -P hw:Intel,3 -d hw:Intel,0".
The code used to create the driver parameter list in
jackctl_parameter_set_value(). Apart from the ordering problem,
the old implementation was not properly handling reset of
driver/internal parameters, because upon reset the parameter was not
removed from the set_parameters list which is supplied to
driver/internal.
This commit shifts driver/internal parameter list composition just
before it is needed. I.e master or slave driver open, switch master,
or internal load. The order of parameters is ensured to be the one
defined by the driver/internal.
The code used to be in common/JackTools.h until it got moved to
JackTools.cpp in aabbb62282.
However, it is not possible to split a template implementation between
header and source file, so the code in JackTools.cpp was never compiled,
resulting in
Could not open component .so '/tmp/jacktest/lib/jack/jack_net.so':
/tmp/jacktest/lib/jack/jack_net.so: undefined symbol:
_ZN4Jack18JackGnuPlotMonitorIfED1E
See https://github.com/jackaudio/jack2/issues/4 for more.
Note that fill_n in JackTools.h needs additional modifications for
gcc-4.7.
fixes#4
In-server components are called netmanager.so, inprocess.so and so on,
not libnetmanager.so.
The waf syntax for this purpose has been changed between waf-1.5 and
waf-1.6.
../common/jack/control.h:86:34: error: redefinition of typedef 'jackctl_parameter_t'
../common/jack/control.h:83:34: note: previous declaration of 'jackctl_parameter_t' was here
git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4778 0c269be4-1314-0410-8aa9-9f06e86f4224
waf complains about missing features in the builder, so let's add some.
For the sake of completeness, here's an example error message:
Traceback (most recent call last):
File "/home/adi/jack2/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Runner.py", line 162, in start
st=tsk.runnable_status()
File "/home/adi/jack2/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Task.py", line 285, in runnable_status
new_sig=self.signature()
File "/home/adi/jack2/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Task.py", line 274, in signature
self.sig_implicit_deps()
File "/home/adi/jack2/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Task.py", line 372, in sig_implicit_deps
(nodes,names)=self.scan()
File "/home/adi/jack2/.waf-1.6.11-30618c54883417962c38f5d395f83584/waflib/Tools/c_preproc.py", line 594, in scan
raise Errors.WafError('%r is missing a feature such as "c", "cxx" or "includes": '%task.generator)
WafError: bld(uselib_local='clientlib', posted=True, features=[], idx=28, uselib='RT SNDFILE', meths=['process_rule', 'process_source'], prec=defaultdict(<type 'list'>, {}), includes=['../linux', '../posix', '../common/jack', '../common'], source=[/home/adi/jack2/example-clients/capture_client.c], mappings={}, path=/home/adi/jack2/example-clients, _name='jack_rec', target='jack_rec') in /home/adi/jack2/example-clients is missing a feature such as "c", "cxx" or "includes":