arduino-audio-tools
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
AudioBLEClient Class Reference

A simple BLE client that implements the serial protocol, so that it can be used to send and recevie audio. In BLE terminology this is a Central. More...

#include <AudioBLEClient.h>

Inheritance diagram for AudioBLEClient:
AudioBLEStream AudioBLEStream AudioStream AudioStream BaseStream AudioInfoSupport AudioInfoSource BaseStream AudioInfoSupport AudioInfoSource Stream Stream Print Print

Public Member Functions

 AudioBLEClient (int mtu=242)
 
 AudioBLEClient (int mtu=517)
 
virtual void addNotifyAudioChange (AudioInfoSupport &bi)
 Adds target to be notified about audio changes.
 
virtual AudioInfo audioInfo () override
 provides the actual input AudioInfo
 
virtual AudioInfo audioInfoOut ()
 
int available () override
 
int available () override
 
int availableForWrite () override
 
int availableForWrite () override
 
virtual bool begin ()
 
bool begin (const char *localName, int seconds)
 starts a BLE client
 
bool begin (const char *localName, int seconds)
 starts a BLE client
 
virtual void clearNotifyAudioChange ()
 Deletes all change notify subscriptions.
 
bool connected () override
 
bool connected () override
 
void end () override
 
void end () override
 
virtual void flush () override
 
bool isNotifyActive ()
 Checks if the automatic AudioInfo update is active.
 
 operator bool ()
 
size_t readBytes (uint8_t *data, size_t len) override
 
size_t readBytes (uint8_t *data, size_t len) override
 
virtual size_t readSilence (uint8_t *buffer, size_t length)
 Source to generate silence: just sets the buffer to 0.
 
virtual bool removeNotifyAudioChange (AudioInfoSupport &bi)
 Removes a target in order not to be notified about audio changes.
 
void setAudioInfo (AudioInfo info)
 Defines the input AudioInfo.
 
void setAudioInfoActive (bool flag)
 
void setAudioInfoUUID (const char *uuid)
 
void setConfirmWrite (bool flag)
 
void setConfirmWrite (bool flag)
 
void setFramed (bool flag)
 
void setNotifyActive (bool flag)
 Deactivate/Reactivate automatic AudioInfo updates: (default is active)
 
void setRxUUID (const char *uuid)
 
void setServiceUUID (const char *uuid)
 
void setTxUUID (const char *uuid)
 
void setWriteBufferSize (int size)
 
void setWriteThrottle (int ms)
 
void setWriteThrottle (int ms)
 
AudioInfo toInfo (const uint8_t *str)
 
StrView toStr (AudioInfo info)
 
size_t write (const uint8_t *data, size_t len) override
 
size_t write (const uint8_t *data, size_t len) override
 
virtual size_t write (uint8_t ch) override
 
virtual void writeSilence (size_t len)
 Writes len bytes of silence (=0).
 

Protected Member Functions

int getMTU () override
 
virtual int not_supported (int out, const char *msg="")
 
void notifyAudioChange (AudioInfo info)
 
void onConnect (BLEClient *pClient) override
 
void onDisconnect (BLEClient *pClient) override
 
void onResult (BLEAdvertisedDevice advertisedDevice) override
 
bool readAudioInfoCharacteristic ()
 
bool readAudioInfoCharacteristic ()
 
void refillReadBuffer ()
 
virtual void setAudioInfo (const uint8_t *data, size_t size)
 
bool setupBLEClient ()
 
bool setupBLEClient ()
 
void writeAudioInfoCharacteristic (AudioInfo info) override
 
void writeAudioInfoCharacteristic (AudioInfo info) override
 
void writeChannel2Characteristic (const uint8_t *data, size_t len)
 
void writeChannel2Characteristic (const uint8_t *data, size_t len)
 

Static Protected Member Functions

static void notifyCallback (BLERemoteCharacteristic *pBLERemoteCharacteristic, uint8_t *pData, size_t length, bool isNotify)
 
static void onInfoUpdated (BLEDevice central, BLECharacteristic characteristic)
 

Protected Attributes

int _timeout = 10
 
BLEAdvertisedDevice advertised_device
 
char audio_info_str [40]
 
const charBLE_AUDIO_SERVICE_UUID = "6e400001-b5a3-f393-e0a9-e50e24dcca9e"
 
const charBLE_CH1_UUID = "6e400002-b5a3-f393-e0a9-e50e24dcca9e"
 
