Commit Graph

31382 Commits

Author SHA1 Message Date
Robin Gareus
650f027a9b Backport VST3 diagnostic pragma
Fixes excessive warnings when compiling on macOS.

This will be overwritten with the identical upstream fix
https://github.com/steinbergmedia/vst3_pluginterfaces/blob/master/base/falignpush.h
with the next tools/update_vst3.sh run
2021-03-01 22:14:38 +01:00
Robin Gareus
e3c3109618 Unsubscribe from signals when clearing references
This fixes crashes with plugins calling setDirty() when the
UI is closed. `plugin` has already been reset before
the actual window is closed:

`PluginUIWindow::~PluginUIWindow()` runs, and destroys the window,
here `~VST3NSViewPluginUI ()`. This closes the VST3 view, which
triggers a `VST3PI::setDirty`.
At this point in time `~PlugUIBase()` has not yet run, so all
signals are still connected.

setDirty() ends up calling PlugUIBase::update_preset_modified()
which access `plugin` pointer, which is NULL.
2021-03-01 22:11:15 +01:00
Robin Gareus
291de1d277 Fix OSX and non GCC builds 2021-03-01 16:20:38 +01:00
Robin Gareus
0d838355c3 RecorderUI: handle meter lineup level config changes 2021-02-28 20:57:22 +01:00
Robin Gareus
f8c75914c4 RecorderUI: handle meter-theme changes 2021-02-28 20:03:12 +01:00
Robin Gareus
b064b3c136 OSC: fix some compiler warnings 2021-02-28 20:01:06 +01:00
Robin Gareus
0c3eaf188b OSC: liblo compatibility fix
see also 770fd1519c
2021-02-28 20:00:04 +01:00
Robin Gareus
7195ca20e0 Update weak_libjack - https://github.com/x42/weakjack/
This fixes an issue with recent MSVC causing a compile-error
due to __attribute__((constructor))
2021-02-28 16:27:22 +01:00
Robin Gareus
b553b67407 Fix curl free() ambiguity - fixes windows issues
curl_free() is to be used for data allocated by
curl_easy_escape() or curl_easy_unescape() in libcurl.

This is unrelated to realloc/free in WriteMemoryCallback().
2021-02-28 15:17:30 +01:00
Robin Gareus
f8ba27f417 Work around crash #8586
MidiRegionView::select_notes() may call MRV::add_to_selection
which may call editor().get_selection().clear ();
This in turn clears the pending_midi_note_selection, invalidating
iterator.

This bug was introduced in 7cf435a876 (6.5.148)
2021-02-28 14:58:18 +01:00
Robin Gareus
770fd1519c Liblo compat fix
Upstream liblo changed the opaque type `lo_message` from void*
to a custom struct {}.

2c1ef1c682/
2021-02-28 02:25:02 +01:00
Robin Gareus
0f63cba3c7 Fix audition-tool
* Don't set default speed when using audition
* Use actual engine speed, since v6
  Session::transport_speed is {-1, 0, 1}
2021-02-27 23:12:15 +01:00
Robin Gareus
51cba19eaf Fix big clock window record-state info
When showing the clock window after starting to record,
the record-state was not correctly indicated.
2021-02-27 19:25:45 +01:00
Robin Gareus
81d833e938 Fix Windows builds, declare class-keys for bindings 2021-02-27 16:51:37 +01:00
Robin Gareus
003245654a Allow auto-start if there is no backend information for the session 2021-02-27 16:41:09 +01:00
Robin Gareus
835f30e5f5 Consistency: replace "x-run" with "xrun" (2/2) 2021-02-26 22:22:57 +01:00
Robin Gareus
ace11bd243 Consistency: replace "x-run" with "xrun" (1/2) 2021-02-26 22:22:08 +01:00
Robin Gareus
355528781d Fix Bundle Editor: show connected ports
PortGroupList::gather() first adds UserBundle ports to
`system->add_bundle (*i, allow_dups);`

That can include ports that are already associated with the
current bundle. The port in this case has the Bundle's name.
Those ports are later removed in BundleEditorMatrix::setup_ports
`_ports[OTHER].remove_bundle (_bundle);`

However we do need to show physical ports by their name, even
if they're identical to the already associated bundle to allow
disassociating them.
2021-02-26 19:14:57 +01:00
Robin Gareus
4716f34c28 UserBundle: Allow adding/removing ports
Clean up internal API confusion
- can_add_channels_proxy () -- checks presence of io
- can_add_channel_proxy () -- checks io->can_add_port()

UserBundle don't have a PortGroup::_bundle reference
that can be used to lookup the IO via io_from_bundle().

While BundleEditorMatrix::can_add_channels_proxy() was overriden
to allow adding I/Os, can_add_channel_proxy() later prevented that.

This further prevents removing the last port, preventing empty bundles.
2021-02-26 15:49:07 +01:00
Robin Gareus
017b272864 Update I/O Button when bundles change
This fixes an issue with the connection button still showing
the name of a Bundle even after deleting it, or displaying an
old name after renaming a bundle.
2021-02-26 15:49:04 +01:00
Cameron
c075d3a026 prevent registering multiple identical file descriptors
fix indentation

fix more indentation
2021-02-26 15:47:40 +01:00
John Emmas
74670d2789 Derive some functions from RecInfoBox::update() (in the derived classes)
For whatever reason, MSVC doesn't like us connecting so many signals to 'RecInfoBox::update()' (crashes the Debug build)
2021-02-26 13:07:35 +00:00
Robin Gareus
739ee688bf Fix Bundle I/O direction
With bundles `ports_are_inputs()` indicates inputs that Ardour
can write to (data sinks, for playback).

