arduino-audio-tools
Loading...
Searching...
No Matches
StdioStream.h
Go to the documentation of this file.
1#pragma once
2#include <unistd.h>
4
5namespace audio_tools {
6
16class StdioStream : public BaseStream {
17public:
21 def.sample_rate = 44100;
22 def.channels = 2;
23 return def;
24 }
25
26 bool begin() override {
27 is_open = true;
28 return true;
29 }
30
31
32 int available() override { return DEFAULT_BUFFER_SIZE; }
33
34 size_t readBytes(uint8_t* data, size_t len) override {
35 // read from stdin
36 return ::read(0, data, len);
37 }
38
39 int availableForWrite() override { return DEFAULT_BUFFER_SIZE; }
40
41 size_t write(const uint8_t *data, size_t len) override {
42 if (!is_open)
43 return 0;
44 // write to stdout
45 return ::write(1, data, len);
46 }
47
48 void end() override {
49 is_open = false;
50 }
51
52protected:
53 bool is_open = false;
54};
55
56} // namespace audio_tools
#define DEFAULT_BUFFER_SIZE
Definition avr.h:20
Base class for all Streams. It relies on write(const uint8_t *buffer, size_t size) and readBytes(uint...
Definition BaseStream.h:33
Direct binary Audio Output to stdout. On linux you can hear the audio e.g. with ./generator | aplay -...
Definition StdioStream.h:16
bool is_open
Definition StdioStream.h:53
size_t readBytes(uint8_t *data, size_t len) override
Definition StdioStream.h:34
void end() override
Definition StdioStream.h:48
int available() override
Definition StdioStream.h:32
size_t write(const uint8_t *data, size_t len) override
Definition StdioStream.h:41
AudioInfo defaultConfig()
Definition StdioStream.h:18
int availableForWrite() override
Definition StdioStream.h:39
bool begin() override
Definition StdioStream.h:26
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:508
Basic Audio information which drives e.g. I2S.
Definition AudioTypes.h:51
uint8_t bits_per_sample
Number of bits per sample (int16_t = 16 bits)
Definition AudioTypes.h:57