Commit Graph

51 Commits

Author SHA1 Message Date
Robin Gareus 0a72c1317f
Initial GUI support to load AAF sessions 2024-02-15 01:44:35 +01:00
Paul Davis f5af821aba startup: in the usual weird logic, mark startupFSM complete from startup_done()
this disconnects the startupFSM from signals it should no longer
handle, even if its existence continues as a leak (noted
elsewhere in the code).
2023-11-14 11:03:09 -07:00
Paul Davis 5122036054 startup: fix use-after free of startup FSM object
In some startup flows, the entire loading process happens inside
StartupFSM::start(). In others, that call gets things moving but
we return from it and loading is not complete until later.

Deleting the StartupFSM while still inside the ::start() call
led to a use-after-free error. This new code will leak the StartupFSM
in some startup flows.
2023-09-18 16:27:11 -06:00
Ben Loftis 4bed642d71
Allow user to choose the session time-domain 2023-09-14 23:13:05 +02:00
Robin Gareus 91fc57b943
Update sample-rate mismatch dialogs to reflect resampling 2023-01-31 01:21:48 +01:00
Paul Davis 21c6c723c4 differentiate between StartupFSM::{Exit,Quit}Program
QuitProgram is a user choice, ExitProgram is an error condition
2022-11-29 10:09:39 -07:00
Paul Davis 8468607a37 be (more) professional 2022-11-19 22:25:03 -07:00
Paul Davis fd78ea90b8 if the startupFSM detects a fatal error during startup, at least tell the user 2022-11-19 21:30:27 -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
Robin Gareus 0c01c50023
Add dialog option to reconfigure audio engine when S/R mismatches 2022-08-06 22:35:01 +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
Mads Kiilerich 440264e0b8
gtkmm: use ALIGN_START instead of deprecated Gtk::AlignmentEnum::ALIGN_TOP 2022-04-08 21:11:06 +02: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
Robin Gareus 005bd4f76f
Set transient parent for missing-* dialogs at start 2021-07-07 00:33:50 +02:00
Robin Gareus 11932af65e
Add preference to opt-out of new version checks
Windows and macOS users don't have an easy way to disable this
otherwise (commandline option or edit URLs in the config, or
compile without PHONE_HOME support).

It's all the rage currently.
2021-07-06 02:08:56 +02:00
Robin Gareus 8237add6d2
Keep track of splash visibility behind dialogs
This fixes various issues, esp on macOS and Windows where
the window is only hidden, not re-stacked:

* plugin scan dialog hides the splash, but
  the plugin-manager emits BootMessage
  (this worked mostly because gtk event loop didn't
  have time to catch up)

* More than one dialog can pop back/front the splash,
  e.g. scripted session-setup or error messages when
  loading recent sessions.
2021-06-23 17:55:01 +02:00
Robin Gareus 65afd57856
Remove debug message 2021-05-23 22:23:27 +02:00
Robin Gareus f10d380d9a
RecorderUI: Tabbable Window Skeleton 2021-02-22 01:00:07 +01:00
Robin Gareus 241105b477
Revert "Add debug output for NSM"
This reverts commit ba9e310d4d.
2020-12-17 16:15:33 +01:00
Robin Gareus ba9e310d4d
Add debug output for NSM
Trying to track down
https://discourse.ardour.org/t/nsm-ardour-6-session-created-with-ardour-5-wont-open-correctly/105020
2020-11-26 01:29:35 +01:00
Robin Gareus 0f372e2785
Late to the party, relax 6.0 stringfreeze 2020-11-26 01:25:24 +01:00
Robin Gareus cda2e004a8 Fix opening sessions using the Finder (OSX)
The ShouldLoad() signal is handled by flush_pending(). This is the first
time that normal application flow can be interrupted in ::starting()
after app->ready().

This calls ::load_from_application_api(), which in turn calls
startup_fsm->handle_path(). This sets off the complete initalization
process, loading the session, and concludes with ::sfsm_response(),
where there is a call to `delete startup_fsm;`

