arduino-audio-tools
Loading...
Searching...
No Matches
src
AudioTools
AudioLibs
AudioESP8266.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
AudioToolsConfig.h
"
4
#include "
AudioTools/CoreAudio/AudioOutput.h
"
5
#include "
AudioTools/CoreAudio/AudioStreams.h
"
6
#include "
AudioTools/CoreAudio/Buffers.h
"
7
#include "
AudioOutput.h
"
8
#include "SoundData.h"
9
10
namespace
audio_tools
{
11
12
13
24
class
AudioOutputWithCallback
:
public
::AudioOutput
,
public
BufferedStream
{
25
public
:
26
// Default constructor
27
AudioOutputWithCallback
(
int
bufferSize,
int
bufferCount)
28
:
BufferedStream
(bufferSize) {
29
callback_buffer_ptr
=
new
NBuffer<Frame>
(bufferSize, bufferCount);
30
}
31
32
virtual
~AudioOutputWithCallback
() {
delete
callback_buffer_ptr
; }
33
35
virtual
bool
begin
() {
36
active
=
true
;
37
return
true
;
38
}
39
41
virtual
bool
ConsumeSample
(
int16_t
sample[2]) {
42
Frame
c
;
43
c
.channel1 = sample[0];
44
c
.channel2 = sample[1];
45
return
callback_buffer_ptr
->
write
(
c
);
46
};
47
49
virtual
bool
stop
() {
50
active
=
false
;
51
return
true
;
52
};
53
55
size_t
read
(Frame *
src
,
size_t
len) {
56
return
active
? this->
callback_buffer_ptr
->
readArray
(src, len) : 0;
57
}
58
59
protected
:
60
NBuffer<Frame>
*
callback_buffer_ptr
;
61
bool
active
;
62
63
virtual
size_t
writeExt
(
const
uint8_t
*data,
size_t
len) {
64
return
callback_buffer_ptr
->
writeArray
((Frame *)data, len /
sizeof
(Frame));
65
}
66
67
virtual
size_t
readExt
(
uint8_t
*data,
size_t
len) {
68
return
callback_buffer_ptr
->
readArray
((Frame *)data, len /
sizeof
(Frame));
69
;
70
}
71
};
72
77
class
ESP3288AudioOutput
:
public
AudioStream
{
78
public
:
79
ESP3288AudioOutput
(::AudioOutput &out,
int
channels
) {
80
p_out
= &out;
81
this->channels =
channels
;
82
}
83
84
virtual
size_t
write
(
const
uint8_t
*data,
size_t
len) {
85
size_t
result = 0;
86
int16_t
*
v
= (
int16_t
*)data;
87
if
(
channels
== 2) {
88
result =
p_out
->ConsumeSamples(
v
, len / 2);
89
}
else
{
90
LOGE
(
"Only 2 Channels are supported"
);
91
result = 0;
92
}
93
return
result;
94
}
95
96
protected
:
97
::AudioOutput *
p_out
=
nullptr
;
98
int
channels
;
99
};
100
}
// namespace audio_tools
LOGE
#define LOGE(...)
Definition
AudioLoggerIDF.h:30
AudioOutput.h
AudioStreams.h
AudioToolsConfig.h
Buffers.h
AudioOutput
#define AudioOutput
Definition
MozziStream.h:6
audio_tools::AudioOutputWithCallback
ESP8266Audio AudioOutput class which stores the data in a temporary buffer. The buffer can be consume...
Definition
AudioESP8266.h:24
audio_tools::AudioOutputWithCallback::active
bool active
Definition
AudioESP8266.h:61
audio_tools::AudioOutputWithCallback::readExt
virtual size_t readExt(uint8_t *data, size_t len)
Definition
AudioESP8266.h:67
audio_tools::AudioOutputWithCallback::callback_buffer_ptr
NBuffer< Frame > * callback_buffer_ptr
Definition
AudioESP8266.h:60
audio_tools::AudioOutputWithCallback::writeExt
virtual size_t writeExt(const uint8_t *data, size_t len)
Definition
AudioESP8266.h:63
audio_tools::AudioOutputWithCallback::read
size_t read(Frame *src, size_t len)
Provides the data from the internal buffer to the callback.
Definition
AudioESP8266.h:55
audio_tools::AudioOutputWithCallback::stop
virtual bool stop()
stops the processing
Definition
AudioESP8266.h:49
audio_tools::AudioOutputWithCallback::begin
virtual bool begin()
Activates the output.
Definition
AudioESP8266.h:35
audio_tools::AudioOutputWithCallback::AudioOutputWithCallback
AudioOutputWithCallback(int bufferSize, int bufferCount)
Definition
AudioESP8266.h:27
audio_tools::AudioOutputWithCallback::~AudioOutputWithCallback
virtual ~AudioOutputWithCallback()
Definition
AudioESP8266.h:32
audio_tools::AudioOutputWithCallback::ConsumeSample
virtual bool ConsumeSample(int16_t sample[2])
puts the sample into a buffer
Definition
AudioESP8266.h:41
audio_tools::AudioStream
Base class for all Audio Streams. It support the boolean operator to test if the object is ready with...
Definition
BaseStream.h:123
audio_tools::BaseBuffer::readArray
virtual int readArray(T data[], int len)
reads multiple values
Definition
Buffers.h:33
audio_tools::BaseBuffer::writeArray
virtual int writeArray(const T data[], int len)
Fills the buffer data.
Definition
Buffers.h:55
audio_tools::BufferedStream
The Arduino Stream supports operations on single characters. This is usually not the best way to push...
Definition
AudioStreams.h:489
audio_tools::ESP3288AudioOutput
Stream Adapter for ESP8288-Audio AudioOutput.
Definition
AudioESP8266.h:77
audio_tools::ESP3288AudioOutput::p_out
::AudioOutput * p_out
Definition
AudioESP8266.h:97
audio_tools::ESP3288AudioOutput::channels
int channels
Definition
AudioESP8266.h:98
audio_tools::ESP3288AudioOutput::write
virtual size_t write(const uint8_t *data, size_t len)
Definition
AudioESP8266.h:84
audio_tools::ESP3288AudioOutput::ESP3288AudioOutput
ESP3288AudioOutput(::AudioOutput &out, int channels)
Definition
AudioESP8266.h:79
audio_tools::NBuffer
A lock free N buffer. If count=2 we create a DoubleBuffer, if count=3 a TripleBuffer etc.
Definition
Buffers.h:663
audio_tools::NBuffer::write
bool write(T data)
write add an entry to the buffer
Definition
Buffers.h:685
audio_tools
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition
AudioCodecsBase.h:10
audio_tools::writeData
size_t writeData(Print *p_out, T *data, int samples, int maxSamples=512)
Definition
AudioTypes.h:512
Generated by
1.9.8