Tim Mayberry [Mon, 5 Sep 2016 00:22:39 +0000 (10:22 +1000)]
Remove locale_guard.h from ardour/ardour.h header
Add to source files that use LocaleGuard
Results in far less recompiling when pbd/locale_guard.h changes
Tim Mayberry [Sun, 4 Sep 2016 23:40:45 +0000 (09:40 +1000)]
Remove unused pbd/locale_guard.h header from Gtkmm2ext::Barcontroller class
Tim Mayberry [Sun, 4 Sep 2016 23:35:03 +0000 (09:35 +1000)]
Remove LocaleGuard from ARDOUR_UI::save_ardour_state method
All float <=> string conversions are now done using PBD::to_string/string_to()
in ConfigVariable class or via XMLNode::get/set_property()
Tim Mayberry [Sun, 4 Sep 2016 23:32:45 +0000 (09:32 +1000)]
Remove LocaleGuards from VideoTimeLine class
float <=> string conversion is done using PBD::string_to/to_string() via
XMLNode::get/set_property so the LocaleGuards are no longer necessary
Tim Mayberry [Sun, 4 Sep 2016 23:30:20 +0000 (09:30 +1000)]
Remove LocaleGuard from VideoUtils::video_query_info
PBD::string_to is now used for float <=> string conversions so a LocaleGuard is
no longer necessary.
Tim Mayberry [Sun, 4 Sep 2016 23:21:22 +0000 (09:21 +1000)]
Remove LocaleGuards from UIConfiguration class
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
Tim Mayberry [Sun, 4 Sep 2016 23:06:17 +0000 (09:06 +1000)]
Remove LocaleGuard from MixerUI class
The float <=> string conversions that this guard was protecting are now using
PBD::to_string/string_to() via XMLNode::get/set_property()
Tim Mayberry [Sun, 4 Sep 2016 23:03:40 +0000 (09:03 +1000)]
Remove LocaleGuards from LuaInstance state methods
There are no float <=> string conversions in these methods and g_base64_encode
etc functions are not affected by locale.
Tim Mayberry [Sun, 4 Sep 2016 22:59:36 +0000 (08:59 +1000)]
Remove LocaleGuards from ExportVideoDialog class
All float <=> string conversion is now done using PBD::to_string/string_to()
via XMLNode::get/set_property()
Tim Mayberry [Sun, 4 Sep 2016 22:02:36 +0000 (08:02 +1000)]
Remove LocaleGuards from Editor class
All float <=> string conversions are now done using locale independent
PBD::to_string/string_to() via XMLNode::get/set_property
Tim Mayberry [Sun, 4 Sep 2016 12:52:58 +0000 (22:52 +1000)]
Remove LocaleGuards from SVAModifier and HSV classes
float <=> string conversion now done using PBD::to_string/string_to so
LocaleGuards are no longer needed.
Tim Mayberry [Sun, 4 Sep 2016 12:49:07 +0000 (22:49 +1000)]
Remove LocaleGuard from ARDOUR::PannerShell
All Panner implementations using PBD::to_string/string_to for float <=> string
conversion and no longer require a LocaleGuard.
Tim Mayberry [Sun, 4 Sep 2016 12:47:32 +0000 (22:47 +1000)]
Remove LocaleGuard from ARDOUR::Pannable class
string <=> float conversions are using PBD::to_string/string_to and no longer
require a LocaleGuard
Tim Mayberry [Sun, 4 Sep 2016 12:44:27 +0000 (22:44 +1000)]
Remove LocaleGuards from ARDOUR::Tempo class
All float <=> string conversions are done for PBD::string_to/to_string and no
longer require a LocaleGuard.
Tim Mayberry [Sun, 4 Sep 2016 12:40:47 +0000 (22:40 +1000)]
Remove LocaleGuards from ARDOUR::Speakers class
float <=> string conversions are now using PBD::to_string/string_to via XMLNode
for locale independent conversion and these guards are not necessary.
Tim Mayberry [Sun, 4 Sep 2016 12:38:41 +0000 (22:38 +1000)]
Remove LocaleGuards from ARDOUR::Session transport related methods
ARDOUR::AutomationList is no longer using LocaleGuards as float <=> string
conversion is using PBD::to_string/string_to so the reason for adding these
guards as per comment no longer applies.
Tim Mayberry [Fri, 16 Jun 2017 00:56:15 +0000 (10:56 +1000)]
Remove LocaleGuard from Session::load_options
PBD::ConfigVariable uses PBD::to_string/string_to methods so this LocaleGuard
is no longer necessary.
Tim Mayberry [Sun, 4 Sep 2016 12:27:37 +0000 (22:27 +1000)]
Remove LocaleGuards from SessionConfiguration class
ConfigurationVariable is now using PBD::to_string/string_to for float <=>
string conversions so LocaleGuard is no longer necessary.
Tim Mayberry [Sun, 4 Sep 2016 12:22:09 +0000 (22:22 +1000)]
Remove LocaleGuard from Session::immediately_post_engine method
I think this was only to protect the float <=> string conversion in
Session::setup_click_state related to click gain which is now using
PBD::to_string/string_to and so no longer necessary.
Tim Mayberry [Sun, 4 Sep 2016 12:13:14 +0000 (22:13 +1000)]
Remove LocaleGuard from ARDOUR::Route class
Route and all members are now using locale independent string <=> float
conversions.
Tim Mayberry [Sun, 4 Sep 2016 12:08:47 +0000 (22:08 +1000)]
Remove LocaleGuard from ARDOUR::MonitorProcessor state method
All float <=> string conversions are done using PBD::to_string/string_to via
XMLNode and LocaleGuard is not necessary.
Tim Mayberry [Sun, 4 Sep 2016 12:04:00 +0000 (22:04 +1000)]
Remove LocaleGuard from ARDOUR::RCConfiguration class
This presumes that all ControlProtocol implementations either use
PBD::to_string/string_to for float <=> string conversions, which is now the
case.
Tim Mayberry [Sun, 4 Sep 2016 11:56:02 +0000 (21:56 +1000)]
Remove LocaleGuards from LuaProc class
All float <=> string conversions are done using PBD::to_string/string_to via
XMLNode so no LocaleGuard is necessary.
Tim Mayberry [Sun, 4 Sep 2016 11:36:14 +0000 (21:36 +1000)]
Remove LocaleGuard from ARDOUR::MidiTrack class
There are no float <=> string conversions and they are all now performed using
PBD::to_string/string_to via XMLNode
Tim Mayberry [Sun, 4 Sep 2016 11:29:41 +0000 (21:29 +1000)]
Remove LocaleGuard from ARDOUR::MidiDiskstream class
There are no float <=> string conversions in MidiDiskstream state methods,
these guards must have been to protect conversions in Diskstream state methods
which are now using PBD::to_string/string_to via XMLNode so no longer need
guarding.
Tim Mayberry [Sun, 4 Sep 2016 11:26:11 +0000 (21:26 +1000)]
Remove LocaleGuards from ARDOUR::ExportFormatSpecification state methods
All float <=> string conversions are performed by PBD::to_string/string_to via
XMLNode.
Tim Mayberry [Sun, 4 Sep 2016 11:18:47 +0000 (21:18 +1000)]
Remove LocaleGuard from ARDOUR::Diskstream state method
The float conversion in Diskstream::get_state is now done using
PBD::to_string/string_to via XMLNode::set_property API.
There was no explicit LocaleGuard protecting the string -> float conversion to
remove so it was probably protected by the caller.
Tim Mayberry [Sun, 4 Sep 2016 11:16:49 +0000 (21:16 +1000)]
Remove LocaleGuard from ARDOUR::AutomationList class
All float conversions are using PBD::to_string/string_to via
XMLNode::get/set_property API
Tim Mayberry [Sun, 4 Sep 2016 11:11:14 +0000 (21:11 +1000)]
Remove LocaleGuard from ARDOUR::Region class
Property conversions <=> string use PBD::to_string/string_to so float
conversions don't need to be protected by a LocaleGuard
Tim Mayberry [Sun, 4 Sep 2016 11:08:18 +0000 (21:08 +1000)]
Remove LocaleGuard from ARDOUR::AudioRegion state methods
float <=> string conversions are performed using PBD::to_string/string_to via
XMLNode
Tim Mayberry [Sun, 4 Sep 2016 11:03:51 +0000 (21:03 +1000)]
Remove LocaleGuard from ARDOUR::AudioTrack class
The gain property float <=> string conversion is now performed using
PBD::to_string/string_to via XMLNode
Tim Mayberry [Sun, 1 Jan 2017 11:34:35 +0000 (21:34 +1000)]
Remove LocaleGuard from AudioFileSource::get_state
Not necessary when using XMLNode::set_property API
Tim Mayberry [Sun, 4 Sep 2016 11:00:14 +0000 (21:00 +1000)]
Remove LocaleGuard from ARDOUR::AudioDiskstream state methods
There are no float <=> string conversions and they are all now performed using
PBD::to_string/string_to via XMLNode
Tim Mayberry [Sun, 4 Sep 2016 10:51:06 +0000 (20:51 +1000)]
Remove LocaleGuard from ARDOUR::IO class state methods
There are no float <=> string conversions that require a LocaleGuard and all
conversions are performed using PBD::to_string/string_to via XMLNode
Tim Mayberry [Sun, 4 Sep 2016 10:38:30 +0000 (20:38 +1000)]
Remove LocaleGuard from PBD::Controllable state methods
These are no longer necessary as float <=> string conversion is handled by
locale independent PBD::to_string/string_to via XMLNode::get/set_property
Len Ovens [Wed, 21 Jun 2017 22:17:43 +0000 (15:17 -0700)]
OSC: Accept mixed parameter types for touch
Paul Davis [Wed, 21 Jun 2017 18:19:21 +0000 (14:19 -0400)]
compilation requires <stdint.h>
Robin Gareus [Mon, 19 Jun 2017 14:45:57 +0000 (16:45 +0200)]
Some ToDo notes about AutomationTypes
Robin Gareus [Wed, 21 Jun 2017 15:08:59 +0000 (17:08 +0200)]
Remove internal_to_user/user_to_internal API
Also GainControl can just use the AutomationControl's implementation of
get_user_string()
Robin Gareus [Wed, 21 Jun 2017 15:05:03 +0000 (17:05 +0200)]
Prepare removal of redundant get_user/set_user API.
Robin Gareus [Wed, 21 Jun 2017 11:55:49 +0000 (13:55 +0200)]
Temporary session-format compatibility (revert before release)
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.
Robin Gareus [Wed, 21 Jun 2017 12:39:56 +0000 (14:39 +0200)]
Fix VST default value. query once at instantiation time.
Robin Gareus [Wed, 21 Jun 2017 12:41:40 +0000 (14:41 +0200)]
Consolidate ParameterDescriptor settings+ranges
Robin Gareus [Tue, 20 Jun 2017 12:48:38 +0000 (14:48 +0200)]
Add interpolation-mode menu to ATAV.
Robin Gareus [Wed, 21 Jun 2017 11:03:00 +0000 (13:03 +0200)]
Log-scale/relative automation point dragging
Robin Gareus [Mon, 19 Jun 2017 14:51:17 +0000 (16:51 +0200)]
update GUI to use new APIs
Robin Gareus [Mon, 19 Jun 2017 14:47:02 +0000 (16:47 +0200)]
Set default interpolation type (for new lanes)
Robin Gareus [Tue, 20 Jun 2017 21:41:05 +0000 (23:41 +0200)]
Add API to compute parameter delta, depending on AutomationType
Robin Gareus [Mon, 19 Jun 2017 14:34:29 +0000 (16:34 +0200)]
Centralize Parameter scaling
This exposes an AutomationType dependent abstract version of
inteface_to_internal(), internal_to_interface().
Robin Gareus [Wed, 21 Jun 2017 10:07:12 +0000 (12:07 +0200)]
Remove duplicates from ControlList
Robin Gareus [Wed, 21 Jun 2017 10:08:12 +0000 (12:08 +0200)]
Clamp values in ControlList
Robin Gareus [Mon, 19 Jun 2017 13:45:47 +0000 (15:45 +0200)]
Implement additional ControlList interpolation methods.
The Control and ControlList uses the raw value (eg. coefficient for gain,
Hz for frequencies) and those Lists are stored in existing sessions.
In the vast majority of cases interpolating automation values using exp/log
scale for dB, freq makes more sense -- it's also what the fader does.
Adding additional interpolation methods is future proof (we might at allow
to even add different methods per automation point (to the next) like other
DAWs do.
Currently it's mainly used in preparation for consistent GUI automation-
lanes. Between 2 points there's always a visual straight line.
Robin Gareus [Wed, 21 Jun 2017 11:40:41 +0000 (13:40 +0200)]
Remove separate ControlList min/max/default, use ParameterDescriptor.
Robin Gareus [Mon, 19 Jun 2017 10:40:51 +0000 (12:40 +0200)]
remove min/max unbound -- LADSPA special case.
This explicit case should never have existed in the first place.
Plugins can always implicitly exceed the range and are expected to
cope with out-of-range values (e.g. meters when fed with a peaking signal
may return an out-of-bounds value)
Robin Gareus [Mon, 19 Jun 2017 10:33:43 +0000 (12:33 +0200)]
GUI: prepare for API changes
remove use of
- unbound_min/max
- list->default_value and min/max_y
Robin Gareus [Mon, 19 Jun 2017 07:52:11 +0000 (09:52 +0200)]
Move logarithmic property into Evoral, add rangesteps
This allows complete mathematical description of a given parameter
and parameter values.
Semantic type abstraction is reserved for Ardour::ParameterDescriptor.
Robin Gareus [Sun, 18 Jun 2017 22:58:10 +0000 (00:58 +0200)]
Remove old API
Robin Gareus [Mon, 19 Jun 2017 15:00:57 +0000 (17:00 +0200)]
Fix/update maximum gain computation
Robin Gareus [Sun, 18 Jun 2017 22:57:53 +0000 (00:57 +0200)]
Switch to PBD control-math and prefer Controllable API
Note: Control-surfaces should always use interface_to_internal()
and internal_to_interface().
Robin Gareus [Sun, 18 Jun 2017 22:28:43 +0000 (00:28 +0200)]
Centralize control-parameter math functions in libpbd.
Functions formerly in ardour/util.h and some more functions.
The main motivation is libevoral which can use libpbd but not libardour.
The eventual goal is to consolidate various different interpolation,
scaling and deflection methods.
Robin Gareus [Wed, 21 Jun 2017 15:09:31 +0000 (17:09 +0200)]
Format boolean parameter values
Robin Gareus [Wed, 21 Jun 2017 00:31:45 +0000 (02:31 +0200)]
Tweak value-as-string dB and float decimals printing
Robin Gareus [Mon, 19 Jun 2017 15:40:32 +0000 (17:40 +0200)]
Remove Cruft -- AutomationStyle never did anything.
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.
Robin Gareus [Wed, 21 Jun 2017 10:18:57 +0000 (12:18 +0200)]
Fix duplicate Gain+Trim AutomationLists in session file.
Len Ovens [Tue, 20 Jun 2017 20:11:19 +0000 (13:11 -0700)]
OSC: value not initialized soon enough
Robin Gareus [Sat, 17 Jun 2017 20:53:58 +0000 (22:53 +0200)]
Add option add automation-lane points on the line -- #7397
John Emmas [Sun, 18 Jun 2017 11:05:48 +0000 (12:05 +0100)]
'ARDOUR::Stripable::Sorter()' needs to be exportable (since it gets used outside of libardour)
John Emmas [Sun, 18 Jun 2017 11:02:44 +0000 (12:02 +0100)]
Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour)
Hiroki Inagaki [Sun, 11 Jun 2017 09:28:14 +0000 (02:28 -0700)]
Update Japanese translation, including a fix for an issue that translation for a certain string leads failure to launch the application on Windows 10
Robin Gareus [Sat, 17 Jun 2017 16:26:59 +0000 (18:26 +0200)]
NO-OP, just cleanup & scope
Robin Gareus [Sat, 17 Jun 2017 16:26:35 +0000 (18:26 +0200)]
Fix TrackView selection after re-order.
because reordering a TreeView [pragmatically] does not retain selection.
Robin Gareus [Sat, 17 Jun 2017 15:13:06 +0000 (17:13 +0200)]
Remove delayed selection which causes duplicate selection actifacts.
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.
Robin Gareus [Sat, 17 Jun 2017 14:48:25 +0000 (16:48 +0200)]
Simplify route-display TreeView.
There's no TargetEntry receiver for the custom DnDTreeView<Route> object.
We can just use a default Gtk::TreeView.
Robin Gareus [Sat, 17 Jun 2017 13:49:01 +0000 (15:49 +0200)]
Don't de-select tracks when order changes
Robin Gareus [Sat, 17 Jun 2017 13:51:40 +0000 (15:51 +0200)]
Ignore Selection::set() without actual changes
Robin Gareus [Sat, 17 Jun 2017 12:55:32 +0000 (14:55 +0200)]
Remove Cruft
Robin Gareus [Sat, 17 Jun 2017 12:50:28 +0000 (14:50 +0200)]
Move implementation out of header file
Robin Gareus [Sat, 17 Jun 2017 02:35:48 +0000 (04:35 +0200)]
Add Lua bindings to query all stripables
Robin Gareus [Sat, 17 Jun 2017 02:31:18 +0000 (04:31 +0200)]
Fix adding tracks/busses at the top
Robin Gareus [Sat, 17 Jun 2017 02:23:55 +0000 (04:23 +0200)]
Fix stripable order for new strips & master-order
Robin Gareus [Fri, 16 Jun 2017 21:45:25 +0000 (23:45 +0200)]
Remove Cruft
Robin Gareus [Sat, 17 Jun 2017 00:40:46 +0000 (02:40 +0200)]
NO-OP: whitespace
Robin Gareus [Fri, 16 Jun 2017 21:45:16 +0000 (23:45 +0200)]
Use Stripable::Sorter in GUI consistently.
Robin Gareus [Sat, 17 Jun 2017 00:31:03 +0000 (02:31 +0200)]
Add method to ensure Stripable sort constrains (for UI use)
Robin Gareus [Fri, 16 Jun 2017 21:44:29 +0000 (23:44 +0200)]
Use Stripable::Sorter in libs
Robin Gareus [Fri, 16 Jun 2017 21:44:09 +0000 (23:44 +0200)]
Move StripableSorter into libardour
Robin Gareus [Fri, 16 Jun 2017 20:32:10 +0000 (22:32 +0200)]
Fix engine-state history.
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).
Len Ovens [Fri, 16 Jun 2017 18:32:00 +0000 (11:32 -0700)]
OSC: plugin feedback mathfix - 0 param (meter) checked for.
Robin Gareus [Fri, 9 Jun 2017 12:48:33 +0000 (14:48 +0200)]
Prepare VCA Automation Lanes -- refactor TAV
* 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
Robin Gareus [Thu, 15 Jun 2017 14:05:45 +0000 (16:05 +0200)]
Remove another explicit Close button.
Robin Gareus [Wed, 14 Jun 2017 20:47:22 +0000 (22:47 +0200)]
Fix region-gain offset when separating ranges
Robin Gareus [Wed, 14 Jun 2017 19:22:08 +0000 (21:22 +0200)]
Squelch error message when toggling master-bus visibility.
Len Ovens [Wed, 14 Jun 2017 17:28:45 +0000 (10:28 -0700)]
OSC: Add send/plugin page values to GUI
Len Ovens [Wed, 14 Jun 2017 15:18:02 +0000 (08:18 -0700)]
OSC: save and restore send/plugin page size.
Robin Gareus [Wed, 14 Jun 2017 13:21:02 +0000 (15:21 +0200)]
Fix range-separate for musically-locked MIDI regions
Cloning a region retains the region-lock style.
Playlist partitioning set the region start-property only (audio-time).
If a MIDI region is locked to musical-time, Properties::start is ignored
and overwritten by Properties::start_beats.
Robin Gareus [Wed, 14 Jun 2017 13:14:56 +0000 (15:14 +0200)]
Special-case VCA at 0 (-inf dB), force gain slaves to -inf dB
Robin Gareus [Wed, 14 Jun 2017 00:39:15 +0000 (02:39 +0200)]
Merge event control lists when disconnecting a master-ctrl
Robin Gareus [Wed, 14 Jun 2017 00:38:32 +0000 (02:38 +0200)]
Add infrastructure to merge ControlLists
Len Ovens [Tue, 13 Jun 2017 23:55:13 +0000 (16:55 -0700)]
OSC: Allow set_surface to set send and plugin page sizes.
Robin Gareus [Tue, 13 Jun 2017 18:57:01 +0000 (20:57 +0200)]
Apply master-value to automation on disconnect.