File daisy_legio.h¶
File List > external-docs > libDaisy > src > daisy_legio.h
Go to the documentation of this file
Source Code¶
#pragma once
#include "daisy_seed.h"
namespace daisy
{
class DaisyLegio
{
public:
// ENUMS to help index 2 LEDs, 2 controls/CV inputs, 2 3-position switches
enum LEGIO_LEDS
{
LED_LEFT,
LED_RIGHT,
LED_LAST
};
enum LEGIO_CONTROLS
{
CONTROL_PITCH,
CONTROL_KNOB_TOP,
CONTROL_KNOB_BOTTOM,
CONTROL_LAST
};
enum LEGIO_TOGGLE3
{
SW_LEFT,
SW_RIGHT,
SW_LAST
};
DaisyLegio() {}
~DaisyLegio() {}
void Init(bool boost = false);
void DelayMs(size_t del);
void StartAudio(AudioHandle::InterleavingAudioCallback cb);
void StartAudio(AudioHandle::AudioCallback cb);
void ChangeAudioCallback(AudioHandle::InterleavingAudioCallback cb);
void ChangeAudioCallback(AudioHandle::AudioCallback cb);
void StopAudio();
void SetAudioBlockSize(size_t size);
size_t AudioBlockSize();
void SetAudioSampleRate(SaiHandle::Config::SampleRate samplerate);
float AudioSampleRate();
float AudioCallbackRate();
void StartAdc();
void StopAdc();
void ProcessDigitalControls();
void ProcessAnalogControls();
inline void ProcessAllControls()
{
ProcessDigitalControls();
ProcessAnalogControls();
}
bool Gate();
void SetLed(size_t idx, float red, float green, float blue);
float GetKnobValue(int idx);
void UpdateLeds();
/* Call this once per main loop update to test the Legio Hardware
* Each input (1 gate in, 1 momentary in, 2 3-position switches, 3 controls) should change some or all of the output LEDs colors
**/
void UpdateExample();
DaisySeed seed;
Encoder encoder;
GateIn gate;
RgbLed leds[LED_LAST];
AnalogControl controls[CONTROL_LAST];
Switch3 sw[SW_LAST];
private:
void SetHidUpdateRates();
};
} // namespace daisy