forked from chipaudette/OpenAudio_ArduinoLibrary
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrecord_queue_f32.h
More file actions
47 lines (42 loc) · 1.14 KB
/
record_queue_f32.h
File metadata and controls
47 lines (42 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
* 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