AVRCP without A2DP ?
Posted: Tue Jan 22, 2019 7:32 pm
I'm currently trying to build myself some kind of basic Bluetooth Classic remote control.
The most straightforward way at this point for me seemed to use the a2dp_sink-example and leverage the AVRCP-CT-APIs (using esp_avrc_ct_send_passthrough_cmd()).
Let's have a look at the info-output of bluetoothctl:
That is working nicely enough so far - but now I want to get rid of the A2DP-part. My intuition was to just remove the esp_a2d_
I would have expected to now only see the UUIDs for "A/V Remote Control" - but there is just no UUIDs at all.
Switching things around and removing the esp_avrc_ct_ and keeping esp_a2d_, I would have expected to only have the "Audio"-UUIDs left. But wrong again: It's still all four UUIDs.
So now I am wondering: Can AVRC only be used in conjunction with A2DP? Or is Espressif just implementing AVRC "the wrong way"?
Thank you in advance for your help.
Best regards,
Aurélien
The most straightforward way at this point for me seemed to use the a2dp_sink-example and leverage the AVRCP-CT-APIs (using esp_avrc_ct_send_passthrough_cmd()).
Let's have a look at the info-output of bluetoothctl:
Code: Select all
[bluetooth]# info 20:47:DA:FB:93:65
Device 20:47:DA:FB:93:65 (public)
Name: ESP_COEX_A2DP_DEMO
Alias: ESP_COEX_A2DP_DEMO
Class: 0x002c0414
Icon: audio-card
Paired: no
Trusted: no
Blocked: no
Connected: no
LegacyPairing: no
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
RSSI: -50
Code: Select all
/* initialize A2DP sink */
esp_a2d_register_callback(&bt_app_a2d_cb);
esp_a2d_sink_register_data_callback(bt_app_a2d_data_cb);
esp_a2d_sink_init();
/* initialize AVRCP controller */
esp_avrc_ct_init();
esp_avrc_ct_register_callback(bt_app_rc_ct_cb);
Switching things around and removing the esp_avrc_ct_ and keeping esp_a2d_, I would have expected to only have the "Audio"-UUIDs left. But wrong again: It's still all four UUIDs.
So now I am wondering: Can AVRC only be used in conjunction with A2DP? Or is Espressif just implementing AVRC "the wrong way"?
Thank you in advance for your help.
Best regards,
Aurélien