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

Bluetooth: ISO: Provide stream established information #44546

Closed
Thalley opened this issue Apr 5, 2022 · 2 comments · Fixed by #45077
Closed

Bluetooth: ISO: Provide stream established information #44546

Thalley opened this issue Apr 5, 2022 · 2 comments · Fixed by #45077
Assignees
Labels
area: API Changes to public APIs area: Bluetooth Audio area: Bluetooth ISO Bluetooth LE Isochronous Channels area: Bluetooth Enhancement Changes/Updates/Additions to existing features

Comments

@Thalley
Copy link
Collaborator

Thalley commented Apr 5, 2022

Is your enhancement proposal related to a problem? Please describe.
Several, if not all, fields of the CIS established or BIG sync established events are useful or needed for the application to properly use isochronous channels (this is especially true for Audio cases).

Describe the solution you'd like
Several, if not all, fields from the events should be stored and be available to the application.

Describe alternatives you've considered
N/A

Additional context
The change should also apply for bt_audio_streams.

@Thalley Thalley added Enhancement Changes/Updates/Additions to existing features area: Bluetooth area: API Changes to public APIs area: Bluetooth Audio area: Bluetooth ISO Bluetooth LE Isochronous Channels labels Apr 5, 2022
@GatCode
Copy link

GatCode commented Apr 6, 2022

@Thalley, wouldn't it make sense to include the e.g. bt_hci_evt_le_big_sync_established / bt_hci_evt_le_cis_established structs in the bt_iso_chan struct since this struct would be accessible to the application on multiple points (recv callback, connected cb, ...)?

/** @brief ISO Channel structure. */
struct bt_iso_chan {
	/** Channel connection reference */
	struct bt_conn			*iso;
	/** Channel operations reference */
	struct bt_iso_chan_ops		*ops;
	/** Channel QoS reference */
	struct bt_iso_chan_qos		*qos;
	enum bt_iso_state		state;
	bt_security_t			required_sec_level;
	/** Node used internally by the stack */
	sys_snode_t node;
};```

@Thalley
Copy link
Collaborator Author

Thalley commented Apr 6, 2022

@Thalley, wouldn't it make sense to include the e.g. bt_hci_evt_le_big_sync_established / bt_hci_evt_le_cis_established structs in the bt_iso_chan struct since this struct would be accessible to the application on multiple points (recv callback, connected cb, ...)?

Generally we avoid exposing HCI events directly. This is partly due that they are __packed (generally avoided in the public API as well), but also that something like the latency is defined as

	uint8_t  c_latency[3];
	uint8_t  p_latency[3];

in struct bt_hci_evt_le_cis_established, where it makes a lot more sense to expose this as a uint32_t value.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: API Changes to public APIs area: Bluetooth Audio area: Bluetooth ISO Bluetooth LE Isochronous Channels area: Bluetooth Enhancement Changes/Updates/Additions to existing features
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants