| /* |
| * Copyright 2020 HIMSA II K/S - www.himsa.com. |
| * Represented by EHIMA - www.ehima.com |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #pragma once |
| |
| #include <cstdint> |
| |
| #include "hcimsgs.h" |
| #include "stack/include/bt_hdr.h" |
| #include "stack/include/bt_octets.h" |
| |
| namespace bluetooth { |
| namespace hci { |
| constexpr uint8_t kIsoCodingFormatLc3 = 0x06; |
| constexpr uint8_t kIsoCodingFormatVendorSpecific = 0xFF; |
| |
| constexpr uint8_t kIsoCigPackingSequential = 0x00; |
| constexpr uint8_t kIsoCigPackingInterleaved = 0x01; |
| |
| constexpr uint8_t kIsoCigFramingUnframed = 0x00; |
| constexpr uint8_t kIsoCigFramingFramed = 0x01; |
| |
| constexpr uint8_t kIsoCigPhy1M = 0x01; |
| constexpr uint8_t kIsoCigPhy2M = 0x02; |
| constexpr uint8_t kIsoCigPhyC = 0x04; |
| |
| namespace iso_manager { |
| |
| constexpr uint8_t kIsoDataPathDirectionIn = 0x00; |
| constexpr uint8_t kIsoDataPathDirectionOut = 0x01; |
| |
| constexpr uint8_t kIsoDataPathHci = 0x00; |
| constexpr uint8_t kIsoDataPathDisabled = 0xFF; |
| |
| constexpr uint8_t kIsoSca251To500Ppm = 0x00; |
| constexpr uint8_t kIsoSca151To250Ppm = 0x01; |
| constexpr uint8_t kIsoSca101To150Ppm = 0x02; |
| constexpr uint8_t kIsoSca76To100Ppm = 0x03; |
| constexpr uint8_t kIsoSca51To75Ppm = 0x04; |
| constexpr uint8_t kIsoSca31To50Ppm = 0x05; |
| constexpr uint8_t kIsoSca21To30Ppm = 0x06; |
| constexpr uint8_t kIsoSca0To20Ppm = 0x07; |
| |
| constexpr uint8_t kIsoEventCisDataAvailable = 0x00; |
| constexpr uint8_t kIsoEventCisEstablishCmpl = 0x01; |
| constexpr uint8_t kIsoEventCisDisconnected = 0x02; |
| |
| constexpr uint8_t kIsoEventCigOnCreateCmpl = 0x00; |
| constexpr uint8_t kIsoEventCigOnReconfigureCmpl = 0x01; |
| constexpr uint8_t kIsoEventCigOnRemoveCmpl = 0x02; |
| |
| constexpr uint8_t kIsoEventBigOnCreateCmpl = 0x00; |
| constexpr uint8_t kIsoEventBigOnTerminateCmpl = 0x01; |
| |
| struct cig_create_params { |
| uint32_t sdu_itv_mtos; |
| uint32_t sdu_itv_stom; |
| uint8_t sca; |
| uint8_t packing; |
| uint8_t framing; |
| uint16_t max_trans_lat_stom; |
| uint16_t max_trans_lat_mtos; |
| std::vector<EXT_CIS_CFG> cis_cfgs; |
| }; |
| |
| struct cig_remove_cmpl_evt { |
| uint8_t status; |
| uint8_t cig_id; |
| }; |
| |
| struct cig_create_cmpl_evt { |
| uint8_t status; |
| uint8_t cig_id; |
| std::vector<uint16_t> conn_handles; |
| }; |
| |
| struct cis_data_evt { |
| uint8_t cig_id; |
| uint16_t cis_conn_hdl; |
| uint32_t ts; |
| uint16_t evt_lost; |
| BT_HDR* p_msg; |
| }; |
| |
| struct cis_establish_params { |
| std::vector<EXT_CIS_CREATE_CFG> conn_pairs; |
| }; |
| |
| struct cis_establish_cmpl_evt { |
| uint8_t status; |
| uint8_t cig_id; |
| uint16_t cis_conn_hdl; |
| uint32_t cig_sync_delay; |
| uint32_t cis_sync_delay; |
| uint32_t trans_lat_mtos; |
| uint32_t trans_lat_stom; |
| uint8_t phy_mtos; |
| uint8_t phy_stom; |
| uint8_t nse; |
| uint8_t bn_mtos; |
| uint8_t bn_stom; |
| uint8_t ft_mtos; |
| uint8_t ft_stom; |
| uint16_t max_pdu_mtos; |
| uint16_t max_pdu_stom; |
| uint16_t iso_itv; |
| }; |
| |
| struct cis_disconnected_evt { |
| uint8_t reason; |
| uint8_t cig_id; |
| uint16_t cis_conn_hdl; |
| }; |
| |
| struct big_create_params { |
| uint8_t adv_handle; |
| uint8_t num_bis; |
| uint32_t sdu_itv; |
| uint16_t max_sdu_size; |
| uint16_t max_transport_latency; |
| uint8_t rtn; |
| uint8_t phy; |
| uint8_t packing; |
| uint8_t framing; |
| uint8_t enc; |
| std::array<uint8_t, 16> enc_code; |
| }; |
| |
| struct big_create_cmpl_evt { |
| uint8_t status; |
| uint8_t big_id; |
| uint32_t big_sync_delay; |
| uint32_t transport_latency_big; |
| uint8_t phy; |
| uint8_t nse; |
| uint8_t bn; |
| uint8_t pto; |
| uint8_t irc; |
| uint16_t max_pdu; |
| uint16_t iso_interval; |
| std::vector<uint16_t> conn_handles; |
| }; |
| |
| struct big_terminate_cmpl_evt { |
| uint8_t big_id; |
| uint8_t reason; |
| }; |
| |
| struct iso_data_path_params { |
| uint8_t data_path_dir; |
| uint8_t data_path_id; |
| uint8_t codec_id_format; |
| uint16_t codec_id_company; |
| uint16_t codec_id_vendor; |
| uint32_t controller_delay; |
| std::vector<uint8_t> codec_conf; |
| }; |
| |
| } // namespace iso_manager |
| } // namespace hci |
| } // namespace bluetooth |