File daisy_patch.h¶
File List > external-docs > libDaisy > src > daisy_patch.h
Go to the documentation of this file
Source Code¶
#pragma once
#ifndef DSY_PATCH_BSP_H
#define DSY_PATCH_BSP_H
#include "daisy_seed.h"
#include "dev/oled_ssd130x.h"
namespace daisy
{
class DaisyPatch
{
public:
enum Ctrl
{
CTRL_1,
CTRL_2,
CTRL_3,
CTRL_4,
CTRL_LAST,
};
enum GateInput
{
GATE_IN_1,
GATE_IN_2,
GATE_IN_LAST,
};
DaisyPatch() {}
~DaisyPatch() {}
void Init(bool boost = false);
void DelayMs(size_t del);
void StartAudio(AudioHandle::AudioCallback 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(Ctrl k);
void ProcessDigitalControls();
void DisplayControls(bool invert = true);
/* These are exposed for the user to access and manipulate directly
Helper functions above provide easier access to much of what they are capable of.
*/
DaisySeed seed;
Ak4556 codec;
Encoder encoder;
AnalogControl controls[CTRL_LAST];
GateIn gate_input[GATE_IN_LAST];
MidiUartHandler midi;
OledDisplay<SSD130x4WireSpi128x64Driver> display;
// TODO: Add class for Gate output
GPIO gate_output;
private:
void SetHidUpdateRates();
void InitAudio();
void InitControls();
void InitDisplay();
void InitMidi();
void InitCvOutputs();
void InitEncoder();
void InitGates();
uint32_t screen_update_last_, screen_update_period_;
};
} // namespace daisy
#endif