arduino-audio-tools
|
I2S Stream which also sets up a codec chip and i2s. More...
#include <I2SCodecStream.h>
Public Member Functions | |
I2SCodecStream ()=default | |
Default Constructor (w/o codec) | |
I2SCodecStream (AudioBoard &board) | |
Default constructor: for available AudioBoard values check audioboard variables in https://pschatzmann.github.io/arduino-audio-driver/html/group__audio__driver.html Further information can be found in https://github.com/pschatzmann/arduino-audio-driver/wiki. | |
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. | |
I2SDriver * | driver () |
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 | setInputVolume (float vol) |
Sets the volume of the microphone (if available) | |
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) |
audio_driver_local::Optional< PinsI2S > | getI2SPins () |
virtual int | not_supported (int out, const char *msg="") |
void | notifyAudioChange (AudioInfo info) |
void | refillReadBuffer () |
void | setupI2SFunction () |
if the cfg.i2s_function was not defined we determine the "correct" default value | |
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 |
I2S Stream which also sets up a codec chip and i2s.
|
inlinevirtualinherited |
Adds target to be notified about audio changes.
Reimplemented in CodecNOP, MP3DecoderMAD, EncodedAudioOutput, EncodedAudioStream, AACDecoderFDK, DecoderBasic, MP3DecoderHelix, OggContainerDecoder, Pipeline, and Pipeline::ModifyingStreamAdapter.
provides the actual input AudioInfo
Implements AudioInfoSupport.
Reimplemented in JupyterAudioT< T >, MozziStream, TimerCallbackAudioStream, PureDataStream, AdapterAudioOutputToAudioStream, GeneratedSoundStream< T >, and GeneratedSoundStream< int16_t >.
provides the actual output AudioInfo: this is usually the same as audioInfo() unless we use a transforming stream
Reimplemented in PureDataStream, PWMAudioOutput, ChannelFormatConverterStreamT< T >, ChannelFormatConverterStream, NumberFormatConverterStreamT< TFrom, TTo >, NumberFormatConverterStream, FormatConverterStream, Pipeline, and ResampleStream.
Provides the available audio data.
Reimplemented from BaseStream.
Provides the available audio data.
Reimplemented from BaseStream.
|
inlinevirtual |
Reimplemented from BaseStream.
|
inlinevirtual |
Starts the I2S interface.
Reimplemented in AudioBoardStream.
|
inlinevirtual |
Stops the I2S interface.
Reimplemented from BaseStream.
Reimplemented from Print.
Reimplemented in ResampleStream, ICYStreamBuffered, BufferedTaskStream, and BufferedStream.
Reimplemented in A2DPStream, Pipeline, I2SStream, and MemoryStream.
Reads the audio data.
Reimplemented from AudioStream.
updates the sample rate dynamically
Reimplemented from AudioStream.
sets the volume (range 0.0f - 1.0f)
Reimplemented from VolumeSupport.
|
inlineoverridevirtual |
Provides the actual volume (0.0f - 1.0f)
Reimplemented from VolumeSupport.
Writes the audio data to I2S.
Reimplemented from AudioStream.
Reimplemented in BufferedTaskStream, and BufferedStream.