Commit graph

20104 commits

Author SHA1 Message Date
Robin Gareus
69f99ee184 I wanna be nasty, I wanna be cruel,..
Somme disastrous signal generators for QA.
2016-04-29 16:10:09 +02:00
Paul Davis
d574039dd4 clean up of displayIfNeeded hack code
Remove most debug output (not all). Rename variables and functions. Add comments
2016-04-29 08:20:01 -04:00
Robin Gareus
29053585a5 save custom favorite plugin order (revert when merging VCA2) 2016-04-29 02:58:01 +02:00
Robin Gareus
d6fb182e9b add Lua DSP plugin category 2016-04-29 02:57:57 +02:00
Robin Gareus
1888104f8d remove "Lua DSP Proc" context meuu 2016-04-29 02:57:51 +02:00
Robin Gareus
25f65d0b90 include lua processors in plugin-selector 2016-04-29 02:57:48 +02:00
Robin Gareus
e56c8f0309 don't special case lua processors, use plugin-manager 2016-04-29 02:57:42 +02:00
Paul Davis
961e7ecdc8 clever tricks with code swizzling to slow down errant plugin GUIs for AU
This commit swizzles (replaces) NSView::displayIfNeeded to allow us to stop redraws of plugin
windows if the Glib idle timer fires less often then every 40msec. The next 10 plugin redraws
(for all plugin windows combined) will be skipped. Heuristics will likely need some adjustments
2016-04-28 18:42:04 -04:00
Robin Gareus
7f1bd3c941 consolidate and re-order luasession code 2016-04-28 21:38:09 +02:00
Robin Gareus
17d782829e flush pending Session Events at session close
This prevents a memory leak: The session is closed.
The session-butler drops memory pool trash. The Engine keeps running.

Once the AudioEngine is taken down (sample-rate switch, or at exit),
the backend process-thread is terminated but there is no trash-can anymore.

If there are unprocessed SessionEvents, this calls
free_per_thread_pool() -> cp->parent()->add_to_trash (cp).
"parent()" in this case the trash-can the butler emptied.
2016-04-28 21:37:18 +02:00
Robin Gareus
633f218911 fix a deadlock with jack2 when inserting a plugin adds ports.
When adding a processor, the processor may add ports leading to
a call to jack_port_register(). while Ardour holds a WritertLock on the
processor-list (this commit removes this WriterLock).

with jack2 that results in a graph-reorder callback (WHY?)

jack2 issues that graph-reorder in a separate thread BUT
port-registration does not return until the graph-reorder is complete.

On Ardour's side, graph_reordered() calls Session::resort_routes ()
which eventually checks Route::direct_feeds_according_to_reality()
which needs a ReadLock on the processor-list to check I/O.

Since jack_port_register() does not return, this constitutes a deadlock.

