1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- #include <iostream>
- #include <cstdlib>
- #include "RtMidi.h"
- #include "MidiMessage.h"
- #include "Launchpad.h"
- // Platform-dependent sleep routines.
- #if defined(__WINDOWS_MM__)
- #include <windows.h>
- #define SLEEP( milliseconds ) Sleep( (DWORD) milliseconds )
- #else // Unix variants
- #include <unistd.h>
- #define SLEEP( milliseconds ) usleep( (unsigned long) (milliseconds * 1000.0) )
- #endif
- struct DrawScreen : public LaunchpadScreen
- {
- virtual void keyPressed(unsigned char x, unsigned char y);
- void all(unsigned short a, unsigned short b)
- {
- setColorAll(LaunchpadColor(a, b));
- }
- };
- Launchpad l;
- DrawScreen s[8];
-
- void DrawScreen::keyPressed(unsigned char x, unsigned char y)
- {
- // std::cout << "(" << (int)x << ", " << (int)y << ")" << std::endl;
- if(y == 8) {
- std::cout << "switch to screen #" << (int)x << std::endl;
- disable();
- s[x].enable();
- } else {
- setColor(x, y, LaunchpadColor(3 - getColor(x, y).red, 3 - getColor(x, y).green));
- }
- }
- int main()
- {
- for(int i=0; i<8; i++) {
- s[i].setLaunchpad(l);
- s[i].all(i % 4, (int)((float)i/4));
- }
- s[4].enable();
- while(true)
- {
- SLEEP(1);
- }
- return 0;
- }
|