arduino-audio-tools
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
PWMDriverMBED Class Reference

Audio output to PWM pins for MBED based Arduino implementations. More...

#include <PWMAudioMBED.h>

Inheritance diagram for PWMDriverMBED:
DriverPWMBase

Public Member Functions

PWMConfigaudioInfo ()
 
virtual int availableForWrite ()
 
bool begin (PWMConfig cfg)
 
virtual PWMConfig defaultConfig ()
 
virtual void end () override
 
uint32_t framesPerSecond ()
 
bool isTimerStarted ()
 
void setBuffer (BaseBuffer< uint8_t > *buffer)
 
uint32_t underflowsPerSecond ()
 
void updateStatistics ()
 
virtual size_t write (const uint8_t *wrt_buffer, size_t bytes)
 

Protected Member Functions

virtual int decimation ()
 Decimation factor to reduce the sample rate.
 
void deleteBuffer ()
 
virtual int effectiveOutputSampleRate ()
 Provides the effective sample rate.
 
virtual bool isDecimateActive ()
 
virtual int maxChannels ()
 Maximum supported channels.
 
virtual int maxOutputValue ()
 provides the max value for the configured resulution
 
virtual int maxSampleRate ()
 Provides the max working sample rate.
 
virtual int nextValue ()
 determines the next scaled value
 
void playNextFrame ()
 writes the next frame to the output pins
 
virtual void pwmWrite (int channel, int value)
 
virtual void setupPWM ()
 Setup PWM Pins.
 
virtual void setupTimer ()
 not used -> see startTimer();
 
virtual void startTimer () override
 

Static Protected Member Functions

static void defaultPWMAudioOutputCallback (void *obj)
 timer callback: write the next frame to the pins
 

Protected Attributes

PWMConfig audio_config
 
BaseBuffer< uint8_t > * buffer = nullptr
 
Decimate decimate
 
uint32_t frame_count = 0
 
uint32_t frame_size = 0
 
uint32_t frames_per_second = 0
 
bool is_blocking_write = true
 
bool is_timer_started = false
 
Vector< mbed::PwmOut * > pins
 
TimerAlarmRepeating ticker
 
uint32_t time_1_sec
 
uint32_t underflow_count = 0
 
uint32_t underflow_per_second = 0
 

Detailed Description

Audio output to PWM pins for MBED based Arduino implementations.

Author
Phil Schatzmann

Member Function Documentation

◆ isDecimateActive()

virtual bool isDecimateActive ( )
inlineprotectedvirtualinherited

The requested sampling rate is too hight: we only process half of the samples so we can half the sampling rate

◆ pwmWrite()

virtual void pwmWrite ( int  channel,
int  value 
)
inlineprotectedvirtual

write a pwm value to the indicated channel. The max value depends on the resolution

Implements DriverPWMBase.

◆ setBuffer()

void setBuffer ( BaseBuffer< uint8_t > *  buffer)
inlineinherited

You can assign your own custom buffer impelementation: must be allocated on the heap and will be cleaned up by this class

◆ startTimer()

virtual void startTimer ( )
inlineoverrideprotectedvirtual

when we get the first write -> we activate the timer to start with the output of data

Implements DriverPWMBase.


The documentation for this class was generated from the following file: