Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7cb623f1 authored by Jakub Pawłowski's avatar Jakub Pawłowski Committed by Gerrit Code Review
Browse files

Merge "leaudio: Do not start stream if there is pending reconfiguration"

parents 5c09eefa 59acd539
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -671,6 +671,12 @@ class LeAudioClientImpl : public LeAudioClient {
      return false;
    }

    if (group->IsPendingConfiguration()) {
      LOG_WARN("Group %d is reconfiguring right now. Drop the update",
               group->group_id_);
      return false;
    }

    bool result = groupStateMachine_->StartStream(
        group, static_cast<LeAudioContextType>(final_context_type),
        metadata_context_type, GetAllCcids(metadata_context_type));
+4 −0
Original line number Diff line number Diff line
@@ -1775,6 +1775,10 @@ void LeAudioDeviceGroup::SetPendingConfiguration(void) {
  stream_conf.pending_configuration = true;
}

void LeAudioDeviceGroup::ClearPendingConfiguration(void) {
  stream_conf.pending_configuration = false;
}

bool LeAudioDeviceGroup::IsConfigurationSupported(
    LeAudioDevice* leAudioDevice,
    const set_configurations::AudioSetConfiguration* audio_set_conf) {
+1 −0
Original line number Diff line number Diff line
@@ -285,6 +285,7 @@ class LeAudioDeviceGroup {
  types::LeAudioContextType GetCurrentContextType(void);
  bool IsPendingConfiguration(void);
  void SetPendingConfiguration(void);
  void ClearPendingConfiguration(void);
  bool IsConfigurationSupported(
      LeAudioDevice* leAudioDevice,
      const set_configurations::AudioSetConfiguration* audio_set_conf);
+1 −0
Original line number Diff line number Diff line
@@ -649,6 +649,7 @@ class UnicastTestNoInit : public Test {
          group->SetTargetState(
              types::AseState::BTA_LE_AUDIO_ASE_STATE_CODEC_CONFIGURED);
          group->SetState(group->GetTargetState());
          group->ClearPendingConfiguration();
          do_in_main_thread(
              FROM_HERE, base::BindOnce(
                             [](int group_id,
+4 −4
Original line number Diff line number Diff line
@@ -1582,9 +1582,9 @@ class LeAudioGroupStateMachineImpl : public LeAudioGroupStateMachine {

          if (group->GetTargetState() ==
                  AseState::BTA_LE_AUDIO_ASE_STATE_CODEC_CONFIGURED &&
              group->stream_conf.pending_configuration) {
              group->IsPendingConfiguration()) {
            LOG_INFO(" Configured state completed ");
            group->stream_conf.pending_configuration = false;
            group->ClearPendingConfiguration();
            state_machine_callbacks_->StatusReportCb(
                group->group_id_, GroupStreamStatus::CONFIGURED_BY_USER);

@@ -1667,9 +1667,9 @@ class LeAudioGroupStateMachineImpl : public LeAudioGroupStateMachine {

          if (group->GetTargetState() ==
                  AseState::BTA_LE_AUDIO_ASE_STATE_CODEC_CONFIGURED &&
              group->stream_conf.pending_configuration) {
              group->IsPendingConfiguration()) {
            LOG_INFO(" Configured state completed ");
            group->stream_conf.pending_configuration = false;
            group->ClearPendingConfiguration();
            state_machine_callbacks_->StatusReportCb(
                group->group_id_, GroupStreamStatus::CONFIGURED_BY_USER);