Commit graph

31473 commits

Author SHA1 Message Date
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
31d56eb7fc
Unconditionally set diskstream name, fix setting take-name
Since 6.0 take-name was not updated correctly:
The name changes in Session::non_realtime_stop(). At that
time tracks are still record-armed and ignored name changes.

Newly created tracks also never had a diskstream name set
correctly. This only happened at session-load via set_name(),
or config change.
2021-03-15 22:36:58 +01:00
Robin Gareus
6627d28983
Fix typo in comment 2021-03-15 22:12:31 +01:00
Robin Gareus
bb50925998
Prevent leaking "recorder:" into the file-name
This is safeguard. It should not happen since _write_source_name
once Track::set_name () sets this unconditionally.
2021-03-15 21:28:52 +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
Todd Naugle
7cd1b2c64c Add support for signing and notarizing packages on MacOS 2021-03-15 09:51:57 -05:00
Robin Gareus
bdec5aa88e
Keep I/O bundle names in sync with custom names
This fixes an issues that IObutton dropdown did not show
renamed inputs until after session-reload.
2021-03-14 18:14:56 +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
Todd Naugle
10a05d8769 Add entitlements file for OSX signing 2021-03-12 12:38:44 -06:00
Robin Gareus
d00f361571
Fix mac-build clearlooks theme-engine
gtk looks for a .so file, even on macOS
2021-03-12 18:14:28 +01:00
Robin Gareus
5a20cf56b9
OSX compat: cp -a isn't supported on older versions 2021-03-12 03:28:50 +01:00
Robin Gareus
d3c4ac153c
Cleanup mac bundle
Symlinks are expanded when rolling the .dmg, which leads
to errors during signing and notarization, so copy files
as needed.

This also removes excess files in etc/ (which are also symlinks),
and avoid empty folders and fixes library path in sub-folders.
2021-03-11 23:52:07 +01:00
Robin Gareus
1832228601
Update session-archive error-code to work as documented
* return > 0 if file is not an archive
 * return < 0 if extraction failed
 * return 0 on success.
2021-03-11 19:40:41 +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
6e0a1d9fd7
Fix session-archive extraction on Windows
Inside the archive forward slash is used as dir-separator,
regardless of OS.
2021-03-11 19:13:51 +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
32bba6d7d1
Add option to not show VST3 Micro Edit ctrls by default 2021-03-10 17:44:38 +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
d5eaeb041b
Do not create empty, unused folders when packaging 2021-03-10 13:55:54 +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
9fb21a0905
Add API to determine undo status
This is is useful to determine if an undoable action was
performed before adding additional information (e.g. selection
changes) to the undo transaction.
2021-03-10 13:51:35 +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
John Emmas
3b3d362d56 Add a cast when using 'abs' (to keep MSVC happy) 2021-03-09 11:33:19 +00: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
54ece22efb
Prevent denormals in Lua DSP state (LPF, Biquad) 2021-03-08 22:19:01 +01: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
9ed877f0a1
NO-OP: re-indent and reduce scope 2021-03-07 00:12:29 +01:00
Artem Alimov
5add650871 Add lua methods to control range locations
Method Session:locations():range_starts_at(pos, slop, incl)
to search range by start point with some inaccuracy delta.
Similar to mark_at(pos, slop)

Method Session:locations():add_range(start, end)
to create new range and get it for later changes.
2021-03-07 00:12:13 +03:00
John Emmas
c294932142 When building 'libs/ardour/luabindings/cc' MSVC now requires me to add '/bigobj' to the compiler options 2021-03-06 11:15:39 +00:00
John Emmas
b625461132 Guard some code which isn't currently buildable with VS2019
For some unknown reason, VC++2019 won't let us take the address of std::list::unique() - although other std::list members seem okay. I've spent weeks tracking this down but there's no fix available AFAICT.

I've flagged it up to the MSVC development team - just don't hold your breath !!
2021-03-06 11:12:02 +00: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
John Emmas
73b3ca30bb Add a missing 'const' qualifier to keep VC2019 happy 2021-03-03 12:25:47 +00:00
Robin Gareus
7143592e50
Fix MonitoringAutomation parameter-range 2021-03-03 02:15:25 +01:00
Robin Gareus
cb0b152b35
VST3: Fix MSVC related crashes
Do not simply allocate std::vector<> space but also initialize
elements. The data is later accessed as C-pointer array: &var[0].
With most compilers simply reserving space in the vector is
sufficient in order to later access the elements directly.
However actually placing objects in the vector before referencing
them is more correct.
2021-03-02 19:05:58 +01:00
Robin Gareus
e81794d878
Add preference to keep spilled automation-lanes visible 2021-03-02 19:00:23 +01:00
Robin Gareus
3722b8a94f
VST3: work around plugins with missing controller state
If a plugin implements Vst::IComponent::set_state() but
does not implement Vst::IEditController::setComponentState()
nor dedicated get/setState interface for the IEditController,
querying the parameters using Vst::IEditController::getParamNormalized()
returns values that do reflect the restored state.

In this case the host needs to save/restore all control-parameters,
and ignore values reported by ::getParamNormalized().

This fixes a state save/restore issue with softube.vst3, however
vstpresets are still broken: the GUI (IComponent) is updated,
however the controller isn't.
2021-03-02 03:22:25 +01:00
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