summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Anderson <ardour@semiosix.com>2007-03-11 15:40:43 +0000
committerJohn Anderson <ardour@semiosix.com>2007-03-11 15:40:43 +0000
commita31394fa8d147741d360f87ccef61061e23afc9e (patch)
treea3c6632b64fa6b3c1766f1962bb18bb222a55d78
parentbfd6bdf392a0fffac8a2f7a0d9634e9d6ec14600 (diff)
implement button for global solo
git-svn-id: svn://localhost/ardour2/trunk@1573 d708f5d6-7413-0410-9779-e7cbd77b26cf
-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();