13
0
Commit Graph

25141 Commits

Author SHA1 Message Date
34936f3654 Allow calling IO::silence for yet unregistered ports (Click) 2017-08-03 23:54:26 +02:00
6b5d374352 Some more assert() debugging 2017-08-03 23:46:05 +02:00
1937c74191 Ignore cycle-start/end for unregistered ports
Should fix a race during Session::destroy(), Port::PortDrop
which unregisters ports with the backend, but the actual port instance
will still exist.

The engine does no longer have a session-pointer and only calls
CycleStart(); CycleEnd() to clear port-buffers. Trying to clear
and already unregistered Port will crash.
2017-08-03 19:25:14 +02:00
8b380a423a improve 1a288ddd, destroy IO after disconnecting from signals.
This does not completely fix the race-condition. The GUI
(e.g. connection-manager) may still hold a shared-ptr reference.
2017-08-03 19:25:14 +02:00
1b5354632f Fix Session > New (cancel retains the current session if any) 2017-08-03 19:25:14 +02:00
d0c934a9de Fix crash when cleaning up w/o destroying session
- Control-protocols may transmit data during cleanup
 (e.g. reset surface), and need the Audio-engine to do so.
- destroying the ControlProtocolManager w/o the Session calling
 ::drop_protocols(), lead to a double free.
2017-08-03 19:25:14 +02:00
81f12f602b OSC: Fix to make sure buses created with Ardour 4.7 sessions show up 2017-08-03 09:09:02 -07:00
d5c5969da5 Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour) 2017-08-03 07:49:28 +01:00
4e1772425d prevent duplicate playlist-names when re-naming #7438 2017-08-03 02:04:57 +02:00
cooltehno
bbb5c54c2e Update clear_gray-ardour.colors 2017-08-02 14:42:45 -04:00
cooltehno
631a06e653 Update caineville-ardour.colors 2017-08-02 14:42:27 -04:00
d1558dcab5 OSC: Add command to select Master 2017-08-02 10:43:13 -07:00
1a288ddd95 Fix some more crashes at session-close
PortDrop unregisters backend ports, the backend will return a NULL
buffer-pointer, but the I/O object still exists (Metronome, LTC)

AudioBuffer::_data == 0

