Commit graph

167 commits

Author SHA1 Message Date
David Robillard
e4163b47e0 Factor out ControlProtocol::get_session() 2021-06-17 10:58:30 -04:00
David Robillard
56fe5b47ae Rename ControlProtocol::session to ControlProtocol::_session
To match ARDOUR_UI, towards finally sharing code here.
2021-06-17 10:57:07 -04:00
David Robillard
c6bdf8f2ff Factor out duplicated MidiByteArray 2021-06-17 09:56:46 -04:00
Paul Davis
3f30a0ad39 more code rearrangement ... old gcc/mingw does not allow Enum::Value 2020-04-07 18:32:45 -06:00
Paul Davis
595be0e5e9 try some rearrangement to fix old mingw builds 2020-04-07 18:15:51 -06:00
Paul Davis
893e835dca NOOP: whitespace 2020-04-07 18:15:51 -06:00
Phil
69067b9d99 add plugin support for mackie units
Main features: Plugin (Select & Edit)

1.  Plugin Select: When a track is selected that has PluginInserts, pushing the "Plug-In" button on a mackie will list these across the strips. Clicking a vpot of a strip enables editing the parameters of this selected plugin.
2. Plugin Edit: When a Plugin is selected for editing, the input parameters of the plugin are shown across the channel strips and the vpot is assigned the corresponsing AutomationControl for the parameter.

Minor features

