Commit Graph

31246 Commits

Author SHA1 Message Date
4f605926c5
Tweak automation-lane auto-display
Hide lanes when touching a control when the editor is not
visible or if the option is disabled.
2021-02-09 17:41:53 +01:00
John Emmas
15f12bd3a9 A few minor changes to keep VS2019 happy 2021-02-09 10:52:37 +00:00
01bb38d99e
Add option to en/disable showing automation-lane on touch 2021-02-09 02:11:09 +01:00
bd8c26a059
Automatically show automation-lane when touching a control 2021-02-09 02:11:09 +01:00
7e74f9eb1e
Keep track of recently touched Controllable 2021-02-09 02:11:04 +01:00
b3f019b8b7 Use the program icon for the uninstaller on windows.
Otherwise the default nsis one is used.
2021-02-08 10:36:21 -06:00
e204095b71
Fix mixer initial group-tab display 2021-02-07 12:06:26 +01:00
2bf9014ba1
Fix crash when detaching Editor or Mixer w/o session
Mixer_UI::show_window(), Editor::use_own_window() use
`show_all()` and the fixup items that should be invisible.
This involves a call to `parameter_changed ("show-group-tabs");`
2021-02-07 00:09:20 +01:00
b916a14e26 GUI toggle roll method does not set default speed
This allows the user to leave varispeed setting in place
2021-02-05 22:24:02 -07:00
c2aad41e46 libardour: default speed requires transport *and* engine speed
Retain engine speed across stop/start/locate, so that it is
possible to run a loop at non-unity speed. User must
explicitly reset to 1.0 if default speeds are set to !1.0
2021-02-05 22:24:02 -07:00
fb954f50d4
Prevent silentfile over-read #8563
Fixes negative read-count

```
Thread 45 (Thread 0x7fff9d79c640 (LWP 32440) "butler"):
#0 ?? () from /lib64/libc.so.6
#1 ARDOUR::SilentFileSource::read_unlocked (this=0x5555699f2160, dst=0x7fff9c5d8010, start=60547072, cnt=-47406) at ../libs/ardour/ardour/silentfilesource.h:58
#2 ARDOUR::AudioSource::read (this=0x5555699f2160, dst=0x7fff9c5d8010, start=60547072, cnt=262144) at ../libs/ardour/audiosource.cc:322
#3 ARDOUR::AudioRegion::read_from_sources (this=0x555570859780, srcs=std::vector of length 2, capacity 2 = {...}, limit=33675720, buf=0x7fff9c5d8010, position=60547072, cnt=262144, chan_n=0) at ../libs/ardour/audioregion.cc:747
#4 ARDOUR::AudioRegion::read_at (this=0x555570859780, buf=0x7fff9cdd9010, mixdown_buffer=0x7fff9c5d8010, gain_buffer=0x7fff677ff010, position=60547072, cnt=262144, chan_n=0) at ../libs/ardour/audioregion.cc:587
```
2021-02-05 16:06:55 +01:00
482507fabe
Add Lua bindings to modify plugin pin bypass/thru-map 2021-02-05 01:52:27 +01:00
634d325e5d
Prevent deadlock when disconnecting
The backend holds `_port_callback_mutex` while disconnecting ports.
In some cases disconnecting a port can drop the last reference
resulting in a port-deletion from the connection handler.
This in turn will eventually aquire the `_port_callback_mutex`
and deadlock.

This is now circumvented by using atomic operations instead of
taking a lock to set the `_port_change_flag`.

The flag is also used to trigger a latency update in some cases,
atomic is preferable to taking a lock to set this flag.

--

Full bt: https://paste.debian.net/1184056/
Short:

