summaryrefslogtreecommitdiff
path: root/libs/ardour/luaproc.cc
AgeCommit message (Collapse)Author
2016-08-06Enable overriding the configuration penaltyJulien "_FrnchFrgg_" RIVAUD
This is useful for exact matches that would otherwise need to duplicate the bookeeping done by FOUNDCFG()
2016-08-06Introduce a macro for imprecise configurationsJulien "_FrnchFrgg_" RIVAUD
It enables only setting the imprecise audio channel count if the configuration is indeed selected.
2016-08-06Set \imprecise midi channel count in FOUNDCFGJulien "_FrnchFrgg_" RIVAUD
So that it can depend on the actual configuration selected.
2016-08-06Set \imprecise when a configuration is chosenJulien "_FrnchFrgg_" RIVAUD
Instead of setting \imprecise at the end of the loop if a configuration was found (which clobbered valuable information, see dae2406187), set it each time a new configuration is chosen. In the second loop that tries harder, resetting \imprecise also avoids a previous "imprecise->set(AUDIO, 0)" to last even if another configuration is chosen later. Last but not least, it will enable correctly setting the midi input count hoped for by the configuration.
2016-08-06Merge some cases to avoid duplicated logicJulien "_FrnchFrgg_" RIVAUD
Merge the cases in == -1 and in == -2 since those are both wildcards, almost symmetric in the AU spec, and handled completely symmetrically by the code here considering it accepts invalid or unspecified demands. Also merge the cases in > 0 and in < -2 since they are handled exactly the same as far as outputs are concerned.
2016-08-06Remove code with no actual effectJulien "_FrnchFrgg_" RIVAUD
That code modifies \imprecise if it is not NULL, but - if a configuration is found, \imprecise will be set to in, clobbering the tentative changes done here; - if a configuration is not found, a last-resort loop will be run that will set the same member of \imprecise, also clobbering our changes. Remove it since it does nothing that is looked at before being forgotten. A way to get the intended outcome will be introduced later.
2016-08-06Move a MIDI test in the table handling loop...Julien "_FrnchFrgg_" RIVAUD
...to later enable that condition truthiness to depend on the loop iteration. The goal here is to prepare for the upcoming rewrite, without introducing any policy change for now. There is no behavior change because if all loop iterations are skipped, then \found will be false, and with \imprecise being null the last attempt will be skipped and we will return false.
2016-08-06Replace the exact_match logic by a negative penaltyJulien "_FrnchFrgg_" RIVAUD
Instead of doing an initial loop for detection of exact matches, then letting the following loop set \audio_out yet ignore its value, merge the two loops but give exact matches a negative penalty so that the \audio_out value they set won't change afterwards. No policy change.
2016-08-06Remove wrong assertsJulien "_FrnchFrgg_" RIVAUD
2016-08-06LuaProc::can_support_io_configuration: don't mix int and int32_tJulien "_FrnchFrgg_" RIVAUD
2016-08-01Be more tolerant to missing values or errors in io_config()Julien "_FrnchFrgg_" RIVAUD
2016-08-01Remove duplicate setters that don't affect the outcomeJulien "_FrnchFrgg_" RIVAUD
There is no code that read the set value in between the removed line and its exact counterpart below. There is no similar duplicate in the AudioUnit code due to the way AudioUnit handles midi.
2016-07-26Call Plugin::load_preset() from LuaProc::load_preset()Julien "_FrnchFrgg_" RIVAUD
So that the plugin knows that a preset has been loaded, and can send the signal accordingly.
2016-07-26Add missing locale guard for luadsp preset loadingJulien "_FrnchFrgg_" RIVAUD
That caused truncation of parameters to int when the decimal separator is not a period in the user's locale.
2016-07-19and now with "d"Robin Gareus
2016-07-19and plain realloc (not mlocked) as baselineRobin Gareus
2016-07-19another TLSF vs realloc-pool shootoutRobin Gareus
..since memory-size and segmentation increased. (large sizes favor TLSF, smaller segments are in favor realloc-pool)
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-11remove debug outputRobin Gareus
2016-07-11proper semantics for variable port-countRobin Gareus
Ardour takes the closest pin/port match yet still offers a plugin with variable i/o access to all port-buffers. the "reported" (user visible) pin-count now defaults to the actual selected configuration (precise) and lua_dsp_configure() can override it.
2016-07-07implement designated enable/bypass port for lua-procRobin Gareus
2016-07-07add LuaTableRef to DSP API as alternative to shared-memRobin Gareus
2016-07-06tweak lua gcRobin Gareus
lua C++ bindings require ~400KB worth of tables now; so bump memory available to rt-safe scripts (full interpreter) to 2MB. Also switch to incremental GC.
2016-07-02only reconfigure lua DSP plugins if channelcount changesRobin Gareus
2016-07-01some debug message for lua processorsRobin Gareus
2016-06-25major internal plugin & processor API change:Robin Gareus
Pass current (latency compensated) cycle times to plugin. This fixes time-reporting to plugins and also fixes automation and when bouncing (the session->transport* is not valid) etc.
2016-05-29prototype lua midi generators & filters and port event-rewriteRobin Gareus
2016-05-19fix lua instrument pluginsRobin Gareus
2016-05-07fix LocaleGuard contstructor (3dc77280)Robin Gareus
2016-05-05we always only use the "C" locale when saving.Robin Gareus
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-04-29implement lua plugin presetsRobin Gareus
2016-04-29don't special case lua processors, use plugin-managerRobin Gareus
2016-04-15variable plugin port config.Robin Gareus
* extend plugin API (query IO ports) * collect possible variable plugin configurations (AU, Lua) * prepare semi-automatic configuration (presets: mono, stereo, N)
2016-04-15luaproc error loggingRobin Gareus
2016-04-15find a good match for variable i/o pluginsRobin Gareus
2016-04-13fix configurable IO MIDI FX w/strict-i/oRobin Gareus
2016-04-13initialize uninitialized variableRobin Gareus
2016-03-30Delegated plugin configuration is now always successful.. exceptRobin Gareus
..in case of outright errors (e.g. data format mismatch) or non-implemented edge-cases e.g. midi generators (no audio in, no midi in, no audio-out) or control-data filters (only control ports).
2016-03-29lua exception constitues configuration failureRobin Gareus
2016-03-28reduce header dependencies (part 1/2)Robin Gareus
2016-03-19cache LuaProc Parameters in ProcessorRobin Gareus
This prevents concurrent access to the lua interpreter to query them
2016-03-19Revert "hotfix for concurrent lua interpreter calls"Robin Gareus
This reverts commit 8f3a13d998e812e1c997bd8485b0d5c7b7ff9809.
2016-03-19hotfix for concurrent lua interpreter callsRobin Gareus
ToDo: localize parameter descriptor in init()
2016-03-18add LuaProc Plugin state (to allow state copy, indep from controllables)Robin Gareus
2016-03-18implement LuaProc inline displayRobin Gareus
2016-02-23Implement Lua DSP processor/pluginRobin Gareus