// Mod.h #ifndef Mod_h #define Mod_h #include 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