const charBLE_CH2_UUID = "6e400003-b5a3-f393-e0a9-e50e24dcca9e"
 
const charBLE_INFO_UUID = "6e400004-b5a3-f393-e0a9-e50e24dcca9e"
 
const charble_server_name = nullptr
 
BLEUUID BLUEID_AUDIO_SERVICE_UUID {BLE_AUDIO_SERVICE_UUID}
 
BLEUUID BLUEID_CH1_UUID {BLE_CH1_UUID}
 
BLEUUID BLUEID_CH2_UUID {BLE_CH2_UUID}
 
BLEUUID BLUEID_INFO_UUID {BLE_INFO_UUID}
 
BLECharacteristic ch01_char
 
BLERemoteCharacteristicch01_char = nullptr
 
BLECharacteristic ch02_char
 
BLERemoteCharacteristicch02_char = nullptr
 
AudioInfo info
 
BLECharacteristic info_char
 
BLERemoteCharacteristicinfo_char = nullptr
 
bool is_audio_info_active = false
 
volatile bool is_client_connected = false
 
bool is_client_set_up = false
 
bool is_framed = false
 
bool is_notify_active = true
 
bool is_started = false
 
uint16_t max_transfer_size = 0
 
Vector< AudioInfoSupport * > notify_vector
 
BLEAdvertisingp_advertising = nullptr
 
BLEClientp_client = nullptr
 
BLERemoteServicep_remote_service = nullptr
 
BLEAddressp_server_address = nullptr
 
BLEDevice peripheral
 
RingBuffer< uint8_ttmp_in {0}
 
RingBuffer< uint8_ttmp_out {0}
 
SingleBuffer< uint8_twrite_buffer {0}
 
int write_buffer_size = MAX_SINGLE_CHARS
 
bool write_confirmation_flag = false
 
int write_throttle = 0
 

Detailed Description

A simple BLE client that implements the serial protocol, so that it can be used to send and recevie audio. In BLE terminology this is a Central.

Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ AudioBLEClient() [1/2]

AudioBLEClient ( int  mtu = 242)
inline

◆ AudioBLEClient() [2/2]

AudioBLEClient ( int  mtu = 517)
inline

Member Function Documentation

◆ addNotifyAudioChange()

virtual void addNotifyAudioChange ( AudioInfoSupport bi)
inlinevirtualinherited

◆ audioInfo()

virtual AudioInfo audioInfo ( )
inlineoverridevirtualinherited

◆ audioInfoOut()

virtual AudioInfo audioInfoOut ( )
inlinevirtualinherited

◆ available() [1/2]

int available ( )
inlineoverridevirtual

Reimplemented from BaseStream.

◆ available() [2/2]

int available ( )
inlineoverridevirtual

Reimplemented from BaseStream.

◆ availableForWrite() [1/2]

int availableForWrite ( )
inlineoverridevirtual

Reimplemented from BaseStream.

◆ availableForWrite() [2/2]

int availableForWrite ( )
inlineoverridevirtual

Reimplemented from BaseStream.

◆ begin() [1/3]

virtual bool begin ( )
inlinevirtualinherited

◆ begin() [2/3]

bool begin ( const char localName,
int  seconds 
)
inline

starts a BLE client

◆ begin() [3/3]

bool begin ( const char localName,
int  seconds 
)
inline

starts a BLE client

◆ clearNotifyAudioChange()

virtual void clearNotifyAudioChange ( )
inlinevirtualinherited

Deletes all change notify subscriptions.

Reimplemented in RTSPClient< TcpClient, UdpSocket >.

◆ connected() [1/2]

bool connected ( )
inlineoverridevirtual

Implements AudioBLEStream.

◆ connected() [2/2]

bool connected ( )
inlineoverridevirtual

Implements AudioBLEStream.

◆ end() [1/2]

void end ( )
inlineoverridevirtual

Implements AudioBLEStream.

◆ end() [2/2]

void end ( )
inlineoverridevirtual

Implements AudioBLEStream.

◆ flush()

virtual void flush ( )
inlineoverridevirtualinherited

◆ getMTU()

int getMTU ( )
inlineoverrideprotectedvirtual

Implements AudioBLEStream.

◆ isNotifyActive()

bool isNotifyActive ( )
inlineinherited

Checks if the automatic AudioInfo update is active.

◆ not_supported()

virtual int not_supported ( int  out,
const char msg = "" 
)
inlineprotectedvirtualinherited