#0  msvcrt!memset () from C:\Windows\System32\msvcrt.dll
#1  ARDOUR::AudioBuffer::silence (this=0x2c410710, len=256, offset=0) at ../libs/ardour/audio_buffer.cc:88
#2  ARDOUR::AudioPort::cycle_end (this=0x34918730, nframes=256) at ../libs/ardour/audio_port.cc:66
#3  ARDOUR::PortManager::cycle_end (this=this@entry=0x23342770, nframes=nframes@entry=256)
[process callback w/o session]
2017-08-01 23:27:34 +02:00
9694986a85 Fix LTC encoder removal
Fixed a crash if an x-run or graph-reorder happens after the LTC encoder
has been destroyed (possible at session-close or after disabling
the encoder).  This also fixes duplicate callbacks in case the
encoder was re-enabled times in an active session.
2017-08-01 17:48:42 +02:00
79dc3882ea Fix Linux packaging to deal with jackd -RC versions 2017-08-01 16:56:20 +02:00
df76e4417d Fix ATAV GUI property cleanup
AutomationTimeAxisView::state_id() requires a stripable
(stripable == automatable + parameter OR  stripable + control)
2017-08-01 16:56:20 +02:00
ab02284fc2 OSC: expand plugin_descriptor to split into smaller OSC messages (issue #0007433) 2017-08-01 07:23:27 -07:00
e4925a90cb OSC: add param to plugin_list response which indicates plugin enable state (OnkelDead) 2017-08-01 07:04:59 -07:00
Petr Semiletov
6159bea376 More Russian translation updates 2017-07-31 23:52:02 +02:00
47e4ffc06d Fix erroneous changes in the previous updates, translate more into Russian 2017-07-31 23:24:29 +02:00
Johannes Mueller
6663a26755 Signal wish to show inline display in gui by lv2:optionalFeature
... in .ttl file rather than by extension_data() in code. That's more in the
spirit of LV2.
2017-07-31 21:31:23 +02:00
Johannes Mueller
e75db87bf6 Tweaking the a-comp inline display a bit. Make it more skinny. 2017-07-31 21:31:23 +02:00
Johannes Mueller
2716ce41e0 Indicate whether to show plugin's inline display in GUI
This is currently done by an extension data similarly to
LV2_INLINEDISPLAY__interface.
2017-07-31 21:31:23 +02:00
Johannes Mueller
59775df9be Simplified inline display if the channel strip is not wide enough
If the width of the display area is below 200 px, we switch from the graph
display to displaying only two bars, one for output level and one for gain
reduction. In the bar mode we also visualize threshold and ratio.
2017-07-31 21:31:22 +02:00
Johannes Mueller
24cbb1b153 Honor attack and release parameters in a-comp's inline graph 2017-07-31 21:31:22 +02:00
Johannes Mueller
ccab32654b Indicate gain reduction in a-comp 2017-07-31 21:31:22 +02:00
e65ff3fb4a Show range -60 .. +10 dBFS in acomp's inline display 2017-07-31 21:31:22 +02:00
Johannes Mueller
85106d81a0 Set makeup to 0.f when bypassed also in stereo version 2017-07-31 21:31:22 +02:00
Johannes Mueller
29df879edd Adjust the indication of the treshold value by the makup gain.
When lifting the compressor curve by the makeup gain value the actual
treshold (the level when the curve kinks in) is also lifted. Therefore we need
to adjust the dashed line indicating the threshold as well as the level when
the color gradient to show compression kicks in.
2017-07-31 21:31:22 +02:00
Johannes Mueller
dff4153024 Also the stereo version needs to set need_expose 2017-07-31 21:31:22 +02:00
Johannes Mueller
f68754b19d Show a-comp's makeup grain in inline rendering 2017-07-31 21:31:22 +02:00
Johannes Mueller
4a60c277db Some abstractions to make the display look good in the plugin gui 2017-07-31 21:31:22 +02:00
Johannes Mueller
a61ae46c82 Display the inline display in the generic plugin gui 2017-07-31 21:31:22 +02:00
Johannes Mueller
37b03e353a Put plugin inline display into a freely available class ...
... and let ProcessorBox::PluginInlineDisplay inherit from it.
2017-07-31 21:31:22 +02:00
660096b037 Fix typo 2017-07-31 19:54:23 +02:00
f51fab35b1 OSC: Make stripname refresh in automation play mode as well. 2017-07-31 07:55:09 -07:00
e94771a58f OSC: fix VCAs try to connect to controls it does not have. 2017-07-30 18:35:38 -07:00
008c3db9cd Some session cleanup fixes (delete slave, take lock for lua) 2017-07-31 01:48:28 +02:00
Petr Semiletov
31a9f24ef4 More Russian translation updated and fixes 2017-07-30 16:57:58 +02:00
85925747b2 Update Russian translation 2017-07-30 16:51:54 +02:00
83e45911e3 VCA master-strip: drop gain-control reference 2017-07-30 04:51:25 +02:00
243d55f3c2 Remove an unused variable 2017-07-30 02:42:55 +02:00
edcfa23e14 Binding Proxy: Drop references as requested. 2017-07-30 02:42:55 +02:00
6f80a5ba0f Turn AutomationCtrl into a SessionHandleRef
This fixes a crash with GUI elements which are only deleted during GUI
Idle and hold a Reference to a Controllable,
The session is already destroyed at that point:

ARDOUR::CoreSelection::remove_control_by_id(PBD::ID const&)
ARDOUR::AutomationControl::~AutomationControl()
ARDOUR::SlavableAutomationControl::~SlavableAutomationControl()
ARDOUR::MonitorControl::~MonitorControl()
boost::detail::sp_counted_base::destroy()
boost::detail::sp_counted_impl_p<AudioGrapher::Interleaver<float>::Input>::dispose()
boost::detail::sp_counted_base::release()
boost::detail::shared_count::~shared_count()
boost::shared_ptr<PBD::Controllable>::~shared_ptr()
boost::shared_ptr<PBD::Connection>::~shared_ptr()
ArdourWidgets::BindingProxy::~BindingProxy()
ArdourWidgets::ArdourButton::~ArdourButton()
VCAMasterStrip::~VCAMasterStrip()
int idle_delete<VCAMasterStrip>(VCAMasterStrip*)
2017-07-30 02:42:55 +02:00
ea48c56061 NO-OP: name-change (_list and _lock are also used in other places)
Derived classes need to explicitly specify namespace and class
to avoid ambiguities (even for private members)
2017-07-30 02:42:55 +02:00
Petr Semiletov
fe5f00c367 Russian po updates, typo in automation_time_axis.cc fix 2017-07-29 23:16:49 +02:00
80ecac672f Modify our MSVC project to add libltc as a dependency of 'dummy_backend' (which now needs to link to it) 2017-07-29 10:46:53 +01:00
7f03c9a664 Fix an ambiguous call to 'floor()'
MSVC complains, so let's specify which override we want.
2017-07-29 10:44:00 +01:00
06c37b7c3f Fix edit-cursor in TextEntry
Gtk::WINDOW_POPUP cannot be used for windows that require focus.
A gtk-entry without focus does not show an edit-cursor.
2017-07-29 02:05:37 +02:00
b5e0b5b09f PortManager::unregister_port() must be called with process lock
This fixes "Failed to register <surface> port" when re-loading a session.
2017-07-28 20:15:15 +02:00