|
- #pragma once
- #ifdef LAUNCHPAD
- #include "rack.hpp"
- #include <map>
- #include <list>
- //#define DEBUG
-
- /*
- R1C1 is UPPER LEFT
- R8C8 [R16C16] is LOWER RIGHT
- */
-
- #define ALL_LAUNCHPADS (127)
-
- enum LaunchpadKey
- {
- _NOTAKEY = 0,
- RECORD_ARM ,
- TRACK_SELECT,
- MUTE,
- SOLO,
- VOLUME,
- PAN,
- SENDS,
- STOP_CLIP,
-
- reserved_unused0 = 9,
-
- RECORD,
- R8C1,R8C2,R8C3,R8C4,R8C5,R8C6,R8C7,R8C8, // 11 ...
- PLAY8,
-
- kDOUBLE,
- R7C1,R7C2,R7C3,R7C4,R7C5,R7C6,R7C7,R7C8, //21 ...
- PLAY7,
- kDUPLICATE,
- R6C1,R6C2,R6C3,R6C4,R6C5,R6C6,R6C7,R6C8,
- PLAY6,
-
- QUANTISE,
- R5C1,R5C2,R5C3,R5C4,R5C5,R5C6,R5C7,R5C8,
- PLAY5,
-
- kDELETE,
- R4C1,R4C2,R4C3,R4C4,R4C5,R4C6,R4C7,R4C8,
- PLAY4,
-
- UNDO,
- R3C1,R3C2,R3C3,R3C4,R3C5,R3C6,R3C7,R3C8,
- PLAY3,
-
- CLICK,
- R2C1,R2C2,R2C3,R2C4,R2C5,R2C6,R2C7,R2C8,
- PLAY2,
-
- SHIFT,
- R1C1,R1C2,R1C3,R1C4,R1C5,R1C6,R1C7,R1C8,
- PLAY1,
-
- reserved_unused1 = 90,
-
- UP,
- DOWN,
- LEFT,
- RIGHT,
-
- SESSION,
- NOTE,
- DEVICE,
- USER
- };
-
- enum LaunchpadCommand
- {
- _INVALID,
- KEYON, // key lit, param0 = color (0 = off)
- SET_STANDALONE_MODE, // set standalone LP mode; param0 = LaunchpadMode
- SET_LIVE_MODE, // set live LP mode; param0 = LaunchpadLiveMode
- LED_ALL, // set all keys to one color; param0 = color (0 = off)
- SIDE_LED, // turn on the side led
- FLASH_KEY, // led flash
- PULSE_KEY, // led pulse
- LED_RGB, //led rgb color
- SETSTATUS, // param0: ableton or standalone
- RESET,
- SETSCENE, //currentScene
- REGISTERSCENE, // currentScene, param0: 1 = register, 0 =unregister
- GETNUMLAUNCHPADS // lpNumber = # di launchpad trovati
- };
-
- enum LaunchpadMode {Note = 0, Drum, Fader, Programmer};
- enum LaunchpadKeyStatus {keyUp, keyDown, keyPressure, keyChannelPressure, keyNone};
- enum LaunchpadScene {SceneAll = 0, Scene1, Scene2, Scene3, Scene4, Scene5, Scene6, Scene7, Scene8};
- enum ButtonColorType
- {
- Normal = 0,
- RGB,
- Flash,
- Pulse,
- };
-
- enum LaunchpadLiveMode {Session = 0, DrumRack, ChromaticNote, User, Audio, LiveFader, RecordArm, TrackSelect, Mute, Solo, Volume, Pan, Sends, StopClip};
- enum LaunchpadStatus {Ableton = 0, Standalone};
- struct LaunchpadMessage
- {
- LaunchpadKeyStatus status;
- LaunchpadCommand cmd;
- LaunchpadKey key;
- LaunchpadScene currentScene;
- short lpNumber;
- bool shiftDown;
- short param0;
- short param1;
- };
-
- struct LaunchpadLed
- {
- ButtonColorType status = Normal;
- int r_color = 0;
- int g = 0;
- int b = 0;
-
- static LaunchpadLed Color(int cr)
- {
- LaunchpadLed rv;
- rv.status = Normal;
- rv.r_color = cr;
- return rv;
- }
- static LaunchpadLed Off() {return Color(0);}
-
- static LaunchpadLed Rgb(int c_r, int c_g, int c_b)
- {
- LaunchpadLed rv;
- rv.status = RGB;
- rv.r_color = c_r;
- rv.g = c_g;
- rv.b = c_b;
- return rv;
- }
- };
-
- #endif
|