| /* |
| * Copyright 2020 The Fuchsia Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef SRC_CONNECTIVITY_BLUETOOTH_CORE_BT_HOST_SCO_SCO_H_ |
| #define SRC_CONNECTIVITY_BLUETOOTH_CORE_BT_HOST_SCO_SCO_H_ |
| |
| #include "src/connectivity/bluetooth/core/bt-host/hci-spec/constants.h" |
| |
| namespace bt::sco { |
| |
| // Codec SCO parameter sets as defined in HFP specification (v1.8, section 5.7). |
| struct ParameterSet { |
| uint16_t packet_types; |
| uint32_t transmit_receive_bandwidth; |
| hci::CodingFormat transmit_receive_format; |
| uint16_t max_latency_ms; |
| hci::ScoRetransmissionEffort retransmission_effort; |
| }; |
| |
| constexpr ParameterSet kParameterSetMsbcT1{ |
| .packet_types = static_cast<uint8_t>(hci::ScoPacketTypeBits::kEv3) | |
| static_cast<uint8_t>(hci::ScoPacketTypeBits::kNot2Ev3), |
| .transmit_receive_bandwidth = 8000, |
| .transmit_receive_format = hci::CodingFormat::kTransparent, |
| .max_latency_ms = 8, |
| .retransmission_effort = hci::ScoRetransmissionEffort::kQualityOptimized}; |
| |
| constexpr ParameterSet kParameterSetMsbcT2{ |
| .packet_types = static_cast<uint8_t>(hci::ScoPacketTypeBits::kEv3), |
| .transmit_receive_bandwidth = 8000, |
| .transmit_receive_format = hci::CodingFormat::kTransparent, |
| .max_latency_ms = 13, |
| .retransmission_effort = hci::ScoRetransmissionEffort::kQualityOptimized}; |
| |
| constexpr ParameterSet kParameterSetCvsdS1{ |
| .packet_types = static_cast<uint8_t>(hci::ScoPacketTypeBits::kEv3) | |
| static_cast<uint8_t>(hci::ScoPacketTypeBits::kNot2Ev3), |
| .transmit_receive_bandwidth = 8000, |
| .transmit_receive_format = hci::CodingFormat::kCvsd, |
| .max_latency_ms = 7, |
| .retransmission_effort = hci::ScoRetransmissionEffort::kPowerOptimized}; |
| |
| constexpr ParameterSet kParameterSetCvsdS2{ |
| .packet_types = static_cast<uint8_t>(hci::ScoPacketTypeBits::kEv3), |
| .transmit_receive_bandwidth = 8000, |
| .transmit_receive_format = hci::CodingFormat::kCvsd, |
| .max_latency_ms = 7, |
| .retransmission_effort = hci::ScoRetransmissionEffort::kPowerOptimized}; |
| |
| constexpr ParameterSet kParameterSetCvsdS3{ |
| .packet_types = static_cast<uint8_t>(hci::ScoPacketTypeBits::kEv3), |
| .transmit_receive_bandwidth = 8000, |
| .transmit_receive_format = hci::CodingFormat::kCvsd, |
| .max_latency_ms = 10, |
| .retransmission_effort = hci::ScoRetransmissionEffort::kPowerOptimized}; |
| |
| constexpr ParameterSet kParameterSetCvsdS4{ |
| .packet_types = static_cast<uint8_t>(hci::ScoPacketTypeBits::kEv3), |
| .transmit_receive_bandwidth = 8000, |
| .transmit_receive_format = hci::CodingFormat::kCvsd, |
| .max_latency_ms = 12, |
| .retransmission_effort = hci::ScoRetransmissionEffort::kQualityOptimized}; |
| |
| constexpr ParameterSet kParameterSetCvsdD0{ |
| .packet_types = static_cast<uint8_t>(hci::ScoPacketTypeBits::kHv1), |
| .transmit_receive_bandwidth = 8000, |
| .transmit_receive_format = hci::CodingFormat::kCvsd, |
| .max_latency_ms = 0xFFFF, |
| .retransmission_effort = hci::ScoRetransmissionEffort::kDontCare}; |
| |
| constexpr ParameterSet kParameterSetCvsdD1{ |
| .packet_types = static_cast<uint8_t>(hci::ScoPacketTypeBits::kHv3), |
| .transmit_receive_bandwidth = 8000, |
| .transmit_receive_format = hci::CodingFormat::kCvsd, |
| .max_latency_ms = 0xFFFF, |
| .retransmission_effort = hci::ScoRetransmissionEffort::kDontCare}; |
| |
| } // namespace bt::sco |
| |
| #endif // SRC_CONNECTIVITY_BLUETOOTH_CORE_BT_HOST_SCO_SCO_H_ |