Commit Graph

1210 Commits

Author SHA1 Message Date
Robin Gareus b8551eed7e
Properly unload VST3 plugins
The InstrumentSelector keeps a PluginPtr reference to all
instruments. By default Ardour does not destroy the editor
at exit, So 3 instances of Instrument Selector can remain

 * TriggerClipPicker in the editor sidebar (owned by _editor)
 * TriggerClipPicker on the TriggerPage (owned by trigger_page)
 * SoundFileOmega (sfbrowser owned by Editor)

If a shared_ptr reference is retained, VST3 Module is not
unloaded at exit. This leads to issues with various plugins.
eg. Reason Rack does not terminate, Ardour hangs at exit.
2023-10-27 00:39:03 +02:00
Robin Gareus c1be897eed
Explicitly sandbox Lua instances (3/4)
This allows UI scripts (saved in preferences) to access
os.* functions (non-sandboxed), while preventing other
scripts to do so.

Lua scripts that can run os commands can execute arbitrary
code on the system. While this is a nice feature, it can be
equally dangerous.
2023-10-04 02:50:38 +02:00
Robin Gareus d7c611e025
Guess UI scale for copy-config dialog
This dialog shows before the new user wizard,
where a user would configure HDPI/UI scaling.
2023-09-25 17:07:15 +02:00
Robin Gareus 4628be8ed3
Fix capitalization in running text 2023-06-04 16:08:11 +02:00
Robin Gareus d206e5daa7
Allow translation, Track and Bus may have different gender 2023-06-04 15:55:33 +02:00
Robin Gareus bedca7b5ef
Amend prev commit, pick different max channels for custom config 2023-04-20 19:08:29 +02:00
Robin Gareus 24986b1f17
Add dialog to configure custom number of chnnels 2023-04-20 19:04:39 +02:00
Paul Davis 786f71f7f1 fix GUI enum registration so that UIConfiguration can load with variables that use some of them 2023-04-08 13:58:25 -06:00
Paul Davis b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Robin Gareus 168344a3f9
Indicate sample-rate mismatch in the status-bar 2023-02-12 16:23:42 +01:00
Paul Davis 303f838a53 define new actions for stopping triggers/slots 2022-12-10 10:33:39 -07:00
Paul Davis d757fd5506 print XML errors to stderr not just the error stream 2022-11-19 21:30:27 -07:00
Mads Kiilerich 1e77814c62 MainClock: drop 'primary' parameter
The main clock no longer use direct access to the config system, and
is no longer restricted to know whether it is primary clock or not.
2022-11-20 02:31:22 +01:00
Mads Kiilerich 728e463d01 AudioClock: make last_when public and use it instead of current_time
Having current_time as a public alias of the private last_when did not
add any clarity to the abstraction of last_time. A small step, but still
room for improvement.
2022-11-17 18:04:08 +01:00
Paul Davis ffd089720d ardour UI: provide proxies for BasicUI trigger/cue methods 2022-11-16 14:15:34 -07:00
Paul Davis 5330d73c35 ArdourUI HAS-A BasicUI
The idea is to allow some reduction in code duplication
2022-11-16 14:15:34 -07:00
Robin Gareus 0bf8e7d8cf
Make clock mode settings session independent
Much like the edit-tool and grid-types, clock-modes are UI state.

Saving the UI state separately allows them to be used
consistently for new sessions. Previously clock-modes were set
initially (at application start) and when loading sessions.

The clock modes of newly created sessions was different
depending on loading another session prior to creating the
session. This is now no longer the case.
2022-10-10 21:03:45 +02:00
Paul Davis 0d5fd0de0c rename "library manager" to "library downloader everywhere (breaks string freeze) 2022-09-27 11:22:56 -06:00
Robin Gareus 6f9f7fb831
Fix typo, shorten dropdown strings 2022-09-19 23:24:42 +02:00
Robin Gareus 5fb628d3ed
Use new record-mode pref (2/2), GUI control 2022-09-19 22:50:11 +02:00
Paul Davis 583bfa8878 remove some library mgmt related code that should not have been committed 2022-09-07 17:27:51 -06:00
Paul Davis 5461bfb218 add a new global window for reviewing and (soon) downloading loop libraries 2022-09-07 17:03:08 -06:00
John Emmas 30efdbe0f8 Some minor reverts to commit #63f94d29463 (from 25th May 2022)
These were preventing Ardour from compiling on Windows (Clang or MSVC)

