arduino-audio-tools
Loading...
Searching...
No Matches
AudioBLEStream.h
Go to the documentation of this file.
1#pragma once
2
3#include "AudioToolsConfig.h"
7
8
9namespace audio_tools {
10
21public:
23
24 virtual void end() = 0;
25
26 virtual bool connected() = 0;
27
35
36 operator bool() { return connected(); }
37
39
40 void setRxUUID(const char *uuid) { BLE_CH2_UUID = uuid; }
41
42 void setTxUUID(const char *uuid) { BLE_CH1_UUID = uuid; }
43
44 void setAudioInfoUUID(const char *uuid) { BLE_INFO_UUID = uuid; }
45
47
48 void setFramed(bool flag) { is_framed = flag; }
49
55
56 AudioInfo toInfo(const uint8_t *str) {
57 AudioInfo result;
58 sscanf((char*)str,"%d:%d:%d", &result.sample_rate, &result.channels, &result.bits_per_sample);
59 return result;
60 }
61
62protected:
63 // disable copy constructor
65 // disable assign constructor
66 void operator=(AudioBLEStream const &other) = delete;
67 const char *ble_server_name = nullptr;
69 bool is_started = false;
71 bool is_framed = false;
73
74 // Bluetooth LE GATT UUIDs for the Nordic UART profile Change UUID here if
75 // required
76 const char *BLE_AUDIO_SERVICE_UUID = "6e400001-b5a3-f393-e0a9-e50e24dcca9e";
77 const char *BLE_CH1_UUID = "6e400002-b5a3-f393-e0a9-e50e24dcca9e"; // RX
78 const char *BLE_CH2_UUID = "6e400003-b5a3-f393-e0a9-e50e24dcca9e"; // TX
79 const char *BLE_INFO_UUID = "6e400004-b5a3-f393-e0a9-e50e24dcca9e";
80
81 virtual int getMTU() = 0;
82
83 // override to implement your own extended logic
84 virtual void setAudioInfo(const uint8_t *data, size_t size) {
86 AudioInfo ai = toInfo(data);
88 }
89 }
90 // override to implement your own extended logic
92};
93
94} // namespace audio_tools
#define TRACED()
Definition AudioLoggerIDF.h:31
Transmit and receive data via BLE using a Serial API. The following additional experimental features ...
Definition AudioBLEStream.h:20
void setServiceUUID(const char *uuid)
Definition AudioBLEStream.h:38
virtual void setAudioInfo(const uint8_t *data, size_t size)
Definition AudioBLEStream.h:84
void operator=(AudioBLEStream const &other)=delete
void setFramed(bool flag)
Definition AudioBLEStream.h:48
virtual bool connected()=0
AudioInfo toInfo(const uint8_t *str)
Definition AudioBLEStream.h:56
const char * BLE_INFO_UUID
Definition AudioBLEStream.h:79
bool is_started
Definition AudioBLEStream.h:69
void setAudioInfo(AudioInfo info)
Defines the input AudioInfo.
Definition AudioBLEStream.h:28
void setRxUUID(const char *uuid)
Definition AudioBLEStream.h:40
AudioBLEStream(int defaultMTU)
Definition AudioBLEStream.h:22
const char * BLE_CH2_UUID
Definition AudioBLEStream.h:78
char audio_info_str[40]
Definition AudioBLEStream.h:72
virtual void writeAudioInfoCharacteristic(AudioInfo info)=0
void setAudioInfoActive(bool flag)
Definition AudioBLEStream.h:46
uint16_t max_transfer_size
Definition AudioBLEStream.h:68
void setTxUUID(const char *uuid)
Definition AudioBLEStream.h:42
const char * ble_server_name
Definition AudioBLEStream.h:67
const char * BLE_AUDIO_SERVICE_UUID
Definition AudioBLEStream.h:76
bool is_audio_info_active
Definition AudioBLEStream.h:70
const char * BLE_CH1_UUID
Definition AudioBLEStream.h:77
bool is_framed
Definition AudioBLEStream.h:71
void setAudioInfoUUID(const char *uuid)
Definition AudioBLEStream.h:44
StrView toStr(AudioInfo info)
Definition AudioBLEStream.h:50
AudioBLEStream(AudioBLEStream const &other)=delete
Base class for all Audio Streams. It support the boolean operator to test if the object is ready with...
Definition BaseStream.h:123
AudioInfo info
Definition BaseStream.h:174
virtual void setAudioInfo(AudioInfo newInfo) override
Defines the input AudioInfo.
Definition BaseStream.h:131
A simple wrapper to provide string functions on existing allocated char*. If the underlying char* is ...
Definition StrView.h:28
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
Basic Audio information which drives e.g. I2S.
Definition AudioTypes.h:55
sample_rate_t sample_rate
Sample Rate: e.g 44100.
Definition AudioTypes.h:57
uint16_t channels
Number of channels: 2=stereo, 1=mono.
Definition AudioTypes.h:59
uint8_t bits_per_sample
Number of bits per sample (int16_t = 16 bits)
Definition AudioTypes.h:61