first-time user code remains in ArdourStartup
session selection/setup moved to SessionDialog
many other cleanups, logic improvements, and so forth to the overall session loading process.
Not 100% finished yet.
every session member is now initialized using C++ constructor syntax
session construction reordered to clarify the split(s) between work
where the engine is not relevant and work where is it is. this
split is still not 100% obvious, but is enormously clearer than
previously.
if engine/backend are not running as session is created, and the SR
of the sample rate is known, attempt to force backend to that value.
Gtk::FileChooserButton::add_shortcut_folder() throws a Glib::Error
exception if the folder being added already has a shortcut, causing the
'New session' dialogue to appear empty when choosing 'New...' from the
Session menu. This happens if Ardour's default session folder is
set to a location that has a standard shortcut in the Gtk file chooser,
e.g. the user's home directory, desktop, &c.
Catch the exception in ArdourStartup::setup_new_session_page(), so that the
'New session' dialogue appears as expected, and likewise in
ARDOUR_UI::open_session() to avoid a similar problem there.
Fixes#5591.
also includes a few additional tweaks on top of the revert:
don't set sessions to windows managed by the WM::Manager,
and also call WM::Manager's set_session (s); when closing session.
The window proxy defers construction of classes.
set_session() is called before the instances are available.
the proxy-manager only calls set_session() for SessionHandlePtr
but not the class-specific method..
fixes http://tracker.ardour.org/view.php?id=5566
NOTE: this breaks backwards compatibility with icsd and
harvid < 0.3.0 which do not report their settings.
It may also conflict with harvid running on localhost in a chroot.
Ideally this will be a warning only.
That the user can choose to ignore this and should get the option
to stop the video-server and re-start it using a different docroot.