The "client" argument being passed to jack_set_property() is
jack_client_internal_t*, not jack_client_t* as expected, which leads
to a crash. Using client->private_client (which is a jack_client_t*)
causes deadlock because do_request() is called recursively.
The goal here is good, but it can't be accomplished in this way.
This reverts commit 439e47da1a.
This allows clients to deterministically show ports in the correct order
when there are more than 9 ports (where the lack of leading zeros breaks
sorting by name).
Issue
-----
JackPropertyChangeCallback returns a carbage key when removing all keys of
a given uuid, e.g. triggered by 'jack_remove_properties(...)'.
Expected
--------
JackPropertyChangeCallback should return a (NULL) key when removing all
keys of a given uuid.
Culprit
-------
'malloc' is called with key_size==0, which MAY NOT return a (NULL) pointer.
Fix
---
Do not call 'malloc' for key_size==0.
ensures that frame time will reflect any
discontinuity in processing (xrun or skipped cycles). It also cleans up
the code related to maintaining the DLL and frame time a bit, all of it
is now together in jack_run_cycle() and the logic behind it is easy to
follow.
The 'delayed_usecs' argument to jack_run_cycle() is now probably
redundant, the value computed locally (the 'dus' variable) is in
all cases more accurate than what the backend can provide.
When reading the byte from the wait file descriptor failed, jack would mark the client at the head of the external client chain
with an error. But the fault may not have been with that client. So now if the read error is EAGAIN ('no data available') do
not mark the client, but rely on other mechanisms to detect too-slow or dead clients.
Also tweak VERBOSE output a little in some related spots.
if jack_check_clients does not find a bad client, we need to read
the graph_wait_fd. otherwise we end up with too many execution tokens
floating around.
this commit also fixes the reset of the continuous stream
and makes the mercysleep use ms instead of ns.
git-svn-id: svn+ssh://jackaudio.org/trunk/jack@4430 0c269be4-1314-0410-8aa9-9f06e86f4224
for python loading libjackserver and using controlAPI.
drivers are linked to a second instance of libjackserver.so and the
global symbol _jack_get_microseconds showed up uninitialised.
by providing a function pointer to right instance in the engine struct,
we can fix this problem. since _jack_get_microseconds is a in systemdeps,
we need a generic way to get the right function pointer.
git-svn-id: svn+ssh://jackaudio.org/trunk/jack@4421 0c269be4-1314-0410-8aa9-9f06e86f4224
This commit adds
jack_port_set_latency_range()
jack_port_get_latency_range()
jack_set_latency_callback()
It also extends jack_port_set_latency() to set the playback or capture
latency range of the port.
git-svn-id: svn+ssh://jackaudio.org/trunk/jack@4098 0c269be4-1314-0410-8aa9-9f06e86f4224
this fixes the server thread not waking up, when a client got SIGSTOP.
git-svn-id: svn+ssh://jackaudio.org/trunk/jack@4087 0c269be4-1314-0410-8aa9-9f06e86f4224