File daisy_petal.h¶
File List > external-docs > libDaisy > src > daisy_petal.h
Go to the documentation of this file
Source Code¶
#pragma once
#ifndef DSY_PETAL_H
#define DSY_PETAL_H
#include "daisy_seed.h"
namespace daisy
{
class DaisyPetal
{
public:
enum Sw
{
SW_1,
SW_2,
SW_3,
SW_4,
SW_5,
SW_6,
SW_7,
SW_LAST,
};
enum Knob
{
KNOB_1,
KNOB_2,
KNOB_3,
KNOB_4,
KNOB_5,
KNOB_6,
KNOB_LAST,
};
enum RingLed
{
RING_LED_1,
RING_LED_2,
RING_LED_3,
RING_LED_4,
RING_LED_5,
RING_LED_6,
RING_LED_7,
RING_LED_8,
RING_LED_LAST
};
enum FootswitchLed
{
FOOTSWITCH_LED_1,
FOOTSWITCH_LED_2,
FOOTSWITCH_LED_3,
FOOTSWITCH_LED_4,
FOOTSWITCH_LED_LAST,
};
DaisyPetal() {}
~DaisyPetal() {}
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 SetAudioSampleRate(SaiHandle::Config::SampleRate samplerate);
float AudioSampleRate();
void SetAudioBlockSize(size_t size);
size_t AudioBlockSize();
float AudioCallbackRate();
void StartAdc();
void StopAdc();
void ProcessAnalogControls();
inline void ProcessAllControls()
{
ProcessAnalogControls();
ProcessDigitalControls();
}
float GetKnobValue(Knob k);
float GetExpression();
void ProcessDigitalControls();
void ClearLeds();
void UpdateLeds();
void SetRingLed(RingLed idx, float r, float g, float b);
void SetFootswitchLed(FootswitchLed idx, float bright);
DaisySeed seed;
Encoder encoder;
AnalogControl knob[KNOB_LAST];
AnalogControl expression;
Switch switches[SW_LAST] ;
RgbLed ring_led[8];
Led footswitch_led[4];
private:
void SetHidUpdateRates();
void InitSwitches();
void InitEncoder();
void InitLeds();
void InitAnalogControls();
inline uint16_t* adc_ptr(const uint8_t chn) { return seed.adc.GetPtr(chn); }
LedDriverPca9685<2, true> led_driver_;
};
} // namespace daisy
#endif