mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-03-16 16:20:50 +00:00
l2cap: introduce L2CAP_CHANNEL_TYPE_FIXED_CLASSIC
This commit is contained in:
parent
34be587822
commit
8d9f906bb8
13
src/l2cap.c
13
src/l2cap.c
@ -2597,25 +2597,26 @@ static bool l2cap_channel_ready_to_send(l2cap_channel_t * channel){
|
||||
// send if we have more data and remote windows isn't full yet
|
||||
if (channel->mode == L2CAP_CHANNEL_MODE_ENHANCED_RETRANSMISSION) {
|
||||
if (channel->unacked_frames >= btstack_min(channel->num_stored_tx_frames, channel->remote_tx_window_size)) return false;
|
||||
return hci_can_send_acl_packet_now(channel->con_handle) != 0;
|
||||
return hci_can_send_acl_packet_now(channel->con_handle);
|
||||
}
|
||||
#endif
|
||||
if (!channel->waiting_for_can_send_now) return false;
|
||||
return hci_can_send_acl_packet_now(channel->con_handle) != 0;
|
||||
return hci_can_send_acl_packet_now(channel->con_handle);
|
||||
case L2CAP_CHANNEL_TYPE_FIXED_CLASSIC:
|
||||
case L2CAP_CHANNEL_TYPE_CONNECTIONLESS:
|
||||
if (!channel->waiting_for_can_send_now) return false;
|
||||
return hci_can_send_acl_classic_packet_now() != 0;
|
||||
return hci_can_send_acl_classic_packet_now();
|
||||
#endif
|
||||
#ifdef ENABLE_BLE
|
||||
case L2CAP_CHANNEL_TYPE_FIXED_LE:
|
||||
if (!channel->waiting_for_can_send_now) return false;
|
||||
return hci_can_send_acl_le_packet_now() != 0;
|
||||
return hci_can_send_acl_le_packet_now();
|
||||
#ifdef ENABLE_L2CAP_LE_CREDIT_BASED_FLOW_CONTROL_MODE
|
||||
case L2CAP_CHANNEL_TYPE_CHANNEL_CBM:
|
||||
if (channel->state != L2CAP_STATE_OPEN) return false;
|
||||
if (channel->send_sdu_buffer == NULL) return false;
|
||||
if (channel->credits_outgoing == 0u) return false;
|
||||
return hci_can_send_acl_packet_now(channel->con_handle) != 0;
|
||||
return hci_can_send_acl_packet_now(channel->con_handle);
|
||||
#endif
|
||||
#endif
|
||||
#ifdef ENABLE_L2CAP_ENHANCED_CREDIT_BASED_FLOW_CONTROL_MODE
|
||||
@ -2623,7 +2624,7 @@ static bool l2cap_channel_ready_to_send(l2cap_channel_t * channel){
|
||||
if (channel->state != L2CAP_STATE_OPEN) return false;
|
||||
if (channel->send_sdu_buffer == NULL) return false;
|
||||
if (channel->credits_outgoing == 0u) return false;
|
||||
return hci_can_send_acl_packet_now(channel->con_handle) != 0;
|
||||
return hci_can_send_acl_packet_now(channel->con_handle);
|
||||
#endif
|
||||
default:
|
||||
return false;
|
||||
|
@ -124,7 +124,8 @@ typedef enum {
|
||||
L2CAP_CHANNEL_TYPE_CLASSIC, // Classic Basic or ERTM
|
||||
L2CAP_CHANNEL_TYPE_CONNECTIONLESS, // Classic Connectionless
|
||||
L2CAP_CHANNEL_TYPE_CHANNEL_CBM, // LE
|
||||
L2CAP_CHANNEL_TYPE_FIXED_LE, // LE ATT + SM, Classic SM
|
||||
L2CAP_CHANNEL_TYPE_FIXED_LE, // LE ATT + SM
|
||||
L2CAP_CHANNEL_TYPE_FIXED_CLASSIC, // Classic SM
|
||||
L2CAP_CHANNEL_TYPE_CHANNEL_ECBM // Classic + LE
|
||||
} l2cap_channel_type_t;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user