Commit Graph

13923 Commits

Author SHA1 Message Date
Robin Gareus
fddecc11ec Remove unrelated enum cases (-Wenum-compare-switch) 2021-03-17 17:44:11 +01:00
Paul Davis
4abe3ade28 do not commit reversible commands when clearing locations if nothing was changed 2021-03-16 17:40:25 -06:00
Paul Davis
bcb3e75cec GUI to remove xrun markers 2021-03-16 16:49:49 -06:00
Robin Gareus
dfa9f92e53 Fix tab-button state and cycling through tabs
The initial calls in `we_have_dependents()` was redundantly setting
all widows to "Hidden", before the actual state was known.

tabbable_state_change() is initially called for all Tabs:
ARDOUR_UI::setup_windows -> add_to_notebook() -> attach(),
or for detached windows Tabbable::set_state() -> hide_tab().

Step_up/down_through_tabs used window visibility to determine
candidates. This incorrectly considered detached visible tabs.
Detached windows cannot be cycled to.

This also addressed an issue where tab-buttons state was
incorrectly unset what unrelated tab state changed.
ImplicitActive of the currently active tab is now retained
when some other window is attached/detached.
2021-03-16 00:36:22 +01:00
Robin Gareus
6627d28983 Fix typo in comment 2021-03-15 22:12:31 +01:00
Robin Gareus
1d106c88ca NO-OP: comment for later 2021-03-15 20:58:43 +01:00
Robin Gareus
e267c1e129 Also show route owned controls on touch
This add support for special-cased automation controls
(Fader, Trim, Panner, Mute) and spills their automation-lane
on touch.

It also features a small internal API update directly mapping
CheckMenuItem. See also bd8c26a059
2021-03-15 20:58:42 +01:00
Robin Gareus
c9241a5e71 Fix label, remove underscores (amend e81794d87) 2021-03-13 18:36:35 +01:00
Robin Gareus
77d88233a5 Update path label after rename or save-as 2021-03-13 16:53:09 +01:00
Robin Gareus
93121e8aa3 Revert "Show error when session-archive loading fails"
This reverts commit 48225c10bd.

We need to allow this to fail and fall-through to test normal sessions.
2021-03-11 19:37:10 +01:00
Robin Gareus
9ee2a46b7a Allow re-try when session-parameters mismatch
Previously Ardour kept running but no interaction was possible
since the session-dialog was hidden.
2021-03-11 19:20:29 +01:00
Robin Gareus
48225c10bd Show error when session-archive loading fails 2021-03-11 18:25:22 +01:00
Robin Gareus
9f3fba6988 VST3: Prevent recursive endless resizing
Skip call to onSize() when the plugin's size already matches.

https://github.com/Ardour/ardour/pull/599
https://github.com/juce-framework/JUCE/pull/867
https://discourse.ardour.org/t/sonobus-vst3-gui-hogs-cpu-only-when-ran-inside-ardour-on-linux-but-not-windows/105573
2021-03-11 18:19:21 +01:00
Robin Gareus
e07b3104bb Expose VST Micro Edit display option. 2021-03-10 17:57:42 +01:00
Robin Gareus
33de08e9e7 Do not commit empty split undo transactions
When no region(s) are selected and none are under the edit-point,
only a selection change was committed as undo action.
2021-03-10 14:20:24 +01:00
Robin Gareus
bdc1cdc15f Fix crash when separating ranges with automation
playlist->partition() calls DiskReader::playlist_ranges_moved()
which may add Panner and Fader automation state changes.

The reversible command has to be started before calling
playlist->partition(). Simply collecting playlist->rdiff() after
the fact is not sufficient.
2021-03-10 13:55:32 +01:00
Robin Gareus
1ef4fc1140 Show splash-screen content
Since switching to StartupFSM, the GUIIdle signal isn't available
connected at application start. The splash-screen was blank until
the main UI was up.
"Ardour is ready for use" was the only visible message.
2021-03-09 18:29:00 +01:00
Ben Loftis
bdd362ee24 Apply a name to eventboxen in the menu bar, so the theme can be applied 2021-03-08 18:37:54 -06:00
Robin Gareus
cb6ad45e9d Fix crash when CatchDeletion signal from self_delete arrives late
This is rather an unusual edge-case, seen on macOS when the UI
never continues past the first idle stage.
2021-03-08 17:15:03 +01:00
Robin Gareus
e236c2ab0f s/Plugin Manager/Plugin Selector/
The GUI allows to select and add plugins.
Managing plugins will be something different.
2021-03-04 22:09:17 +01:00
Robin Gareus
e81794d878 Add preference to keep spilled automation-lanes visible 2021-03-02 19:00:23 +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
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
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
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
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
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
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
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
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
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
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