- When the number of plugins or the number of parameters exceeds the number of strips available on the surface, one can flip through "pages" of views using the Cursor Left and Right keys (this logic I took from http://www.emagic.de/media/support/content/manuals/LogicControl_en.pdf)
- When in the Plugin Select mode, rearranging the plugins in the mixer strip is reflected on the surface.
- When in Plugin Edit mode, rearranging the plugins in the mixer strip still retains the edit view of the selected plugin (rearranging does not take away the current subview)
 - When removing a plugin in the mixer strip, this is reflected in Plugin Select, while the view jumps to Pan/Surround (the None subview) when in Plugin Edit mode.
- Removing a track resets the subview to None
- When in a Subview that is track-specific (Track, EQ, Send, Plug-In, Inst), selecting a different track retains the subview but updates the channel displays and vpot assignments accordingly. When in Plugin Edit mode for track A, and track B is selected, it changes to Plugin Select mode for track B (if plugins are present).
2020-04-07 14:35:09 -06:00
Robin Gareus
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log 2019-08-03 15:53:18 +02:00
Ben Loftis
ae3d9deefb Support for the iCON Qcon mcp device - sysex strings. Submitted by Michal Barhon. 2018-02-01 14:39:59 -06:00
Paul Davis
30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Paul Davis
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
Ben Loftis
8ba868e933 MCU: F-keys are reserved only for user-defined actions; no need for explicit handling. 2017-05-12 15:43:55 +02:00
Paul Davis
bb74bba1c7 mackie: catch data on what presentation info aspects changed; don't change banks on a PI change 2017-02-01 10:27:34 +01:00
Paul Davis
44fcbd988c mackie: ensure that the strip where select was pressed ends up as the first_selected_stripable 2016-07-06 21:40:29 -04:00
Paul Davis
2047ee527c restore/extend/simplify ControlProtocol API to allow tracking of selection 2016-07-06 13:39:10 -04:00
Paul Davis
291aec468f use session stripable selection API
and remove old ControlProtocol signals to talk to GUI etc.
2016-07-04 12:45:53 -04:00
Paul Davis
a8d7b0fca3 redesign/reimplement selection knowledge in MackieControlProtocol object
strips listen to Stripable::presentation_info().PropertyChange, and forward selected status changes
to the MCP object
2016-06-12 08:19:16 -04:00
Paul Davis
4b7bbacaaa make mackie surfaces aware of VCAs 2016-05-31 15:30:42 -04:00
Paul Davis
c34ad3a723 convert Mackie Control Surface support to use Stripable, not Route 2016-05-31 15:30:42 -04:00
Paul Davis
8346fab567 remove irrelevant, out of date and incorrect comment 2016-05-31 15:30:42 -04:00
Paul Davis
e0ff70cf86 first vaguely working version using PresentationInfo
remote control ID and "order keys" have been removed.
2016-05-31 15:30:42 -04:00
Paul Davis
37d6265e13 mackie: try to improve logic and management of device profiles 2016-02-04 11:24:26 -05:00
Ben Loftis
aac6a59071 Mackie Protocol: Move buttons to more accurately reflect default mcp legends.
Modifiers are only modifiers (no actions directly on modifiers).
Punch indicators moved to Drop/Replace.
Added Save, Undo, Cancel (select none) and Enter (select all tracks)
Fixed click button.
Up&Down buttons now move the selected track up & down.
2016-02-03 18:11:21 -06:00
Paul Davis
36b11098a2 mackie: substantial reworking of flip mode with large chunks of code no longer used.
Flip mode only works in Sends subview mode.

Display is incorrect when flipped - vpot is still updated by send level changes. TO BE FIXED.
2016-02-01 22:52:22 -05:00
Paul Davis
5eccbbfbd6 mackie: fix stupid thinko, and use BaseUI::access_action() to correctly accesss GUI actions 2016-02-01 12:20:55 -05:00
Paul Davis
3631cc1532 mackie: remove Trim pot mode, and add skeleton for TrackView subview mode 2016-01-31 13:20:18 -05:00
Paul Davis
6780b7eb54 mackie: make nudge work as modifier and on its own 2016-01-31 11:17:23 -05:00
Paul Davis
af1028bd90 mackie: make marker button work as Mackie intends it (as a modifier for rewind/ffwd) 2016-01-31 11:01:41 -05:00
Paul Davis
2b56dc17e3 mackie: add "clean" method to invoke GUI actions from button events, in code 2016-01-31 11:00:16 -05:00
Paul Davis
d5a8825ce8 mackie: basically (fully?) operation fader automatio control for first selected route 2016-01-29 18:37:03 -05:00
Paul Davis
da35f58218 mackie: initial attempt at making automation-related buttons set fader automation state for selected routes 2016-01-29 16:29:52 -05:00
Paul Davis
42fbb96674 mackie: make group button (appear) to do something 2016-01-29 16:15:41 -05:00
Paul Davis
54c3c9e494 prevent bank/channel switching past the end of the available routes; do nothing when a view mode finds no matching routes 2016-01-28 16:27:33 -05:00
Paul Davis
ea895efb97 mackie: improvements to display when switching subview modes 2016-01-28 15:08:26 -05:00
Paul Davis
e63c805fe2 mackie: clean up (some) interactions between subview mode and selection
Also, stop Plugin button from doing anything, since it has nothing to do yet
2016-01-27 19:00:27 -05:00
Paul Davis
66686a4e2a mackie: semi-working Sends subview mode 2016-01-27 14:15:41 -05:00
Paul Davis
9b2af90328 remove mackie send pot mode (subview mode for sends coming up) 2016-01-27 12:41:01 -05:00
Paul Davis
fe3d85b204 Revert "mackie: still respond to route groups visibility changes"
This reverts commit a9ec547457.
2016-01-19 14:16:49 -05:00
Paul Davis
a9ec547457 mackie: still respond to route groups visibility changes 2016-01-19 13:38:29 -05:00
Len Ovens
92dba5bfa3 Mackie Control: Added hidden tracks view mode. 2016-01-16 07:32:30 -08:00
Len Ovens
6b356448e3 Mackie Control: Don't show hidden routes. 2016-01-15 13:16:24 -08:00
Len Ovens
0b58cde467 Mackie Control: Remove unused global_solo_* functions, moved functionality to clearsolo_* functions.
Changed to clear only rather than toggle and added Listen Clear as well.
2016-01-14 13:06:14 -08: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
93d5fe83c8 mackie: properly track lifetime of subview route; fix subview/potmode LED state mgmt 2015-12-16 06:01:55 -05:00
Paul Davis
e3d0de3bf6 mackie: use new route API for universal access to pan/eq/dynamics parameters to provide panning and EQ control 2015-12-16 06:01:20 -05:00
Paul Davis
81179389d3 mackie: cleanup subview mode a little 2015-12-16 05:55:10 -05:00
Paul Davis
8ba8f1c0b0 fix cherry-pick conflict 2015-12-16 05:54:43 -05:00
Paul Davis
a1ef99b9b7 add beginnings of EQ and dynamics control to mackie for mixbus 2015-12-16 05:52:36 -05:00
Paul Davis
8bdab38d43 track add/remove of monitor and/or master busses in mackie support code.
Somehow fails to move master fader to correct position when monitor section is added
2015-12-13 08:33:09 -05:00
Len Ovens
0103de801a Mackie Control, fix timecode sometimes won't update. Do full display if transport moves faster than 800%. 2015-12-11 12:57:24 -08:00