aboutsummaryrefslogtreecommitdiffstats
path: root/src/jalv.c
AgeCommit message (Collapse)AuthorFilesLines
2024-11-24Cleanly separate backends from the rest of the applicationDavid Robillard1-6/+17
Finally hitting some concrete refactoring paydirt, with this, backend code doesn't have access to the application as a whole whatsoever. If some day the backends become loadable modules that need a more stable API, something will need to be done about jalv_backend_open(), probably move the parameters into some struct to make the interface extensible. For now though, being explicit and fine-grained is fine (good, even), if a bit verbose.
2024-11-24Cleanly separate audio thread from the rest of the applicationDavid Robillard1-148/+103
2024-11-24Move process thread setup code to a separate fileDavid Robillard1-32/+1
Towards more cleanly separating the audio thread code from the rest of the application.
2024-11-24Factor out "settings" that affect the execution processDavid Robillard1-85/+42
2024-11-24Simplify port buffer allocationDavid Robillard1-14/+14
2024-11-24Move ring size calculation into a function with other similar onesDavid Robillard1-9/+9
2024-11-24Rename jalv_internal.h to jalv.hDavid Robillard1-1/+2
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-24Use angle brackets for library includesDavid Robillard1-21/+21
2024-11-24Move main() and related code to a separate fileDavid Robillard1-59/+0
2024-11-24Clean up backend allocation and setupDavid Robillard1-5/+10
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 Robillard1-12/+0
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 Robillard1-50/+7
2024-11-24Remove questionable use of exit()David Robillard1-15/+19
2024-11-24Factor out jalv_activate() and jalv_deactivate()David Robillard1-15/+35
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 Robillard1-0/+2
2024-11-24Replace misleading function name and documentationDavid Robillard1-2/+2
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 Robillard1-53/+11
2024-11-24Factor out jalv_free_nodes()David Robillard1-3/+1
2024-11-24Separate URI map implementation from applicationDavid Robillard1-41/+24
2024-11-24Simplify env initializationDavid Robillard1-10/+13
2024-11-24Add state_threadSafeRestore to nodes cacheDavid Robillard1-6/+2
2024-11-24Factor out initial_state()David Robillard1-21/+31
2024-11-24Factor out free_control()David Robillard1-9/+1
2024-11-24Make jalv_open() caller responsible for calling jalv_close()David Robillard1-10/+1
2024-11-24Move control port buffers to a separate arrayDavid Robillard1-15/+12
2024-11-24Use message mechanism to pause plugin executionDavid Robillard1-2/+2
2024-11-24Only send control messages to designated lv2:control portsDavid Robillard1-16/+13
2024-11-24Move utility macros to a separate fileDavid Robillard1-12/+1
2024-11-24Add cached URIDs for atom:Chunk and atom:SequenceDavid Robillard1-6/+3
2024-11-24Move URID and node initialization to a separate fileDavid Robillard1-94/+0
2024-11-24Use a typedef for ports like other structsDavid Robillard1-15/+15
2024-11-24Move process thread code to a separate fileDavid Robillard1-81/+4
2024-11-24Fix Jack latency recomputation when plugin latency changesDavid Robillard1-0/+2
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-24Generalize audio/main thread communicationDavid Robillard1-42/+69
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 Robillard1-32/+18
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 Robillard1-12/+10
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-24Add support for control outputs with lv2:latency designationDavid Robillard1-2/+28
2024-11-24Avoid querying the lilv model in the process callbackDavid Robillard1-0/+8
2024-11-24Move jalv_send_to_plugin() to avoid the need for a prototypeDavid Robillard1-55/+48
2024-11-24Simplify jalv_send_to_plugin()David Robillard1-43/+19
2024-11-24Move low-level event sending functions to a separate fileDavid Robillard1-50/+1
Takes advantage of the dependency trimming of the previous commit to work towards separating things more cleanly.
2024-11-24Move ring error handling and logging to a higher levelDavid Robillard1-36/+42
This removes the dependency on the "global" Jalv object from the low-level message sending functions.
2024-11-17Rename UI port event function and move it to the appropriate headerDavid Robillard1-2/+3
This isn't a "global" internal function like the others in jalv_internal.h, but rather the prototype of a function that must be implemented by frontends.
2024-11-17Move string utilities to a separate compilation unitDavid Robillard1-0/+1
These don't really have anything to do with logging. Also replace a call to the non-standard strdup() in the process.
2024-11-17Use portable zix filesystem APIDavid Robillard1-21/+20
2024-11-14Add brief comments for undocumented "public" functionsDavid Robillard1-1/+0
2024-11-14Remove unused prototypes and make functions static where possibleDavid Robillard1-5/+12
2024-10-12Add missing const qualifiersDavid Robillard1-9/+9
2024-10-12Factor frontend command-line arguments into a structDavid Robillard1-7/+10
2024-10-12Remove useless conditionsDavid Robillard1-5/+3