39 lines
606 B
C++
39 lines
606 B
C++
// Mod.h
|
|
#ifndef Mod_h
|
|
#define Mod_h
|
|
#include <cstdint>
|
|
|
|
class Gate;
|
|
|
|
enum ModDest {
|
|
DEST_LEVEL = 0,
|
|
DEST_PROBABILITY = 1,
|
|
DEST_WIDTH = 2,
|
|
DEST_COUNT = 3
|
|
};
|
|
|
|
struct ModSlot {
|
|
uint8_t sourceIdx;
|
|
uint8_t destIdx;
|
|
uint8_t destParam;
|
|
uint8_t amount;
|
|
uint8_t active;
|
|
uint8_t inverted;
|
|
uint8_t reserved1;
|
|
uint8_t reserved2;
|
|
};
|
|
|
|
class ModMatrix {
|
|
public:
|
|
ModSlot slots[16];
|
|
|
|
void patch(uint8_t slotIdx, uint8_t src, uint8_t dest, ModDest param,
|
|
float amt, bool active);
|
|
|
|
void process(Gate **gates, uint8_t gateCount);
|
|
|
|
void clearPatch(uint8_t slotIdx);
|
|
;
|
|
};
|
|
|
|
#endif
|