Commit graph

82 commits

Author SHA1 Message Date
Robin Gareus
5c92613698 Separate Ardour UI widgets into dedicated library 2017-07-17 21:06:04 +02:00
Robin Gareus
5aecfc5acb Remove Timers to watch Controllable values
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-07-16 16:58:00 +02:00
Robin Gareus
99b064274f Update GUI, drop Automatable::value_as_string() API 2017-06-09 16:54:21 +02:00
Robin Gareus
962e7a214a Revert "consistent use of context-menu popups"
This reverts commit b3722f7063.

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-24 14:48:46 +01:00
Robin Gareus
b3722f7063 consistent use of context-menu popups 2017-03-16 02:36:48 +01:00
Robin Gareus
88a22d40b5 Fix implicit selection when operating track-header ctrl buttons
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-03-01 11:55:32 +01:00
Robin Gareus
5c4a2025f1 Fix touching mute automation (mostly)
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-28 05:01:17 +01:00
Paul Davis
419006dd83 PBD::Signal<...>::connect() is already thread safe, so drop intermediate proxy/call_slot() invocation in handling Controllable::Changed within AutomationController 2017-02-21 18:45:29 +01:00
nick_m
33e95a1577 rename Tempo _beats_per_minute to _note_types_per_minute, provide pulse helpers.
- 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-11-11 03:37:08 +11:00
Paul Davis
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
Robin Gareus
ff50b3780a Replace Gtk::ToggleButton with ArdourButton in Generic Plugin GUI 2016-07-04 00:20:11 +02:00
Robin Gareus
1f2d1b586e allow AutomatoinContoller to render as Knob instead of Slider. 2016-07-04 00:20:11 +02:00
nick_m
8f3bc6f809 Tempo ramps - rename tempo_at() -> tempo_at_frame().. 3 decimals for the audioclock tempo display. 2016-05-27 23:38:17 +10:00
Robin Gareus
47026cac9b fix stuck touch mode
previously the GUI locked out control surfaces (touch was never released).
2016-03-07 17:11:47 +01:00
Robin Gareus
bb38d3db4d remove unused GUI signals (confusing dup. name) 2016-03-07 17:11:47 +01:00
Paul Davis
9e3299f97d change Controllable::set_value() API to include grouped control consideration.
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
2016-01-02 04:58:30 -05:00
nick_m
93d5b6c554 Set toggled automation controller using a double. 2015-10-20 00:53:31 +11:00
nick_m
ffed94d89b Automation - more toggled controller twiddling. 2015-10-20 00:53:28 +11:00
nick_m
9c102fa8d2 Make automation record undo per pass rather than per touch. 2015-10-20 00:53:28 +11:00
nick_m
877b258c74 Toggled automation fixes.
- 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-10-20 00:53:27 +11:00
Tim Mayberry
38bae2996a Remove ardour_ui.h header inclusion 2015-09-16 16:55:17 -04:00
nick_m
15819f0896 Automation -use editor_add in gui, record straight lines with fewer points.
- 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-06-17 09:54:22 +10:00
Robin Gareus
6c93bcc64f allow MIDI bindings for boolean automation 2015-04-10 17:14:11 +02:00
Paul Davis
de0eaad53a use plural form for menu item 2015-04-02 14:19:12 -04:00
Robin Gareus
50041cb450 avoid non-integer loop conditions. 2015-03-08 02:01:48 +01:00
Tim Mayberry
b5c9a92a58 Move Timers/Timeouts from ARDOUR_UI into functions in timers.h and use PBD::Timers 2015-01-01 19:04:14 +07:00
David Robillard
24727e65be Make gain controls step by roughly 1.0/0.1 dB.
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-04 00:30:47 -05:00
David Robillard
86de0386c9 Fix automation write/touch. 2014-12-01 23:35:24 -05:00
Robin Gareus
4d4c20b8cc gtk interface update for controller step/page size 2014-11-30 15:05:40 +01:00
David Robillard
77d5fb7a35 Fix write for boolean automation. 2014-11-29 14:32:12 -05:00
Robin Gareus
48bb90eb88 show values on faders (fixes bug in 55c6165) 2014-11-29 14:49:03 +01:00
David Robillard
55c616519b Use a button as controller for toggled parameters. 2014-11-28 18:40:23 -05:00
David Robillard
9f3f017736 Check whether frequency controls are audible or low and provide appropriate controls.
Always clamp set value to controller range.
2014-11-03 18:41:57 -05:00
David Robillard
6e16f69c26 Add menu to set frequency controls in beats, and half or double current value.
Test with e.g. fomp:cs_phaser1_lfo LFO frequency.
2014-11-03 17:29:11 -05:00
David Robillard
35672fb80a Note selector dialog for note controls. 2014-11-03 16:37:19 -05:00
David Robillard
8a128b33d3 Automation of LV2 plugin properties.
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-11-02 02:10:24 -05:00
Robin Gareus
dbecf44416 NOOP, just whitespace/indenting 2014-11-01 18:24:47 +01:00
Robin Gareus
52f44dc4da convert interface <> internal values for all automation
fixes Send-Fader, Gain-Automation and various Plugin-Slider ranges
2014-11-01 07:27:35 +01:00
Robin Gareus
d34bd9e6a0 fix midi automation sliders
Allow controls to work without a list. see also 34c1465 and b469cd2
2014-10-16 21:21:45 +02:00
Ben Loftis
ceff2e3a62 plugin widgets were written to use Internal values, so use that for now 2014-09-18 17:25:11 -05:00
Ben Loftis
69ac29d375 consolidate some slider styles, and make bg darker 2014-09-03 15:26:33 -05:00
Robin Gareus
540a12119b prepare Slider API cleanup 2014-09-02 02:53:05 +02:00
Robin Gareus
a3c378cf62 move utility functions into a dedicated namespace 2014-06-25 21:47:54 +02:00
Carl Hetherington
8f371cd60d Remove unused method.
git-svn-id: svn://localhost/ardour2/branches/3.0@12649 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-11 09:50:58 +00:00
David Robillard
6fa6514cfd Remove over 500 unnecessary includes (including 54 of session.h).
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
2012-05-24 06:09:29 +00:00
Carl Hetherington
3a4650cba7 Display amp automation in dB using a logarithmic fader.
git-svn-id: svn://localhost/ardour2/branches/3.0@11535 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-27 17:17:19 +00:00
Carl Hetherington
4381b590bb Reinstate user Controllable values, as they are needed
for gain (which I forgot about).


git-svn-id: svn://localhost/ardour2/branches/3.0@11293 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-21 16:38:56 +00:00
Paul Davis
0e92aee0b1 provide sensible default step and page sizes for AutomationControllers based on parameter max and min values (used to 1.0 for step and 0 for page)
git-svn-id: svn://localhost/ardour2/branches/3.0@10902 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-05 18:14:20 +00:00
David Robillard
ed626628b5 Delete trailing whitespace
git-svn-id: svn://localhost/ardour2/branches/3.0@9656 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01 17:00:29 +00:00
David Robillard
0906b39918 Fix my name :)
git-svn-id: svn://localhost/ardour2/branches/3.0@9302 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-06 15:00:16 +00:00