LaunchpadScreen.h 920 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include "LaunchpadColor.h"
  3. #include "Launchpad.h"
  4. namespace midi {
  5. class LaunchpadScreen
  6. {
  7. LaunchpadColor colors[Launchpad::width][Launchpad::height];
  8. Launchpad* launchpad;
  9. bool active;
  10. public:
  11. LaunchpadScreen();
  12. virtual void enable();
  13. virtual void disable();
  14. bool enabled() const;
  15. void setLaunchpad(Launchpad& launchpad);
  16. protected:
  17. virtual void keyPressed(unsigned char x, unsigned char y);
  18. virtual void keyReleased(unsigned char x, unsigned char y);
  19. const LaunchpadColor& getColor(unsigned char x, unsigned char y) const;
  20. void setColor(unsigned char x, unsigned char y, const LaunchpadColor& color);
  21. void setColorAll(const LaunchpadColor& color);
  22. void sync();
  23. private:
  24. static void keyPressedCallback(unsigned char x, unsigned char y, void* screen);
  25. static void keyReleasedCallback(unsigned char x, unsigned char y, void* screen);
  26. };
  27. } // namespace