Releases: pschatzmann/ESP32-A2DP
Releases · pschatzmann/ESP32-A2DP
Error corrections / new IDF 5 events
- Activate SPP (Serial protocol) only on request
- Fix set_volume being pure on A2DPNoVolumeControl; Added missing overrides
- Prefer get_peer_name() over get_connected_source_name() for A2DPSink
- Correct bug in set_local_name() for A2DPSource
- Correct compile error in bt_music_sender_disconnect.ino example
- Provide get_name() to both A2DPSink and A2DPSource
- Added Serial.begin() to bt_music_sender_disconnect.ino example
- New BluetoothA2DPSource example: status callback
- BluetoothA2DPSource add lost process_user_state_callbacks
- BluetoothA2DPSource: Unhandled events change from from Error to Warning
- Provide compile option A2DP_I2S_SUPPORT to deactivate I2S
- Prefer get_peer_name() over get_connected_source_name()
- Adding option to specify device name with set_local_name()
- Support for new IDF 5 events
- Prevent compile error for ESP_BT_GAP_ACL_CONN_CMPL_STAT_EVT before idf 4.4.4
- Changed the default setting, so that there is not automatic reconnect!
New Functionality & Error Corrections
I haven't published a new release for quite some time.
Here is the content:
- New raw_stream_reader callback to provide data before volume is applied. Thanks to ArthurKoba
- Remove warnings, fix failing examples, Github Action to auto compile. Thanks to designer2k2
- Task Shutdown on Sink::end(). Thanks to rbuehlma
- New set_ssid_callback() method to select unknown ssid dynamically
- Added missing #pragma once guards to BluetoothA2DPSinkQueued.h
- (Re)Added support for obsolete Channels, so that old examples copied from the Web still compile
- prevent i2s_write if i2s was not started
- Support for include "I2S.h"
- Create compile error for S3
- Move set_event_queue_size (int size) and set_event_stack_size (int size) to common; increase values for source
- Class Documentation using modules
BluetoothA2DPSinkQueued and more Callbacks
- Provide BluetoothA2DPSinkQueued class which uses an additional Queue between A2DP and I2S
- Redesign reconnect logic to prevent an automatic reconnect after a disconnect has been requested via the API or from the remote system
- increased volume for bt_music_receiver_32bit_ext example
- Added support for a post I2S init callback (thanks to adam-puleo)
I2S output in separate task with ringbuffer & new functionality
- I2S output in separate task with ringbuffer: Thanks to mitchjs
- Support to determine RSSI with example: set_rssi_active(), set_rssi_callback(), get_last_rssi()
- Provide new method get_avrc_peer_rn_cap_bits()
- Correct esp-idf version check: Thanks to cfint
- Fixed Bluetooth Source pairing so it works with more devices: Thanks to Rob Shockency
- Added fast_forward and rewind commands: Thanks to Clark Bremer
- Cache volume factor: Thanks to cfint
New methods and Error Corrections
- Renamed CURRENT_ESP_IDF to ESP_IDF_4
- Added not supported compile errors for ESP32C3 and ESP32S2
- Resolved BluetoothA2DPSource connection issues to some devices (thanks to Rob Shockency)
- new AVRC methods: fast_forward() and rewind() (thanks to Clark Bremer)
- Add missing SRC for idf (thanks to Anis Jonischkeit)
- corrected some missing connection_state callbacks (thanks to Geert Roumen)
- Issue error to log when esp_avrc_tg_set_rn_evt_cap fails
- Enable easy detection of failed authentication (thanks to hogthrob)
- additional parameters for set_auto_reconnect method to better control the auto reconnect: void set_auto_reconnect(bool reconnect, bool afterNormalDisconnect=false, int count=AUTOCONNECT_TRY_NUM ).
- use different last_bda names for source and sink
- provided get_connected_source_name() method thanks to Clark Bremer
- added set_volume to bt_music_sender_write example
- new class OneChannel8BitSoundData with bt_music_sender_write_8bit example
- new method set_swap_lr_channels() to swap left and right channels
- example for status callbacks: bt_music_receiver_status_callback.ino
- Removed DEPRECATED methods: isConnected, set_on_connected2BT, set_on_dis_connected2BT
Enhanced A2DP Source & Volume Control & Error Corrections Latest
- Additional functionality in A2DPSource (thanks to limneos for helping with the testing)
- set_auto_reconnect (bool active)
- set_auto_reconnect (esp_bd_addr_t addr)
- set_volume (uint8_t volume)
- get_volume()
- set_on_connection_state_changed (void(*callBack)(esp_a2d_connection_state_t state))
- set_on_audio_state_changed (void(*callBack)(esp_a2d_audio_state_t state))
- get_audio_state ()
- get_connection_state ()
- set_on_connected2BT set_on_dis_connected2BT are obsolete! Please use set_on_audio_state_changed()
- Improved volume control (thanks to elehobica)
- Improved 32 bit hifi example (thanks to elehobica)
- Provided the abstract VolumeControl class with alternative subclass implementations
- added debounce() method to handle button input
- confirm_pin_code() was broken. It's working again and we provide an example
- Provide the set_avrc_metadata_attribute_mask() method to fine tune the meta_data
- Callbacks for audio state and connection state changes
- The Channels structure has been renamed to Frame to better describe it's content
Align method naming conventions
- Change method names in A2DPSource to use snake_case.
- Make internal callback methods protected in A2DPSource
- Update documentation
Minor error corrections and improvements
- added set_sample_rate_callback() method
- corrected broken example to internal DAC
- corrected div compile warnings and errors in IDF
- added example for data callback
- improved volume control (thanks to rbuehlma)
- correction to Support for ESP32 Arduino 2.0.0 based on ESP-IDF 4.4
- fix broken metadata in esp 1.0.6
- provide set_channels (i2s_channel_t channels) to the BluetoothA2DPSink
Support for IDF 4 / Volume control / Access control
- Support for ESP32 Arduino 2.0.0 RC1 based on ESP-IDF 4.4
- Support for IDF (as component)
- Authentication methods: set_address_validator(), activate_pin_code(), confirm_pin_code()
- add volume control - thanks to tv4you2016
- add set volume control (set_volume(uint8_t volume);)- thanks to tv4you2016
- add get volume control (get_volume()) - thanks to tv4you2016
- Additional functionality for Arduino ESP32 2.0.0 (IDF release 4.4)
- add callback bt_volumechange - thanks to tv4you2016
- fix I2S_COMM_FORMAT_I2S_MSB - thanks to tv4you2016
- Avoiding noise in case of data unavailability - thanks to alexus2033
Minor improvements
- provide get_connection_status() method
- provide end() method to shut down bluetooth
- add compile time switch for new ESP IDF
- provide set_discoverability() to change BT discovery mode (only for current ESP IDF)
- add additional flag in set_stream_reader to deactivate i2s
- Remove includes of Arduino.h to highlight independence of Arduino API
- New examples with LED and auto shut down on idle
- Clean up compile warnings so that build with warnings ALL will succeed
- Example with set_pin_config
- Correction - Bluetooth devices with address starting 00 did not auto reconnect
- Implement mono downmix thanks to rbuehlma
- Expand to 24 or 32 bits using i2s_config.bits_per_sample thanks to riraosan
- Tracknumber and TrackCount added to Metadata thanks to alexus2033
- Correction which allows restart after calling end() thanks to alexus2033
- Add method to disconnect current connection thanks to ashthespy