BaseMachine UI Controllerに分離
Dependencies: AverageAnalogIn PinDetect RotaryEncoder Sequence SequencerDisplay mbed-rtos mbed st7567LCD BaseMachineComon
Fork of BaseMachine_Sequencer by
Diff: main.cpp
- 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(); } }