BundleEditor::input_or_output_changed () set this correctly.
2021-02-26 13:44:04 +01:00
Robin Gareus
1ae8ebf7c0 Fix OSX/PPC builds
monitor_port.cc:164: error: reference to 'AudioBuffer' is ambiguous
candidates are:
 CoreAudio.framework/Headers/CoreAudioTypes.h:106: typedef struct AudioBuffer AudioBuffer
 ardour/audio_buffer.h:34: error: class ARDOUR::AudioBuffer
2021-02-26 13:38:29 +01:00
Robin Gareus
d2d268263c Add Lua Bindings to access Bundles 2021-02-26 13:34:24 +01:00
Robin Gareus
61b29c5810 Fix track-record-axis cleanup, duplicate self delete
Also hide/delete IOSelector dialogues early on when closing
the session.
2021-02-26 03:08:35 +01:00
Robin Gareus
ad9e44e92a RecorderUI: consistent rec-arm button size
The rec-arm circle diameter is given by 0.5 * min (width, height).
For mono tracks the diameter is limited with the height of the
track. When more channel meters are visible the height increases and
the rec-arm circle grows.

The solution here is to constrain the rec-arm button width to its
minimum and not grow to have the same width as other buttons.

This also changes the default meter-height so mono and stereo tracks
have the same height (with default scaling).
2021-02-26 00:02:50 +01:00
Robin Gareus
611fff21ae NO-OP: remove unused variables 2021-02-25 23:57:33 +01:00
Robin Gareus
4ccad6eae4 Fix pasting processors pre-fader #7416
Previously when using index == 0, a hidden processor
(Recorder or Delayline) would be returned instead of the first
actual processor.
2021-02-25 19:54:12 +01:00
Robin Gareus
a7ce58b995 Fix rec-ruler time display
The calculation to round the distance to seconds has to be performed
using floating point maths, not just the result being cast to double.
The time-granularity must not be zero.
2021-02-25 17:59:53 +01:00
Robin Gareus
a9192266d0 Only save engine-hints when ardour started the engine 2021-02-25 17:53:45 +01:00
John Emmas
53b90dc0dc Add a cast when using 'ceil' (to keep MSVC happy) 2021-02-25 16:46:19 +00:00
Robin Gareus
07d04be98d Potential fix for MSVC builds
The set is defined with custom compare fn:
  std::set<T, cmp> x;
but later iterators used a default constructor:
  std::set<T>::iterator i = x.begin();
2021-02-25 15:55:10 +01:00
Robin Gareus
d124b3600b Add a separator between script and window buttons 2021-02-25 14:29:12 +01:00
Robin Gareus
4521bf9158 Re-arrange Rec/Edit/Mix buttons
* Arrange Edit & Mix to reach the right-edge, stacking
 them the same way, as previous versions for muscle memory.
* Hide preferences window button
2021-02-25 14:00:59 +01:00
Ben Loftis
8985e50672 Use verbs for the toolbar tab/window buttons 2021-02-25 13:58:27 +01:00
Robin Gareus
353e9b6843 Remove hardcoded file info box width
This addresses an issue with translations, where some labels
result the box to need a width > 300px.
This also scales the box with the rest of the UI.
2021-02-25 04:11:06 +01:00
Robin Gareus
49f5df69a1 Reduce Prefs Dialog min-width
* Shorten long labels
  Those increase the x-offset for the data table column on the right.
* Shorten some long ComboBox texts
* Reduce min. slider controller width
* Tag some long labels and dropdowns that are currently the bottleneck
2021-02-24 21:37:16 +01:00
Robin Gareus
24a4f37aaa Cont'd Preferences pane re-ordering
* Split "Signal Flow" pages to reduce height requirement
  -> Signal Flow  & -> Solo/Monitoring
  The latter is just control logic, no signal flow changes.
* Group CPU/FPU performance Options
* Move Region-Analysis to Metering (it is not performance related)
2021-02-24 21:37:16 +01:00
Robin Gareus
6a7cc2a3e9 Work around over-sized ComboBoxes in the Prefs. dialog 2021-02-24 21:37:16 +01:00
John Emmas
d2cb383965 MSVC changes to support the new code modules (Tabbable API stuff) 2021-02-24 14:32:23 +00:00
Robin Gareus
68d26ffee9 Relax A5 style exclusive In/Disk monitoring
This allows "All In" and "All Disk" to be selected simultaneously.
2021-02-24 00:21:44 +01:00
Robin Gareus
dfffec9b58 Allow forcing cue-monitoring 2021-02-24 00:20:21 +01:00
Robin Gareus
7f9dae0078 RecorderUI: add a "+" add route button
This provides consistent look and feel with the mixer-window.
2021-02-23 23:07:22 +01:00
Robin Gareus
f31e8ede4c Unconditionally switch Manual->Play when drawing automation 2021-02-23 22:00:27 +01:00
Robin Gareus
33c596e149 Warn user if the engine device changed
This prevents accidentally auto-starting the engine (most recently
used device) with a session that recently used different hardware.
2021-02-23 19:32:03 +01:00
Robin Gareus
0b00eabb19 Store recently used backend with session
This is in preparation to warn a user in case the session
is loaded with a different device and connections may be lost.
2021-02-23 19:22:22 +01:00
Robin Gareus
02ba5a7cd1 Remove unused Tabbable tab_title (3/3) 2021-02-23 17:30:26 +01:00
Ben Loftis
73fb2ddfed Remove deprecated tab_title (2/3) 2021-02-23 17:23:08 +01:00
Robin Gareus
d264cbb21b Prepare for Tabbable API change (1/3) 2021-02-23 17:22:22 +01:00