libDaisy
Hardware Library for Daisy
daisy Namespace Reference

Namespaces

namespace  MAX11300Types
 
namespace  patch_sm
 
namespace  seed
 

Classes

class  AbstractMenu
 Base class for complex menus. More...
 
struct  AdcChannelConfig
 Configuration Structure for an ADC Channel. More...
 
class  AdcHandle
 Handler for analog to digital conversion. More...
 
class  Ak4556
 
struct  AllNotesOffEvent
 
struct  AllSoundOffEvent
 
class  AnalogControl
 Hardware Interface for control inputs
Primarily designed for ADC input controls such as
potentiometers, and control voltage.
. More...
 
class  Apds9960
 Device support for APDS9960 gesture / RGB / proximity sensor. More...
 
class  Apds9960I2CTransport
 
class  AudioHandle
 Audio Engine Handle. More...
 
class  ButtonMonitor
 A button monitor that generates events in a UiEventQueue. More...
 
struct  ChannelModeEvent
 
struct  ChannelPressureEvent
 
class  Color
 
struct  ControlChangeEvent
 
class  CpuLoadMeter
 
class  DacHandle
 DAC handle for Built-in DAC Peripheral. More...
 
class  DaisyField
 
class  DaisyPatch
 Class that handles initializing all of the hardware specific to the Daisy Patch Board.
Helper funtions are also in place to provide easy access to built-in controls and peripherals. More...
 
class  DaisyPetal
 Helpers and hardware definitions for daisy petal. More...
 
class  DaisyPod
 Class that handles initializing all of the hardware specific to the Daisy Patch Board.
Helper funtions are also in place to provide easy access to built-in controls and peripherals. More...
 
class  DaisySeed
 This is the higher-level interface for the Daisy board.
All basic peripheral configuration/initialization is setup here.
. More...
 
class  DaisyVersio
 Class that handles initializing all of the hardware specific to the Desmodus Versio hardware.
Helper funtions are also in place to provide easy access to built-in controls and peripherals. More...
 
class  Dps310
 Device support for DPS310 Barometric Pressure and Altitude Sensor. More...
 
class  Dps310I2CTransport
 
class  Dps310SpiTransport
 
class  Encoder
 Generic Class for handling Quadrature Encoders
Inspired/influenced by Mutable Instruments (pichenettes) Encoder classes. More...
 
class  FatFSInterface
 Daisy FatFS Driver Interface. More...
 
class  FIFO
 
class  FIFOBase
 
class  FixedCapStr
 
class  FixedCapStrBase
 
class  FullScreenItemMenu
 A menu page for small screens. More...
 
class  GateIn
 Generic Class for handling gate inputs through GPIO. More...
 
class  GPIO
 General Purpose I/O control. More...
 
class  I2CHandle
 
class  Icm20948
 Device support for ICM20948 IMU sensor. More...
 
class  Icm20948I2CTransport
 
class  Icm20948SpiTransport
 
class  LcdHD44780
 Device Driver for 16x2 LCD panel.
HD44780 with 4 data lines.
Example product: https://www.adafruit.com/product/181. More...
 
class  Led
 LED Class providing simple Software PWM ability, etc
Eventually this will work with hardware PWM, and external LED Driver devices as well. More...
 
class  LedDriverPca9685
 
struct  LocalControlEvent
 
class  Logger
 Interface for simple USB logging. More...
 
class  Logger< LOGGER_NONE >
 
class  LoggerImpl
 Logging I/O underlying implementation. More...
 
class  LoggerImpl< LOGGER_EXTERNAL >
 Specialization for external USB port. More...
 
class  LoggerImpl< LOGGER_INTERNAL >
 Specialization for internal USB port. More...
 
class  LoggerImpl< LOGGER_SEMIHOST >
 Specialization for semihosting (stdout) More...
 
class  MappedFloatValue
 
class  MappedIntValue
 
class  MappedStringListValue
 
