mirror of
https://github.com/espressif/esp-nimble.git
synced 2026-10-07 23:27:23 +00:00
nimble/audio: Modify BASS control point write access
Modify BASS control point write access in a way that it would use flattened mbuf to pass data to handler. Previous solution was prone to errors due to chained mbufs. Fix handler check from simple bool comparison to ensuring that it's not NULL. Add opcode variable to hold proper operation id in write access. This is helpful during debugging operations.
This commit is contained in:
committed by
Łukasz Rymanowski
parent
6f5b33ca0c
commit
cda8b20993
@@ -627,13 +627,16 @@ ble_svc_audio_bass_find_handler(uint8_t opcode)
|
||||
static int
|
||||
ble_svc_audio_bass_ctrl_point_write_access(struct ble_gatt_access_ctxt *ctxt, uint16_t conn_handle)
|
||||
{
|
||||
uint8_t opcode;
|
||||
struct os_mbuf *om;
|
||||
uint16_t mbuf_len = OS_MBUF_PKTLEN(ctxt->om);
|
||||
struct ble_svc_audio_bass_ctrl_point_handler *handler;
|
||||
|
||||
uint8_t opcode = ctxt->om->om_data[0];
|
||||
opcode = ctxt->om->om_data[0];
|
||||
|
||||
handler = ble_svc_audio_bass_find_handler(opcode);
|
||||
|
||||
if (!handler) {
|
||||
if (handler == NULL) {
|
||||
return BLE_SVC_AUDIO_BASS_ERR_OPCODE_NOT_SUPPORTED;
|
||||
}
|
||||
|
||||
@@ -643,7 +646,12 @@ ble_svc_audio_bass_ctrl_point_write_access(struct ble_gatt_access_ctxt *ctxt, ui
|
||||
return BLE_ATT_ERR_WRITE_REQ_REJECTED;
|
||||
}
|
||||
|
||||
return handler->handler_cb(&ctxt->om->om_data[1], ctxt->om->om_len - 1, conn_handle);
|
||||
ctxt->om = os_mbuf_pullup(ctxt->om, mbuf_len);
|
||||
if (!ctxt->om) {
|
||||
return BLE_ATT_ERR_UNLIKELY;
|
||||
}
|
||||
|
||||
return handler->handler_cb(&om->om_data[1], mbuf_len - 1, conn_handle);
|
||||
}
|
||||
|
||||
static int
|
||||
|
||||
Reference in New Issue
Block a user