Age | Commit message (Collapse) | Author |
|
ARDOUR_UI::load_session() calls flush_pending() which runs
gtk_main_iteration()s until idle.
If a user selects another snapshot from the sidebar, load_session()
is called again (from a call to load session)
|
|
|
|
|
|
|
|
|
|
|
|
If pending_visual_change.pending was zero when calling idle_visual_changer
the handler_id was never reset. and the idle-handler was never called
again.
|
|
|
|
This is necessary to allow calculation of correct intersection of visible
canvas area and items for the new Item::prepare_for_render() API.
samples_per_pixel must be set first to calculate the new horizontal canvas
position in Editor::set_horizontal_position and then
WaveView::set_samples_per_pixel will eventually call
WaveView::prepare_for_render for those items that are visible on the new canvas
position at the new position.
Or if there is not a change to zoom state then call Canvas::prepare_for_render
explicitly.
Also changes so that each method is only called once during
Editor::visual_changer
|
|
First visual change will be processed as normal and then blocked until the
canvas renders the change. If further visual changes need processing then
Editor::pre_render callback will schedule another expose/redraw/render.
This prevents an issue where idle_visual_changer is called many times in
response to events(keys/motion/etc) but the canvas does not get a chance to
render any but the last one which results in a big pause/jump.
This results in a more responsive canvas and in particular a smoother and more
predictable zooming experience.
|
|
This multiplier really should be based on the "responsiveness" of the
canvas..or something. I think this is an improvement for more complex sessions
with many regions.
|
|
|
|
|
|
|
|
|
|
Add to source files that use LocaleGuard
Results in far less recompiling when pbd/locale_guard.h changes
|
|
All float <=> string conversions are now done using PBD::to_string/string_to()
in ConfigVariable class or via XMLNode::get/set_property()
|
|
float <=> string conversion is done using PBD::string_to/to_string() via
XMLNode::get/set_property so the LocaleGuards are no longer necessary
|
|
PBD::string_to is now used for float <=> string conversions so a LocaleGuard is
no longer necessary.
|
|
all float <=> string conversions are done via PBD::to_string/string_to. Either
via XMLNode::get/set_property or directly in HSV and SVAModifier classes
|
|
The float <=> string conversions that this guard was protecting are now using
PBD::to_string/string_to() via XMLNode::get/set_property()
|
|
There are no float <=> string conversions in these methods and g_base64_encode
etc functions are not affected by locale.
|
|
All float <=> string conversion is now done using PBD::to_string/string_to()
via XMLNode::get/set_property()
|
|
All float <=> string conversions are now done using locale independent
PBD::to_string/string_to() via XMLNode::get/set_property
|
|
|
|
Saving the new ControlList interpolation methods (enum) breaks loading
the session in older version. The session-format version will
need to be increased.
Until then:
* Fader automation + region gain envelope uses linear fades
* The automation-line visible in the GUI does not match the actual fade
(the y-axis is log/exp-scale, the fade is linear)
* Adding new points on the line is not using the correct initial value
* Custom changes of interpolation mode are not available
Neither of these issues is a regression.
|
|
|
|
|
|
|
|
remove use of
- unbound_min/max
- list->default_value and min/max_y
|
|
Note: Control-surfaces should always use interface_to_internal()
and internal_to_interface().
|
|
Trim automation is planned via SlavableAC as normal AutomationMode.
Some of this code have a revival (a special "Trim+Preview" state
before merging Automation but that has to be more general than Pan & Gain.
|
|
|
|
for a certain string leads failure to launch the application on Windows 10
|
|
|
|
because reordering a TreeView [pragmatically] does not retain selection.
|
|
The first click to select a new stripable may actually un-select strip.
counting and ignoring this leads to strange behavior.
Also when the selection_counter hit zero, VCAs were not ignored.
whatever this workaround was good for, it's more trouble than it's worth.
As side-effect this also improves DnD + Gtk::Entry behavior with stock GTK.
|
|
There's no TargetEntry receiver for the custom DnDTreeView<Route> object.
We can just use a default Gtk::TreeView.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Remove old code to remove duplicate engine state which was used to
work-around a bug since 3.x saved duplicates but broke with 4.x separate
i/o devices.
Add a new variant to purge old unused states per backend (after sorting).
|
|
* add an abstract StripableTimeAxisView (Route TAV + VCA TAV)
* move common strip-methods into STAV
* Add Automation Lanes to VCA TAV
* Allow ATAV without Automatable for VCA Controls
|
|
|
|
|
|
|