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

Commit 7abb5293 authored by Jakub Pawłowski's avatar Jakub Pawłowski Committed by Automerger Merge Worker
Browse files

Merge "leaudio: Improve stream reconfiguration" am: f525ddde am: 9001a01f...

Merge "leaudio: Improve stream reconfiguration" am: f525ddde am: 9001a01f am: a900f684 am: 95f4aa71 am: 03de04af

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/2059951



Change-Id: Id96d19d93c37e4b4374138454054ab1dc68d4b14
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 9ab52598 03de04af
Loading
Loading
Loading
Loading
+44 −37
Original line number Original line Diff line number Diff line
@@ -2735,7 +2735,7 @@ class LeAudioClientImpl : public LeAudioClient {
          case AudioState::READY_TO_START:
          case AudioState::READY_TO_START:
          case AudioState::STARTED:
          case AudioState::STARTED:
            audio_sender_state_ = AudioState::READY_TO_START;
            audio_sender_state_ = AudioState::READY_TO_START;
            /* If signalling part is completed trigger start reveivin audio
            /* If signalling part is completed trigger start receiving audio
             * here, otherwise it'll be called on group streaming state callback
             * here, otherwise it'll be called on group streaming state callback
             */
             */
            if (group->GetState() ==
            if (group->GetState() ==
@@ -2744,30 +2744,33 @@ class LeAudioClientImpl : public LeAudioClient {
            }
            }
            break;
            break;
          case AudioState::RELEASING:
          case AudioState::RELEASING:
          case AudioState::READY_TO_RELEASE:
            /* Group is reconfiguring, reassing state and wait for
            /* If group is reconfiguring, reassing state and wait for
             * the stream to be configured
             * the stream to be established
             */
             */
            if (group->IsPendingConfiguration()) {
            audio_sender_state_ = audio_receiver_state_;
            audio_sender_state_ = audio_receiver_state_;
              return;
            break;
            }
          case AudioState::READY_TO_RELEASE:
            FALLTHROUGH;
            LOG_WARN(
          default:
                " called in wrong state. \n audio_receiver_state: %s \n"
            LeAudioClientAudioSource::CancelStreamingRequest();
                "audio_sender_state: %s \n",
                ToString(audio_receiver_state_).c_str(),
                ToString(audio_sender_state_).c_str());
            CancelStreamingRequest();
            break;
            break;
        }
        }

        break;
        break;
      case AudioState::READY_TO_START:
      case AudioState::READY_TO_START:
        LOG(WARNING) << __func__
        LOG_WARN(
                     << " called in wrong state. \n audio_receiver_state: "
            " called in wrong state. \n audio_receiver_state: %s \n"
                     << audio_receiver_state_ << "\n"
            "audio_sender_state: %s \n",
                     << " audio_sender_state: " << audio_sender_state_ << "\n";
            ToString(audio_receiver_state_).c_str(),
            ToString(audio_sender_state_).c_str());
        CancelStreamingRequest();
        break;
        break;
      case AudioState::READY_TO_RELEASE:
      case AudioState::READY_TO_RELEASE:
        switch (audio_receiver_state_) {
        switch (audio_receiver_state_) {
          case AudioState::STARTED:
          case AudioState::STARTED:
          case AudioState::READY_TO_START:
          case AudioState::IDLE:
          case AudioState::IDLE:
          case AudioState::READY_TO_RELEASE:
          case AudioState::READY_TO_RELEASE:
            /* Stream is up just restore it */
            /* Stream is up just restore it */
@@ -2777,13 +2780,13 @@ class LeAudioClientImpl : public LeAudioClient {
            LeAudioClientAudioSource::ConfirmStreamingRequest();
            LeAudioClientAudioSource::ConfirmStreamingRequest();
            break;
            break;
          case AudioState::RELEASING:
          case AudioState::RELEASING:
          default:
            /* Keep wainting. After release is done, Audio Hal will be notified
            LeAudioClientAudioSource::CancelStreamingRequest();
             */
            break;
        }
        }
        break;
        break;
      case AudioState::RELEASING:
      case AudioState::RELEASING:
        /* Keep wainting */
        /* Keep wainting. After release is done, Audio Hal will be notified */
        LeAudioClientAudioSource::CancelStreamingRequest();
        break;
        break;
    }
    }
  }
  }
@@ -2878,30 +2881,34 @@ class LeAudioClientImpl : public LeAudioClient {
            }
            }
            break;
            break;
          case AudioState::RELEASING:
          case AudioState::RELEASING:
          case AudioState::READY_TO_RELEASE:
            /* Group is reconfiguring, reassing state and wait for
            /* If group is reconfiguring, reassing state and wait for
             * the stream to be configured
             * the stream to be established
             */
             */
            if (group->IsPendingConfiguration()) {
            audio_receiver_state_ = audio_sender_state_;
            audio_receiver_state_ = audio_sender_state_;
              return;
            break;
            }
          case AudioState::READY_TO_RELEASE:
            FALLTHROUGH;
            LOG_WARN(
          default:
                " called in wrong state. \n audio_receiver_state: %s \n"
            LeAudioClientAudioSink::CancelStreamingRequest();
                "audio_sender_state: %s \n",
                ToString(audio_receiver_state_).c_str(),
                ToString(audio_sender_state_).c_str());
            CancelStreamingRequest();
            break;
            break;
        }
        }
        break;
        break;
      case AudioState::READY_TO_START:
      case AudioState::READY_TO_START:
        LOG(WARNING) << __func__
        LOG_WARN(
                     << " called in wrong state. \n audio_receiver_state: "
            " called in wrong state. \n audio_receiver_state: %s \n"
                     << audio_receiver_state_ << "\n"
            "audio_sender_state: %s \n",
                     << " audio_sender_state: " << audio_sender_state_ << "\n";
            ToString(audio_receiver_state_).c_str(),
            ToString(audio_sender_state_).c_str());
        CancelStreamingRequest();
        break;
        break;
      case AudioState::READY_TO_RELEASE:
      case AudioState::READY_TO_RELEASE:
        switch (audio_sender_state_) {
        switch (audio_sender_state_) {
          case AudioState::STARTED:
          case AudioState::STARTED:
          case AudioState::IDLE:
          case AudioState::IDLE:
          case AudioState::READY_TO_START:
          case AudioState::READY_TO_RELEASE:
          case AudioState::READY_TO_RELEASE:
            /* Stream is up just restore it */
            /* Stream is up just restore it */
            audio_receiver_state_ = AudioState::STARTED;
            audio_receiver_state_ = AudioState::STARTED;
@@ -2910,13 +2917,13 @@ class LeAudioClientImpl : public LeAudioClient {
            LeAudioClientAudioSink::ConfirmStreamingRequest();
            LeAudioClientAudioSink::ConfirmStreamingRequest();
            break;
            break;
          case AudioState::RELEASING:
          case AudioState::RELEASING:
          default:
            /* Wait until releasing is completed */
            LeAudioClientAudioSink::CancelStreamingRequest();
            break;
        }
        }


        break;
        break;
      case AudioState::RELEASING:
      case AudioState::RELEASING:
        LeAudioClientAudioSink::CancelStreamingRequest();
        /* Wait until releasing is completed */
        break;
        break;
    }
    }
  }
  }