Previously execution continued in StartupFSM::start() which caused a
crash.
2020-06-12 22:13:58 +02:00
Robin Gareus 08d4350ddf
NSM: Use session's rate when starting JACK
Also log if jackd cannot be started or reached instead of
silently terminating.
2020-05-21 16:11:39 +02:00
Robin Gareus 5d0867ec10
NSM special-cases
Special cases to load-or-create session via NSM_Client::command_open
This bypasses most of the startup-FSM for NSM. Either a session
is loaded or created. JACK is mandatory.
2020-05-21 02:04:49 +02:00
Robin Gareus bec9914f37
Continue without NSM if server does not respond 2020-05-13 18:34:00 +02:00
Robin Gareus b6ca576832
Zero x-run counter after GUI completed loading a session
This re-introduces 4262d701eb in a different manner.
2020-03-30 17:43:16 +02:00
Paul Davis 591c219349 don't mark session as unnamed if -N name given on command line 2020-03-29 20:28:08 -06:00
nia 7e15496d5a NetBSD has /etc/login.conf too. 2020-03-26 09:39:44 -06:00
Paul Davis f8b16e9e83 remove a few cerr outputs and change a couple to use cout, since they are not errors 2020-03-25 11:39:32 -06:00
Paul Davis 5d4ad01b58 introduce the idea of an "unnamed" session (GUI edition) 2020-03-24 14:10:39 -06:00
Paul Davis 86045fe526 move more or less all responsibility for ShouldLoad (macOS, NSM) back into ARDOUR_UI 2020-03-05 17:34:41 -07:00
Paul Davis 8d6f6266d2 unfinished fix for handling desktop/NSM specifying session to load
More work needed to fix requirement in StartupFSM that ::load_from_application_api()
is called before ::start()
2020-03-01 21:36:07 -07:00
Robin Gareus 0ad9c3de1a
Fix another stuck splash screen
Don't allow dialogs to re-create the splash only to hide it.
2020-01-17 18:52:33 +01:00
Robin Gareus 242774eada
Allow to configure sample-rate of new sessions
When creating a session from the Editor (after Session > Close,
or directly via Session > New) the engine-dialog needs to be displayed
to allow configuring the sample-rate.

This also consolidates scripted session setup: meta_session_setup()
is now called from build_session(), instead of all callers.
2020-01-09 23:53:07 +01:00
Robin Gareus 2b55d6dce3
First batch of MessageDialog replacements 2019-12-14 23:44:01 +01:00
Paul Davis d574b6ff36 Enable Menu > Quit to work again after startup on macOS 2019-12-14 10:36:31 -07:00
Paul Davis ffc7bd122e emit Application::ready() at a suitable time during startup
This causes macOS to deliver an "openFile" event which allows us
to function correctly when started by a click on a .ardour file
2019-12-14 10:20:55 -07:00
Paul Davis eeb57bfef1 clean up use of startupFSM 2019-10-24 21:32:46 -06:00
Paul Davis 0d86819a2b fix two thinkos with startup sequence
1) audio/MIDI setup was being shown unnecessarily
2) could crash if entire startup sequence passed without any dialogs being necessary
2019-10-18 00:07:31 -06:00
Paul Davis 54acf6af6a enforce singleton nature of Splash a little more rigorously, and slightly rationalize it's use 2019-10-11 14:29:55 -06:00
Paul Davis aaecba2116 move pre-release dialog into StartupFSM (and enlarge font sizing) 2019-10-10 21:24:52 -06:00
Paul Davis fe74488561 make ARDOUR_UI::load_session_from_startup_fsm() return a value, and use it 2019-10-10 16:52:00 -06:00
Paul Davis 18b4a4213f add initial version of StartupFSM along with its owners/users 2019-10-10 16:52:00 -06:00
Paul Davis 2c5fcf24a5 rename ArdourStartup to NewUserWizard and rename source file(s) 2019-10-10 16:52:00 -06:00
Paul Davis dceca00a69 factor out NSM startup code 2019-10-03 17:23:57 -06:00
Paul Davis f470d3e856 remove all use of NO_PLUGIN_STATE #ifdef
We determined several years that we should never ever do this,
and changed the basis for the free/demo copy because of that.
2019-10-02 18:04:40 -06:00
Robin Gareus 6987196ea1
More i18n include order fixes 2019-09-26 06:11:30 +02:00
Paul Davis 468731c14b goodbye Profile->...trx 2019-09-25 13:02:31 -06:00
Robin Gareus 1f4b409d7e
Mixbus backports -- part one of many
Changes that are not explicitly #ifdef'ed should go to ardour-git.
2019-09-24 22:10:20 +02:00