class  MappedValue
 
class  MAX11300Driver
 Device Driver for the MAX11300 20 port ADC/DAC/GPIO device. More...
 
class  MAX11300MultiSlaveSpiTransport
 
class  Mcp23017Transport
 
class  Mcp23X17
 
struct  MidiEvent
 
class  MidiHandler
 Simple MIDI Handler
Parses bytes from an input into valid MidiEvents.
The MidiEvents fill a FIFO queue that the user can pop messages from. More...
 
class  MidiUartTransport
 Transport layer for sending and receiving MIDI data over UART. More...
 
class  MidiUsbTransport
 USB Transport for MIDI. More...
 
struct  MonoModeOnEvent
 
class  Mpr121
 Device support for MPR121 12x Capacitive Touch Sensor. More...
 
class  Mpr121I2CTransport
 
struct  MTCQuarterFrameEvent
 
class  MultiSlaveSpiHandle
 
class  NeoPixel
 Device support for Adafruit Neopixel Device. More...
 
class  NeoPixelI2CTransport
 
class  NeoTrellis
 Device support for the Adafruit Neotrellis device. More...
 
class  NeoTrellisI2CTransport
 
struct  NoteOffEvent
 
struct  NoteOnEvent
 
class  OledDisplay
 
struct  OmniModeOffEvent
 
struct  OmniModeOnEvent
 
class  OneBitGraphicsDisplay
 
class  OneBitGraphicsDisplayImpl
 
class  Parameter
 
class  Pcm3060
 
class  PersistentStorage
 Non Volatile storage class for persistent settings on an external flash device. More...
 
struct  Pin
 representation of hardware port/pin combination More...
 
struct  PitchBendEvent
 
struct  PolyModeOnEvent
 
struct  PolyphonicKeyPressureEvent
 
class  PotMonitor
 A potentiometer monitor that generates events in a UiEventQueue. More...
 
struct  ProgramChangeEvent
 
class  QSPIHandle
 
class  Random
 True Random Number Generator access. More...
 
class  Rectangle
 
struct  ResetAllControllersEvent
 
class  RgbLed
 
class  RingBuffer
 
class  RingBuffer< T, 0 >
 
class  SaiHandle
 
class  ScopedIrqBlocker
 
class  SdmmcHandler
 
class  ShiftRegister4021
 Device Driver for CD4021 shift register. More...
 
struct  SongPositionPointerEvent
 
struct  SongSelectEvent
 
class  SpiHandle
 
class  SSD130x4WireSpiTransport
 
class  SSD130xDriver
 
class  SSD130xI2CTransport
 
class  Stack
 
class  StackBase
 
class  Switch
 
class  Switch3
 
class  System
 
struct  SystemExclusiveEvent
 
class  TimerHandle
 Hardare timer peripheral support. More...
 
class  Tlv493d
 Device support for TLV493D Magnetic Sensor. More...
 
class  Tlv493dI2CTransport
 
class  UartHandler
 
class  UI
 A generic UI system. More...
 
struct  UiCanvasDescriptor
 A descriptor for a canvas in the UI system. More...
 
class  UiEventQueue
 A queue that holds user input events in the UI system. More...
 
class  UiPage
 The base class for a page in the UI system. More...
 
class  USBHostHandle
 Presents a USB Mass Storage Device host interface. More...
 
class  VoctCalibration
 Helper class for calibrating an input to 1V/oct response. More...
 
struct  WAV_FormatTypeDef
 
class  WaveTableLoader
 
struct  WavFileInfo
 
class  WavPlayer
 
class  WavWriter
 
class  Wm8731
 

Typedefs

using Apds9960I2C = Apds9960< Apds9960I2CTransport >
 
using Dps310I2C = Dps310< Dps310I2CTransport >
 
using Dps310Spi = Dps310< Dps310SpiTransport >
 
using Icm20948I2C = Icm20948< Icm20948I2CTransport >
 
