66686a4e2a
mackie: semi-working Sends subview mode
2016-01-27 14:15:41 -05:00
9b2af90328
remove mackie send pot mode (subview mode for sends coming up)
2016-01-27 12:41:01 -05:00
fe3d85b204
Revert "mackie: still respond to route groups visibility changes"
...
This reverts commit a9ec547457
.
2016-01-19 14:16:49 -05:00
a9ec547457
mackie: still respond to route groups visibility changes
2016-01-19 13:38:29 -05:00
92dba5bfa3
Mackie Control: Added hidden tracks view mode.
2016-01-16 07:32:30 -08:00
6b356448e3
Mackie Control: Don't show hidden routes.
2016-01-15 13:16:24 -08:00
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
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
93d5fe83c8
mackie: properly track lifetime of subview route; fix subview/potmode LED state mgmt
2015-12-16 06:01:55 -05:00
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
81179389d3
mackie: cleanup subview mode a little
2015-12-16 05:55:10 -05:00
8ba8f1c0b0
fix cherry-pick conflict
2015-12-16 05:54:43 -05:00
a1ef99b9b7
add beginnings of EQ and dynamics control to mackie for mixbus
2015-12-16 05:52:36 -05:00
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
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
96c6da0804
Make mackie control view mode save bank for all modes.
...
Also moved duplicated code to one function.
2015-10-22 15:30:34 -07:00
7a453d2329
Make sure Mackie Control view modes start with route 1 except Mixer mode goes to last position.
2015-10-20 19:31:04 -07:00
81f6ad0d0c
Added "Selected" view mode to Mackie Control.
2015-10-20 18:54:56 -07:00
48f91c6ef4
Add Audio Tracks and Busses too.
2015-10-18 19:55:56 -07:00
0185c9f25a
Added Midi Tracks View mode.
2015-10-18 18:13:16 -07:00
53a28c230a
mackie support omnibus patch
...
Fixes all kinds of miscellaneous issues with MCP. Also removes several theoretical pan modes, replace "Tracks"
pan mode with "Trim", and takes a tiny step towards view modes
2015-10-13 15:34:53 -04:00
3169ac0444
fix the design of Mackie XML state management
2015-10-13 07:33:27 -04:00
f8875df18f
Several changes to Mackie support. Breaks existing Mackie state on disk but not
...
in any way that causes problems, just loss of pre-existing connectivity.
1. retain state of current device (and serialize to disk) when switching
devices, and restore that state when switching back to it.
2. fix port and surfacenaming.
3. fix bundle assembly so that all ports (for multi-surface combos) work.
4. rationalize master position numbering
5. add small sleep before starting device handshake after reconnection. This
is ugly but seems to be necessary, unfortunately.
2015-10-11 12:01:27 -04:00
965b135842
numerous changes to Mackie support, generally offering better robustness
2015-10-10 17:14:30 -04:00
9b5a071c33
varied and wide changes to get input and output combos closer to working
2015-10-09 14:01:22 -04:00
8338fd8ac6
add DeviceChanged signal to MCP and make surface lock mutable for use in const methods.
...
Also add nth_surface() API to MackieControlProtocol
2015-10-08 21:55:38 -04:00
6899bd7c15
Add Trim to Mackie controls.
2015-10-07 21:36:16 -07:00
c9658134ce
add button time and explicit bank switching to MCP support
2015-10-07 15:13:03 -04:00
ce9b271a92
track Mackie MIDI port connection status as primary trigger for handshake with device
2015-10-07 13:17:49 -04: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
6bf0d4f627
add basic support for HUI heartbeat, only used for HUI devices
2015-10-03 13:13:58 -04:00
4d47760d61
add new (fast) redisplay timer that pushes parameter display text to MCP device.
...
Changes are queued in a FIFO, and pulled when a timeout in the MCP event loop fires.
2015-10-02 22:08:14 -04:00
ccf505c3a2
implement backlight, fader touch sensitivity and recalibrate fader functions for MCP GUI
2015-10-02 22:08:14 -04:00
a4fced6d63
change zoom and scrub handling to use modifier bits
2015-10-02 07:32:56 -04:00
4129b8865c
Fixed Mackie control port naming for extender use ( fixes #6500 )
2015-08-14 08:57:13 -07:00
962ba01cfd
Fixed feedback for MCP buttons and LEDs not working.
2015-08-13 13:00:04 -07:00
2ea5962af2
rationalize save/restore of control surface "feedback" property
2015-06-24 13:46:07 -04:00
71feea97a0
Clean up mackie surface profile editor from things that don't work or match the mackie hardware ( fixes #6342 )
2015-06-04 15:02:51 -07:00
4512d013eb
put all of the Mackie control surface code into the ArdourSurface namespace
2015-04-15 20:37:20 -04:00
602e390649
changes to Mackie Control support for new crossthreadchannel implementation
2014-12-03 21:22:34 -05:00
25e1eddc50
remove "port sources" management from MidiControlUI and Mackie support.
...
This was necessary due to a bug/design issue between Glibmm and Glib (see https://bugzilla.gnome.org/show_bug.cgi?id=561885 )
but the problem needs to be managed by the *creator* of the IOSource and that has now moved inside CrossThreadChannel.
2014-11-26 18:22:22 +02:00
80d83fd238
add a hack to deal with device discovery race, in which the devices were not actually known to be ready before the last update_surfaces() call (which is where binding between strips and routes occurs) ; add support for Mackie Control touch on/off messages
2014-02-19 23:25:08 -05:00
b0e4f81eb3
merge exportvis branch into cairocanvas, to reduce the number of "floating" branches.
...
Still need to add API export/visibility macros for the canvas library.
2013-12-27 14:29:06 -05:00
362769e967
new CP API and fix several egregious bugs with port handling when switching devices, setting state etc.
2013-12-21 15:31:28 -05:00
85cd647226
Mackie Control support now saves & restores port connections for devices not using ipMIDI (not required for ipMIDI anyway)
2013-12-13 16:04:34 -05:00
a17bafa964
remove some unused code from mackie support
2013-12-13 16:04:34 -05:00
2fab8182cc
add -fvisibility=hidden to libgtkmm2ext, and make things work
2013-10-17 14:36:41 -04:00
79fed95c1b
tighten up error handling a little bit during various setup functions for Mackie Control
2013-09-06 10:39:14 -04:00
41f6f5574b
fix confusion about whether flip_mode in the Mackie support code is a bool or an enum
2013-08-24 11:46:44 -04:00
99b94fad77
avoid crash when switching devices in mackie control code, add locks to protect surfaces list (hopefully done without adding any deadlocks - can't test this at present)
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13750 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-31 16:04:46 +00:00
3cd8138a41
convert from Glib:: to Glib::Threads for all thread-related API
...
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-25 17:48:55 +00:00
71427323ec
MCP: latest patch from Rodrigo:
...
* fixes Master Fader Touch button in the Mackie;
* implements a MasterFaderTouch global button;
* removes unused MackieControlProtocol::_transport_previously_rolling property;
* implements DeviceInfo::get_global_button() method;
* creates GlobalButtonsInfo and StripButtonsInfo types in DeviceInfo;
* implements Surface::_last_master_gain_written property to help master fader feedback;
* makes Surface respect _mcp.device_info().strip_cnt() to create master fader and when connecting signals for strips and master fader instead of using hardcoded 8;
* removed a few unnecessary updates in Surface::turn_it_on();
* included master_gain_changed() in Surface::periodic();
* implemented MackieControlProtocol::master_fader_touch_press and
* MackieControlProtocol::master_fader_touch_release;
git-svn-id: svn://localhost/ardour2/branches/3.0@12631 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-09 19:06:52 +00:00
a56ab30261
MCP: latest patch from Rodrigo:
...
* delays Mackie's led initialization until the Mackie is actually ready to receive messages;
* at the button X function mapping customization interface in Preferences:
o show specific device names instead of global ones;
o mark the buttons that are actually available in the device with a *;
o included a bottom text explaining what the * means;
* created a DeviceInfo::get_global_button_name(Button::ID) method;
* included several DEBUG_TRACE in mackies code;
* renamed device buttons and groups according to the following logic: Mackie buttons are named exactly like a actual (mine) Mackie names them on the interface itself. Logic Control buttons are named exactly like they appear at Logic Pro 7.2.1 Dedicated Control Surface Support manual;
* improved timecode display (new format);
git-svn-id: svn://localhost/ardour2/branches/3.0@12582 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-06 12:20:57 +00:00
ba5e71b50f
MCP: Patch from Rodrigo that:
...
* implements Metering on/off through Button::Read as per Seablade's suggestion. I choose this button as it's the "Show meters" button in Traktion;
* removes redundant code from Meter::update_transport_rolling();
* renames Meter::update_transport_rolling() to Meter::notify_metering_state_changed();
* renamed Surface::notify_transport_state_changed() to Surface::notify_metering_state_changed();
* renamed Strip::notify_transport_state_changed() to Strip::notify_metering_state_changed();
* created MackieControlProtocol::notify_metering_state_changed() and made MackieControlProtocol::notify_transport_state_changed() use it;
* implemented turning off of timecode display and two char display in Surface::zero_all ();
* implemented master fader zeroing in Surface::zero_all ();
* calling Surfaces->zero_all() at MackieControlProtocol destructor;
* implemented restore of 2nd LCD line content after metering being active.
git-svn-id: svn://localhost/ardour2/branches/3.0@12520 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-01 12:56:20 +00:00
5a7a89e068
add a (potentially temporary) discover button for mackie devices
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12228 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-09 16:44:06 +00:00
edad92a944
control surfaces: make it possible to keep display of current GUI/selection state as we bank through tracks/bussses. note careful use of weak_ptr<Route> to avoid messing with Route lifetimes. this scheme may change
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12115 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-28 01:43:38 +00:00
ab8ebe97bb
MCP: fix handling of vpot presses
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12100 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-26 21:22:36 +00:00
834f94c60a
fix initialization of control protocols so that brand new sessions get working control protocols if the user's ardour.rc file indicates to do so; fix MCP bank scrolling
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12096 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-26 16:18:03 +00:00
3b7e2f7d67
MCP: properly (?) handle bank/channel scrolling with locked strips
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12095 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-26 14:28:41 +00:00
2bae75fa0b
MCP: dynamic ipMIDI ports, more default key bindings, various minor fixes
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12092 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-25 21:21:36 +00:00
ac1b2a6647
MCP: another bevy of changes, including working jog wheel
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12056 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-22 17:37:52 +00:00
82c867bf2a
MCP: a fistful of improvements. probably best to just try it and see what it broken. KNOWN: pressing vpots without a bank/channel shift will crash ardour
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12053 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-22 02:15:24 +00:00
40750ba0bb
MCP:maybe functioning button binding stuff, plus save-to-disk-on-change (still needs naming interaction for new profile)
...
git-svn-id: svn://localhost/ardour2/branches/3.0@12000 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-18 03:24:59 +00:00
b9ff443085
MCP: various work on the button binding GUI
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11997 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-17 20:41:31 +00:00
bf107f93e1
MCP: no fake touch for anything, actually
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11989 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-16 19:08:22 +00:00
02c498a8fa
MCP: make v-pot press work; work ongoing on general keybindings
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11985 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-16 13:06:39 +00:00
d314490797
share buttons IDs where feasible
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11977 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-15 13:41:20 +00:00
65fe4f9edf
new button IDs, one for MCP one for LCP, plus methods associated with them; SSL Nucleus now declares itself to be using Logic Control
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11976 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-15 13:28:45 +00:00
2ed2b61224
MCP: redesign to allow device-specific button IDs, since we know that at least one device (nucleus) does not honor mackie's specification document
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11972 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-14 19:02:54 +00:00
e240fb16bd
MCP: hack for Nucleus fader touch messages
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11968 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-13 22:49:58 +00:00
69830c477e
MCP: catch noteOff to see note-on+velocity=zero messages; more GUI tweaks
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11966 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-13 21:46:26 +00:00
8f7fa7d93b
MCP: timeout display of value when altering with fader or pot; range ops on strip buttons should work; select logic may be broken
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11959 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-13 16:11:55 +00:00
f511b7cc6b
show gain level as its adjusted from ardour GUI (not reverted back); basic support for select/solo/mute/recenabel range ops, but not functioning yet
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11958 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-13 03:46:38 +00:00
939801a8d8
MCP: start generalizing mapping between surface controls and ARDOUR::AutomationControl; simplify flip mode; more good stuff
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11949 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 21:02:43 +00:00
0c4fe26b41
MCP: switch devices on the fly; name MIDI ports appropriately; fix active state; move sysex parsing into Surface
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11942 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 16:41:07 +00:00
62620122a9
propagate GUI track selection to control protocols; make MCP update when GUI track selection changes
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11941 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 14:34:03 +00:00
abf8069d7f
MCP: loading device info files basically operational
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11939 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 12:58:42 +00:00
3a4a45caae
MCP: stubbed device info file loading
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11938 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 12:16:55 +00:00
ac284a4ea1
MCP: check on whether we using pan width control
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11930 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-12 00:50:18 +00:00
bc52377c3e
MCP: reverse operation of cursor up/down in zoom mode; more tracign for vpot
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11920 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 22:32:02 +00:00
b2cd8b004c
MCP: make BasicUI::rewind() behave symmetrically to BasicUI::ffwd(); basics of route locking and an API to put the master/monitor on a strip
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11915 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 20:10:10 +00:00
f40d6b6440
MCP: more view mode support, use 6 bits for pot information, more mute debug trace
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11912 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 19:16:49 +00:00
5097af6a13
MCP: start adding different view modes and support for Flip
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11911 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 18:51:01 +00:00
b3db38a34f
MCP: provide basic mechanism for configuring function keys
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11908 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 17:13:20 +00:00
337b420266
MCP: rename raw_id() to id(); add missign modifier_state() function
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11907 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 16:31:23 +00:00
20d38b1c25
MCP: make vpots control pan width + direction/position
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11904 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 16:21:23 +00:00
02c8ccf348
move all code to construct MIDI messages into relevant Control/Strip/Surface object; remove MackieMidiBuilder
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11895 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 13:03:41 +00:00
261738d01e
MCP: debug tracing, plus start of a new cleaner handling system for button handling
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11880 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 02:54:25 +00:00
f387e834fd
MCP: tweak operation of most transport buttons, make save button work, start using button enums more widely
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11879 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11 02:30:35 +00:00
01c1eeb279
give MackieControlProtocol its own thread and make it parse incoming MIDI in that thread, as well as doing timeouts there too
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11872 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-10 17:13:55 +00:00
fb4816f010
MCP: fix build
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11862 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-10 14:32:30 +00:00
5ace191bff
drastic, fundamental redesign of MCP code
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11861 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-10 14:27:44 +00:00
ac7ade93bd
MCP: make rightward bank shift work, and add a flag for scrub mode; more code rearrangement
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11860 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 19:47:06 +00:00
db5258fea3
MCP: maybe handle multiple MCUs better; add support for modifier keys; rearrange source so that all button handlesr are in mcp_buttons.cc
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11855 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 17:48:16 +00:00
62afe207d2
MCP: register thread with GUI and create session event pool
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11853 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 16:26:44 +00:00
57a046804c
MCP: different meter debug trace; initial support for track selection
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11852 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 16:15:55 +00:00
e2d62d9af4
allow ControlProtocols to call for undo/redo in GUI; make MCP use this
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11851 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 15:50:38 +00:00
2b659deaef
remove redundant MackieButtonHandler class, implement initial zoom support for cursor left + right buttons
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11847 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 15:32:25 +00:00
f02edae438
start breaking apart the various controls into their own headers and source code, and making each control know how to generate MIDI; throttle delivery of meter data and get meter ID right
...
git-svn-id: svn://localhost/ardour2/branches/3.0@11846 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-09 13:59:35 +00:00