aboutsummaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
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
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 Robillard7-86/+139
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 Robillard5-52/+72
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 Robillard6-25/+26
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-17Use fewer platform-specific APIsDavid Robillard1-15/+0
The previous few commits replaced the use of various platform-specific things, leaving mostly only POSIX, so clean up the configuration defines to require only what's needed.
2024-11-17Use nanosleep() instead of usleep()David Robillard1-2/+3
The old usleep() was declared obsolete by POSIX.1-2001, and removed in POSIX.1-2008.
2024-11-17Move string utilities to a separate compilation unitDavid Robillard9-35/+57
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-17Update clang-format configurationDavid Robillard2-8/+4
2024-11-14Add brief comments for undocumented "public" functionsDavid Robillard4-1/+24
2024-11-14Remove unused prototypes and make functions static where possibleDavid Robillard6-34/+16
2024-10-12Avoid static downcastsDavid Robillard1-12/+17
2024-10-12Merge duplicate branchesDavid Robillard1-7/+1
2024-10-12Use anonymous namespacesDavid Robillard1-44/+52
2024-10-12Remove more old-style casts in C++David Robillard1-1/+2
2024-10-12Remove unused constructorDavid Robillard1-10/+0
It looks like this has always been dead code.
2024-10-12Add missing const qualifiersDavid Robillard12-52/+54
2024-10-12Factor frontend command-line arguments into a structDavid Robillard5-43/+60
2024-10-12Use conventional POSIX format for command-line messagesDavid Robillard1-29/+33
2024-10-12Remove useless conditionsDavid Robillard2-13/+7
2024-10-12Add field width to scanf pattern to protect against huge inputsDavid Robillard1-3/+3
Ultimately this needs to be replaced with something more serious, but for now, 240 characters ought to be enough for anybody.
2024-10-12Handle realloc failure everywhereDavid Robillard3-8/+22
2024-10-12Handle allocation failure in jack_initialize()David Robillard1-4/+10
2024-10-12Return distinct error codes from jack_initialize()David Robillard1-3/+13
2024-10-12Initialize bufferDavid Robillard1-2/+2
2024-10-12Reduce variable scopeDavid Robillard1-3/+2
2024-10-12Clean up portaudio driverDavid Robillard1-6/+19
2024-10-12Use exhaustive switch statements everywhereDavid Robillard2-9/+6
2024-10-12Remove unused preprocessor symbolsDavid Robillard1-6/+1
2024-10-12Avoid use of non-literal format stringDavid Robillard1-3/+5
2024-10-12Avoid casting away constDavid Robillard1-11/+24
2024-10-12Enable unused parameter warningsDavid Robillard1-0/+4
These were fixed earlier (and the clang-tidy warning enabled), but the compiler flags were't strengthened.
2024-10-12Declare classes final and fix strict GCC release buildDavid Robillard1-2/+2
2024-10-12Fix whitespace and add clang-format testDavid Robillard1-1/+1
2024-07-12Remove dead codeDavid Robillard2-5/+1
2024-07-12Fix minor memory leaksDavid Robillard2-0/+7
2024-07-12Add Qt6 versionDavid Robillard2-1/+9