using Icm20948Spi = Icm20948< Icm20948SpiTransport >
 
template<size_t num_devices = 1>
using MAX11300 = daisy::MAX11300Driver< MAX11300MultiSlaveSpiTransport, num_devices >
 
using Mcp23017 = Mcp23X17< Mcp23017Transport >
 
using Mpr121I2C = Mpr121< Mpr121I2CTransport >
 
using NeoPixelI2C = NeoPixel< NeoPixelI2CTransport >
 
using NeoTrellisI2C = NeoTrellis< NeoTrellisI2CTransport >
 
using SSD130x4WireSpi128x64Driver = daisy::SSD130xDriver< 128, 64, SSD130x4WireSpiTransport >
 
using SSD130x4WireSpi128x32Driver = daisy::SSD130xDriver< 128, 32, SSD130x4WireSpiTransport >
 
using SSD130x4WireSpi98x16Driver = daisy::SSD130xDriver< 98, 16, SSD130x4WireSpiTransport >
 
using SSD130x4WireSpi64x48Driver = daisy::SSD130xDriver< 64, 48, SSD130x4WireSpiTransport >
 
using SSD130x4WireSpi64x32Driver = daisy::SSD130xDriver< 64, 32, SSD130x4WireSpiTransport >
 
using SSD130xI2c128x64Driver = daisy::SSD130xDriver< 128, 64, SSD130xI2CTransport >
 
using SSD130xI2c128x32Driver = daisy::SSD130xDriver< 128, 32, SSD130xI2CTransport >
 
using SSD130xI2c98x16Driver = daisy::SSD130xDriver< 98, 16, SSD130xI2CTransport >
 
using SSD130xI2c64x48Driver = daisy::SSD130xDriver< 64, 48, SSD130xI2CTransport >
 
using SSD130xI2c64x32Driver = daisy::SSD130xDriver< 64, 32, SSD130xI2CTransport >
 
using Tlv493dI2C = Tlv493d< Tlv493dI2CTransport >
 
using MidiUartHandler = MidiHandler< MidiUartTransport >
 shorthand accessors for MIDI Handlers More...
 
using MidiUsbHandler = MidiHandler< MidiUsbTransport >
 shorthand accessors for MIDI Handlers More...
 

Enumerations

enum  GPIOPort {
  PORTA , PORTB , PORTC , PORTD ,
  PORTE , PORTF , PORTG , PORTH ,
  PORTI , PORTJ , PORTK , PORTX
}
 GPIO Port names. More...
 
enum class  MCPRegister : uint8_t {
  IODIR_A = 0x00 , IODIR_B = 0x01 , IPOL_A = 0x02 , IPOL_B = 0x03 ,
  GPINTEN_A = 0x04 , GPINTEN_B = 0x05 , DEFVAL_A = 0x06 , DEFVAL_B = 0x07 ,
  INTCON_A = 0x08 , INTCON_B = 0x09 , IOCON = 0x0A , GPPU_A = 0x0C ,
  GPPU_B = 0x0D , INTF_A = 0x0E , INTF_B = 0x0F , INTCAP_A = 0x10 ,
  INTCAP_B = 0x11 , GPIO_A = 0x12 , GPIO_B = 0x13 , OLAT_A = 0x14 ,
  OLAT_B = 0x15
}
 
enum class  MCPPort : uint8_t { A = 0 , B = 1 }
 
enum class  MCPMode : uint8_t { INPUT , INPUT_PULLUP , OUTPUT }
 
enum class  Alignment {
  centered , topLeft , topCentered , topRight ,
  bottomLeft , bottomCentered , bottomRight , centeredLeft ,
  centeredRight
}
 
enum  LoggerDestination { LOGGER_NONE , LOGGER_INTERNAL , LOGGER_EXTERNAL , LOGGER_SEMIHOST }
 
enum  MidiMessageType {
  NoteOff , NoteOn , PolyphonicKeyPressure , ControlChange ,
  ProgramChange , ChannelPressure , PitchBend , SystemCommon ,
  SystemRealTime , ChannelMode , MessageLast
}
 
enum  SystemCommonType {
  SystemExclusive , MTCQuarterFrame , SongPositionPointer , SongSelect ,
  SCUndefined0 , SCUndefined1 , TuneRequest , SysExEnd ,
  SystemCommonLast
}
 
enum  SystemRealTimeType {
  TimingClock , SRTUndefined0 , Start , Continue ,
  Stop , SRTUndefined1 , ActiveSensing , Reset ,
  SystemRealTimeLast
}
 
enum  ChannelModeType {
  AllSoundOff , ResetAllControllers , LocalControl , AllNotesOff ,
  OmniModeOff , OmniModeOn , MonoModeOn , PolyModeOn ,
  ChannelModeLast
}
 
enum  ApplicationTypeDef { APPLICATION_IDLE = 0 , APPLICATION_START , APPLICATION_READY , APPLICATION_DISCONNECT }
 
enum class  ArrowButtonType { ArrowButtonType::left = 0 , ArrowButtonType::right , ArrowButtonType::up , ArrowButtonType::down }
 The type of arrow button in the UI system. More...
 
enum  WavFileFormatCode {
  WAVE_FORMAT_PCM = 0x0001 , WAVE_FORMAT_IEEE_FLOAT = 0x0003 , WAVE_FORMAT_ALAW = 0x0006 , WAVE_FORMAT_ULAW = 0x0007 ,
  WAVE_FORMAT_EXTENSIBLE = 0xFFFE
}
 

Functions

MCPRegister operator+ (MCPRegister a, MCPPort b)
 
void dsy_i2c_global_init ()
 
void dsy_spi_global_init ()
 
void dsy_uart_global_init ()
 
template<class CharType , std::size_t capacity>
constexpr void Swap (const FixedCapStr< capacity, CharType > &lhs, const FixedCapStr< capacity, CharType > &rhs) noexcept
 

Variables

const uint32_t kWavFileChunkId = 0x46464952
 
const uint32_t kWavFileWaveId = 0x45564157
 
const uint32_t kWavFileSubChunk1Id = 0x20746d66
 
const uint32_t kWavFileSubChunk2Id = 0x61746164
 

Detailed Description

Hardware defines and helpers for daisy field platform.

Copyright (C) Johannes Elliesen, 2021

Typedef Documentation

◆ Apds9960I2C

◆ Dps310I2C

◆ Dps310Spi

◆ Icm20948I2C

◆ Icm20948Spi

◆ Mcp23017

◆ NeoPixelI2C

◆ NeoTrellisI2C

◆ SSD130x4WireSpi128x32Driver

A driver for the SSD1306/SSD1309 128x32 OLED displays connected via 4 wire SPI

◆ SSD130x4WireSpi128x64Driver

A driver for the SSD1306/SSD1309 128x64 OLED displays connected via 4 wire SPI

◆ SSD130x4WireSpi64x32Driver

A driver for the SSD1306/SSD1309 64x32 OLED displays connected via 4 wire SPI

◆ SSD130x4WireSpi64x48Driver

A driver for the SSD1306/SSD1309 64x48 OLED displays connected via 4 wire SPI

◆ SSD130x4WireSpi98x16Driver

A driver for the SSD1306/SSD1309 98x16 OLED displays connected via 4 wire SPI

◆ SSD130xI2c128x32Driver

A driver for the SSD1306/SSD1309 128x32 OLED displays connected via I2C

◆ SSD130xI2c128x64Driver

A driver for the SSD1306/SSD1309 128x64 OLED displays connected via I2C

◆ SSD130xI2c64x32Driver

A driver for the SSD1306/SSD1309 64x32 OLED displays connected via I2C

◆ SSD130xI2c64x48Driver

A driver for the SSD1306/SSD1309 64x48 OLED displays connected via I2C

◆ SSD130xI2c98x16Driver

A driver for the SSD1306/SSD1309 98x16 OLED displays connected via I2C

◆ Tlv493dI2C

Enumeration Type Documentation

◆ Alignment

enum class daisy::Alignment
strong

Justifications

Enumerator
centered 
topLeft 
topCentered 
topRight 
bottomLeft 
bottomCentered 
bottomRight 
centeredLeft 
centeredRight 

◆ ApplicationTypeDef

Status of USB Host application

Enumerator
APPLICATION_IDLE 
APPLICATION_START 
APPLICATION_READY 
APPLICATION_DISCONNECT 

◆ GPIOPort

GPIO Port names.

Enumerator
PORTA 

Port A

PORTB 

Port B

PORTC 

Port C

PORTD 

Port D

PORTE 

Port E

PORTF 

Port F

PORTG 

Port G

PORTH 

Port H

PORTI 

Port I

PORTJ 

Port J

PORTK 

Port K

PORTX 

Used as a dummy port to signal an invalid pin.

◆ LoggerDestination

Enumeration of destination ports for debug logging

Enumerator
LOGGER_NONE 

mute logging

LOGGER_INTERNAL 

internal USB port

LOGGER_EXTERNAL 

external USB port

LOGGER_SEMIHOST 

stdout

◆ MCPMode

enum class daisy::MCPMode : uint8_t
strong
Enumerator
INPUT 
INPUT_PULLUP 
OUTPUT 

◆ MCPPort

enum class daisy::MCPPort : uint8_t
strong
Enumerator

◆ MCPRegister

enum class daisy::MCPRegister : uint8_t
strong

Registers addresses. The library use addresses for IOCON.BANK = 0. See "3.2.1 Byte mode and Sequential mode".

Enumerator
IODIR_A 
IODIR_B 
IPOL_A 
IPOL_B 
GPINTEN_A 
GPINTEN_B 
DEFVAL_A 
DEFVAL_B 
INTCON_A 
INTCON_B 
IOCON 
GPPU_A 
GPPU_B 
INTF_A 
INTF_B 
INTCAP_A 
INTCAP_B 
GPIO_A 
GPIO_B 
OLAT_A 
OLAT_B 

◆ WavFileFormatCode

Standard Format codes for the waveform data.

According to spec, extensible should be used whenever:

  • PCM data has more than 16 bits/sample
  • The number of channels is more than 2
  • The actual number of bits/sample is not equal to the container size
  • The mapping from channels to speakers needs to be specified.
Enumerator
WAVE_FORMAT_PCM 
WAVE_FORMAT_IEEE_FLOAT 
WAVE_FORMAT_ALAW 
WAVE_FORMAT_ULAW 
WAVE_FORMAT_EXTENSIBLE 

Function Documentation

◆ dsy_i2c_global_init()

void daisy::dsy_i2c_global_init ( )

internal. Used for global init.

◆ operator+()

MCPRegister daisy::operator+ ( MCPRegister  a,
MCPPort  b 
)
inline

◆ Swap()

template<class CharType , std::size_t capacity>
constexpr void daisy::Swap ( const FixedCapStr< capacity, CharType > &  lhs,
const FixedCapStr< capacity, CharType > &  rhs 
)
inlineconstexprnoexcept

Variable Documentation

◆ kWavFileChunkId

const uint32_t daisy::kWavFileChunkId = 0x46464952

Constants for In-Header IDs "RIFF"

◆ kWavFileSubChunk1Id

const uint32_t daisy::kWavFileSubChunk1Id = 0x20746d66

"fmt "

◆ kWavFileSubChunk2Id

const uint32_t daisy::kWavFileSubChunk2Id = 0x61746164

"data"

◆ kWavFileWaveId

const uint32_t daisy::kWavFileWaveId = 0x45564157

"WAVE"