You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OpenAudio_ArduinoLibrary/record_queue_f32.h

48 lines
1.1 KiB

/*
* 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