Integrated version

Revision:
17:5c8c173008cf
Parent:
16:566ddb132ef8
Child:
18:6ba18820777d
--- a/BaseMachineUIController.h	Mon Nov 28 00:37:40 2016 +0000
+++ b/BaseMachineUIController.h	Fri Jan 06 11:57:49 2017 +0000
@@ -39,14 +39,17 @@
 const int UImodeMax = 2;
 const int EEPROMSlotMax = 16;
 
+const int ExioPinToPattern[] = {
+    0, 4, 1, 5, 2, 6, 3, 7
+};
 
-//flagEepromCancel スイッチを増やして割り当てる
 typedef enum {
-    flagSaveToEeprom       = 0x01,
-    flagLoadFromEeprom     = 0x02,
     flagEepromOK           = 0x04,
-    flagCopyToClipBoard    = 0x08,
-    flagPasteFromClipBoard = 0x10
+    flagEepromCancel       = 0x08,
+    flagSaveToEeprom       = 0x10,
+    flagLoadFromEeprom     = 0x20,
+    flagCopyToClipBoard    = 0x40,
+    flagPasteFromClipBoard = 0x80
 } LoadSaveFlagT;
 
 struct OscillatorParam {
@@ -140,7 +143,7 @@
         Exio->reset();
         
         ExioInBufferA = new ExioInBuffer(Exio, ExioPortA);
-        for (int i = 0; i < 5; i++) {
+        for (int i = 2; i < 8; i++) {
             ExioInA[i] = new ExioBufferedDebounceIn(ExioInBufferA, i);
         }
 
@@ -149,7 +152,7 @@
             ExioIn[i] = new ExioBufferedDebounceIn(ExioInBufferB, i);
         }
 
-        ExioRotEnc1 = new ExioBufferedRotaryEncoder(ExioInBufferA, 6, 7, 0, EEPROMSlotMax - 1, 0);
+        ExioRotEnc1 = new ExioBufferedRotaryEncoder(ExioInBufferA, 0, 1, 0, EEPROMSlotMax - 1, 0);
         
         I2c1 = new I2C(PB_9, PB_8);
         At24c1024 = new AT24C1024(*I2c1);
@@ -202,7 +205,7 @@
         PinRunStop->setSampleFrequency();
         
         ExioInBufferA->run(10);
-        for (int i = 0; i < 5; i++) {
+        for (int i = 2; i < 8; i++) {
             ExioInA[i]->set_debounce_us(5000);
         }
         
@@ -364,7 +367,7 @@
     ExioMcp23s17* Exio;
     ExioInBuffer* ExioInBufferA;
     ExioInBuffer* ExioInBufferB;
-    ExioBufferedDebounceIn* ExioInA[5];
+    ExioBufferedDebounceIn* ExioInA[8];
     ExioBufferedDebounceIn* ExioIn[8];
     ExioBufferedRotaryEncoder* ExioRotEnc1;
     
@@ -593,15 +596,15 @@
             //isDirty = true;
         }
     }
-
+    
     void pollingExio()
     {
         int i;
         for (i = 0; i < 8; i++) {
             if (ExioIn[i]->read())  break;
         }
-        if (i != 8 && sequencePattern != i) {
-            sequencePattern = i;
+        if (i != 8 && sequencePattern != ExioPinToPattern[i]) {
+            sequencePattern = ExioPinToPattern[i];
             // syncronize sequence value & Rotary Encoder's value
             RotEncPitch->setVal(sequences[sequencePattern][editingStep].getPitch());
             
@@ -611,7 +614,7 @@
         }
         
         loadSaveFlag = 0;
-        for (i = 0; i < 5; i++) {
+        for (i = 2; i < 8; i++) {
             loadSaveFlag |= ((ExioInA[i]->read()) << i);
         }
         
@@ -715,12 +718,12 @@
             gLCD->drawstring(90, 0, buff);
             gLCD->display();
             //ToDo: flagEepromCancel スイッチを増やして割り当てる
-            if (loadSaveFlag & flagLoadFromEeprom) {
+            if (loadSaveFlag & flagEepromCancel) {
                 gLCD->drawstring(0, 1, " Cancel");
                 gLCD->display();  
                 return;
             }
-            printf("loadSaveFlag: %2d\r\n", loadSaveFlag);
+            //printf("loadSaveFlag: %2d\r\n", loadSaveFlag);
             if (loadSaveFlag & flagEepromOK) {
                 break;
             }
@@ -800,7 +803,7 @@
             gLCD->drawstring(102, 0, buff);
             gLCD->display();
             //ToDo: flagEepromCancel スイッチを増やして割り当てる
-            if (loadSaveFlag & flagSaveToEeprom) {
+            if (loadSaveFlag & flagEepromCancel) {
                 gLCD->drawstring(0, 1, " Cancel");
                 gLCD->display();  
                 return;