Commit graph

15 commits

Author SHA1 Message Date
derselbst
5afb1a854b make struct _fluid_ladspa_fx_t opaque 2017-10-26 21:45:29 +02:00
Marcus Weseloh
8814926857 Replace number of inputs and outputs on ports with pointer to connected node
Ports can only have a single input or output, so no need for two counters.
And keeping track of the connected node means we can check for
INPLACE_BROKEN plugins, if multiple ports connect to the same node.
2017-10-23 22:12:04 +02:00
Marcus Weseloh
a1ff8d0e55 Render all block using a single LADSPA run
Removes the need for VLAs before ladspa call in rvoice mixer and number
for for loops to set up and advance the buffers. Also reduces the number
of state changes (and atomic operations) by calling fluid_ladspa_run only
once.
2017-10-23 21:41:28 +02:00
Marcus Weseloh
105d9835cb Explicity pass in the audio buffer size when creating LADSPA fx.
And don't pass in node buffer sizes into new_fluid_ladspa_node but
determine it from the node type.
2017-10-23 21:41:20 +02:00
Marcus Weseloh
29a4abb9a5 Use int for number of inputs and outputs, some plugins have a lot of ports 2017-10-22 11:24:25 +02:00
Marcus Weseloh
2787b0e10e Add function to automatically set unconnected port to default value
Uses the hints in the plugin to determine the default value.
2017-10-21 19:47:03 +02:00
derselbst
1d0cfd605f prefer using enum for LADSPA state 2017-10-21 18:13:40 +02:00
Marcus Weseloh
885178ef9d Replace timeout in deactivate with mutex and cond. 2017-10-21 16:32:04 +02:00
Marcus Weseloh
2c7e1696fd Completely decouple LADSPA engine from FluidSynth
Knowledge of FluidSynth is completely removed from the LADSPA effects
unit. All synchronization happens inside LADSPA with atomic operations.
The LADSPA fx instance created by FluidSynth is only special in that
FluidSynth knows about it and calls it's run method when enabled.

This simplifies the code structure, makes the FluidSynth and the LADSPA
engine easier to maintain due to the loose coupling. It also enables
users to create their own (or additional) LADSPA fx unit for further
processing as soon as we expose the LADSPA functions via a public API.
2017-10-21 15:07:39 +02:00
Marcus Weseloh
128a669ef8 Remove volatile from plugin->active 2017-10-20 16:20:50 +02:00
Marcus Weseloh
ce79b5f952 Handle sample rate changes and change sample rate to unsigned long (as defined in ladspa.h) 2017-10-20 15:51:20 +02:00
Marcus Weseloh
e4f0f2b41f Remove unused pthread include 2017-10-20 10:37:30 +02:00
Marcus Weseloh
4120b2320f Major refactor and rewrite of the LADSPA effects engine. 2017-10-19 23:31:05 +02:00
Marcus Weseloh
30dc8f399a Constant nodes now use '$' as first char.
'#' is being treated as a comment by g_shell_parse_argv
2017-10-04 23:28:10 +02:00
derselbst
aac2354f5c remove fop-level "fluidsynth" directory node
cd fluidsynth && git mv * ../
2017-09-03 13:30:26 +02:00
Renamed from fluidsynth/src/bindings/fluid_ladspa.h (Browse further)