Possibly would've been buildable with MinGW but I don't have that available to test.
2022-08-21 12:34:10 +01:00
itmuckel 63f94d2946 Remove unused includes 2022-08-19 09:27:19 -06:00
Colin Fletcher c9446aa1e1 gtk2_ardour: set region marks into currently recording regions
Region actions are generally set insensitive whilst recording, so
special-case the "add-region-cue-marker" action by explicitly enabling it
when starting to roll in record. Additionally, the action becomes disabled
again after it's been executed, so re-enable it after queuing the cue when
recording.
2022-08-09 14:03:16 -06:00
Robin Gareus 7408a9958e
Fix duplicate UI initialization
When loading the very first session is canceled (e.g.
sample-rate mismatch -> Do not load session) or fails otherwise,
execution returns to the startupFSM.

Loading another session after that then takes the same path again:

StartupFSM::dialog_response_handler() -> StartupFSM::engine_running()
-> ARDOUR_UI::attach_to_engine()

The call needs to be idempotent, otherwise setup_windows(),
create_editor() etc are called a second time and Ardour crashes.
2022-08-06 21:44:55 +02:00
Robin Gareus 84d6a0a75d
Copy demo sessions (if any) for new-users
* Fix demo-session glob (missing "*" + session_archive_suffix)
* Copy demo-session also when copying settings from older version
* Also add demo-session to recent-list if it was previously unpacked
  for new major versions.
2022-07-27 01:08:01 +02:00
Paul Davis e2e6274956 libardour: change API of Session::request_locate() to include "force" argument (GUI edition) 2022-05-27 18:49:23 -06:00
Robin Gareus d513d8b876
Do not allow dir-separators in session-template names
See also: 576f10b6f1
2022-05-15 19:53:12 +02:00
Robin Gareus f8e1202ed4
Bootstrap IO Plugin UI 2022-05-09 17:39:05 +02:00
sra 76a0b3c70e
Disable sandbox in lua SessionInit scripts. 2022-04-21 00:34:10 +02:00
Mads Kiilerich 7f649efd42
gtkmm: use set_can_focus() instead of deprecated Gtk::Widget::set_flags(CAN_FOCUS) 2022-04-08 21:11:06 +02:00
Mads Kiilerich 440264e0b8
gtkmm: use ALIGN_START instead of deprecated Gtk::AlignmentEnum::ALIGN_TOP 2022-04-08 21:11:06 +02:00
Mads Kiilerich 2aa72891f3
gtkmm: use ALIGN_START instead of deprecated Gtk::AlignmentEnum::ALIGN_LEFT 2022-04-08 21:11:06 +02:00
Mads Kiilerich a86aa31747
gtkmm: use get_visible() instead of deprecated Gtk::Widget::is_visible() 2022-04-08 20:20:10 +02:00
Mads Kiilerich d52c727ec5
gtkmm: use get_mapped instead of deprecated Gtk::Widget::is_mapped() 2022-04-08 20:20:10 +02:00
Ben Loftis b25aa18c80 add_route_dialog: add a checkbox to show Tracks on the Cue page 2022-03-18 18:36:06 -05:00
Ben Loftis 7f89db9f36 primary clock should show BBT now 2022-03-15 09:03:40 -05:00
Robin Gareus c593ac75a5
Remove Video Export Infobox (1/2) 2022-03-11 04:55:46 +01:00
Robin Gareus 370adfa322
Add option to hide cue rec/play toolbar buttons 2022-03-01 17:53:11 +01:00
Ben Loftis 54d794e242 rough-in global Cue functions (rec-enable and play-enable i.e. cue-ffwd) 2022-02-12 21:46:30 -06:00
Ben Loftis 986942fe96 Cue Page: rename Trig -> Cue 2022-01-25 19:50:57 -06:00
Robin Gareus 5f3cd26d02
Cleanup at exit, delete duplicate_routes_dialog 2022-01-24 21:25:20 +01:00
Robin Gareus de355155ed
NO-OP: clarify variable name (2/2) 2022-01-15 00:06:38 +01:00
Paul Davis 7ade2099ce move point of deletion of video timeline
The "ask about deletion" dialog will run a recursive main loop
which will call idle handlers, which could call the visual change
handler if the playhead is rolling. VTL is assumed to stoll
exist when this is called
2021-12-15 15:52:15 -07:00
Paul Davis 237dfb53e7 remove add trigger check box from add route dialog (always use triggers) 2021-12-13 15:12:36 -07:00
Houston4444 692aa7bbb8
Add NSM ':switch:' capability
This allows to switch from one Ardour session to another without
application restart.

This also include some minor related NSM fixes.
2021-12-04 14:34:44 +01:00
Robin Gareus 9ce604bc03
New Tabbable: Trigger-Page skeleton 2021-12-01 23:10:08 +01:00
Paul Davis 9e763c2672 remove all dangling event-loop-precall code 2021-10-11 17:48:53 -06:00
Paul Davis c0720c7a4c don't show standalone triggerbox window after adding tracks with a triggerbox 2021-10-10 13:53:45 -06:00