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
a130041547
use MIDISurface in original Faderport support, plus required changes in MIDISurface & Push 2
2022-11-16 08:37:57 -07:00
9758e6280f
use new event loop callback to ensure that all surface/control protocol threads have tempo map ptr set
2022-05-16 15:24:52 -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
b58dfc7f0f
Resolve microseconds_t ambiguity 1/2
...
This resolves a PBD vs ARDOUR namespace error for some compilers:
```
error: reference to 'microseconds_t' is ambiguous
libs/pbd/pbd/microseconds.h:29:19: error: candidates are: typedef uint64_t PBD::microseconds_t
libs/ardour/ardour/types.h:81:29: error: typedef PBD::microseconds_t ARDOUR::microseconds_t
```
2021-06-27 17:33:05 +02:00
acfa04d700
Update Ctrl-surface MIDI port list when ports change
...
This is a better variant of bbb6851468
, directly using
the GUI context without indirection.
2021-02-04 06:19:37 +01:00
eed07770e1
Fix Faderport1 port-connection (amend bbb68514
)
2021-01-22 18:46:17 +01:00
09acad190b
Faderport: use well-known-controls API
2019-09-25 14:02:45 +02:00
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log
2019-08-03 15:53:18 +02: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
224295266f
faderport: make ::invoke() tell us whether or not something was actually invoked for a button event
...
Only put the button into "consumed" if it actually invoked something.
This helps to get reverse-polarity footswitches to work as expected
2018-03-26 18:26:39 -04:00
eb3f50e15c
change the way ControlProtocols (control surfaces) are notified and handle Stripable selection changes
...
The Editor continues to notify them, but via a direct call to ControlProtocolManager, not a signal.
The CP Manager calls the ControlProtocol static method to set up static data structures holding
selection info for all surfaces and then notifies each surface/protocol that selection has changed.
2017-05-12 14:51:39 +01:00
ecc2348ecc
should not really bind a shared_ptr<Port> to a sigc slot, so don't do that
2016-12-18 00:07:59 +00:00
cefd3ac8be
convert faderport to use Stripable instead of Route
2016-05-31 15:30:43 -04:00
4b36593106
fix faderport and mackie to use route AutomationControls to be notified about solo/mute changes
2016-05-31 15:30:40 -04:00
846afdd8e5
faderport: make blink/on/off status of record enable LED match the GUI one
2016-02-02 09:05:00 -05:00
5b7fa0b3c5
faderport: add footswitch button
2016-01-25 15:11:26 -05:00
9e5b7db89f
first compiling, mostly working version of group controls changes
2016-01-22 11:58:31 -05:00
0d9efc1148
redesign cross-thread registration/signalling system
...
This new design will work even when threads that need to receive
messages from RT threads are created *after* the RT threads. The
existing design would fail because the RT thread(s) would never
be known the later created threads, and so signals emitted by the
RT thread and causing call_slot() in the receiver would end up
being enqueued using a lock-protected list. The new design ensures
that communication always uses a lock-free FIFO instead
2015-12-28 10:14:17 -05:00
d59739d728
faderport: add 100msec (10Hz) periodic update to facilitate automation playback
2015-12-14 13:28:31 -05:00
6c99576250
faderport: stop trying to cache LED state (fixes various bugs); blink mute for muted-by-others; blink transport for speed != 1.0 && != 0
2015-12-08 11:09:50 -05:00
a9ce37b7ac
faderport: fix long press behaviour, and fix ardour-only behaviour with user button when used as a modifier
2015-12-03 18:38:09 -05:00
b07d86ac61
make faderport support report its port bundles as it should
2015-12-03 12:50:32 -05:00
900f59dcde
faderport: generalized blink on/off code
2015-12-03 08:36:56 -05:00
20facc4d18
Faderport: map automation indicator LEDs
2015-12-02 20:06:29 -06:00
ee9524c9b6
faderport: make punch button LED indicate punch status
2015-12-01 18:45:43 -05:00
37961a6bbe
faderport: switch long-press mechanism to a timeout
...
This makes the long press action fire after the timeout even if the user is still holding the button,
which feels more satisfactory
2015-12-01 13:15:38 -05:00
0e629cd162
faderport: add punch action
2015-12-01 10:35:37 -05:00
daf02e8c73
remove "medium-length" press concept from faderport code and GUI
2015-12-01 09:23:08 -05:00
b8ed62453f
faderport: restore button actions, and correctly indicate current action in GUI
2015-11-30 13:50:33 -05:00
682e152aaf
faderport: some code cleanups, add timing for button presses, add new comboboxes to GUI to allow more button programming, save button state
2015-11-30 12:51:18 -05:00
149f6795bb
no-op: add comment to faderport button ID definitions
2015-11-29 11:58:36 -05:00
6380403dad
basic structure for Faderport GUI
...
Not fully functional (or sensible yet) but the pieces are all there
2015-11-29 11:33:23 -05:00
bbaa5c6f45
faderport: shift+encoder controls pan width (for ardour only), input trim now controlled by user+encoder.
...
User is now a modifier key
2015-11-27 16:41:26 -05:00
779ec041b5
faderport: basic panning via encoder knob.
...
Doesn't help with 2=>2 panner, where width control is also required
2015-11-27 16:34:01 -05:00
d138f8981d
implement more Faderport buttons (window and fader automation). ToDo: automation LEDs, fader banking
2015-11-25 17:33:49 -06:00
e1ea14f10a
faderport: handle mute for monitor out by using monitor processor ops; try to blink mute button when cut-all is in effect.
...
Still some logic bugs when switching between master, monitor and other
2015-11-25 17:20:00 -05:00
d53993fd83
faderport: output button is a toggle between master (or monitor) and currently used route
2015-11-25 16:47:20 -05:00
104ec39b50
faderport: enable "Output" button to select master out (or, with Shift, monitor out if it exists) as the target route
2015-11-25 16:34:11 -05:00
487ada6630
handle encoder changes. shift+knob = input trim. ToDo: panner control
2015-11-25 14:52:58 -06:00
4e014da61a
cruft removal from faderport code
2015-11-25 13:37:00 -05:00
dd6cbac20e
faderport: implement fader support
2015-11-25 13:37:00 -05:00
fe06e3b7e8
faderport: track GUI selection, use first selected route; implement mute, solo, rec
2015-11-25 12:38:22 -05:00
2ea4d5c7b5
faderport: allow forcing LED state for use in ::all_lights_out()
2015-11-24 23:13:02 -05:00
34d847e060
faderport: fix modifiers for rewind, stop, undo etc ; listen to session transport signals and display state with button LEDs; add blinking
2015-11-24 23:06:19 -05:00
3a86b386fa
fadeport: restructure button info actions to allow modifiers (shift, rewind, stop) and set up undo and shift-undo (redo)
2015-11-24 22:32:40 -05:00
7c8cc3cfa9
give the faderport its own thread and event loop, rather than riding on the back of the MIDI UI thread in libardour
2015-11-24 21:41:44 -05:00
8765359db2
faderport: after connecting, turn off all lights, then party with them, then turn them all off
2015-11-24 21:10:22 -05:00
84ebad120e
add some faderport infrastructure for button handling, and bind up the transport functions to their obvious methods
2015-11-24 21:02:18 -05:00
9106512000
namespace and filename cleanup
2015-11-24 20:12:12 -05:00