summaryrefslogtreecommitdiff
path: root/gtk2_ardour/automation_controller.cc
AgeCommit message (Collapse)Author
2019-10-11interface range generated by internal_to_interface() may not span 0..1, so ↵Paul Davis
remove asserts
2019-10-07Special case horizontal faders (pan to right)Robin Gareus
2019-08-03Update GPL boilerplate and (C)Robin Gareus
Copyright-holder and year information is extracted from git log. git history begins in 2005. So (C) from 1998..2005 is lost. Also some (C) assignment of commits where the committer didn't use --author.
2019-04-08NO-OP: whitespace, indentRobin Gareus
2019-03-08Reduce #includes - avoid ardour_ui.hRobin Gareus
2019-03-07Fix some Gtk::Menu memory leaksRobin Gareus
A Gtk::manage()d widget will be deleted when its parent container is destroyed. Top-level context menus are not inside a container and hence need to be manually deallocated. The solution here is to use a shared Gtk::Menu pointer that is centrally de/re-allocated. This works because the GUI is single-threaded and at most one context menu is visible at a time.
2018-07-18Fix generic UI sliders w/rangestepsRobin Gareus
Leave the user in control while the slider is being dragged. Previously there was a feedback loop: User-drags slider -> value changes -> value is rounded -> slider is updated with rounded value (while the user still drags)
2018-03-28Sparse update for granular controls on slidersRobin Gareus
Don't call ::set_value() if the actual value has not changed. e.g. MIDI-CC or integer controls. Moving the Bar-controller was able to create events even though the actual value remained unchanged. This check has to be done UI-side, since the underlying API is also used for state-restore and automation. e.g. "old value" (user-set) may be default "0", "new value" may also be "0" but libardour still needs to send an event (a synth's internal state may not default to "0")
2017-09-24Fix computation of AutomationController stepsRobin Gareus
smallstep (resp. largestep) is intended to be the interface delta corresponding to a desc.smallstep (resp. largestep) in internal scale, and is computed by incrementing from desc.lower. But ac->internal_to_interface(desc.lower) isn't necessarily zero. In fact it currently is 0.5 / (M - m + 1) for integer parameters where M is the maximum and m is the minimum possible value since it is the center of the [0,1/(M-m+1)] interval. Since the lower bound of the delta isn't always zero, don't ignore it when computing the actual increment.
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode and video in order to keep the legible
2017-07-24Remove unused "mark" parameter from stop_touch() APIRobin Gareus
2017-07-24Start/end touch for generic-UI knob and proc-box inline ctrlsRobin Gareus
2017-07-17Move Gtkmm2ext widgets into libwidgetRobin Gareus
2017-07-17Separate Ardour UI widgets into dedicated libraryRobin Gareus
2017-07-16Remove Timers to watch Controllable valuesRobin Gareus
Depend on Changed() signals alone, which are usually much less frequent than rapid-timer events. As side-effect we now need to make the widgets insensitive when playing automation. Previously the user could not change the value because the Timer periodically reset it.
2017-06-09Update GUI, drop Automatable::value_as_string() APIRobin Gareus
2017-03-24Revert "consistent use of context-menu popups"Robin Gareus
This reverts commit b3722f7063699fafd0421d504e05a7300c70e0ec. In some cases ardour shows context-menu on right-mouse-button release. In this case selecting a menu-entry should happen with the left-mouse button (or any button?!) Using ev->button is only correct if the menu is temporary and only visible while the button is held, button release then activates the menu-item. This needs further work, in some cases allowing any button (0) to work makes sense and overall consistency needs to be improved. Different places use different strategies for context-menus which don't always match the button used in the event-handler. This is a hotfix (to make TAV context menus work again with left-click)
2017-03-16consistent use of context-menu popupsRobin Gareus
2017-03-01Fix implicit selection when operating track-header ctrl buttonsRobin Gareus
Stop event propagation. Otherwise, on release the event is passed up and handled by the TAV which scrolls the editor viewpoint and the button is no longer under the mouse.
2017-02-28Fix touching mute automation (mostly)Robin Gareus
controllable->set_value() from GUI context will eventually queue a session-rt command. By the time the realtime command runs, the controllable needs to be in "touch" mode. The AutomationController "toggle" UI worked around this by directly using the underlying API (ignoring slaved-controls and ignoring groups). The RouteUI's GUI wasn't able to write mute-automation at all. This commit is a compromise: press + hold (touch) + release button. (it may need further special-casing for _desc.toggled in AutomationControl::actually_set_value(), also undoing automation-writes is currently not working correctly)
2017-02-21PBD::Signal<...>::connect() is already thread safe, so drop intermediate ↵Paul Davis
proxy/call_slot() invocation in handling Controllable::Changed within AutomationController
2016-11-11rename Tempo _beats_per_minute to _note_types_per_minute, provide pulse helpers.nick_m
- adds quarter_notes_per_minute(), note_divisions_per_minute (double) pulses_per_minute() and frames_per_quarter_note() - this should be a no-op except for the use of tempo by the vst callback which definitely uses quarter notes per minute. - the XML node for TempoSection named 'beats-per-minute' has been renamed.
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-04Replace Gtk::ToggleButton with ArdourButton in Generic Plugin GUIRobin Gareus
2016-07-04allow AutomatoinContoller to render as Knob instead of Slider.Robin Gareus
2016-05-27Tempo ramps - rename tempo_at() -> tempo_at_frame().. 3 decimals for the ↵nick_m
audioclock tempo display.
2016-03-07fix stuck touch modeRobin Gareus
previously the GUI locked out control surfaces (touch was never released).
2016-03-07remove unused GUI signals (confusing dup. name)Robin Gareus
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-10-20Set toggled automation controller using a double.nick_m
2015-10-20Automation - more toggled controller twiddling.nick_m
2015-10-20Make automation record undo per pass rather than per touch.nick_m
2015-10-20Toggled automation fixes.nick_m
- don't attempt to insert two points on toggle. - remove forced touch->write mode change on toggle - initial state still wrong, but works much better overall.
2015-09-16Remove ardour_ui.h header inclusionTim Mayberry
2015-06-17Automation -use editor_add in gui, record straight lines with fewer points.nick_m
- don't keep setting/unsetting write pass when transport frame remains the same (think larger jack buffer sizes) - insert guards are now 64 frames after when. - refactor previous approach.
2015-04-10allow MIDI bindings for boolean automationRobin Gareus
2015-04-02use plural form for menu itemPaul Davis
2015-03-08avoid non-integer loop conditions.Robin Gareus
2015-01-01Move Timers/Timeouts from ARDOUR_UI into functions in timers.h and use ↵Tim Mayberry
PBD::Timers
2014-12-04Make gain controls step by roughly 1.0/0.1 dB.David Robillard
Shoot for roughly 30 steps for all controls. Always keep sensible step information in ParameterDescriptor and just convert for the UI. This is a little weird, but it's less weird than it was before, and works.
2014-12-01Fix automation write/touch.David Robillard
2014-11-30gtk interface update for controller step/page sizeRobin Gareus
2014-11-29Fix write for boolean automation.David Robillard
2014-11-29show values on faders (fixes bug in 55c6165)Robin Gareus
2014-11-28Use a button as controller for toggled parameters.David Robillard
2014-11-03Check whether frequency controls are audible or low and provide appropriate ↵David Robillard
controls. Always clamp set value to controller range.
2014-11-03Add menu to set frequency controls in beats, and half or double current value.David Robillard
Test with e.g. fomp:cs_phaser1_lfo LFO frequency.
2014-11-03Note selector dialog for note controls.David Robillard
2014-11-02Automation of LV2 plugin properties.David Robillard
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-11-01NOOP, just whitespace/indentingRobin Gareus