For ardev to work on windows (msys) the enviroment variable for the
DLL path needs to be used.
Without this, ardour fails to find the VST(3) scanner programs.
If the currently playing trigger has follow action set to Again, when it stops the previous code state
would cause use to simply retrigger it, causing a lot of things to break. Now, in ::begin_switch() we
set _explicitly_stopped to true, so that ::when_stopped_in_run() can do the right thing and simply
shutdown the trigger completely
When inflating a session from a running instance, not using the
startup FSM, loading the inflated session failed.
set_provided_session() calling
existing_session_chooser.set_current_folder()
failed (despite the folder existing).
This involves multiple interlinked changes:
1. Redesigning StripableColorDialog to:
a) require a std::shared_ptr<Stripable> at construction
b) simplify the rest of its API down to just ::popup (Gdk::Window* parent)
2. dropping ArdourColorButton which was only used in the RouteGroupDialog and
served no real purpose since no Stripable was involved (hence, deriving from
StripableColorDialog was pointless)
3. dropping StripableColorDialog members of both RouteUI and the VCA UI
objects.
4. relying on the already-existing Stripable active_color_picker() API to hold
a reference to the dialog, and using that before creating a new one.
THe dialogs will be deleted in a GUI idle callback when the DropReferences signal
is emitted for the Stripable.
The previous design is broken by the editor mixer strip. If used to open the
comment editor for multiple routes, it would assign its own RouteCommentEditor
as the comment editor for each route.
This new design follows the model used by plugin UIs, in which the libardour
object (here, a Route) itself has a handle on its editor, and we always
look that up before creating a new one.
The new design requires passing a std::shared_ptr<Route> to the comment editor;
the comment editor itself is deleted (in the GUI thread) when the
DropReferences signal is emitted for the Route.
This design continues to meet the original goal of having only a single comment
editor per Route, but in a more correct way than before, and a way that
parallels the handling of plugin UIs.
Properties::region_fx may not be emitted for add/remove/reorder
cases when no disk-reader overrride is required.
However we need to inform the GUI when such changes happen,
and various UI widgets listen to property changes.