Repository navigation
Rust crate: bose-bmap 0.5.0 · Python: pipx install ./python
Breaking changes
connect()with an explicit MAC now requires a device type (BMAP_DEVICE); it no longer assumesqc_ultra2.- Replies are validated: truncated frames, unknown operators, and replies from a different address raise errors in all three libraries instead of returning partial data. A late STATUS frame ahead of the real reply is skipped.
- Rust:
BmapErroris#[non_exhaustive], with newBusyandDesyncvariants; empty replies areDeviceerrors, notTimeout. - C++: new
bmap::device_error,desync_error,unsupported_error,connect_error,busy_error(allstd::runtime_error); unknown modes and preset-named profiles throwstd::invalid_argument. - Python:
update_profile(name=…)is nowrename=…(the old keyword crashed); newBmapInvalidArgError,BmapDesyncError,BmapBusyError.
Highlights
- New devices: QC Ultra Earbuds (2nd Gen), QuietComfort Headphones (2nd Gen) PID 0x4083, and EQ on QuietComfort Headphones.
- Linux: a busy RFCOMM channel is retried with backoff, so back-to-back CLI calls no longer fail (#39). New
linux_install.sh, pipx install docs. - Profiles reuse cleared slots and refuse preset names;
profile setno longer creates duplicates.
What's Changed
- Add EQ support for QuietComfort Headphones (prince) by @hieupm2096 in #36
- Add QuietComfort Headphones (2nd Gen) support (PID 0x4083) by @Juju8901 in #37
- Linux installer and transport tests by @icarus-help in #33
- Add QC Ultra 2 Earbuds support by @andresantonioriveros in #34
- fix: profile slot reuse, profile name lookup, and response address validation by @jpita in #35
- Document pipx install and BlueZ build headers by @aaronsb in #40
- Point to bosectl-qt near the top of the README by @aaronsb in #41
- Retry busy RFCOMM channels with backoff by @aaronsb in #42
New Contributors
- @hieupm2096 made their first contribution in #36
- @Juju8901 made their first contribution in #37
- @icarus-help made their first contribution in #33
- @andresantonioriveros made their first contribution in #34
- @jpita made their first contribution in #35
Full Changelog: v0.4.1...v0.5.0