summaryrefslogtreecommitdiff
path: root/libs/ardour/automation_control.cc
AgeCommit message (Collapse)Author
2016-10-17remove debug outputPaul Davis
2016-10-17fix thinko in d2835bc80 (re-enables mute, solo and likely other automation ↵Paul Davis
controls)
2016-10-16improved and hopefully correct fix for "setting AutomationControl marks ↵Paul Davis
session dirty even when it should not, if in playback mode" Hopefully comment is more explanatory as well.
2016-10-14remove debug outputPaul Davis
2016-10-14much simpler implementation of fix originally in c104c9d4726f3: don't call ↵Paul Davis
Session::set_dirty() or emit Changed() unless AutomationControl actually changes value
2016-10-14Revert "change return type of AutomationControl::actually_set_value() from ↵Paul Davis
void to bool, to indicate if value was changed." This reverts commit c104c9d4726f3ba1ecd352d13b88a57f2f964510.
2016-10-12change return type of AutomationControl::actually_set_value() from void to ↵Paul Davis
bool, to indicate if value was changed. Don't call Session::set_dirty() when no change occurs
2016-09-21gain controls are supposed to be "gain-like"Paul Davis
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-06-28tweak b7e645ec6, use session start/end positionRobin Gareus
2016-06-27switching to "touch" implies existing automation.Robin Gareus
This fixes an issue of Fader jumping to unity when switching from manual to touch if there is no prior automation. Likewise for plugin parameters jumping to "default"
2016-06-05extend comments to avoid unused-variable warnings from commented codePaul Davis
2016-06-05plugin support for Controllable::NotAutomatableRobin Gareus
2016-05-31remove debug outputPaul Davis
2016-05-31remove explicit setting of Toggle flag for AutomationControlsPaul Davis
Make it be based on the ParameterDescriptor, which indicates toggle status anyway
2016-05-31fix return type of SlavableAutomationControl::get_boolean_masters() to make ↵Paul Davis
it usefl
2016-05-31design changes to various SlavableAutomationControls to make it possible to ↵Paul Davis
get the logic right for boolean controls
2016-05-31do not route AutomationControl changes to an RT thread if we are loading a ↵Paul Davis
session
2016-05-31fix logic for removing an AutomationControl from a ControlGroupPaul Davis
2016-05-31universal change in the design of the way Route/Track controls are designed ↵Paul Davis
and used. The controls now own their own state, rather than proxy for state in their owners. Massive changes all over the code to accomodate this. Many things are not finished. Consider this a backup safety commit
2016-05-31add implicit mute state to MuteMaster and use when a master of a mute ↵Paul Davis
control is enabled/disabled. Add AutomationControl::master_changed() as a virtual method to handle ... master value changes
2016-05-31change API of Controllable::Changed signal to include (from_self, ↵Paul Davis
GroupControlDisposition) This allows the signal to convey more information, which may be required by some handlers of a control's Changed signal
2016-05-31rearrange AutomationControl and RouteAutomationControl to get more shared ↵Paul Davis
logic and consistent master/slave behaviour
2016-05-31redesign control slave/master system, move code from GainControl to ↵Paul Davis
AutomationControl
2016-02-28specialize isfinite for MSVC compatRobin Gareus
2016-02-26prevent livelock on NaN, inf control parameters - fixes #6789Robin Gareus
|: Gtk::Adjustment::value_changed AutomationControl::set_value Controllable::Changed GUI Event Loop Gtk::Adjustment::set_value :| TODO: check portability of `isfinite ()`
2016-01-02change Controllable::set_value() API to include grouped control consideration.Paul Davis
This also removes Route::group_gain_control() and associated machinery. Not yet tested with Mackie or other surfaces. More work to done to start using the group capabilities, and also potentially to add or derive more controls as RouteAutomationControls
2015-11-02Clean up _before XMLNode in AutomationList if no automation write occurred.nick_m
2015-10-21Add AutomationControl::set_value_unchecked() and ↵Paul Davis
AutomationControl::writable() and use them. Classes derived from AutomationControl now check ::writable() in their ::set_value() methods to ensure that they do not attempt to overwrite data sent to them while automation playback is underway.
2015-10-20Make automation record undo per pass rather than per touch.nick_m
2015-07-20use power of 2 log-scale for parameters.Robin Gareus
2015-06-17Fix thinko in automation write undo.nick_m
- also allow saved automation list state to be touch or off if actually in write mode.
2015-06-17Add undo for automation write.nick_m
2015-06-17Rudimentary automation touch undo/redo.nick_m
2015-06-17Fix some workflow problems wrt automation.nick_m
- clearing automation points sets control to "off" rather than touch. - multiple touches on the same pass acts consistently (no more fader jumps on mouse button press - use actual value for initial point rather than some arbitrary default. clarify new semantics of add () (with_default->with_initial). - clean some whitespace - add guard points as needed in stop. - catch grab broken signal (i can't trigger it, but the docs seem to think it is essential).
2015-06-02properly handle integer steps in plugin controlsRobin Gareus
The integer steps min/max are inclusive. e.g the integer range -1 to +1 has three possible values (not two).
2014-12-04Fix crash when twiddling MIDI controllers (#6050).David Robillard
2014-12-01Fix automation write/touch.David Robillard
2014-12-01Replace half-baked param metadata with descriptor.David Robillard
Among other things, this means that automation controls/lists have the actual min/max/normal/toggled of parameters, and not those inferred from the Parameter ID, which is not correct for things like plugin parameters. Pushing things down to the Evoral::ParmeterDescriptor may be useful in the future to have lists do smarter things based on parameter range, but currently I have just pushed down the above-mentioned currently used attributes.
2014-11-29Fix write for boolean automation.David Robillard
2014-11-02Automation of LV2 plugin properties.David Robillard
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-10-16fix midi automation slidersRobin Gareus
Allow controls to work without a list. see also 34c1465 and b469cd2
2014-08-31Fix crash when changing automation mode for MIDI track control automation.David Robillard
Also some work towards tolerating automation controls with no automation list, towards actually doing something for these cases, though not required just to fix this crash (MidiTrack::set_parameter_automation_state() avoids those paths).
2014-02-19do not needlessly keep starting touch/automation watch passes just because a ↵Paul Davis
command to start or stop touch was received
2012-11-14remove debug outputPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13501 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-11-14put automation list into or out of Touch mode before adding an automation ↵Paul Davis
watch, so that ::touching() is correct when called from the add git-svn-id: svn://localhost/ardour2/branches/3.0@13489 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-17lots more fidgety work on automation. sort of works now, but undo/redo needs ↵Paul Davis
attention git-svn-id: svn://localhost/ardour2/branches/3.0@13047 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-14fix up part of the remaining details with automation, so that touch/write ↵Paul Davis
over-writes work correctly git-svn-id: svn://localhost/ardour2/branches/3.0@13041 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-13dramatic overhaul of automation. too long to explain here. this work is not ↵Paul Davis
finished - write/touch passes do not correctly overwrite existing data because the semantics of ControlList::insert_iterator need clarification. more to follow git-svn-id: svn://localhost/ardour2/branches/3.0@13038 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24Remove over 500 unnecessary includes (including 54 of session.h).David Robillard
It's slightly possible that this causes trivial build failures on different configurations, but otherwise shouldn't cause any problems (i.e. no actual changes other than include/naming/namespace stuff). I deliberately avoided removing libardour-config.h since this can mysteriously break things, though a few of those do seem to be unnecessary. This commit only targets includes of ardour/*.h. There is also a very large number of unnecessary includes of stuff in gtk2_ardour; tackling that should also give a big improvement in build time when things are modified. git-svn-id: svn://localhost/ardour2/branches/3.0@12420 d708f5d6-7413-0410-9779-e7cbd77b26cf