Commit graph

105 commits

Author SHA1 Message Date
Paul Davis
530dd4255c faderport: remove wierd shift use design; make user+shift work again 2016-01-10 23:32:21 -05:00
Paul Davis
58edc83d11 tweak/add faderport debug messages 2016-01-07 16:42:57 -05:00
Paul Davis
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
Paul Davis
ff76ef86b4 faderport: long press on fader mode buttons switches fader automation to manual/off; off button is never sent an LED state message to avoid fader disabling 2015-12-14 14:42:12 -05:00
Paul Davis
e928edca32 faderport: fix setup of periodic callback (cut-n-paste error) 2015-12-14 14:41:38 -05:00
Paul Davis
d59739d728 faderport: add 100msec (10Hz) periodic update to facilitate automation playback 2015-12-14 13:28:31 -05:00
Paul Davis
40a352e8a1 faderport: disable automation state button mapping until (if ever) we can figure out why it kills the fader 2015-12-14 13:28:31 -05:00
Paul Davis
cc607fa161 fix DEBUG_TRACE messages from faderport that used MackieControlProtocol via cut-n-paste 2015-12-14 13:28:31 -05:00
Paul Davis
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
Paul Davis
2f48997dfb remove unnecessary (?) conditional.
Given that we use "port" after the test, the test makes no sense
2015-12-07 12:38:17 -05:00
Ben Loftis
e3d2898c8d more Faderport debugging, for windows 2015-12-04 18:11:05 -06:00
Paul Davis
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
Paul Davis
b07d86ac61 make faderport support report its port bundles as it should 2015-12-03 12:50:32 -05:00
Paul Davis
900f59dcde faderport: generalized blink on/off code 2015-12-03 08:36:56 -05:00
Ben Loftis
43e5d639cc Faderport: Punch indictor was being left on after blinking 2015-12-03 07:27:42 -06:00
Ben Loftis
20facc4d18 Faderport: map automation indicator LEDs 2015-12-02 20:06:29 -06:00
Paul Davis
90275ded6a faderport: a clever hack to make the Shift modifier "sticky"
The user can now press+release Shift, then another key OR press Shift, then another key before releasing Shift. Both
event sequences will have the same result
2015-12-02 17:40:58 -05:00
Paul Davis
ee9524c9b6 faderport: make punch button LED indicate punch status 2015-12-01 18:45:43 -05:00
Paul Davis
cb965cba16 start tweaks to make Shift sticky; remove Shift-press combobox from gui since we don't allow that to be bound (next-marker) 2015-12-01 16:19:16 -05:00
Paul Davis
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
Paul Davis
03a4926790 faderport: allow User button to be bound to ANY possible action.
This does involve nagivating some really gnarly menus, which is unfortunate, but we don't have a good general
solution for this yet (it is fundamentally the same problem that affects the key binding editor and Mackie support
2015-12-01 11:20:09 -05:00
Paul Davis
0e629cd162 faderport: add punch action 2015-12-01 10:35:37 -05:00
Paul Davis
daf02e8c73 remove "medium-length" press concept from faderport code and GUI 2015-12-01 09:23:08 -05:00
Paul Davis
254c1e2c91 faderport: correctly restore mix/proj/trns state from XML 2015-11-30 20:54:23 -05:00
Paul Davis
41d0336f80 faderport: cleanup 2015-11-30 20:34:51 -05:00
Paul Davis
f1dd53e37a faderport: add some "curated" actions for mix, proj and trns; make new bindings use release, not press 2015-11-30 15:05:30 -05:00
Paul Davis
b8ed62453f faderport: restore button actions, and correctly indicate current action in GUI 2015-11-30 13:50:33 -05:00
Paul Davis
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
Paul Davis
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
Paul Davis
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
Paul Davis
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
Paul Davis
b842495be0 fadeport: make fader touch work 2015-11-27 10:22:01 -05:00
Ben Loftis
d138f8981d implement more Faderport buttons (window and fader automation). ToDo: automation LEDs, fader banking 2015-11-25 17:33:49 -06:00
Paul Davis
e1794ae678 faderport: simpler logic for master/monitor/other
When choosing master or monitor, do NOT save master or monitor as the pre_{master,monitor}_route under
any circumstances. This means that master/monitor choices do not stack, and just switch between them.
2015-11-25 17:56:22 -05:00
Paul Davis
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
Paul Davis
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
Ben Loftis
487ada6630 handle encoder changes. shift+knob = input trim. ToDo: panner control 2015-11-25 14:52:58 -06:00
Paul Davis
4e014da61a cruft removal from faderport code 2015-11-25 13:37:00 -05:00
Paul Davis
dd6cbac20e faderport: implement fader support 2015-11-25 13:37:00 -05:00
Paul Davis
fe06e3b7e8 faderport: track GUI selection, use first selected route; implement mute, solo, rec 2015-11-25 12:38:22 -05:00
Paul Davis
000b11dc4d faderport: more global button functions added 2015-11-24 23:41:10 -05:00
Paul Davis
7ae380c7f6 faderport: more interesting behaviour for the play button (locate to last start if pressed while rolling, then keep rolling) 2015-11-24 23:31:29 -05:00
Paul Davis
9c64d63ebb clarify a DEBUG_TRACE remark 2015-11-24 23:29:03 -05:00
Paul Davis
e7a3a5ab9c faderport: make loop, prev marker, next marker and marker buttons do stuff 2015-11-24 23:27:55 -05:00
Paul Davis
35577f439d add debug "bits" for FaderPort 2015-11-24 23:20:39 -05:00
Paul Davis
2ea4d5c7b5 faderport: allow forcing LED state for use in ::all_lights_out() 2015-11-24 23:13:02 -05:00
Paul Davis
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
Paul Davis
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
Paul Davis
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
Paul Davis
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