bfb22e2acc
Ctrl Surfaces: update bound controllables
...
Note: this only affects surfaces that use mapped_controls, and do
not already subscribe to processors_changed/RouteProcessorChange signal.
2024-01-13 17:14:17 +01:00
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
7bf89ce109
Constification: make Stateful::get_state() const, with all other required const-ness added (libs)
2022-04-06 21:56:59 -06:00
db1821a363
Fix crash when removing plugin with mapped controllable #8756
...
MidiControlUI drops the reference to a given controllable in
its own thread. This can happen after the plugin is already
destroyed (even though the PBD::Controllable still exists).
2021-06-21 05:27:11 +02:00
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log
2019-08-03 15:53:18 +02:00
c97116083f
Fix generic-midi controllable race-condition
...
Continued work after e9b36f2bea
. Prefer a shared_ptr<>.
MIDIControllable::write_feedback() runs in realtime context, directly
from the main process-thread. Synchronizing weak-pointers and deletion
across threads does not work reliably. Retaining a shared_ptr<> for
controllables that are in use can solve this.
2019-03-23 16:32:48 +01:00
e9b36f2bea
Update GenericMidiControlProtocol to use shared/weak Controllable pointers
...
This fixes a race-condition when a controllable is deleted
while sending feedback to the device.
Previously there was a race-condition MIDIControllable::write_feedback()
triggered from rt-thread, processed in Surface-thread and deleting
a route or processor.
This is a first step, currently state-restore is not fully functional
session->controllable_by_id() does not cover all Controllables.
2019-03-23 02:09:39 +01:00
8725ed5bd1
add Ctl_Dial to get better behaviour when binding a MIDI controller KNOB/DIAL to a toggled controllable.
...
No intent to change Ctl_Momentary or Ctl_Toggle behaviour, plus I tried to document what they are intended to support
2018-06-21 22:28:11 -04:00
8a18929d57
remove Session::controllable_by_descriptor() and move code into GenericMIDI code (the only user).
...
This also removes enums introduced to describe well-known parameters for Mixbus. Lookup now involves string
parsing every time, but this is not likely to be a notable cost.
2018-06-21 13:05:58 -04:00
Jan Lentfer
a2af019c95
generic_midi: add proper handling of midi controll toggles
2018-03-03 14:04:12 +01:00
93f837b43e
generic MIDI: put controllables into touch mode (if appropriate) when data is received
2017-01-23 13:25:56 +01:00
81123a774a
amend 3afe3f32df
(remove unused global feedback option)
...
That commit accidentally removed unrelated code in generic-midi surface
which just happened to have the same name (get/set_midi_feedback) as the
unused preference.
Regardless, there was more cruft there. GMCP midicontrollables now use
the control surfaces' feedback option.
2016-12-31 15:20:07 +01:00
3afe3f32df
Remove cruft (old MIDI feedback API)
2016-12-30 17:29:08 +01:00
d5127001bb
move ControllableDescriptor from libpbd to libardour; add support for describing VCAs
2016-05-31 15:30:42 -04:00
dd05f1e257
Fix bug #5633 , Don't drop all midi bindings when a track is removed
...
Only drop the controllable that is being destroyed, not all of them.
2016-02-03 22:30:41 +10:00
3c9b71b50e
allow use of (N)RPN messages in generic MIDI binding maps (UNTESTED)
2015-11-23 12:27:51 -05:00
22b07e0233
NOOP, remove trailing tabs/whitespace.
2015-10-05 16:17:49 +02:00
4dc63966f0
globally remove all trailing whitespace from ardour code base.
...
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
8b4a237ee3
Handle the 4 common encoder types.
2015-07-27 16:17:38 -04:00
d3b4ef4eed
Add enc to midi map for mcp style encoders.
2015-07-27 16:17:38 -04:00
1ab61b8564
major redesign of MIDI port heirarchy and management (part 2)
2013-08-07 22:22:11 -04:00
1708ab55b9
fix MIDI binding stuff when the controllable does actually exist the first time we go looking for it ( #4950 )
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12957 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-28 14:44:29 +00:00
a054a74dd2
disconnect from a Controllable when it is destroyed
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12938 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-26 01:55:53 +00:00
92469df6ab
add late/lazy binding between generic MIDI bindings and controllable elements in the session. this allows you to load a binding map that refers to elements that have not yet been created in the session, and when they are created, the binding will work
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12921 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-25 12:33:13 +00:00
Carl Hetherington
fb6895ba86
Add motorised attribute to DeviceInfo for generic MIDI maps so that
...
we can specify if a surface is motorised, and as such will keep its
phyiscal controls in sync with Ardour's controllables at all times.
If this is not the case, we enable the code to avoid jumps when controls and
controllables are out of sync. Mark the BCF2000 as motorised.
git-svn-id: svn://localhost/ardour2/branches/3.0@11611 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-07 01:11:22 +00:00
Carl Hetherington
fe86f97563
Work around problems with some JACK<->ALSA midi bridges which don't
...
transfer multiple MIDI messages when they are written in one
jack_midi_event_write. Support pitch bend messages in the
generic midi control surface code.
git-svn-id: svn://localhost/ardour2/branches/3.0@11601 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-06 15:08:17 +00:00
dcccd5b4d6
patch from roy vegard to stop feedback from causing jumps when a MIDI controller and ardour are out of sync
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11001 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-14 15:57:48 +00:00
6572f421a4
provide limited momentary note on/off MIDI binding option; remove some debugging output; add bank selector to generic MIDI UI
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6430 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-01-01 18:14:32 +00:00
6c717a56e2
new PBD::ControllableDescriptor class to encapsulate parsing of binding URIs and speed up lookup at runtime
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6427 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-31 23:43:47 +00:00
74933f5865
restore excess calls to sync-order stuff (for now); allow MIDI controllers to use the same non-linear fader response as the gui; add various flags to PBD::Controllable and remove URI from that class
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6414 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-30 16:48:58 +00:00
8a17b0fb90
make generic MIDI control track remote control ID changes; fixup messes in the editor+mixer that caused excessive calls to SyncOrderKey stuff. generic MIDI still doesn't track editor/mixer order changes if we're not syncing both windows
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6413 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-30 12:41:10 +00:00
77cc0f7cc8
editors for control protocols (generalized); editor for Generic MIDI that allows choosing a MIDI binding map (or none); support banking in binding URLs, and other miscellany related to generic MIDI; save+restore JACK_MidiPort connection state (but cause a crash at shutdown time)
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6411 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-29 21:31:14 +00:00
109acd1568
MIDI binding maps make their debut
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6408 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-28 16:49:44 +00:00
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
f6fdd8dcbf
switch to using boost::signals2 instead of sigc++, at least for libardour. not finished yet, but compiles, loads sessions, records and can close a session without a crash
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6372 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-17 18:24:23 +00:00
53bbac4eb6
fix compilation breakages from the last commit
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6347 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-11 03:18:17 +00:00
2983f8de97
(MAY BREAK COMPILATION - unfinished work, being transferred between machines via svn) ... start to make MidiControllable bind to a URI, not an object
...
git-svn-id: svn://localhost/ardour2/branches/3.0@6346 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-11 02:00:22 +00:00
e5258d4ed1
Fix angle bracket project-local include paths.
...
git-svn-id: svn://localhost/ardour2/branches/3.0@5975 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-30 00:21:40 +00:00
8713667ec1
rework Stateful::set_state() patch to avoid default version argument
...
git-svn-id: svn://localhost/ardour2/branches/3.0@5787 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-15 18:56:11 +00:00
Carl Hetherington
79f91c7a20
Part 1 of loading 2.X sessions; some things work, some things don't, hacks a-plenty.
...
LOADING 2.X SESSIONS WITH THIS COMMIT IN PLACE WILL (PROBABLY) CORRUPT THE .ardour FILE,
MAKING THE SESSION UNLOADABLE ON 2.X AND LOSING INFORMATION.
So don't do that unless you make a backup of the session file first.
git-svn-id: svn://localhost/ardour2/branches/3.0@5786 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-15 00:57:55 +00:00
9cfa3e2bf6
Fix MIDI control parameter mapping to work with controls that aren't [0..1] like gain (fix ticket #0002553 ).
...
git-svn-id: svn://localhost/ardour2/branches/3.0@4627 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-02-18 22:30:06 +00:00
449aab3c46
rollback to 3428, before the mysterious removal of libs/* at 3431/3432
...
git-svn-id: svn://localhost/ardour2/branches/3.0@3435 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-06-02 21:41:35 +00:00
Doug McLain
9c0d7d72d7
remove empty sigc++2 directory
...
git-svn-id: svn://localhost/ardour2/branches/3.0@3432 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-06-02 05:02:28 +00:00
cb41314642
merge 3.0 from 2.0-ongoing@3243
...
git-svn-id: svn://localhost/ardour2/branches/3.0@3248 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-04-11 14:06:50 +00:00
4b95621853
Move Stateful class declared in pbd/stateful.h into the PBD namespace
...
git-svn-id: svn://localhost/ardour2/trunk@2011 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-06-17 00:47:33 +00:00
Jesse Chappell
946ccff52e
better variable name for midi feedback fighter. added MCU midi port to system ardour.rc
...
git-svn-id: svn://localhost/ardour2/trunk@1680 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-04-07 17:01:33 +00:00
6edccc3070
remove Id: lines from many/all headers and some more source files
...
git-svn-id: svn://localhost/ardour2/trunk@1535 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-02-28 19:32:13 +00:00
1f4a82cb8e
next step of generic MIDI feedback fix - remove static _send_feedback from MIDI controllables
...
git-svn-id: svn://localhost/ardour2/trunk@1225 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-12-19 14:13:00 +00:00
26843b34fd
modification to make generic MIDI actually work again
...
git-svn-id: svn://localhost/ardour2/trunk@673 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-07-10 20:01:47 +00:00
8b46567e06
id_t becomes a fully-fledged object, UUID's used for IDs, generic MIDI now owns bindings, MIDI binding concept removed from libardour itself in favor of generic Controllables
...
git-svn-id: svn://localhost/ardour2/trunk@669 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-07-07 23:51:30 +00:00