#1  in pthread_mutex_lock ()
#2  in ARDOUR::PortEngineSharedImpl::port_connect_add_remove_callback()
#3  in ARDOUR::BackendPort::~BackendPort()
#4  in ARDOUR::DummyPort::~DummyPort()
#6  in ARDOUR::DummyAudioPort::~DummyAudioPort()
#7  in boost::checked_delete<ARDOUR::BackendPort>(ARDOUR::BackendPort*)
#12 in boost::shared_ptr<ARDOUR::ProtoPort>::reset()
#13 in ARDOUR::Port::drop()
#14 in ARDOUR::Port::~Port()
#15 in ARDOUR::AudioPort::~AudioPort()
#17 in ARDOUR::AudioEngine::add_pending_port_deletion(ARDOUR::Port*)
#20 in boost::detail::sp_counted_base::release()
#37 in ARDOUR::PortManager::connect_callback() at libs/ardour/port_manager.cc:788
#38 in ARDOUR::DummyAudioBackend::main_process_thread() at libs/backends/dummy/dummy_audiobackend.cc:1018
2021-02-04 21:06:20 +01:00
30da8c00b5 fix (??) issue with transport control (stop after locate with no audio tracks)
Unclear why previous code used !tfsm->rolling() rather than tfsm->stopped() but this
now works as intended
2021-02-04 11:07:28 -07:00
acfa04d700
Update Ctrl-surface MIDI port list when ports change
This is a better variant of bbb6851468, directly using
the GUI context without indirection.
2021-02-04 06:19:37 +01:00
ed5a9979ea
Retain "Virtual Keyboard" pretty name across engine restarts 2021-02-04 05:23:17 +01:00
3d44f39c09
Report failed connections when reconnecting ports
This is needed to update the GUI (mixer-strip I/O buttons)
when the engine is re-started with different I/O.

When Port::reconnect() cannot re-connect the port (e.g.
because the corresponding hardware port is missing), the IO object
needs o be notified -> PostDisconnect() -> IO::disconnect_check.

While the port-manager re-establishes and re-connects port,
port_manager->running() == false, and Port::get_connections()
returns the Port::_connections set (not actual engine connections).
So _connections.clear() has to be called synchronize it with
the actual engine connection state.
2021-02-04 04:41:22 +01:00
25ab3b14c9
Don't run input meters (unused in Ardour 6) 2021-02-04 03:03:13 +01:00
162b6426d7
Fix fader font-size
This partially reverts 2abf9c66a4. The layout
of faders widgets is not persistent and re-created as needed.
2021-02-03 20:14:22 +01:00
f01ece1bd7 AU: Fix variable I/O instruments
Refactoring in 7ec10f7771 assumed that
audio inputs are always present.
2021-02-03 15:33:07 +01:00
b50a6fbe17
Fix LV2 boolean Atom values size #8558
As per lv2/atom.lv2/atom.h
LV2_Atom_Bool is-a LV2_Atom_Int, which uses int32_t
2021-02-02 22:41:57 +01:00
4f87d59576
Reduce InternalReturn inheritance
InternalReturn makes no use of Return or IOProcessor methods
or members. It is a truly independent Processor.
2021-02-01 23:49:49 +01:00
7d3d64512c
Hide hidden ports in port-matrix 2021-02-01 23:49:39 +01:00
7888d85750
Tweak icon-tool output image 2021-01-30 23:24:03 +01:00
e511ee968e
Yet another C++11ism 2021-01-30 23:23:35 +01:00
9c2bb240af
Fix icon tool for gcc-10 2021-01-30 16:47:44 +01:00
74566fc006
Add "+" icon 2021-01-30 16:47:44 +01:00
John Emmas
79c6f4a3ab Some older versions of std::map can be touchy about us trying to erase a const_iterator 2021-01-30 14:05:31 +00:00
John Emmas
bf75df3790 Add/remove source(s) in our MSVC project (gtk2_ardour) 2021-01-30 14:00:39 +00:00
John Emmas
66d63dde89 A few extra changes needed to support the latest version of libpthread for Windows 2021-01-30 13:59:22 +00:00
John Emmas
b496a71d2e Some preliminary changes needed to support building with VS2019
(these get me about as far as 'libardour' )
2021-01-30 13:55:25 +00:00
24e0391679
Fix C++11'ism 2021-01-30 05:01:33 +01:00
2e5ba08286
Add signal to indicate any track rec-arm change 2021-01-30 02:38:54 +01:00
518f307e00
Share IO selector window for a given route
Previously it was possible to open the multiple IOSelectorWindows
from multiple locations: editor-mixer, mixer, track/bus inspector,
track header context menu, etc. for the same port.
2021-01-30 02:38:44 +01:00
3e7b2bb3f5
Separate IO connection button into dedicated class 2021-01-30 02:38:39 +01:00
33088c728a
Clean up AudioClock font API
see also previous commit 2abf9c66a4
2021-01-30 02:23:59 +01:00
2abf9c66a4
Fix size-request that rely on Pango::Layout
A Pango::Layout created by Gtk::Widget::get_pango_context ()
does not have any font set. The Font is inherited from the
layout's context.

The actual font is set when the layout is used in
on_expose_event() via get_window ()->create_cairo_context ().

In some cases we rely on the font-size to calculate the widget's
size before rendering. At this point in time there is no drawing
context from which to inherit the style.

Furthermore, even after a call to `ensure_style()` in the c'tor
of a Widget get_font() simply returns the default value.

All Widgets that rely an Pango::Layout font size during
size-requests have to explicitly set the font.

This fixes various overlarge buttons with the initial default layout.
2021-01-30 02:23:35 +01:00
d42b09f1d3
Remove cruft, there are no more diskstreams 2021-01-29 03:23:57 +01:00
dcb27a844a
Remove yet another unused variable 2021-01-29 02:58:33 +01:00
a985a3d184
Remove a variable that is never read 2021-01-29 02:58:33 +01:00
9b4d330285
Remove unused variable
`ignore_toggle` is never set to true.
2021-01-29 02:58:25 +01:00
John Emmas
42aef22e17 Add/remove source(s) in our MSVC project (gtkmm2ext) 2021-01-28 10:50:27 +00:00
42ac0f1d64
ArdourButton: Render text on pixel boundaries
This fixes some occasional blurry font display when text
was rendered to non-integer pixel positions.
2021-01-27 18:33:03 +01:00
6636bba6ae
Add missing file (amend 70ad205bc1) 2021-01-27 04:42:38 +01:00
e73d20c5a4
Close and save is possible without running engine
Since de99d7c528, Ardour sessions can be saved and
Ardour can be closed without a running engine.
2021-01-27 04:13:26 +01:00
d23798276a
Use CairoTheme API 2021-01-26 23:37:57 +01:00
70ad205bc1
Separate static widget theme into abstract class
This allow the style to be used in classed that are not
directly derived from Ardour's CairoWidget, notably
container widgets or plugin UIs.
2021-01-26 23:37:54 +01:00
046d7d01f5
Fix boost 1.74 + gcc 10.2 warnings
bind.hpp:36:1: note: ‘#pragma message: The practice of declaring the
Bind placeholders (_1, _2, ...) in the global namespace is deprecated.
Please use <boost/bind/bind.hpp> + using namespace boost::placeholders,
or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.
2021-01-26 01:54:37 +01:00
cf6e785ed3
Move Playlist GUI functions to RouteUI
This allows to re-use playlist editing in all RouteUI derivatives,
not just the main editor time axis header.

The change is mostly a NO-OP, simply moving methods from
RouteTimeAxisView (is-a RouteUI), to RouteUI.
2021-01-26 01:54:33 +01:00
e78de225d4
ArdourButton: LED-sized buttons w/o LED
This is useful for consistent layout in the recorder Window,
where Buttons are either push-buttons or LED toggle-buttons.
2021-01-25 19:18:56 +01:00