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

Commit e27d31ef authored by Łukasz Rymanowski's avatar Łukasz Rymanowski Committed by Automerger Merge Worker
Browse files

leaudio: Improve handling OnAudioSink/SourceResume am: d563197c am: d8eeac70

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

Change-Id: Ieea6ab0329ebd7c360fdcf4662f2cded36699add
parents f61559e5 d8eeac70
Loading
Loading
Loading
Loading
+47 −28
Original line number Diff line number Diff line
@@ -2486,22 +2486,33 @@ class LeAudioClientImpl : public LeAudioClient {
        LeAudioClientAudioSource::ConfirmStreamingRequest();
        break;
      case AudioState::IDLE:
        if (audio_receiver_state_ == AudioState::IDLE) {
        switch (audio_receiver_state_) {
          case AudioState::IDLE:
            /* Stream is not started. Try to do it.*/
            if (OnAudioResume(group)) {
              audio_sender_state_ = AudioState::READY_TO_START;
            } else {
              LeAudioClientAudioSource::CancelStreamingRequest();
            }
        } else {
          /* Stream has been started by the Source. */
            break;
          case AudioState::READY_TO_START:
          case AudioState::STARTED:
            audio_sender_state_ = AudioState::READY_TO_START;
          if (group->GetState() == AseState::BTA_LE_AUDIO_ASE_STATE_STREAMING) {
            /* If signalling part is completed trigger start reveivin audio
             * here, otherwise it'll be called on group streaming state callback
             */
            if (group->GetState() ==
                AseState::BTA_LE_AUDIO_ASE_STATE_STREAMING) {
              StartSendingAudio(active_group_id_);
          } else {
            LeAudioClientAudioSource::CancelStreamingRequest();
            }
            break;
          case AudioState::RELEASING:
          case AudioState::READY_TO_RELEASE:
          default:
            LeAudioClientAudioSink::CancelStreamingRequest();
            break;
        }

        break;
      case AudioState::READY_TO_START:
        LOG(WARNING) << __func__
@@ -2604,22 +2615,30 @@ class LeAudioClientImpl : public LeAudioClient {
        LeAudioClientAudioSink::ConfirmStreamingRequest();
        break;
      case AudioState::IDLE:
        if (audio_sender_state_ == AudioState::IDLE) {
        switch (audio_sender_state_) {
          case AudioState::IDLE:
            if (OnAudioResume(group)) {
              audio_receiver_state_ = AudioState::READY_TO_START;
            } else {
              LeAudioClientAudioSink::CancelStreamingRequest();
            }
        } else {
            break;
          case AudioState::READY_TO_START:
          case AudioState::STARTED:
            audio_receiver_state_ = AudioState::READY_TO_START;
          /* If signalling part is completed trigger start reveivin audio here,
           * otherwise it'll be called on group streaming state callback
            /* If signalling part is completed trigger start reveivin audio
             * here, otherwise it'll be called on group streaming state callback
             */
          if (group->GetState() == AseState::BTA_LE_AUDIO_ASE_STATE_STREAMING) {
            if (group->GetState() ==
                AseState::BTA_LE_AUDIO_ASE_STATE_STREAMING) {
              StartReceivingAudio(active_group_id_);
          } else {
            LeAudioClientAudioSink::CancelStreamingRequest();
            }
            break;
          case AudioState::RELEASING:
          case AudioState::READY_TO_RELEASE:
          default:
            LeAudioClientAudioSink::CancelStreamingRequest();
            break;
        }
        break;
      case AudioState::READY_TO_START: