Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
I2SCodecStream Class Reference

I2S Stream which also sets up a codec chip and i2s. More...

#include <I2SCodecStream.h>

Inheritance diagram for I2SCodecStream:
AudioStream VolumeSupport BaseStream AudioInfoSupport AudioInfoSource Stream Print AudioBoardStream

Public Member Functions

 I2SCodecStream ()=default
 Default Constructor (w/o codec)
 I2SCodecStream (AudioBoard &board)
 Default constructor: for available AudioBoard values check audioboard variables in Further information can be found in
 I2SCodecStream (AudioBoard *board)
 Provide board via pointer.
virtual void addNotifyAudioChange (AudioInfoSupport &bi)
 Adds target to be notified about audio changes.
virtual AudioInfo audioInfo () override
 provides the actual input AudioInfo
virtual AudioInfo audioInfoOut ()
 provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream
virtual int available () override
 Provides the available audio data.
virtual int availableForWrite () override
 Provides the available audio data.
bool begin ()
virtual bool begin (I2SCodecConfig cfg)
 Starts the I2S interface.
AudioBoard & board ()
 Provides the board.
virtual void clearNotifyAudioChange ()
 Deletes all change notify subscriptions.
I2SCodecConfig defaultConfig (RxTxMode mode=TX_MODE)
 Provides the default configuration.
I2SDriverdriver ()
 Provides the i2s driver.
void end ()
 Stops the I2S interface.
virtual void flush () override
GpioPin getKey (int pos)
 Provides the gpio for the indicated key pos.
GpioPin getPinID (PinFunction function)
 Provides the gpio for the indicated function.
GpioPin getPinID (PinFunction function, int pos)
 Provides the gpio for the indicated function.
DriverPins & getPins ()
 Provides access to the pin information.
float getVolume ()
 legacy: same as volume()
bool hasBoard ()
 checks if a board has been defined
bool isNotifyActive ()
 Checks if the automatic AudioInfo update is active.
virtual operator bool ()
virtual size_t readBytes (uint8_t *data, size_t len) override
 Reads the audio data.
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.
virtual void setAudioInfo (AudioInfo info)
 updates the sample rate dynamically
void setBoard (AudioBoard &board)
 (re)defines the board
void setBoard (AudioBoard *board)
 (re)defines the board
bool setMute (bool mute)
 Mute / unmote.
bool setMute (bool mute, int line)
 Mute / unmute of an individual line (codec)
void setNotifyActive (bool flag)
 Deactivate/Reactivate automatic AudioInfo updates: (default is active)
bool setPAPower (bool active)
 Sets the output of the PA Power Pin.
bool setVolume (float vol) override
 sets the volume (range 0.0f - 1.0f)
float volume () override
 Provides the actual volume (0.0f - 1.0f)
virtual size_t write (const uint8_t *data, size_t len)
 Writes the audio data to I2S.
virtual size_t write (uint8_t ch) override
virtual void writeSilence (size_t len)
 Writes len bytes of silence (=0).

Protected Member Functions

bool begin1 ()
bool beginCodec (I2SCodecConfig info)
virtual int not_supported (int out, const char *msg="")
void notifyAudioChange (AudioInfo info)
void refillReadBuffer ()
void setupI2SPins ()
 We use the board pins if they are available.
sample_bits_t toCodecBits (int bits)
i2s_format_t toFormat (I2SFormat fmt)
samplerate_t toRate (int rate)

Protected Attributes

int _timeout = 10
I2SCodecConfig cfg
CodecConfig codec_cfg
I2SStream i2s
AudioInfo info
bool is_active = false
bool is_notify_active = true
Vector< AudioInfoSupport * > notify_vector
AudioBoard * p_board = nullptr
RingBuffer< uint8_t > tmp_in {0}
RingBuffer< uint8_t > tmp_out {0}
float volume_value = 1.0f

Detailed Description

I2S Stream which also sets up a codec chip and i2s.

Phil Schatzmann

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