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

Input and output of Pure Data PD using code generated by the hvcc compiler. The audio format is defined by the sample rate in the Heavy constructor, the number of channels in the ADC and DAC and the bits_per_sample of 16. Therefore the audio format can not be changed dynamically. I recommend to make sure that the input format and output format is consistent, otherwise you need to change the format in PD. More...

#include <PureDataStream.h>

Inheritance diagram for PureDataStream:
AudioStream BaseStream AudioInfoSupport AudioInfoSource Stream Print

Public Member Functions

 PureDataStream (HeavyContextInterface &heavy, int bufferSize=1024 *2)
 
virtual void addNotifyAudioChange (AudioInfoSupport &bi)
 Adds target to be notified about audio changes.
 
AudioInfo audioInfo () override
 provides the actual input AudioInfo
 
AudioInfo audioInfoOut () override
 provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream
 
virtual int available () override
 
virtual int availableForWrite () override
 
bool begin ()
 
virtual void clearNotifyAudioChange ()
 Deletes all change notify subscriptions.
 
void end ()
 
void flush ()
 
bool isNotifyActive ()
 Checks if the automatic AudioInfo update is active.
 
 operator bool ()
 
size_t readBytes (uint8_t *data, size_t len)
 
virtual size_t readSilence (uint8_t *buffer, size_t length)
 Source to generate silence: just sets the buffer to 0.
 
virtual bool removeNotifyAudioChange (AudioInfoSupport &bi)
 Removes a target in order not to be notified about audio changes.
 
void setAudioInfo (AudioInfo newInfo) override
 Defines the input AudioInfo.
 
void setNotifyActive (bool flag)
 Deactivate/Reactivate automatic AudioInfo updates: (default is active)
 
size_t write (const uint8_t *data, size_t len)
 
virtual size_t write (uint8_t ch) override
 
virtual void writeSilence (size_t len)
 Writes len bytes of silence (=0).
 

Protected Member Functions

virtual int not_supported (int out, const char *msg="")
 
void notifyAudioChange (AudioInfo info)
 
void readWrite (int bytes)
 
void refillReadBuffer ()
 

Protected Attributes

int _timeout = 10
 
RingBuffer< uint8_t > buffer_read {0}
 
int buffer_size
 
RingBuffer< uint8_t > buffer_write {0}
 
Vector< float > in {0}
 
int in_channels = 0
 
AudioInfo info
 
bool is_notify_active = true
 
const float max_int = 32767.0
 
Vector< AudioInfoSupport * > notify_vector
 
Vector< float > out {0}
 
int out_channels = 0
 
HeavyContextInterface * p_heavy = nullptr
 
const int sample_size = sizeof(int16_t)
 
RingBuffer< uint8_t > tmp_in {0}
 
RingBuffer< uint8_t > tmp_out {0}
 
float volume = 1.0f
 

Detailed Description

Input and output of Pure Data PD using code generated by the hvcc compiler. The audio format is defined by the sample rate in the Heavy constructor, the number of channels in the ADC and DAC and the bits_per_sample of 16. Therefore the audio format can not be changed dynamically. I recommend to make sure that the input format and output format is consistent, otherwise you need to change the format in PD.

Author
phil schatzmann

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