mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-01 04:20:33 +00:00
hfp_ag: fix sending outgoing cmds in chunks
This commit is contained in:
parent
6263b3d77d
commit
1532fd1ef9
11
src/hfp_ag.c
11
src/hfp_ag.c
@ -370,6 +370,7 @@ static int hfp_ag_cmd_via_generator(uint16_t cid, hfp_connection_t * hfp_connect
|
|||||||
|
|
||||||
// assumes: can send now == true
|
// assumes: can send now == true
|
||||||
// assumes: num segments > 0
|
// assumes: num segments > 0
|
||||||
|
// assumes: individual segments are smaller than MTU
|
||||||
rfcomm_reserve_packet_buffer();
|
rfcomm_reserve_packet_buffer();
|
||||||
int mtu = rfcomm_get_max_frame_size(cid);
|
int mtu = rfcomm_get_max_frame_size(cid);
|
||||||
uint8_t * data = rfcomm_get_outgoing_buffer();
|
uint8_t * data = rfcomm_get_outgoing_buffer();
|
||||||
@ -377,11 +378,11 @@ static int hfp_ag_cmd_via_generator(uint16_t cid, hfp_connection_t * hfp_connect
|
|||||||
int segment = start_segment;
|
int segment = start_segment;
|
||||||
while (segment < num_segments){
|
while (segment < num_segments){
|
||||||
int segment_len = get_segment_len(hfp_connection, segment);
|
int segment_len = get_segment_len(hfp_connection, segment);
|
||||||
if (offset + segment_len <= mtu){
|
if (offset + segment_len > mtu) break;
|
||||||
store_segment(hfp_connection, segment, data+offset);
|
// append segement
|
||||||
offset += segment_len;
|
store_segment(hfp_connection, segment, data+offset);
|
||||||
segment++;
|
offset += segment_len;
|
||||||
}
|
segment++;
|
||||||
}
|
}
|
||||||
rfcomm_send_prepared(cid, offset);
|
rfcomm_send_prepared(cid, offset);
|
||||||
return segment;
|
return segment;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user