◆ notifyAudioChange()

void notifyAudioChange ( AudioInfo  info)
inlineprotectedinherited

◆ notifyCallback()

static void notifyCallback ( BLERemoteCharacteristic pBLERemoteCharacteristic,
uint8_t pData,
size_t  length,
bool  isNotify 
)
inlinestaticprotected

◆ onConnect()

void onConnect ( BLEClient pClient)
inlineoverrideprotected

◆ onDisconnect()

void onDisconnect ( BLEClient pClient)
inlineoverrideprotected

◆ onInfoUpdated()

static void onInfoUpdated ( BLEDevice  central,
BLECharacteristic  characteristic 
)
inlinestaticprotected

◆ onResult()

void onResult ( BLEAdvertisedDevice  advertisedDevice)
inlineoverrideprotected

◆ operator bool()

operator bool ( )
inlinevirtualinherited

Reimplemented from AudioStream.

◆ readAudioInfoCharacteristic() [1/2]

bool readAudioInfoCharacteristic ( )
inlineprotected

◆ readAudioInfoCharacteristic() [2/2]

bool readAudioInfoCharacteristic ( )
inlineprotected

◆ readBytes() [1/2]

size_t readBytes ( uint8_t data,
size_t  len 
)
inlineoverridevirtual

Reimplemented from AudioStream.

◆ readBytes() [2/2]

size_t readBytes ( uint8_t data,
size_t  len 
)
inlineoverridevirtual

Reimplemented from AudioStream.

◆ readSilence()

virtual size_t readSilence ( uint8_t buffer,
size_t  length 
)
inlinevirtualinherited

Source to generate silence: just sets the buffer to 0.

◆ refillReadBuffer()

void refillReadBuffer ( )
inlineprotectedinherited

◆ removeNotifyAudioChange()

virtual bool removeNotifyAudioChange ( AudioInfoSupport bi)
inlinevirtualinherited

Removes a target in order not to be notified about audio changes.

Reimplemented in RTSPClient< TcpClient, UdpSocket >.

◆ setAudioInfo() [1/2]

void setAudioInfo ( AudioInfo  info)
inlinevirtualinherited

Defines the input AudioInfo.

Reimplemented from AudioStream.

◆ setAudioInfo() [2/2]

virtual void setAudioInfo ( const uint8_t data,
size_t  size 
)
inlineprotectedvirtualinherited

◆ setAudioInfoActive()

void setAudioInfoActive ( bool  flag)
inlineinherited

◆ setAudioInfoUUID()

void setAudioInfoUUID ( const char uuid)
inlineinherited

◆ setConfirmWrite() [1/2]

void setConfirmWrite ( bool  flag)
inline

◆ setConfirmWrite() [2/2]

void setConfirmWrite ( bool  flag)
inline

◆ setFramed()

void setFramed ( bool  flag)
inlineinherited

◆ setNotifyActive()

void setNotifyActive ( bool  flag)
inlineinherited

Deactivate/Reactivate automatic AudioInfo updates: (default is active)

◆ setRxUUID()

void setRxUUID ( const char uuid)
inlineinherited

◆ setServiceUUID()

void setServiceUUID ( const char uuid)
inlineinherited

◆ setTxUUID()

void setTxUUID ( const char uuid)
inlineinherited

◆ setupBLEClient() [1/2]

bool setupBLEClient ( )
inlineprotected

◆ setupBLEClient() [2/2]

bool setupBLEClient ( )
inlineprotected

◆ setWriteBufferSize()

void setWriteBufferSize ( int  size)
inlineinherited

◆ setWriteThrottle() [1/2]

void setWriteThrottle ( int  ms)
inline

◆ setWriteThrottle() [2/2]

void setWriteThrottle ( int  ms)
inline

◆ toInfo()

AudioInfo toInfo ( const uint8_t str)
inlineinherited

◆ toStr()

StrView toStr ( AudioInfo  info)
inlineinherited

◆ write() [1/3]

size_t write ( const uint8_t data,
size_t  len 
)
inlineoverridevirtual

Reimplemented from AudioStream.

◆ write() [2/3]

size_t write ( const uint8_t data,
size_t  len 
)
inlineoverridevirtual

Reimplemented from AudioStream.

◆ write() [3/3]

virtual size_t write ( uint8_t  ch)
inlineoverridevirtualinherited

◆ writeAudioInfoCharacteristic() [1/2]

