27 lines
778 B
C++
27 lines
778 B
C++
// hal/led_stub.h
|
|
#pragma once
|
|
|
|
class LedStub {
|
|
public:
|
|
virtual ~LedStub() {}
|
|
|
|
virtual void begin() = 0;
|
|
virtual void set_led_state(uint8_t note, uint8_t channel, uint8_t velocity) = 0;
|
|
virtual void clear_all() = 0;
|
|
|
|
// Helper function to map MIDI note to LED index
|
|
virtual uint8_t note_to_index(uint8_t note) {
|
|
// Default implementation - direct mapping
|
|
// Can be overridden by specific implementations
|
|
return note;
|
|
}
|
|
};
|
|
|
|
// LED state structure
|
|
struct LedState {
|
|
uint8_t note; // Launchpad note
|
|
uint8_t channel; // LED channel (1-3)
|
|
uint8_t velocity; // Color/brightness (0-127)
|
|
uint32_t timestamp; // When state was set
|
|
bool active; // Current on/off state
|
|
}; |