This is in preparation to allow merging sessions, or importing
partial state, and particularly different versions of the same
session where PBD::Ids may match.
Replace obj.ldflags = '-l... with obj.lib = ['... to work for both MinGW and MSVC.
Also, obj.linkflags = ['-Wl,--export-all-symbols'] only happens for MinGW.
(Previously, both lines were ignored by MSVC.
Existing code sent RouteAdded() before the instrument plugin(s) were added. Rather than risk changing code
ordering, just emit a 2nd signal to notify (the GUI) that new instrument tracks/busses were added
This should be used when a Destructible-derived object needs to be
deleted. Handlers of the DropReferences signal should not responsible for
deleting the Destructible, since that would happen in the middle of signal
emission.
Instead, emit the DropReferences signal, then delete the Destructible.
The GUI only subscribes to the mutable's mute_points_changed
signal, without direct access to to the MuteMaster itself.
Previously changing mute points by means other than the GUI,
did not update existing context menus in the mixer GUI.
The sends subview now shows "off" when a mixbus send enable control is
toggled from the GUI. Additionally, any disabled mixbus sends will
now properly show "off" after instantiating the sends subview and calling
SendsSubview::setup_vpot().
This currently only affects Mixbus since Route::send_enable_controllable is not
actually exposed in Ardour.
This is because windows does not allow trailing space or dot.
So once we use legalize_for_universal_path() it may strip
valid char "New Session.." + ".ardour"
We can only use `legalize_for_universal_path` for base-name
paths relative to the Ardour session folder.
The full absolute path can contain locally legal chars,
which legalize_for_universal_path would replace, so we need
to be careful.
We should also use `legalize_for_universal_path` for the
snapshot name (and name used in interchange), but that may break
sessions.