void writeAudioInfoCharacteristic ( AudioInfo  info)
inlineoverrideprotectedvirtual

Implements AudioBLEStream.

◆ writeAudioInfoCharacteristic() [2/2]

void writeAudioInfoCharacteristic ( AudioInfo  info)
inlineoverrideprotectedvirtual

Implements AudioBLEStream.

◆ writeChannel2Characteristic() [1/2]

void writeChannel2Characteristic ( const uint8_t data,
size_t  len 
)
inlineprotected

◆ writeChannel2Characteristic() [2/2]

void writeChannel2Characteristic ( const uint8_t data,
size_t  len 
)
inlineprotected

◆ writeSilence()

virtual void writeSilence ( size_t  len)
inlinevirtualinherited

Writes len bytes of silence (=0).

Member Data Documentation

◆ _timeout

int _timeout = 10
protectedinherited

◆ advertised_device

BLEAdvertisedDevice advertised_device
protected

◆ audio_info_str

char audio_info_str[40]
protectedinherited

◆ BLE_AUDIO_SERVICE_UUID

const char* BLE_AUDIO_SERVICE_UUID = "6e400001-b5a3-f393-e0a9-e50e24dcca9e"
protectedinherited

◆ BLE_CH1_UUID

const char* BLE_CH1_UUID = "6e400002-b5a3-f393-e0a9-e50e24dcca9e"
protectedinherited

◆ BLE_CH2_UUID

const char* BLE_CH2_UUID = "6e400003-b5a3-f393-e0a9-e50e24dcca9e"
protectedinherited

◆ BLE_INFO_UUID

const char* BLE_INFO_UUID = "6e400004-b5a3-f393-e0a9-e50e24dcca9e"
protectedinherited

◆ ble_server_name

const char* ble_server_name = nullptr
protectedinherited

◆ BLUEID_AUDIO_SERVICE_UUID

BLEUUID BLUEID_AUDIO_SERVICE_UUID {BLE_AUDIO_SERVICE_UUID}
protected

◆ BLUEID_CH1_UUID

BLEUUID BLUEID_CH1_UUID {BLE_CH1_UUID}
protected

◆ BLUEID_CH2_UUID

BLEUUID BLUEID_CH2_UUID {BLE_CH2_UUID}
protected

◆ BLUEID_INFO_UUID

BLEUUID BLUEID_INFO_UUID {BLE_INFO_UUID}
protected

◆ ch01_char [1/2]

BLECharacteristic ch01_char
protected

◆ ch01_char [2/2]

BLERemoteCharacteristic* ch01_char = nullptr
protected

◆ ch02_char [1/2]

BLECharacteristic ch02_char
protected

◆ ch02_char [2/2]

BLERemoteCharacteristic* ch02_char = nullptr
protected

◆ info

AudioInfo info
protectedinherited

◆ info_char [1/2]

BLECharacteristic info_char
protected

◆ info_char [2/2]

BLERemoteCharacteristic* info_char = nullptr
protected

◆ is_audio_info_active

bool is_audio_info_active = false
protectedinherited

◆ is_client_connected

volatile bool is_client_connected = false
protected

◆ is_client_set_up

bool is_client_set_up = false
protected

◆ is_framed

bool is_framed = false
protectedinherited

◆ is_notify_active

bool is_notify_active = true
protectedinherited

◆ is_started

bool is_started = false
protectedinherited

◆ max_transfer_size

uint16_t max_transfer_size = 0
protectedinherited

◆ notify_vector

Vector<AudioInfoSupport*> notify_vector
protectedinherited

◆ p_advertising

BLEAdvertising* p_advertising = nullptr
protected

◆ p_client

BLEClient* p_client = nullptr
protected

◆ p_remote_service

BLERemoteService* p_remote_service = nullptr
protected

◆ p_server_address

BLEAddress* p_server_address = nullptr
protected

◆ peripheral

BLEDevice peripheral
protected

◆ tmp_in

RingBuffer<uint8_t> tmp_in {0}
protectedinherited

◆ tmp_out

RingBuffer<uint8_t> tmp_out {0}
protectedinherited

◆ write_buffer

SingleBuffer< uint8_t > write_buffer {0}
protected

◆ write_buffer_size

int write_buffer_size = MAX_SINGLE_CHARS
protectedinherited

◆ write_confirmation_flag

bool write_confirmation_flag = false
protected

◆ write_throttle

int write_throttle = 0
protected

The documentation for this class was generated from the following files: