| Bluetooth: A2DP Shell |
| ##################### |
| |
| The :code:`a2dp` command exposes parts of the A2DP API. |
| |
| The following examples assume that you have two devices already connected. |
| |
| Here is a example connecting two devices: |
| * Source and Sink sides register a2dp callbacks. using :code:`a2dp register_cb`. |
| * Source and Sink sides register stream endpoints. using :code:`a2dp register_ep source sbc` and :code:`a2dp register_ep sink sbc`. |
| * Source establish A2dp connection. It will create the AVDTP Signaling and Media L2CAP channels. using :code:`a2dp connect`. |
| * Source and Sink side can discover remote device's stream endpoints. using :code:`a2dp discover_peer_eps` |
| * Source or Sink configure the stream to create the stream after discover remote's endpoints. using :code:`a2dp configure`. |
| * Source or Sink establish the stream. using :code:`a2dp establish`. |
| * Source or Sink start the media. using :code:`a2dp start`. |
| * Source test the media sending. using :code:`a2dp send_media` to send one test packet data. |
| * Source or Sink suspend the media. using :code:`a2dp suspend`. |
| * Source or Sink release the media. using :code:`a2dp release`. |
| |
| .. tabs:: |
| |
| .. group-tab:: Device A (Audio Source Side) |
| |
| .. code-block:: console |
| |
| uart:~$ a2dp register_cb |
| success |
| uart:~$ a2dp register_ep source sbc |
| SBC source endpoint is registered |
| uart:~$ a2dp connect |
| Bonded with XX:XX:XX:XX:XX:XX |
| Security changed: XX:XX:XX:XX:XX:XX level 2 |
| a2dp connected |
| uart:~$ a2dp discover_peer_eps |
| endpoint id: 1, (sink), (idle): |
| codec type: SBC |
| sample frequency: |
| 44100 |
| 48000 |
| channel mode: |
| Mono |
| Stereo |
| Joint-Stereo |
| Block Length: |
| 16 |
| Subbands: |
| 8 |
| Allocation Method: |
| Loudness |
| Bitpool Range: 18 - 35 |
| uart:~$ a2dp configure |
| success to configure |
| stream configured |
| uart:~$ a2dp establish |
| success to establish |
| stream established |
| uart:~$ a2dp start |
| success to start |
| stream started |
| uart:~$ a2dp send_media |
| frames num: 1, data length: 160 |
| data: 1, 2, 3, 4, 5, 6 ...... |
| uart:~$ a2dp suspend |
| success to suspend |
| stream suspended |
| uart:~$ a2dp release |
| success to release |
| stream released |
| |
| .. group-tab:: Device B (Audio Sink Side) |
| |
| .. code-block:: console |
| |
| uart:~$ a2dp register_cb |
| success |
| uart:~$ a2dp register_ep sink sbc |
| SBC sink endpoint is registered |
| <after a2dp connect> |
| Connected: XX:XX:XX:XX:XX:XX |
| Bonded with XX:XX:XX:XX:XX:XX |
| Security changed: XX:XX:XX:XX:XX:XX level 2 |
| a2dp connected |
| <after a2dp configure of source side> |
| receive requesting config and accept |
| sample rate 44100Hz |
| stream configured |
| <after a2dp establish of source side> |
| receive requesting establishment and accept |
| stream established |
| <after a2dp start of source side> |
| receive requesting start and accept |
| stream started |
| <after a2dp send_media of source side> |
| received, num of frames: 1, data length: 160 |
| data: 1, 2, 3, 4, 5, 6 ...... |
| <after a2dp suspend of source side> |
| receive requesting suspend and accept |
| stream suspended |
| <after a2dp release of source side> |
| receive requesting release and accept |
| stream released |
| ... |