]> git.alsa-project.org Git - alsa-tools.git/commitdiff
us428control 0.4.6
authorTakashi Iwai <tiwai@suse.de>
Fri, 16 Feb 2007 17:45:48 +0000 (18:45 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 16 Feb 2007 17:45:48 +0000 (18:45 +0100)
Minor clean ups.

From: Rui Nuno Capela <rncbc@rncbc.org>

us428control/Cus428State.cc
us428control/Cus428State.h
us428control/configure.in

index 6227c71320a814131960f1f7df5a0ec0928b8bbb..7c517c5f21ea56be7a832e42fb39f235b5ceeb35 100644 (file)
@@ -207,68 +207,14 @@ void Cus428State::UserKnobChangedTo(eKnobs K, bool V)
        case eK_BANK_L:
                if (verbose > 1)
                        printf("Knob BANK_L now %i", V);
-               if (V) {
-                       if (aBank > 0) {
-                               bool bInputMonitor = StateInputMonitor();
-                               bool bSolo = LightIs(eL_Solo);
-                               if (!bInputMonitor) {
-                                       Select[aBank] = Light[0].Value;
-                                       Rec[aBank] = Light[1].Value;
-                                       if (bSolo) {
-                                               Solo[aBank] = Light[2].Value;
-                                       } else {
-                                               Mute[aBank] = Light[2].Value;
-                                       }
-                               }
-                               aBank--;
-                               if (!bInputMonitor) {
-                                       Light[0].Value = Select[aBank];
-                                       Light[1].Value = Rec[aBank];
-                                       if (bSolo) {
-                                               Light[2].Value = Solo[aBank];
-                                       } else {
-                                               Light[2].Value = Mute[aBank];
-                                       }
-                               }
-                       }
-                       LightSet(eL_BankL, (aBank == 0));
-                       LightSet(eL_BankR, (aBank == cBanks - 1));
-                       LightSend();
-               }
+               if (V) BankSet(aBank - 1);
                if (verbose > 1)
                        printf(" Light is %i\n", LightIs(eL_BankL));
                break;
        case eK_BANK_R:
                if (verbose > 1)
                        printf("Knob BANK_R now %i", V);
-               if (V) {
-                       if (aBank < 3) {
-                               bool bInputMonitor = StateInputMonitor();
-                               bool bSolo = LightIs(eL_Solo);
-                               if (!bInputMonitor) {
-                                       Select[aBank] = Light[0].Value;
-                                       Rec[aBank] = Light[1].Value;
-                                       if (bSolo) {
-                                               Solo[aBank] = Light[2].Value;
-                                       } else {
-                                               Mute[aBank] = Light[2].Value;
-                                       }
-                               }
-                               aBank++;
-                               if (!bInputMonitor) {
-                                       Light[0].Value = Select[aBank];
-                                       Light[1].Value = Rec[aBank];
-                                       if (bSolo) {
-                                               Light[2].Value = Solo[aBank];
-                                       } else {
-                                               Light[2].Value = Mute[aBank];
-                                       }
-                               }
-                       }
-                       LightSet(eL_BankL, (aBank == 0));
-                       LightSet(eL_BankR, (aBank == cBanks - 1));
-                       LightSend();
-               }
+               if (V) BankSet(aBank + 1);
                if (verbose > 1)
                        printf(" Light is %i\n", LightIs(eL_BankR));
                break;
@@ -602,10 +548,48 @@ void Cus428State::TransportSend()
 }
 
 
+// Set new bank layer state.
+void Cus428State::BankSet( int B )
+{
+       if (B >= 0 && B < cBanks) {
+               if (!StateInputMonitor()) {
+                       bool bSolo = LightIs(eL_Solo);
+                       Select[aBank] = Light[0].Value;
+                       Rec[aBank] = Light[1].Value;
+                       if (bSolo) {
+                               Solo[aBank] = Light[2].Value;
+                       } else {
+                               Mute[aBank] = Light[2].Value;
+                       }
+                       Light[0].Value = Select[B];
+                       Light[1].Value = Rec[B];
+                       if (bSolo) {
+                               Light[2].Value = Solo[B];
+                       } else {
+                               Light[2].Value = Mute[B];
+                       }
+               }
+               aBank = B;
+       }
+
+       BankSend();
+}
+
+
+// Update bank status lights.
+void Cus428State::BankSend()
+{
+       LightSet(eL_BankL, (aBank == 0));
+       LightSet(eL_BankR, (aBank == cBanks - 1));
+       LightSend();
+}
+
+
 // Reset MMC state.
 void Cus428State::MmcReset()
 {
        W0 = 0;
+       aBank = 0;
        aWheel = aWheel_L = aWheel_R = 0;
        aWheelSpeed = 0;
        bSetLocate = false;
@@ -614,6 +598,7 @@ void Cus428State::MmcReset()
 
        TransportSend();
        LocateSend();
+       BankSend();
 }
 
 
index 065c99f8502d1bc19b52ac88122349fbb89eede6..657e656e57eefbbc109cb9d6dd3c05e2c4af2638 100644 (file)
@@ -131,6 +131,9 @@ public:
        void TransportToggle(unsigned char T);
        void TransportSet(unsigned char T, bool V);
        void TransportSend();
+       // Set bank layer state.
+       void BankSet(int B);
+       void BankSend();
        // Process masked-write sub-command.
        void MaskedWrite(unsigned char *data);
        // Reset internal MMC state.
index b3a3ae1cfc6800842857424e3a73e42dbf1ca874..66aff9e1215cb37e314ad04f239bb23f6f618b3a 100644 (file)
@@ -1,5 +1,5 @@
 AC_INIT(us428control.cc)
-AM_INIT_AUTOMAKE(us428control, 0.4.5)
+AM_INIT_AUTOMAKE(us428control, 0.4.6)
 AC_PROG_CXX
 AC_PROG_INSTALL
 AC_HEADER_STDC