BaseMachine UI Controllerに分離

Dependencies:   AverageAnalogIn PinDetect RotaryEncoder Sequence SequencerDisplay mbed-rtos mbed st7567LCD BaseMachineComon

Fork of BaseMachine_Sequencer by Ryo Od

Revision:
25:7382bc0a0329
Parent:
24:040cdcb2ff14
Child:
26:fbf48a178aeb
--- a/main.cpp	Tue Aug 23 13:41:27 2016 +0000
+++ b/main.cpp	Fri Aug 26 05:11:17 2016 +0000
@@ -21,7 +21,7 @@
 #include "ST7565_SequencerDisplay.h"
 
 #define TITLE_STR1  ("BaseMachine Sequencer")
-#define TITLE_STR2  ("20160823")
+#define TITLE_STR2  ("20160826")
 
 #define SEQUENCE_N  (16)
 #define SPI_RATE    (8000000)
@@ -194,6 +194,7 @@
     int _bpm = RotEncBpm.getVal();
     if (_bpm != sequenceSender.getBpm()) {
         sequenceSender.setBpm(_bpm);
+        sequencerDisplay.setBpm(_bpm);
         isDirty = true;
     }
     
@@ -220,11 +221,11 @@
         #endif
         uint8_t waveShape = sequenceSender.getWaveShape();
         waveShape++;
-        if (waveShape < SpiSequenceSender::WAVESHAPE_N) {
-            sequenceSender.setWaveShape(waveShape);
-        } else {
-            sequenceSender.setWaveShape(0);
+        if (waveShape == SpiSequenceSender::WAVESHAPE_N) {
+            waveShape = 0;
         }
+        sequenceSender.setWaveShape(waveShape);
+        sequencerDisplay.setWaveShape(waveShape);
         pinFlag &= ~bWaveShape;
     }
     
@@ -236,6 +237,7 @@
         if (modNumber > MOD_NUMBER_MAX) {
             modNumber = 0;
         }
+        sequencerDisplay.setModNumber(modNumber);
         pinFlag &= ~bModNumber;
     }
     
@@ -243,7 +245,8 @@
         #if (UART_TRACE)
         printf("PinOctaveUp Pushed\r\n");
         #endif
-        sequences[currentStep].setOctave(sequences[currentStep].getOctave() + 1);
+        //sequences[currentStep].setOctave(sequences[currentStep].getOctave() + 1);
+        sequencerDisplay.setOctave(sequencerDisplay.getOctave() + 1);
         pinFlag &= ~bOctaveUp;
     }
 
@@ -251,7 +254,8 @@
         #if (UART_TRACE)
         printf("PinOctaveDown Pushed\r\n");
         #endif
-        sequences[currentStep].setOctave(sequences[currentStep].getOctave() - 1);
+        //sequences[currentStep].setOctave(sequences[currentStep].getOctave() - 1);
+        sequencerDisplay.setOctave(sequencerDisplay.getOctave() - 1);
         pinFlag &= ~bOctaveDown;
     }
     
@@ -416,7 +420,9 @@
         pollingRotEncs();
         pollingPins();
         if (!isRunning) {
-            sequencerDisplay.update(SequencerDisplay::stop, currentStep);
+            if (isDirty) {
+                sequencerDisplay.update(SequencerDisplay::stop, currentStep);
+            }
             //dumpToLCD();
         }
     }