Integrated version
Diff: BaseMachineUIController.h
- Revision:
- 16:566ddb132ef8
- Parent:
- 15:646a57eb89f3
- Child:
- 17:5c8c173008cf
--- a/BaseMachineUIController.h Sun Nov 27 23:44:13 2016 +0000 +++ b/BaseMachineUIController.h Mon Nov 28 00:37:40 2016 +0000 @@ -6,7 +6,7 @@ */ #define UART_TRACE_EEPROM (0) -#define UART_TRACE_CLIPBOARD (0) +#define UART_TRACE_CLIPBOARD (1) #ifndef _UICONTROLLER_H_ #define _UICONTROLLER_H_ @@ -39,6 +39,16 @@ const int UImodeMax = 2; const int EEPROMSlotMax = 16; + +//flagEepromCancel スイッチを増やして割り当てる +typedef enum { + flagSaveToEeprom = 0x01, + flagLoadFromEeprom = 0x02, + flagEepromOK = 0x04, + flagCopyToClipBoard = 0x08, + flagPasteFromClipBoard = 0x10 +} LoadSaveFlagT; + struct OscillatorParam { uint8_t waveShape; uint8_t pulseWidth; @@ -324,23 +334,24 @@ } switch (loadSaveFlag) { - case 1: - saveToEEPROM(); - Thread::wait(1000); + case flagSaveToEeprom: + saveToEeprom(); + Thread::wait(500); isDirty = true; break; - case 2: - loadFromEEPROM(); - Thread::wait(1000); + case flagLoadFromEeprom: + loadFromEeprom(); + Thread::wait(500); isDirty = true; break; - case 8: + case flagCopyToClipBoard: copyToClipBoard(); - Thread::wait(1000); + Thread::wait(10); + isDirty = true; break; - case 16: + case flagPasteFromClipBoard: pasteFromClipBoard(); - Thread::wait(1000); + Thread::wait(10); isDirty = true; break; } @@ -688,7 +699,7 @@ gLCD->display(); } - void saveToEEPROM() + void saveToEeprom() { char buff[64]; @@ -703,7 +714,14 @@ sprintf(buff, "[%02d]", eepromSlot); gLCD->drawstring(90, 0, buff); gLCD->display(); - if (loadSaveFlag &= 0x04) { + //ToDo: flagEepromCancel スイッチを増やして割り当てる + if (loadSaveFlag & flagLoadFromEeprom) { + gLCD->drawstring(0, 1, " Cancel"); + gLCD->display(); + return; + } + printf("loadSaveFlag: %2d\r\n", loadSaveFlag); + if (loadSaveFlag & flagEepromOK) { break; } } @@ -766,7 +784,7 @@ gLCD->display(); } - void loadFromEEPROM() + void loadFromEeprom() { char buff[64]; @@ -781,7 +799,13 @@ sprintf(buff, "[%02d]", eepromSlot); gLCD->drawstring(102, 0, buff); gLCD->display(); - if (loadSaveFlag &= 0x04) { + //ToDo: flagEepromCancel スイッチを増やして割り当てる + if (loadSaveFlag & flagSaveToEeprom) { + gLCD->drawstring(0, 1, " Cancel"); + gLCD->display(); + return; + } + if (loadSaveFlag &= flagEepromOK) { break; } } @@ -860,7 +884,6 @@ gLCD->clear(); gLCD->drawstring(0, 0, "Copy"); gLCD->display(); - isDirty = true; for (int i = 0; i < SEQUENCE_N; i++) { sequenceClipBoard[i].setNoteOn(sequences[sequencePattern][i].isNoteOn()); @@ -890,7 +913,6 @@ gLCD->clear(); gLCD->drawstring(0, 0, "Paste"); gLCD->display(); - isDirty = true; #if (UART_TRACE_CLIPBOARD) printf("pasteFromClipBoard\r\n");