File daisy_field.h¶
File List > external-docs > libDaisy > src > daisy_field.h
Go to the documentation of this file
Source Code¶
#pragma once
#ifndef DSY_FIELD_BSP_H
#define DSY_FIELD_BSP_H
#include "daisy_seed.h"
#include "dev/oled_ssd130x.h"
namespace daisy
{
class DaisyField
{
public:
enum
{
SW_1,
SW_2,
SW_LAST,
};
enum
{
KNOB_1,
KNOB_2,
KNOB_3,
KNOB_4,
KNOB_5,
KNOB_6,
KNOB_7,
KNOB_8,
KNOB_LAST,
};
enum
{
CV_1,
CV_2,
CV_3,
CV_4,
CV_LAST,
};
enum
{
LED_KEY_B1,
LED_KEY_B2,
LED_KEY_B3,
LED_KEY_B4,
LED_KEY_B5,
LED_KEY_B6,
LED_KEY_B7,
LED_KEY_B8,
LED_KEY_A8,
LED_KEY_A7,
LED_KEY_A6,
LED_KEY_A5,
LED_KEY_A4,
LED_KEY_A3,
LED_KEY_A2,
LED_KEY_A1,
LED_KNOB_1,
LED_KNOB_2,
LED_KNOB_3,
LED_KNOB_4,
LED_KNOB_5,
LED_KNOB_6,
LED_KNOB_7,
LED_KNOB_8,
LED_SW_1,
LED_SW_2,
LED_LAST
};
DaisyField() {}
~DaisyField() {}
void Init(bool boost = false);
void DelayMs(size_t del);
void StartAudio(AudioHandle::InterleavingAudioCallback cb);
void StartAudio(AudioHandle::AudioCallback cb);
void StopAudio();
void ChangeAudioCallback(AudioHandle::InterleavingAudioCallback cb);
void ChangeAudioCallback(AudioHandle::AudioCallback cb);
void SetAudioSampleRate(SaiHandle::Config::SampleRate samplerate);
float AudioSampleRate();
void SetAudioBlockSize(size_t blocksize);
size_t AudioBlockSize();
float AudioCallbackRate();
void StartAdc();
void StopAdc();
void StartDac();
void ProcessAnalogControls();
void ProcessDigitalControls();
inline void ProcessAllControls()
{
ProcessAnalogControls();
ProcessDigitalControls();
}
void SetCvOut1(uint16_t val);
void SetCvOut2(uint16_t val);
bool KeyboardState(size_t idx) const;
bool KeyboardRisingEdge(size_t idx) const;
bool KeyboardFallingEdge(size_t idx) const;
float GetKnobValue(size_t idx) const;
float GetCvValue(size_t idx) const;
Switch* GetSwitch(size_t idx);
AnalogControl* GetKnob(size_t idx);
AnalogControl* GetCv(size_t idx);
void VegasMode();
DaisySeed seed;
OledDisplay<SSD130x4WireSpi128x64Driver> display;
GPIO gate_out;
GateIn gate_in;
LedDriverPca9685<2, true> led_driver;
Switch sw[SW_LAST];
AnalogControl knob[KNOB_LAST];
AnalogControl cv[CV_LAST];
MidiUartHandler midi;
private:
void SetHidUpdateRates();
void InitMidi();
ShiftRegister4021<2> keyboard_sr_;
uint8_t keyboard_state_[16];
uint32_t last_led_update_; // for vegas mode
bool gate_in_trig_; // True when triggered.
};
} // namespace daisy
#endif