Commit Graph

38 Commits

Author SHA1 Message Date
Paul Davis 3c2112abf5 widgets & GUI: Start/StopGesture signals should pass on GDK event state 2023-07-26 13:11:52 -06:00
Paul Davis b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Paul Davis 39ed528e25 std-ize: convert all boost shared/weak ptr includes to <memory>
Also fix stdint.h -> cstdint and alphabetically order std includes
2023-03-24 14:19:15 -06:00
Robin Gareus 4050ca5633
Update GPL boilerplate and (C)
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-08-03 15:53:15 +02:00
Robin Gareus c285229423
Follow up f5bc64d00e - add gap to range-selection rect as well 2019-04-18 16:46:44 +02:00
Robin Gareus 0e79253412 Fix generic UI sliders w/rangesteps
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-07-18 10:57:57 +02:00
Robin Gareus eb1e423b75 Remove <gtkmm.h> include from header files. 2017-07-17 21:06:04 +02:00
Robin Gareus f6e182b937 Move Gtkmm2ext widgets into libwidget 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 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
Robin Gareus 1f2d1b586e allow AutomatoinContoller to render as Knob instead of Slider. 2016-07-04 00:20:11 +02:00
Robin Gareus bb38d3db4d remove unused GUI signals (confusing dup. name) 2016-03-07 17:11:47 +01: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
Paul Davis 07a5372eea fixups for building on OS X where apple define silly macros 2013-04-30 11:14:06 -04: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
Carl Hetherington aed44005b2 Merge some linux/windows VST GUI code.
git-svn-id: svn://localhost/ardour2/branches/3.0@10783 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-23 00:55:25 +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
Paul Davis 70d246fbe3 change some parameter names to make things a bit clearer,and require that an AutomationControllable is passed in to AutomationController::create() rather than being willing to create it
git-svn-id: svn://localhost/ardour2/branches/3.0@8876 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-16 19:41:53 +00:00
Paul Davis 5f93192aa3 fix crash when opening MIDI controller automation tracks, caused by addition of "owner" field to an AutomationController, used to print values. Renamed "owner" to "printer" and required it to be non-null
git-svn-id: svn://localhost/ardour2/branches/3.0@8874 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-16 19:34:11 +00:00
Paul Davis 9a87f854f7 allow derived children of BarController to set label position as a width fraction, not an absolute position
git-svn-id: svn://localhost/ardour2/branches/3.0@8597 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-01-28 01:04:33 +00:00
Paul Davis d116af22db virtualize the way that AutomationController gets strings to display values, so that we can callback through the owner of an AutomationControl, not just rely on the value from the AutomationControl; make pan automation tracks use this to display more audio-centric values
git-svn-id: svn://localhost/ardour2/branches/3.0@8590 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-01-27 18:48:33 +00:00
Carl Hetherington c3bfc3ec4e Stop crash on deleting a plugin when its generic UI window is open.
git-svn-id: svn://localhost/ardour2/branches/3.0@6626 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-02-03 00:52:45 +00:00
Paul Davis aae367b63c use new syntax for connecting to backend signals that enforces explicit connection scope, plus a few other related matters
git-svn-id: svn://localhost/ardour2/branches/3.0@6376 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-19 20:26:31 +00:00
David Robillard bb9cc45cd2 Strip trailing whitespace and fix other whitespace errors (e.g. space/tab mixing). Whitespace changes only.
Vimmers, try let c_space_errors = 1 in your .vimrc to highlight this kind of stuff in red.  I don't know the emacs equivalent...


git-svn-id: svn://localhost/ardour2/branches/3.0@5773 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-14 16:10:01 +00:00
Carl Hetherington 64524c0ba4 Make pan double-click entry work in percentage left or right. Write pan position to the panner as text (except when centered). Use a virtual function rather than a signal for BarController labels.
git-svn-id: svn://localhost/ardour2/branches/3.0@5104 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-20 13:28:30 +00:00
David Robillard e14187aadd Display recorded controller data (fix show all/existing automation).
git-svn-id: svn://localhost/ardour2/branches/3.0@3779 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-21 16:17:02 +00:00
David Robillard d357eca668 Factor out sequencing related things into an independant new library: "evoral".
Anything related to the storage of events/values over a range of time lives in evoral.
This includes MidiModel (Evoral::Sequence) and automation data (AutomationList (Evoral::ControlList),
	Automatable (Evoral::ControlSet), etc).
libs/evoral synced with http://svn.drobilla.net/lad/trunk/evoral r1511.


git-svn-id: svn://localhost/ardour2/branches/3.0@3754 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-19 00:47:49 +00:00
David Robillard b942d3613e Fix 'live' CC sending of bar controllers after loading session (previously only worked when immediately created by user).
git-svn-id: svn://localhost/ardour2/trunk@2116 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-07-06 02:37:35 +00:00
David Robillard bbf4175713 Another not-quite-there-but-better commit.
Brought plugin automation into the fold of new automation system.
Fixed plugin automation, broke panner automation :] (pending Panner work).
Made AutomationController better at automatically following it's controller value (mimic what gain meter does).
Fixed some visible automation track bugs (but still broken WRT serialization).


git-svn-id: svn://localhost/ardour2/trunk@2092 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-30 18:41:50 +00:00
David Robillard eb296b2c95 Reduce overhead of multi-type-ness (last Summer's SoC):
Use uint32_t instead of size_t counts (halves size of ChanCount on 64-bit).
	Shift DataType values down to eliminate subtraction every index of a ChanCount or *Set.

Allow using DataType directly as an array index (prettier/terser).
Fix some mixed spaces/tabs in file comment headers.


git-svn-id: svn://localhost/ardour2/trunk@2082 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-29 06:58:07 +00:00
David Robillard 24ccaac67e Further automation refactoring - bring in the concept of Controllable, work towards
making automation + GUI + play/write/touch generic and easily reusable.
Added bar controller to automation track controls (mostly relevant for MIDI CC, but added for gain and pan too Just Because).
Fixed glaring "redirect" list errors.
Fix plugin controls/automation loading.


git-svn-id: svn://localhost/ardour2/trunk@2080 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-29 04:02:58 +00:00