Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nimble/host: Initial Broadcast Source implementation #1619

Merged
merged 8 commits into from
Dec 4, 2023

Conversation

KKopyscinski
Copy link
Contributor

This is rough outline of API that could be used to create BASE configuration and start broadcast (setup extended advertising, periodic advertising and BASE advertisements)

@KKopyscinski KKopyscinski force-pushed the auracast_api branch 4 times, most recently from 5899354 to 81f6bbb Compare September 29, 2023 05:20
@KKopyscinski KKopyscinski changed the title [dnm] nimble/host: auracast API proposal nimble/host: broadcast and Auracast API Sep 29, 2023
@KKopyscinski KKopyscinski force-pushed the auracast_api branch 4 times, most recently from 72350c9 to 0c2229e Compare October 2, 2023 05:59
@KKopyscinski KKopyscinski force-pushed the auracast_api branch 2 times, most recently from f437f26 to 8e39627 Compare November 20, 2023 07:57

int
ble_svc_auracast_create(const struct ble_svc_auracast_create_params *params,
uint8_t *adv_instance,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

auracast_instance (change name)

@KKopyscinski KKopyscinski force-pushed the auracast_api branch 8 times, most recently from 2c1b5d1 to 71397f7 Compare November 27, 2023 11:30
@KKopyscinski KKopyscinski force-pushed the auracast_api branch 3 times, most recently from e06b50d to b183928 Compare November 29, 2023 12:16
This is a design of API that could be used to create BASE configuration manage
its broadcast (setup extended advertising, periodic advertising and
BASE advertisements, stop, resume, terminate and modify them)
This patch implements Broadcast feature in host. It includes
implementation of ISO in host, with application API, HCI commands and
ISO event handling. Host is now capable of managing BIGs with subgroups
and BISes, updating Broadcast announcements and pushing data to ISO, to
send in BIS events.

Maximum extended advertising size was set to 251 to fit Periodic
advertising data connected with Broadcast Audio
Announcement Service advertisements by default.

This patch does not implement Broadcast sink, only source.
This patch adds commands to btshell to allow creating BIGs, BIG
subgroups and BISe and create and manage Broadcast advertisements.
ble_gap_adv_get_free_instance browses through list of advertising
instances and returns first that is not yet configured. Previously,
user had to track which instance is used by themselves, and could only
check if advertising is active, via ble_gap_ext_adv_active
This is simplified wrapper for Broadcast, that allows to create
Broadcast advertisements with sane defaults for advertising parameters.
Application still needs to build BASE configuration to use it.
@KKopyscinski KKopyscinski force-pushed the auracast_api branch 3 times, most recently from a39a7cc to 322a9a8 Compare November 30, 2023 13:02
Added application that has stored LC3 coded audio in form of sine sweep
from 100Hz to 20kHz. Application creates Broadcast announcement, builds
BIG with 1 or 2 BISes and starts to broadcast sample data.
This sample uses Auracast package to broadcast audio
@KKopyscinski KKopyscinski merged commit bbba284 into apache:master Dec 4, 2023
16 checks passed
@KKopyscinski KKopyscinski deleted the auracast_api branch February 13, 2024 07:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants