From a31394fa8d147741d360f87ccef61061e23afc9e Mon Sep 17 00:00:00 2001 From: John Anderson Date: Sun, 11 Mar 2007 15:40:43 +0000 Subject: [PATCH] implement button for global solo git-svn-id: svn://localhost/ardour2/trunk@1573 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/surfaces/mackie/TODO | 8 +++----- libs/surfaces/mackie/mackie_control_protocol.cc | 12 ++++++++++++ libs/surfaces/mackie/mackie_control_protocol.h | 3 +++ 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();