13
0
Commit Graph

20096 Commits

Author SHA1 Message Date
7f1bd3c941 consolidate and re-order luasession code 2016-04-28 21:38:09 +02:00
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
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
d81547efb4 add a debug message for LV2 per port buffer allocation 2016-04-28 12:27:53 +02:00
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
3d07cfce10 remove unnecessary lines+changes 2016-04-27 20:14:10 -04:00
04d86ebd8d fix logic bomb 2016-04-27 20:12:15 -04:00
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
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
b961c1d8f2 another attempt to use platform-specific path for the default VST path 2016-04-27 17:39:38 -05:00
370b507d45 amend c1c81a239c after testing 2016-04-27 23:52:34 +02:00
c8a46a6502 some linuxVST GUI details: initialize lock, add a note. 2016-04-27 23:34:55 +02:00
b3e12d6566 pin connection GUI for variable I/O plugins 2016-04-27 23:34:55 +02:00
c30b47f0eb allow to customize variable i/o plugin inputs 2016-04-27 23:34:55 +02:00
b191408f98 fix default 64bit Windows VST path ( untested ) 2016-04-27 14:56:19 -05:00
70b88d5e89 change ordering of origin-move and window-resize for AU plugins 2016-04-27 15:48:13 -04:00
c1c81a239c probable fix for 64bit VST signal latency 2016-04-27 21:45:00 +02:00
f5f1976600 show debug out when AU NSView doesnt get moved 2016-04-27 15:24:00 -04:00
4a226385b6 OSC: Fix Solo to work with both SIP and Listen. 2016-04-27 09:06:46 -07:00
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
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
9634888bf3 add the concept of a "state mask" that determines what info a WindowProxy will save 2016-04-27 00:03:14 -04:00
559860f016 make -D VSTCallbacks readable 2016-04-27 01:44:55 +02:00
da26a55b31 canvas tooltips, too 2016-04-27 01:24:37 +02:00
336cf2ab1f re-enable "Show Tooltip" preference (needs testing on all platforms) 2016-04-27 01:08:31 +02:00
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
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
bc553b7d9d remove duplicate "bld.install_files" call 2016-04-26 22:45:06 +02:00
671eddb610 deploy all *.colors files in binary bundles 2016-04-26 22:42:28 +02:00
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
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
43e620504a port 93eac8b0 to ALSA and CoreAudio 2016-04-26 18:19:48 +02:00
59f7df38a2 allow to duplicate tracks with sends or load templates with sends/inserts 2016-04-26 18:16:14 +02:00
09e5730ffd lua snippet to interact with portengine 2016-04-26 18:16:14 +02:00
5227f57f2e implement missing PortManager methods and lua-bind them 2016-04-26 18:16:14 +02:00
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
93eac8b068 Use 'const_iterator' to prevent MSVC from complaining 2016-04-26 14:58:16 +01:00
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
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
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
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
11a69068af PortManager lua bindings (to debug lingering ports) 2016-04-26 02:21:09 +02:00
d27f223cd6 tweak location-UI layout (right-align checkboxes & buttons) 2016-04-25 19:55:00 +02:00
e4890b1a85 slightly improved location-UI layout 2016-04-25 19:39:59 +02:00
d1ea5ea22a NO-OP whitespace 2016-04-25 18:49:42 +02:00
674fa50fb8 return of the location GoTo Button
Despite the tooltip, middle-click to locate is not very discoverable,
and tricky to not-available on MacBooks.
2016-04-25 18:17:35 +02:00
77a36d6392 compile-time test for useful ASL API 2016-04-25 09:37:27 -04:00
0e1642f0b4 remove unused code 2016-04-25 09:37:27 -04:00
e984dcec74 fix copy/paste typo in in 5e0f0fc 2016-04-25 14:29:12 +02:00
0e4b3735a5 update luadoc tools 2016-04-25 13:49:43 +02:00