aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2024-11-24Rename jalv_internal.h to jalv.hDavid Robillard10-12/+13
The "internal" name never made much sense to begin with (since this is a program, not a library), but now this header only describes the "main" Jalv struct and functions directly associated with it (the top-level interface of the application), so name it accordingly. This also makes include-what-you-use actually check this header, which it wasn't before for some mysterious reason.
2024-11-24Move features struct to a separate fileDavid Robillard2-26/+43
2024-11-24Clean up include pathsDavid Robillard5-0/+7
Removes the source directory from the include path flags passed to the compiler, so that quoted includes always refer to files relative to the one they're in, and angled includes never refer to anything in the source tree. This fixes potential clashes between the name of headers here and on the system.
2024-11-24Use angle brackets for library includesDavid Robillard34-146/+148
2024-11-24Move main() and related code to a separate fileDavid Robillard2-59/+76
2024-11-24Fix PortAudio backend deactivation and cleanupDavid Robillard1-8/+16
2024-11-24Clean up backend allocation and setupDavid Robillard4-44/+66
Separate the concerns of backend allocation and initialization, and always handle allocation at the top level. This avoids multiple confusing paths of backend allocation and configuration in the internal Jack backend.
2024-11-24Move control port printing to console clientDavid Robillard5-42/+31
This functionality was spammed across the codebase and kind of half-implemented for graphical clients, but only really makes sense for the console one. So, isolate it there.
2024-11-24Move general model query functions to a separate fileDavid Robillard6-56/+95
2024-11-24Remove questionable use of exit()David Robillard1-15/+19
2024-11-24Factor out jalv_activate() and jalv_deactivate()David Robillard3-16/+47
Further breaks up the monster jalv_open() and adds symmetric activate/deactivate functions that can be used to repeatedly start and stop audio processing (although this ability isn't currently used).
2024-11-24Clean up worker interfaceDavid Robillard3-63/+79
2024-11-24Replace misleading function name and documentationDavid Robillard3-11/+12
Also clean up the frees in jalv_worker_new() to be in stack order while we're at it.
2024-11-24Factor out atom dumperDavid Robillard5-68/+135
2024-11-24Factor out jalv_free_nodes()David Robillard3-3/+12
2024-11-24Separate URI map implementation from applicationDavid Robillard7-62/+183
2024-11-24Remove unused prototypesDavid Robillard1-12/+0
2024-11-24Improve header documentationDavid Robillard15-14/+15
2024-11-24Simplify env initializationDavid Robillard1-10/+13
2024-11-24Add state_threadSafeRestore to nodes cacheDavid Robillard3-46/+45
2024-11-24Factor out initial_state()David Robillard1-21/+31
2024-11-24Factor out free_control()David Robillard3-9/+18
2024-11-24Make jalv_open() caller responsible for calling jalv_close()David Robillard2-11/+2
2024-11-24Move control port buffers to a separate arrayDavid Robillard10-37/+37
2024-11-24Move PortFlow and PortType definitions to types.hDavid Robillard2-10/+13
2024-11-24Use message mechanism to pause plugin executionDavid Robillard9-27/+98
2024-11-24Use message mechanism to request plugin state updatesDavid Robillard7-43/+21
Replaces highly questionable cross-thread use of the request_update flag.
2024-11-24Only send control messages to designated lv2:control portsDavid Robillard4-22/+19
2024-11-24Factor out process_transport() from Jack process callbackDavid Robillard1-20/+31
2024-11-24Factor out process_silent() from Jack process callbackDavid Robillard1-12/+20
2024-11-24Factor out jalv_write_get_message() from process callbacksDavid Robillard4-11/+26
2024-11-24Use a consistent naming scheme for class members in Qt frontendDavid Robillard2-91/+92
2024-11-24Move utility macros to a separate fileDavid Robillard2-12/+20
2024-11-24Reuse jalv_port_by_symbol() and eliminate duplicated codeDavid Robillard1-9/+1
2024-11-24Factor out forging a position from Jack transportDavid Robillard1-26/+35
2024-11-24Add cached URIDs for atom:Chunk and atom:SequenceDavid Robillard3-6/+7
2024-11-24Move URID and node initialization to a separate fileDavid Robillard5-94/+127
2024-11-24Use a typedef for port flow and type like other enumsDavid Robillard2-6/+12
2024-11-24Use a typedef for ports like other structsDavid Robillard13-50/+47
2024-11-24Fix inconsistent case in information messageDavid Robillard1-1/+1
2024-11-24Move process thread code to a separate fileDavid Robillard6-85/+140
2024-11-24Remove redundant conditionDavid Robillard1-24/+26
Reduce nesting in the implementation by ensuring that state is non-null at the caller.
2024-11-24Fix Jack latency recomputation when plugin latency changesDavid Robillard5-4/+45
Paul Davis says "jack_recompute_total_latencies() is a server call. It is not legal to make server calls from within a server callback (like the process callback)."
2024-11-24Improve const-correctness of Jack latency callbackDavid Robillard1-4/+4
2024-11-24Generalize audio/main thread communicationDavid Robillard6-75/+127
Defines a more general message structure that can also accommodate internal use (not just as a channel for plugin/UI message), and cleans up the ring reading/writing code to prepare for such use.
2024-11-24Allocate message buffers with the necessary size during setupDavid Robillard2-33/+21
Remove static limits and instead allocate large enough buffers for any message sent by the plugin. These buffers only need to hold one message at a time, so they can't be any larger than the largest port buffer (since the plugin couldn't possibly write anything larger). Also replaces some crude hammering on realloc() with reuse of one of these known-large-enough buffers.
2024-11-24Rename ambiguous "buffer_size" field to "ring_size"David Robillard4-15/+13
There's already a lot of "buffer" sizes, and there's about to be even more, so rename this to "ring" size to be obviously about the communication rings.
2024-11-24Remove transport position dumping from Jack process callbackDavid Robillard1-2/+0
This is handy at times, but prints in the process callback which is obviously not realtime safe. The communication dumping is, though, and both are controlled by the same option, so there wasn't a way to enable that without introducing a pretty severe performance issue in the audio thread. So, simply remove it for now. If transport dumping is really needed, it can be implemented by sending the information to the main thread for printing there, which will be easier after the upcoming work to improve the communication facilities.
2024-11-24Add support for control outputs with lv2:latency designationDavid Robillard2-2/+30
2024-11-24Avoid querying the lilv model in the process callbackDavid Robillard3-11/+19