A C library for bluetooth communication with Bose QuietComfort Ultra headphones.
This library is a direct implementation of the Bose QuietComfort Ultra Headphones Bluetooth SPP Protocol Reverse-engineered paper.
mkdir build && cd build
cmake ..
cmake --build . --config Debug/Release/RelWithDebInfo
You can also copy src/bose_qc.ultra.c and include/bose_qc_ultra.h directly into your project files.
#include <bose_qc_ultra.h>
// Your transport implementation for SPP protocol
int serial_transport(const uint8_t* tx_buf, size_t tx_len, uint8_t* rx_buf, size_t rx_len, void* ctx);
uint8_t volume;
int res = bose_get_volume(serial_transport, NULL, &volume);
if (res == 0) printf("Current volume is %u\n", volume);For full list of supported functions and its parameters see include/bose_qc_ultra.h.
All pull requests and issues are welcome. However, before creating a new one, pay attention to what the described endpoint looks like in the Bose QuietComfort Ultra Headphones Bluetooth SPP Protocol Reverse-engineered paper. This library is a direct implementation of this document and in case of errors in it or if you want to add new functionality, it should be described in the documentation first.
mkdir build && cd build
cmake .. -DBUILD_TESTING=ON
cmake --build . --config Debug/Release/RelWithDebInfo
ctest --output-on-failure -c Debug/Release/RelWithDebInfo