Skip to content

Change History

Phil Schatzmann edited this page Dec 11, 2024 · 105 revisions

Main

  • tbd

V1.8.4

  • Support for idf 5.1.4
  • Rename bt_music_receiver_simple example
  • Added method is_discovery_active to A2DP source
  • Added set_bt_discovery_mode_callback to A2DP source
  • Added set_valid_cod_service and isValidAudioService() to A2DP to A2DP source
  • Remove player_init status flag
  • Update to latest AudioTools version (includes convention, logger)
  • Corrected misspelled set_rssi_callback
  • Doxygen support for external enums and typedefs

V1.8.4

  • Support for Arduino esp32 core 3.1 / IDF 5.1.4
  • Use actual FreeRTOS typedef types in code (support legacy code with defines)
  • Improvments in README

V1.8.3

  • Set default sample rate to 44100
  • Prevent AudioTools warning for a2dp source
  • correct set_output()
  • config.h A2DP_I2S_AUDIOTOOLS via platformio
  • Added variable timer for play pos notification, RN_TRACK_CHANGE setter (#560)
  • set_avrc_rn_play_pos_callback define default interval to 10 sec
  • Update is_i2s_active before deactivating i2s-
  • Error message for ESP32 C6
  • Support for IDF 5.2.1
  • update cmake: add BluetoothA2DPOutput.cpp
  • cmake prevent errors
  • Linker error
  • Remove dependency from Arduino API for delay and millis()
  • check esp_bt_controller_init
  • Fix broken btStart in Arduino
  • bt_init print error codes
  • Compile error with ESP 5.0
  • playing status example better messages
  • Arduino I2S w/o AudioTools
  • Sink: provide get_output()
  • new methods: set_output_active() and is_output_active()
  • increase A2DP_I2S_MAX_WRITE_SIZE to 5k
  • 32 bit example: clean up includes
  • end(): timout A2DP_DISCONNECT_LIMIT

V1.8.2

  • Continue to provide Legacy examples
  • Corrections to SimpleExponentialVolumeControl and LinearVolumeControl
  • Make sure that I2S is not used when it has been deactivated (is_output is set to false)
  • A2DPSource: support of volume buttons on Bluetooth speakers
  • A2DPSink: added avrc_rn_play_pos_callback method (thanks to zyphlar)

V1.8.1

  • Move output functionality from sink to separate classes
  • Added example for 32 bit output

V1.8.0

  • Use AudioTools as Output Library
  • Updated documentation
  • Updated examples

V1.7.5

  • Cleanup config.h and version checks
  • Example for AudioKit
  • Support interoperability with BLE with example
  • Corrected compile error for Arduino ESP 1.0.6
  • Corrected inconsistencies in the reporting of isConnected()
  • define set_scan_mode_connectable_default as abstract
  • bt_music_receiver_datacallback.ino remove time limit
  • Support for Arduino 3.0.0: Use AudioTools for I2S
  • Cleanup version checks using ESP_IDF_VERSION
  • Obsolete i2s_mclk_pin_select() in ESP 5.1.1

V1.7.4

  • 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!

V1.7.3

  • 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

V1.7.2

  • 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)

V1.7.1

  • Support to determine RSSI with example: set_rssi_active(), set_rssi_callback(), get_last_rssi()
  • Provide new method get_avrc_peer_rn_cap_bits()
  • I2S output in separate task with ringbuffer: Thanks to mitchjs
  • 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

V1.7.0

  • 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

V1.6.0

  • 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

V1.5.0

  • Change method names in A2DPSource to use snake_case.
  • Make internal callback methods protected in A2DPSource
  • Update documentation

V1.4.1

  • 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

V1.4.0

  • 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

V1.3.0

  • provide get_connection_status() method
  • provide end() method to shut down bluetooth
  • add compile time switch for new 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
  • provide set_discoverability() to change BT discovery mode (only for current ESP IDF) thanks to rbuehlma
  • 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

V1.2.0

  • Metadata support with the help of a callback function - Thanks to JohnyMielony
  • AVRC command support thanks to PeterPark
  • Improved init_bluetooth checks, in case bluedroid was already initialized elsewhere - Thanks to Antonis Katzourakis
  • No auto reconnect after clean disconnect - Thanks to Bajczi Levente
  • The data is rescaled to when written to the internal DAC - Thanks to Martin Hron
  • Corrected wrong case of include to Arduino.h - Thanks to RyanDavis
  • Added callback to received packets - Thanks to Mishaux
  • Automatically reconnect to last source - Thanks to JohnyMielony
  • Support for data callback - Thanks to Mike Mishaux
  • Improved init_bluetooth checks, in case bluedroid was already initialized elsewhere Antonis Katzourakis
  • No auto reconnect after clean disconnect thanks to Bajczi Levente
  • Made all methods virtual to enable flexible subclassing
  • Error Corrections in BluetoothA2DPSource
  • Support for writeData in BluetoothA2DPSource
  • Support for multiple alternative BT names in BluetoothA2DPSource
  • Redesign to protect internal callbacks in BluetoothA2DPSink
  • Generate Documentation with the help of doxygen

V1.1.0

  • New functionality: BluetoothA2DPSource
  • Renamed project from 'esp32_bt_music_receiver' to 'ESP32-A2DP'
  • Corrected Spelling Mistake from Blootooth to Bluetooth in Class names: The correct class name is BluetoothA2DPSink!
  • The include h files are now called like the class names (e.g. BluetoothA2DPSink.h and BluetoothA2DPSource.h)

V1.0.0

  • Initial Release
Clone this wiki locally