예제 #1
0
bool MagicMNMPage::handleEvent(gui_event_t *event)  {
  if (BUTTON_DOWN(Buttons.BUTTON4)) {
    for (int i = Buttons.ENCODER1; i <= Buttons.ENCODER4; i++) {
      if (EVENT_PRESSED(event, i)) {
        GUI.setLine(GUI.LINE1);
        GUI.flash_string_fill("CLEAR");
        GUI.setLine(GUI.LINE2);
        GUI.flash_put_value(0, i);
        clearRecording(i);
        return true;
      }
    }
  }

  if (EVENT_PRESSED(event, Buttons.BUTTON2)) {
    setToCurrentTrack();
    return true;
  }
  if (EVENT_PRESSED(event, Buttons.BUTTON3)) {
    startRecording();
    return true;
  }
  if (EVENT_RELEASED(event, Buttons.BUTTON3)) {
    stopRecording();
    return true;
  }
  if (EVENT_PRESSED(event, Buttons.BUTTON4) || EVENT_RELEASED(event, Buttons.BUTTON4)) {
    return true;
  }

  return false;
}
예제 #2
0
 bool handleEvent(gui_event_t *event) {
   if (EVENT_PRESSED(event, Buttons.BUTTON2)) {
     moveCursor(cursorPos - 4);
   }
   if (EVENT_PRESSED(event, Buttons.BUTTON3)) {
     moveCursor(cursorPos + 4);
   }
   if (EVENT_PRESSED(event, Buttons.BUTTON1)) {
     hasPressedKey = true;
     pressedKey = 0;
   }
   if (EVENT_PRESSED(event, Buttons.BUTTON4)) {
     hasPressedKey = true;
     pressedKey = 1;
   }
   return true;
 }
예제 #3
0
bool MagicSwitchPage::handleEvent(gui_event_t *event) {
  if (BUTTON_DOWN(Buttons.BUTTON4)) {
    if (EVENT_PRESSED(event, Buttons.BUTTON1)) {
      GUI.flash_strings_fill("CLEAR ALL", "");
      for (int i = 0; i < 4; i++) {
        magicPages[i].clearRecording();
      }
      return true;
    }
  }
  if (EVENT_PRESSED(event, Buttons.BUTTON2)) {
    MidiUart.printfString("SELECT PAGE");
    selectPage = true;
    redisplayPage();
    return true;
  }
  if (EVENT_RELEASED(event, Buttons.BUTTON2)) {
    selectPage = false;
    if (currentPage != NULL) {
      redisplayPage();
    }
    return true;
  }
  if (selectPage) {
    for (int i = Buttons.ENCODER1; i <= Buttons.ENCODER4; i++) {
      if (pages[i] != NULL && EVENT_PRESSED(event, i)) {
        setPage(pages[i]);
        return true;
      }
    }
    if (EVENT_PRESSED(event, Buttons.BUTTON1)) {
      setToCurrentTrack();
      return true;
    }
  }

  if (currentPage != NULL) {
    return currentPage->handleEvent(event);
  } 
  else {
    return false;
  }
}
예제 #4
0
bool SwitchPage::handleEvent(gui_event_t *event) {
  for (int i = Buttons.ENCODER1; i <= Buttons.ENCODER4; i++) {
    if (pages[i] != NULL && EVENT_PRESSED(event, i)) {
      if (parent != NULL) {
				parent->setPage(pages[i - Buttons.ENCODER1]);
      }
      return true;
    }
  }
  return false;
}
예제 #5
0
bool ScrollSwitchPage::handleEvent(gui_event_t *event) {
  Page *page = pages.arr[pageEncoder.getValue()];
  if (page != NULL) {
    if (EVENT_PRESSED(event, Buttons.ENCODER1)) {
      if (parent != NULL) {
				parent->setPage(page);
      }
      return true;
    }
  }
  return false;
}
예제 #6
0
 virtual bool handleEvent(gui_event_t *event) {
   // check buttons and encoders, small hack really, because all in one byte
   for (int i = 0; i < 8; i++) {
     if (EVENT_PRESSED(event, i) && buttonMask & _BV(i)) {
       pressedKey = i;
       hasPressedKey = true;
     }
     if (EVENT_RELEASED(event, i) && releaseMask & _BV(i)) {
       pressedKey = -1;
       hasPressedKey = true;
     }
   }
   return true;
 }