arduino-audio-tools
Loading...
Searching...
No Matches
src
AudioTools
AudioCodecs
CodecBasic.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
AudioTools/AudioCodecs/AudioCodecsBase.h
"
4
#include "
AudioTools/AudioCodecs/CodecG7xx.h
"
5
6
namespace
audio_tools
{
7
18
class
DecoderBasic
:
public
AudioDecoder
{
19
public
:
24
DecoderBasic
() {
TRACED
(); }
25
31
DecoderBasic
(
Print
&
out_stream
,
bool
active =
true
) {
32
TRACED
();
33
setOutput
(
out_stream
);
34
}
35
43
DecoderBasic
(
Print
&
out_stream
,
AudioInfoSupport
&
bi
) {
44
TRACED
();
45
setOutput
(
out_stream
);
46
addNotifyAudioChange
(
bi
);
47
}
48
50
void
setOutput
(
Print
&
out_stream
)
override
{
51
decoder
.
setOutput
(
out_stream
);
52
}
53
54
void
addNotifyAudioChange
(
AudioInfoSupport
&
bi
)
override
{
55
decoder
.
addNotifyAudioChange
(
bi
);
56
}
57
58
AudioInfo
audioInfo
()
override
{
return
decoder
.
audioInfo
(); }
59
60
bool
begin
(
AudioInfo
info
) {
61
decoder
.
setAudioInfo
(
info
);
62
return
decoder
.
begin
();
63
}
64
65
bool
begin
()
override
{
66
TRACED
();
67
return
decoder
.
begin
();
68
}
69
70
void
end
()
override
{
decoder
.
end
(); }
71
72
virtual
size_t
write
(
const
uint8_t
*data,
size_t
len)
override
{
73
return
decoder
.
write
((
uint8_t
*)data, len);
74
}
75
76
virtual
operator
bool
()
override
{
return
decoder
; }
77
78
protected
:
79
G711_ULAWDecoder
decoder
;
80
};
81
92
class
EncoderBasic
:
public
AudioEncoder
{
93
public
:
94
// Empty Constructor - the output stream must be provided with begin()
95
EncoderBasic
() {}
96
97
// Constructor providing the output stream
98
EncoderBasic
(
Print
&out) {
setOutput
(out); }
99
101
void
setOutput
(
Print
&out)
override
{
encoder
.
setOutput
(out); }
102
104
const
char
*
mime
()
override
{
return
"audio/basic"
; }
105
107
virtual
void
setAudioInfo
(
AudioInfo
from)
override
{
108
AudioEncoder::setAudioInfo
(from);
109
encoder
.
setAudioInfo
(from);
110
}
111
113
bool
begin
()
override
{
return
encoder
.
begin
(); }
114
116
void
end
()
override
{
encoder
.
end
(); }
117
119
virtual
size_t
write
(
const
uint8_t
*
in_ptr
,
size_t
in_size
)
override
{
120
return
encoder
.
write
((
uint8_t
*)
in_ptr
,
in_size
);
121
}
122
123
operator
bool
()
override
{
124
return
encoder
;
125
}
126
127
bool
isOpen
() {
return
encoder
; }
128
129
protected
:
130
G711_ULAWEncoder
encoder
;
131
};
132
133
}
// namespace audio_tools
AudioCodecsBase.h
TRACED
#define TRACED()
Definition
AudioLoggerIDF.h:31
CodecG7xx.h
audio_tools::AudioDecoder
Decoding of encoded audio into PCM data.
Definition
AudioCodecsBase.h:18
audio_tools::AudioDecoder::info
AudioInfo info
Definition
AudioCodecsBase.h:76
audio_tools::AudioDecoder::audioInfo
AudioInfo audioInfo() override
provides the actual input AudioInfo
Definition
AudioCodecsBase.h:25
audio_tools::AudioEncoder
Encoding of PCM data.
Definition
AudioCodecsBase.h:97
audio_tools::AudioEncoder::setAudioInfo
void setAudioInfo(AudioInfo from) override
Defines the sample rate, number of channels and bits per sample.
Definition
AudioCodecsBase.h:106
audio_tools::AudioInfoSource::addNotifyAudioChange
virtual void addNotifyAudioChange(AudioInfoSupport &bi)
Adds target to be notified about audio changes.
Definition
AudioTypes.h:153
audio_tools::AudioInfoSupport
Supports changes to the sampling rate, bits and channels.
Definition
AudioTypes.h:135
audio_tools::DecoderBasic
DecoderBasic - supports mime type audio/basic Requires https://github.com/pschatzmann/arduino-libg7xx...
Definition
CodecBasic.h:18
audio_tools::DecoderBasic::write
virtual size_t write(const uint8_t *data, size_t len) override
Definition
CodecBasic.h:72
audio_tools::DecoderBasic::setOutput
void setOutput(Print &out_stream) override
Defines the output Stream.
Definition
CodecBasic.h:50
audio_tools::DecoderBasic::DecoderBasic
DecoderBasic()
Construct a new DecoderBasic object.
Definition
CodecBasic.h:24
audio_tools::DecoderBasic::addNotifyAudioChange
void addNotifyAudioChange(AudioInfoSupport &bi) override
Adds target to be notified about audio changes.
Definition
CodecBasic.h:54
audio_tools::DecoderBasic::DecoderBasic
DecoderBasic(Print &out_stream, bool active=true)
Construct a new DecoderBasic object.
Definition
CodecBasic.h:31
audio_tools::DecoderBasic::end
void end() override
Definition
CodecBasic.h:70
audio_tools::DecoderBasic::begin
bool begin() override
Definition
CodecBasic.h:65
audio_tools::DecoderBasic::decoder
G711_ULAWDecoder decoder
Definition
CodecBasic.h:79
audio_tools::DecoderBasic::audioInfo
AudioInfo audioInfo() override
provides the actual input AudioInfo
Definition
CodecBasic.h:58
audio_tools::DecoderBasic::begin
bool begin(AudioInfo info)
Definition
CodecBasic.h:60
audio_tools::DecoderBasic::DecoderBasic
DecoderBasic(Print &out_stream, AudioInfoSupport &bi)
Construct a new DecoderBasic object.
Definition
CodecBasic.h:43
audio_tools::EncoderBasic
EncoderBasic - supports mime type audio/basic. The content of the "audio/basic" subtype is single cha...
Definition
CodecBasic.h:92
audio_tools::EncoderBasic::setOutput
void setOutput(Print &out) override
Defines the output Stream.
Definition
CodecBasic.h:101
audio_tools::EncoderBasic::EncoderBasic
EncoderBasic(Print &out)
Definition
CodecBasic.h:98
audio_tools::EncoderBasic::isOpen
bool isOpen()
Definition
CodecBasic.h:127
audio_tools::EncoderBasic::write
virtual size_t write(const uint8_t *in_ptr, size_t in_size) override
Writes PCM data to be encoded as RAW.
Definition
CodecBasic.h:119
audio_tools::EncoderBasic::EncoderBasic
EncoderBasic()
Definition
CodecBasic.h:95
audio_tools::EncoderBasic::end
void end() override
stops the processing
Definition
CodecBasic.h:116
audio_tools::EncoderBasic::encoder
G711_ULAWEncoder encoder
Definition
CodecBasic.h:130
audio_tools::EncoderBasic::mime
const char * mime() override
Provides "audio/pcm".
Definition
CodecBasic.h:104
audio_tools::EncoderBasic::begin
bool begin() override
starts the processing using the actual RAWAudioInfo
Definition
CodecBasic.h:113
audio_tools::EncoderBasic::setAudioInfo
virtual void setAudioInfo(AudioInfo from) override
We actually do nothing with this.
Definition
CodecBasic.h:107
audio_tools::G711_ULAWDecoder
64 kbit/s g711 ULOW Decoder based on https://github.com/pschatzmann/arduino-libg7xx
Definition
CodecG7xx.h:406
audio_tools::G711_ULAWEncoder
64 kbit/s g711 ULOW Encoder based on https://github.com/pschatzmann/arduino-libg7xx
Definition
CodecG7xx.h:394
audio_tools::G711Decoder::write
size_t write(const uint8_t *data, size_t len) override
Definition
CodecG7xx.h:344
audio_tools::G711Encoder::write
size_t write(const uint8_t *data, size_t len) override
Definition
CodecG7xx.h:309
audio_tools::G7xxDecoder::setOutput
void setOutput(Print &out_stream) override
Defines where the decoded result is written to.
Definition
CodecG7xx.h:85
audio_tools::G7xxDecoder::end
void end() override
Definition
CodecG7xx.h:80
audio_tools::G7xxDecoder::begin
bool begin() override
Definition
CodecG7xx.h:69
audio_tools::G7xxDecoder::setAudioInfo
void setAudioInfo(AudioInfo info) override
for most decoders this is not needed
Definition
CodecG7xx.h:52
audio_tools::G7xxEncoder::setOutput
void setOutput(Print &out_stream) override
Default output assignment (encoders may override to store Print reference)
Definition
CodecG7xx.h:191
audio_tools::G7xxEncoder::end
void end() override
Definition
CodecG7xx.h:167
audio_tools::G7xxEncoder::setAudioInfo
virtual void setAudioInfo(AudioInfo info)
Defines the sample rate, number of channels and bits per sample.
Definition
CodecG7xx.h:174
audio_tools::G7xxEncoder::begin
bool begin() override
Definition
CodecG7xx.h:157
audio_tools::Print
Definition
NoArduino.h:62
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
audio_tools::AudioInfo
Basic Audio information which drives e.g. I2S.
Definition
AudioTypes.h:55
Generated by
1.9.8