arduino-audio-tools
Loading...
Searching...
No Matches
QueueFromVector.h
Go to the documentation of this file.
1#pragma once
3
4namespace audio_tools {
5
13template <class T>
15 public:
18 resize(size);
19 };
20
21 bool enqueue(T& data){
22 if (is_full())
23 return false;
24 vector[_end_pos++] = data;
25 return true;
26 }
27
28 bool peek(T& data){
29 if (_end_pos <= 0 ) {
30 data = null_value;
31 _end_pos = 0;
32 return false;
33 }
34 data = vector[0];
35 return true;
36 }
37
38 bool dequeue(T& data){
39 if (_end_pos <= 0 ) {
40 data = null_value;
41 _end_pos = 0;
42 return false;
43 }
44 // provide data at haed
45 data = vector[0];
46 // shift all data to the left by 1 position
47 memmove(&vector[0], &vector[1], (_end_pos-1)*sizeof(T));
49 return true;
50 }
51
52 size_t size() {
53 return _end_pos < 0 ? 0 : _end_pos;
54 }
55
56 bool resize(size_t size) {
57 if (!vector.resize(size)){
58 return false;
59 }
60 return clear();
61 }
62
63 bool clear() {
64 for (int j=0;j<vector.size();j++){
66 }
67 _end_pos = 0;
68 return true;
69 }
70
71 bool empty() {
72 return _end_pos == 0;
73 }
74
75 bool is_full() {
76 return _end_pos >= vector.size();
77 }
78
79 size_t capacity() { return vector.capacity(); }
80
81 void setAllocator(Allocator &allocator){
82 vector.setAllocator(allocator);
83 }
84
86 return vector;
87 }
88
89 protected:
92 int empty_pos = 0;
94};
95
96}
Memory allocateator which uses malloc.
Definition Allocator.h:23
FIFO Queue which is based on a Vector.
Definition QueueFromVector.h:14
size_t size()
Definition QueueFromVector.h:52
Vector< T > & toVector()
Definition QueueFromVector.h:85
QueueFromVector(size_t size, T empty)
Definition QueueFromVector.h:16
int empty_pos
Definition QueueFromVector.h:92
bool empty()
Definition QueueFromVector.h:71
bool peek(T &data)
Definition QueueFromVector.h:28
bool dequeue(T &data)
Definition QueueFromVector.h:38
T null_value
Definition QueueFromVector.h:93
bool clear()
Definition QueueFromVector.h:63
Vector< T > vector
Definition QueueFromVector.h:90
bool is_full()
Definition QueueFromVector.h:75
bool enqueue(T &data)
Definition QueueFromVector.h:21
void setAllocator(Allocator &allocator)
Definition QueueFromVector.h:81
bool resize(size_t size)
Definition QueueFromVector.h:56
int32_t _end_pos
Definition QueueFromVector.h:91
size_t capacity()
Definition QueueFromVector.h:79
Vector implementation which provides the most important methods as defined by std::vector....
Definition Vector.h:21
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition AudioCodecsBase.h:10
size_t writeData(Print *p_out, T *data, int samples, int maxSamples=512)
Definition AudioTypes.h:512