blob: daa253ef005c814bec043b4e43f20f05de45d195 [file] [log] [blame]
/*
* 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