Loading system/bta/le_audio/devices.cc +38 −0 Original line number Diff line number Diff line Loading @@ -447,6 +447,44 @@ void LeAudioDeviceGroup::SetTransportLatency(uint8_t direction, *transport_latency_us = new_transport_latency_us; } uint8_t LeAudioDeviceGroup::GetRtn(uint8_t direction, uint8_t cis_id) { LeAudioDevice* leAudioDevice = GetFirstActiveDevice(); LOG_ASSERT(leAudioDevice) << __func__ << " Shouldn't be called without an active device."; do { auto ases_pair = leAudioDevice->GetAsesByCisId(cis_id); if (ases_pair.sink && direction == types::kLeAudioDirectionSink) { return ases_pair.sink->retrans_nb; } else if (ases_pair.source && direction == types::kLeAudioDirectionSource) { return ases_pair.source->retrans_nb; } } while ((leAudioDevice = GetNextActiveDevice(leAudioDevice))); return 0; } uint16_t LeAudioDeviceGroup::GetMaxSduSize(uint8_t direction, uint8_t cis_id) { LeAudioDevice* leAudioDevice = GetFirstActiveDevice(); LOG_ASSERT(leAudioDevice) << __func__ << " Shouldn't be called without an active device."; do { auto ases_pair = leAudioDevice->GetAsesByCisId(cis_id); if (ases_pair.sink && direction == types::kLeAudioDirectionSink) { return ases_pair.sink->max_sdu_size; } else if (ases_pair.source && direction == types::kLeAudioDirectionSource) { return ases_pair.source->max_sdu_size; } } while ((leAudioDevice = GetNextActiveDevice(leAudioDevice))); return 0; } uint8_t LeAudioDeviceGroup::GetPhyBitmask(uint8_t direction) { LeAudioDevice* leAudioDevice = GetFirstActiveDevice(); LOG_ASSERT(leAudioDevice) Loading system/bta/le_audio/devices.h +2 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,8 @@ class LeAudioDeviceGroup { uint16_t GetMaxTransportLatencyStom(void); uint16_t GetMaxTransportLatencyMtos(void); void SetTransportLatency(uint8_t direction, uint32_t transport_latency_us); uint8_t GetRtn(uint8_t direction, uint8_t cis_id); uint16_t GetMaxSduSize(uint8_t direction, uint8_t cis_id); uint8_t GetPhyBitmask(uint8_t direction); uint8_t GetTargetPhy(uint8_t direction); bool GetPresentationDelay(uint32_t* delay, uint8_t direction); Loading system/bta/le_audio/state_machine.cc +8 −10 Original line number Diff line number Diff line Loading @@ -954,23 +954,21 @@ class LeAudioGroupStateMachineImpl : public LeAudioGroupStateMachine { /* CIS configuration already on list */ if (iter != cis_cfgs.end()) continue; auto ases_pair = leAudioDevice->GetAsesByCisId(cis); EXT_CIS_CFG cis_cfg = {0, 0, 0, 0, 0, 0, 0}; cis_cfg.cis_id = ase->cis_id; cis_cfg.max_sdu_size_mtos = group->GetMaxSduSize( le_audio::types::kLeAudioDirectionSink, ase->cis_id); cis_cfg.max_sdu_size_stom = group->GetMaxSduSize( le_audio::types::kLeAudioDirectionSource, ase->cis_id); cis_cfg.phy_mtos = group->GetPhyBitmask(le_audio::types::kLeAudioDirectionSink); cis_cfg.phy_stom = group->GetPhyBitmask(le_audio::types::kLeAudioDirectionSource); if (ases_pair.sink) { cis_cfg.max_sdu_size_mtos = ases_pair.sink->max_sdu_size; cis_cfg.rtn_mtos = ases_pair.sink->retrans_nb; } if (ases_pair.source) { cis_cfg.max_sdu_size_stom = ases_pair.source->max_sdu_size; cis_cfg.rtn_stom = ases_pair.source->retrans_nb; } cis_cfg.rtn_mtos = group->GetRtn(le_audio::types::kLeAudioDirectionSink, ase->cis_id); cis_cfg.rtn_stom = group->GetRtn( le_audio::types::kLeAudioDirectionSource, ase->cis_id); cis_cfgs.push_back(cis_cfg); } while ((ase = leAudioDevice->GetNextActiveAse(ase))); Loading Loading
system/bta/le_audio/devices.cc +38 −0 Original line number Diff line number Diff line Loading @@ -447,6 +447,44 @@ void LeAudioDeviceGroup::SetTransportLatency(uint8_t direction, *transport_latency_us = new_transport_latency_us; } uint8_t LeAudioDeviceGroup::GetRtn(uint8_t direction, uint8_t cis_id) { LeAudioDevice* leAudioDevice = GetFirstActiveDevice(); LOG_ASSERT(leAudioDevice) << __func__ << " Shouldn't be called without an active device."; do { auto ases_pair = leAudioDevice->GetAsesByCisId(cis_id); if (ases_pair.sink && direction == types::kLeAudioDirectionSink) { return ases_pair.sink->retrans_nb; } else if (ases_pair.source && direction == types::kLeAudioDirectionSource) { return ases_pair.source->retrans_nb; } } while ((leAudioDevice = GetNextActiveDevice(leAudioDevice))); return 0; } uint16_t LeAudioDeviceGroup::GetMaxSduSize(uint8_t direction, uint8_t cis_id) { LeAudioDevice* leAudioDevice = GetFirstActiveDevice(); LOG_ASSERT(leAudioDevice) << __func__ << " Shouldn't be called without an active device."; do { auto ases_pair = leAudioDevice->GetAsesByCisId(cis_id); if (ases_pair.sink && direction == types::kLeAudioDirectionSink) { return ases_pair.sink->max_sdu_size; } else if (ases_pair.source && direction == types::kLeAudioDirectionSource) { return ases_pair.source->max_sdu_size; } } while ((leAudioDevice = GetNextActiveDevice(leAudioDevice))); return 0; } uint8_t LeAudioDeviceGroup::GetPhyBitmask(uint8_t direction) { LeAudioDevice* leAudioDevice = GetFirstActiveDevice(); LOG_ASSERT(leAudioDevice) Loading
system/bta/le_audio/devices.h +2 −0 Original line number Diff line number Diff line Loading @@ -243,6 +243,8 @@ class LeAudioDeviceGroup { uint16_t GetMaxTransportLatencyStom(void); uint16_t GetMaxTransportLatencyMtos(void); void SetTransportLatency(uint8_t direction, uint32_t transport_latency_us); uint8_t GetRtn(uint8_t direction, uint8_t cis_id); uint16_t GetMaxSduSize(uint8_t direction, uint8_t cis_id); uint8_t GetPhyBitmask(uint8_t direction); uint8_t GetTargetPhy(uint8_t direction); bool GetPresentationDelay(uint32_t* delay, uint8_t direction); Loading
system/bta/le_audio/state_machine.cc +8 −10 Original line number Diff line number Diff line Loading @@ -954,23 +954,21 @@ class LeAudioGroupStateMachineImpl : public LeAudioGroupStateMachine { /* CIS configuration already on list */ if (iter != cis_cfgs.end()) continue; auto ases_pair = leAudioDevice->GetAsesByCisId(cis); EXT_CIS_CFG cis_cfg = {0, 0, 0, 0, 0, 0, 0}; cis_cfg.cis_id = ase->cis_id; cis_cfg.max_sdu_size_mtos = group->GetMaxSduSize( le_audio::types::kLeAudioDirectionSink, ase->cis_id); cis_cfg.max_sdu_size_stom = group->GetMaxSduSize( le_audio::types::kLeAudioDirectionSource, ase->cis_id); cis_cfg.phy_mtos = group->GetPhyBitmask(le_audio::types::kLeAudioDirectionSink); cis_cfg.phy_stom = group->GetPhyBitmask(le_audio::types::kLeAudioDirectionSource); if (ases_pair.sink) { cis_cfg.max_sdu_size_mtos = ases_pair.sink->max_sdu_size; cis_cfg.rtn_mtos = ases_pair.sink->retrans_nb; } if (ases_pair.source) { cis_cfg.max_sdu_size_stom = ases_pair.source->max_sdu_size; cis_cfg.rtn_stom = ases_pair.source->retrans_nb; } cis_cfg.rtn_mtos = group->GetRtn(le_audio::types::kLeAudioDirectionSink, ase->cis_id); cis_cfg.rtn_stom = group->GetRtn( le_audio::types::kLeAudioDirectionSource, ase->cis_id); cis_cfgs.push_back(cis_cfg); } while ((ase = leAudioDevice->GetNextActiveAse(ase))); Loading