BaseMachine UI Controllerに分離

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

Fork of BaseMachine_Sequencer by Ryo Od

Revision:
36:50ad7e0a9a95
Parent:
35:0165b610796d
Child:
37:d4e50159baee
--- a/main.cpp	Fri Sep 09 02:50:00 2016 +0000
+++ b/main.cpp	Fri Sep 09 03:14:16 2016 +0000
@@ -87,6 +87,7 @@
 ST7565_SequencerDisplay sequencerDisplay(&gLCD, sequences, SEQUENCE_N);
 
 volatile int currentStep = 0;
+volatile int playingStep = 0;
 volatile bool isRunning = false;
 volatile bool isDirty = true;
 volatile uint8_t pinFlag = 0x00;
@@ -113,8 +114,10 @@
 {
     if (ticks == 0) {
         envelopeGenerator.init(envelope);
-        // ToDo: 再生中のLCD表示を検討→SPI1とSPI2の信号のタイミングを調査
-        sequencerDisplay.update(SequencerDisplay::run, sequenceSender.getStep());
+        // LCDにStepを表示するフラグを立てる
+        //sequencerDisplay.update(SequencerDisplay::run, sequenceSender.getStep());
+        playingStep = sequenceSender.getStep();
+        isDirty = true;
     }
 
     if (sequences[sequenceSender.getStep()].isNoteOn()) {
@@ -479,7 +482,7 @@
             }
         } else {
             if (isDirty) {
-                //sequencerDisplay.update(SequencerDisplay::run, currentStep);
+                sequencerDisplay.update(SequencerDisplay::run, playingStep);
                 /*
                 static int cnt = 0;
                 char buffer[32];
@@ -494,7 +497,7 @@
                 //gLCD.fillrect(currentStep * 7, 1, 7, 3, 1);
                 //gLCD.display();
                 
-                //isDirty = false;
+                isDirty = false;
             }
         }
     }