summaryrefslogtreecommitdiff
path: root/libs/surfaces
diff options
context:
space:
mode:
Diffstat (limited to 'libs/surfaces')
-rw-r--r--libs/surfaces/mackie/TODO8
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.cc12
-rw-r--r--libs/surfaces/mackie/mackie_control_protocol.h3
3 files changed, 18 insertions, 5 deletions
diff --git a/libs/surfaces/mackie/TODO b/libs/surfaces/mackie/TODO
index af4bfeadef..a9cb1b9878 100644
--- a/libs/surfaces/mackie/TODO
+++ b/libs/surfaces/mackie/TODO
@@ -3,8 +3,9 @@
if the handler is not called in the "correct thread", it will use a pseudo-RT-safe-enough technique to get the correct thread to recall "handler" later on, and return.
* jog with transport rolling doesn't work properly. My use of ScrollTimeline also doesn't work.
+* make loop button sensitive to current transport state
* make sure rew button can go past the previous if pressed twice, relatively quickly.
-* finish button mapping.
+* finish button mapping. Only shifted buttons left for bcf.
* concurrency for bank switching? And make sure "old" events aren't sent to "new" faders
* TODOs in code
* removal of a route results in a strip that isn't dead, but doesn't have any effect on the session
@@ -16,7 +17,7 @@ Later
* remove commented couts
* Queueing of writes?
* Generic surface code to common location
-* bulk remote id changes cause too many surface updates
+* bulk remote id changes cause too many surface updates. use Config->remote_model.
* which bank switching - overlap or dead faders? Option?
* signals for buttons?
* MackieControlProtocol in namespace Mackie?
@@ -40,8 +41,5 @@ Actual Mackie
Bugs
----
-* get_state isn't called on deactivate. Huh? What did I mean here?
-* routes "forget" their remote_id between session save and the next session load
* definitely something wrong with remote_id assignment on session create
(master strip assigned 0).
-* editor window doesn't update route remote_control_id when it's updated in mixer window.
diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc
index 7824f1cb81..81d249588e 100644
--- a/libs/surfaces/mackie/mackie_control_protocol.cc
+++ b/libs/surfaces/mackie/mackie_control_protocol.cc
@@ -1272,6 +1272,18 @@ LedState MackieControlProtocol::clicking_release( Button & button )
return Config->get_clicking();
}
+LedState MackieControlProtocol::global_solo_press( Button & button )
+{
+ bool state = !session->soloing();
+ session->set_all_solo ( state );
+ return state;
+}
+
+LedState MackieControlProtocol::global_solo_release( Button & button )
+{
+ return session->soloing();
+}
+
/////////////////////////////////////
// Bank Switching
/////////////////////////////////////
diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h
index ab773d4fb6..d71979b463 100644
--- a/libs/surfaces/mackie/mackie_control_protocol.h
+++ b/libs/surfaces/mackie/mackie_control_protocol.h
@@ -170,6 +170,9 @@ class MackieControlProtocol
virtual Mackie::LedState clicking_press( Mackie::Button & );
virtual Mackie::LedState clicking_release( Mackie::Button & );
+ virtual Mackie::LedState global_solo_press( Mackie::Button & );
+ virtual Mackie::LedState global_solo_release( Mackie::Button & );
+
protected:
// create instances of MackiePort, depending on what's found in ardour.rc
void create_ports();