/* * AudioRecordQueue_F32 * * Created: Chip Audette (OpenAudio), Feb 2017 * Extended from on Teensy Audio Library * * License: MIT License. Use at your own risk. */ #ifndef record_queue_f32_h_ #define record_queue_f32_h_ #include "Arduino.h" #include "AudioStream_F32.h" class AudioRecordQueue_F32 : public AudioStream_F32 { //GUI: inputs:1, outputs:0 //this line used for automatic generation of GUI node public: AudioRecordQueue_F32(void) : AudioStream_F32(1, inputQueueArray), userblock(NULL), head(0), tail(0), enabled(0) { } AudioRecordQueue_F32(const AudioSettings_F32 &settings) : AudioStream_F32(1, inputQueueArray), userblock(NULL), head(0), tail(0), enabled(0) { } void begin(void) { clear(); enabled = 1; } int available(void); void clear(void); //int16_t * readBuffer(void); float32_t *readBuffer(void); audio_block_f32_t *getAudioBlock(void); void freeBuffer(void); void freeAudioBlock(void); void end(void) { enabled = 0; } virtual void update(void); private: audio_block_f32_t *inputQueueArray[1]; audio_block_f32_t * volatile queue[53]; audio_block_f32_t *userblock; volatile uint8_t head, tail, enabled; }; #endif