THE ACTUAL PROBLEM IS JACK2's THREAD DESIGN!
Why does jack_port_register() trigger a graph-order in jack2?
No connections are made.
..and why does it block jack_port_register() from returning if
that graph-order callback is in a different thread?
http://pastebin.com/DZANXJLz
2016-04-28 21:15:26 +02:00
Robin Gareus
d81547efb4 add a debug message for LV2 per port buffer allocation 2016-04-28 12:27:53 +02:00
Robin Gareus
11b2bcbde3 for mixed-i/o show HW ports of both types in the matrix
e.g. sidechain inputs with audio and midi.
2016-04-28 02:52:16 +02:00
Paul Davis
3d07cfce10 remove unnecessary lines+changes 2016-04-27 20:14:10 -04:00
Paul Davis
04d86ebd8d fix logic bomb 2016-04-27 20:12:15 -04:00
Paul Davis
42983959d2 if built on OS X without live resizing features, make AU plugin windows non-user-resiable 2016-04-27 19:59:40 -04:00
Paul Davis
c0673497a6 add a new configure-time for Cocoa live resizing macros
These were added in 10.6 but we're trying to be nice and look for the feature,
not some version
2016-04-27 19:59:40 -04:00
Ben Loftis
b961c1d8f2 another attempt to use platform-specific path for the default VST path 2016-04-27 17:39:38 -05:00
Robin Gareus
370b507d45 amend c1c81a239c after testing 2016-04-27 23:52:34 +02:00
Robin Gareus
c8a46a6502 some linuxVST GUI details: initialize lock, add a note. 2016-04-27 23:34:55 +02:00
Robin Gareus
b3e12d6566 pin connection GUI for variable I/O plugins 2016-04-27 23:34:55 +02:00
Robin Gareus
c30b47f0eb allow to customize variable i/o plugin inputs 2016-04-27 23:34:55 +02:00
Ben Loftis
b191408f98 fix default 64bit Windows VST path ( untested ) 2016-04-27 14:56:19 -05:00
Paul Davis
70b88d5e89 change ordering of origin-move and window-resize for AU plugins 2016-04-27 15:48:13 -04:00
Robin Gareus
c1c81a239c probable fix for 64bit VST signal latency 2016-04-27 21:45:00 +02:00
Paul Davis
f5f1976600 show debug out when AU NSView doesnt get moved 2016-04-27 15:24:00 -04:00
Len Ovens
4a226385b6 OSC: Fix Solo to work with both SIP and Listen. 2016-04-27 09:06:46 -07:00
Robin Gareus
4005ef9db6 tweak LV2 atom buffer allocation strategy
Allow to re-use Midi buffers for GUI communication. Honor
resize-port extension for all Atom Sequence buffers.
(following example of http://lv2plug.in/book/#_sampler)
2016-04-27 14:46:24 +02:00
Paul Davis
2cc7faab21 significant reworking of AudioUnit window resizing.
Tested on Apple Multiban Comp, Apple Dynamics Proc, AU Sampler, Zebra2 and Zebralette.

Still have a 1-2 pixel white border at lower and right edge after window is dragged larger.

Also, debug output.
2016-04-27 00:03:14 -04:00
Paul Davis
9634888bf3 add the concept of a "state mask" that determines what info a WindowProxy will save 2016-04-27 00:03:14 -04:00
Robin Gareus
559860f016 make -D VSTCallbacks readable 2016-04-27 01:44:55 +02:00
Robin Gareus
da26a55b31 canvas tooltips, too 2016-04-27 01:24:37 +02:00
Robin Gareus
336cf2ab1f re-enable "Show Tooltip" preference (needs testing on all platforms) 2016-04-27 01:08:31 +02:00
Robin Gareus
49e5494907 also hide persistent tooltips
debatable, since most of them are not "help/tool info" but rather
"current value display".
Then again tooltip is tooltip and can be annoying or not wanted.
2016-04-27 01:07:53 +02:00
Robin Gareus
54e01f4e48 towards fixing optional tooltips
Editor::parameter_changed() is not called for UIConfig changes.
"use-tooltips" was never triggered.
2016-04-27 01:06:01 +02:00
Robin Gareus
bc553b7d9d remove duplicate "bld.install_files" call 2016-04-26 22:45:06 +02:00
Robin Gareus
671eddb610 deploy all *.colors files in binary bundles 2016-04-26 22:42:28 +02:00
Robin Gareus
cda5b48b96 initialize output data ports for cases where the plugin is not run
(e.g. load session with inactive track, or instantiate an audio plugin
on a midi track before the synth)
2016-04-26 22:21:00 +02:00
Robin Gareus
4b8bc84e4a let GMainContext clean up after us.
this fixes a potential crash in
AsyncMIDIPort::~AsyncMIDIPort() -> CrossThreadChannel::~CrossThreadChannel()
2016-04-26 19:45:06 +02:00
Robin Gareus
43e620504a port 93eac8b0 to ALSA and CoreAudio 2016-04-26 18:19:48 +02:00
Robin Gareus
59f7df38a2 allow to duplicate tracks with sends or load templates with sends/inserts 2016-04-26 18:16:14 +02:00
Robin Gareus
09e5730ffd lua snippet to interact with portengine 2016-04-26 18:16:14 +02:00
Robin Gareus
5227f57f2e implement missing PortManager methods and lua-bind them 2016-04-26 18:16:14 +02:00
John Emmas
7f8c7d8647 #define HAVE_JACK_PORT_RENAME when building with MSVC
This means needing to build against libjack v1.9.11 (or later) although that's probably not a bad thing.
2016-04-26 15:02:20 +01:00
John Emmas
93eac8b068 Use 'const_iterator' to prevent MSVC from complaining 2016-04-26 14:58:16 +01:00
Robin Gareus
f8e05b6be3 remove the splash-screen when changing sessions
ARDOUR_UI::load_session()'s loading_message() shows the splash in
all cases. But only the initial ARDOUR_UI::starting() does destroy it.

In some cases we got away because the Engine Dialog pops back the
splash and the dialog is never destroyed (only hidden).
It's not until ~Dialog that the splash is displayed again (if it exists).
2016-04-26 13:03:47 +02:00
Robin Gareus
01286b442e don't show engine dialog when loading a session..
..and the engine is running at the desired samplerate
2016-04-26 12:56:52 +02:00
Robin Gareus
7cbc6cf8a2 styleguide #10
sigc keeps a reference to the shared_ptr, AsyncMidiPorts were never
unregistered, causing issues when loading a new session w/o Engine
restart.
2016-04-26 04:02:58 +02:00
Robin Gareus
2169de3975 keep portmap & portindex in sync when renaming ports
Fixes crash on session re-load (introduced in 800c8182 and fde99e68)
2016-04-26 02:26:20 +02:00
Robin Gareus
11a69068af PortManager lua bindings (to debug lingering ports) 2016-04-26 02:21:09 +02:00