Commit Graph
59 Commits
Author SHA1 Message Date
Jörn Nettingsmeier e59da78348 Fix segfault due to missing null check... 2019-02-16 21:26:32 +00:00
Jörn Nettingsmeier b361ad84fc NOP. Reformat code consistently, improve comments. 2019-02-16 19:57:28 +00:00
Jörn Nettingsmeier 31bbd743a5 Use appropriate warn/inform/debug levels. 2019-02-16 19:01:37 +00:00
Jörn Nettingsmeier 97370d8bce Actually implement auto-connection, and document it. 2019-02-16 18:45:51 +00:00
Jörn Nettingsmeier 4f39e0d830 Move away from hardcoded channels. Centralizes information, simplifies the code, and might be helpful for future surround support. 2019-02-16 16:09:29 +00:00
Jörn Nettingsmeier 28ea6972af Add dummy option jack_autoconnect_option. 2019-02-16 15:33:29 +00:00
Jörn Nettingsmeier 5c1769f87c Partly revert c00199d664, some 0 are actually longs. It's late :( 2019-02-16 02:28:59 +00:00
Jörn Nettingsmeier 3a4deb38a2 Declare all file-global variables as static, remove unused thread pointer. 2019-02-16 02:26:36 +00:00
Jörn Nettingsmeier 90f24c62df Add myself to (C)omplain-to tag :-D 2019-02-16 02:20:21 +00:00
Jörn Nettingsmeier c00199d664 Always use NULL instead of 0 for pointers for clarity. 2019-02-16 02:15:35 +00:00
Jörn Nettingsmeier 95246dcd84 Use more conservative JACK client name (a simple token without whitespace). 2019-02-16 02:05:05 +00:00
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 aa5698fce2 Remove the preflight call - don't seem to need it. 2019-01-27 15:53:36 +00:00
Mike Brady 2e4428538d Add an "active" mode that can time out after a period -- 10 seconds by default -- after play ends. 2019-01-21 21:43:55 +00:00
Mike Brady caf06c5aba Add the idea of a preflight message to tell the backend that frames will be coming... 2019-01-07 17:34:50 +00:00