Jörn Nettingsmeier
4751a4e1bc
Move jack base latency computation out of delay() into graph() to save cycles.
2019-02-16 02:03:15 +00:00
Jörn Nettingsmeier
bda8b99cda
Add graph reorder callback, this is where we now compute the output latencies.
2019-02-16 01:53:49 +00:00
Jörn Nettingsmeier
f1ba07ff2b
Make callback names simpler and more consistent. Always use &callback in setter functions to make the function pointer explicit, even though it's not syntactically necessary.
2019-02-16 01:02:30 +00:00
Jörn Nettingsmeier
0009fcddf6
Revert "Remove client_mutex, since JACK opening and closing is now single-threaded."
...
That was a bit too optimistic, I guess. Must understand more about the rest of shairport-sync.
Fixes spurious segfault on program termination with CTRL-C that does not happen in gdb :)
This reverts commit 8e46c727d5 .
2019-02-16 00:53:04 +00:00
Jörn Nettingsmeier
55797c8387
Remove unused headers. <getopt.h> will come back once we implement command line parsing, the others may well be gone for good.
2019-02-15 23:51:11 +00:00
Jörn Nettingsmeier
8e46c727d5
Remove client_mutex, since JACK opening and closing is now single-threaded.
2019-02-15 23:45:12 +00:00
Jörn Nettingsmeier
2826756938
Remove global client_is_open flag, always execute former conditional statements. We know we're open.
2019-02-15 23:43:00 +00:00
Jörn Nettingsmeier
753cc07777
Remove optional is_running() API call, since it doesn't do anything useful.
...
We are either already running along just fine, or we are throughly dead.
2019-02-15 23:39:53 +00:00
Jörn Nettingsmeier
1906bfd727
Remove indirections open_if_needed() and close(), can now be integrated into API calls init and deinit.
2019-02-15 23:38:01 +00:00
Jörn Nettingsmeier
ec68c677e0
Remove jack_stop() function pointer from API struct, since it does nothing. Checked, no segfault on program termination.
2019-02-15 23:17:50 +00:00
Jörn Nettingsmeier
8c5e85c87c
Remove audio_client_disconnect option. This is not good behaviour for a JACK client, and adds nothing.
2019-02-15 23:14:31 +00:00
Jörn Nettingsmeier
edd699dfbc
Remove auto_client_open_interval option, always open JACK connection immediately or fail.
...
Remove client creation thread and wrapper function.
2019-02-15 23:08:04 +00:00
Jörn Nettingsmeier
63b3381a27
Fail early and fail deadly (AFAIK there is no fallback to another audio backend, so any severe JACK issue should be fatal).
2019-02-15 22:59:31 +00:00
Jörn Nettingsmeier
adefcc698c
remove unused globals
2019-02-15 19:34:23 +00:00
Jörn Nettingsmeier
0b589cbe6d
Remove option to configure port names. This is very unusual for a JACK client, nothing is gained by offering this, and it might confuse users.
2019-02-15 19:29:24 +00:00
Jörn Nettingsmeier
89a8add7af
NOP: move external API functions to the end, ordered by struct audio_output
2019-02-15 18:57:15 +00:00
Jörn Nettingsmeier
91a8553a02
Declare all JACK callbacks static (they are accessed via function pointers only).
2019-02-15 18:43:51 +00:00
Jörn Nettingsmeier
9520e89183
Declare all functions static that are not callbacks and not in audio_jack API struct.
...
If there are any calls from the outside I haven't thought of, that should make them fail.
2019-02-15 18:39:20 +00:00
Jörn Nettingsmeier
d7c7365bb1
comment out some debug statements not relevant to users
2019-02-15 18:31:23 +00:00
Jörn Nettingsmeier
a3201ff290
Declare deinterleaving function static, it's nobody else's business.
2019-02-15 18:22:33 +00:00
Jörn Nettingsmeier
ec13a2bb3a
Do not query the JACK port latency on every process() call. It can only ever change when the graph is reordered.
2019-02-15 18:19:44 +00:00
Jörn Nettingsmeier
aefd7cdb33
remove more dead code and obsolete comments
2019-02-15 18:09:36 +00:00
Jörn Nettingsmeier
120e95fc66
Add parentheses around macro to avoid breakage with stronger-binding operators.
2019-02-15 18:06:36 +00:00
Jörn Nettingsmeier
444c114231
NOP: remove commented-out code segments that were re-implemented
2019-02-15 17:58:50 +00:00
Jörn Nettingsmeier
23d4ec2bee
Fix logic error in counting the frames written and pending. RESTORES AUDIO!
2019-02-15 17:19:07 +00:00
Jörn Nettingsmeier
6104c580f8
NOP: comment flush implementation
2019-02-15 16:51:17 +00:00
Jörn Nettingsmeier
9c57fe43cc
Do not re-check JACK graph latency every time delay() is called. Do not register a latency callback with jack.
2019-02-15 16:41:20 +00:00
Jörn Nettingsmeier
8347223986
Remove dubious latency check from jack_is_running(). For now, we assume JACK is always running, which makes this function pointless, as it always returns possitive. FIXME: understand why it is needed.
2019-02-15 16:08:10 +00:00
Jörn Nettingsmeier
aca15a889b
remove comment - the "rolling" status of jack transport is irrelevant to shairport-sync.
2019-02-15 15:56:08 +00:00
Jörn Nettingsmeier
7ab566960c
move setting of time_of_latest_transfer to play(), we're now looking at ringbuffer writes, not jack output buffers, as those can't be locked to be tested atomically.
2019-02-15 15:53:43 +00:00
Jörn Nettingsmeier
a238ac54bb
audio_occupancy_now in delay() needs to be in frames, not bytes. Still no luck...
2019-02-14 20:50:02 +00:00
Jörn Nettingsmeier
3e6ef0194f
Unset flush_please after flushing. Tentatively re-enable latency queries. Same problems...
2019-02-14 20:39:03 +00:00
Jörn Nettingsmeier
83c8857cf8
try a solution for flush(). Compiled but not tested.
2019-02-14 20:27:49 +00:00
Jörn Nettingsmeier
e99837f878
First step of replacing existing buffer with jack_ringbuffer. Compiles, but does not work, of course.
2019-02-14 20:18:05 +00:00
Jörn Nettingsmeier
06504516f1
die() on failure to create ringbuffer.
2019-02-14 15:45:57 +00:00
Jörn Nettingsmeier
f07c16a6b9
Add lock-free ringbuffer. Preparation to make jack_stream_write_cb realtime safe.
2019-02-14 15:37:54 +00:00
Mike Brady and GitHub
7921ab2320
Update RELEASENOTES.md
2019-02-12 16:36:52 +00:00
Mike Brady and GitHub
29fcd28e78
Update RELEASENOTES.md
2019-02-12 16:34:05 +00:00
Mike Brady and GitHub
18732b9c56
Update RELEASENOTES.md
2019-02-12 16:31:59 +00:00
Mike Brady and GitHub
9bc925be90
Update RELEASENOTES.md
2019-02-12 16:22:02 +00:00
Mike Brady
802050a4c8
Merge branch 'unstable' into development
2019-02-12 15:49:08 +00:00
Mike Brady
5af6179875
use the term'state' rather than 'mode' when taling about the active state. Use 'while_active' rather than 'while active'
2019-02-12 15:47:10 +00:00
Mike Brady
c0971ad910
Merge branch 'unstable' into development
2019-02-12 14:21:31 +00:00
Mike Brady
41796cbaf9
Quieten two compilation warnings from tinysvcmdns
2019-02-12 12:08:16 +00:00
Mike Brady
a9b392c516
Merge branch 'unstable' into development
2019-02-12 11:03:56 +00:00
Mike Brady
54bb627eff
Fix some errors and warnings from OpenBSD
2019-02-12 10:55:04 +00:00
Mike Brady
804e62d495
Hook up the active mode to the disable standby facility, enabling a 'while active' setting for it. Expose them to D-Bus.
2019-02-09 18:23:52 +00:00
Mike Brady
f3865d77b0
quieten a few debug messages
2019-02-09 17:35:41 +00:00
Mike Brady
97a4766e93
Add call to check if the dbus service is started.
2019-02-08 22:31:50 +00:00
Mike Brady
58acd161cd
make including of reference to dbus-service conditional on CONFIG_DBUS_INTERFACE
2019-02-08 20:48:29 +00:00