diff options
Diffstat (limited to 'src/components/application_manager/src/application_manager_impl.cc')
-rw-r--r-- | src/components/application_manager/src/application_manager_impl.cc | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc index 4a206e19cd..7b4920630b 100644 --- a/src/components/application_manager/src/application_manager_impl.cc +++ b/src/components/application_manager/src/application_manager_impl.cc @@ -3566,7 +3566,9 @@ void ApplicationManagerImpl::ForbidStreaming( } void ApplicationManagerImpl::OnAppStreaming( - uint32_t app_id, protocol_handler::ServiceType service_type, bool state) { + uint32_t app_id, + protocol_handler::ServiceType service_type, + const Application::StreamingState new_state) { SDL_LOG_AUTO_TRACE(); ApplicationSharedPtr app = application(app_id); @@ -3577,12 +3579,31 @@ void ApplicationManagerImpl::OnAppStreaming( } DCHECK_OR_RETURN_VOID(media_manager_); - if (state) { - state_ctrl_.OnVideoStreamingStarted(app); - media_manager_->StartStreaming(app_id, service_type); - } else { - media_manager_->StopStreaming(app_id, service_type); - state_ctrl_.OnVideoStreamingStopped(app); + SDL_LOG_DEBUG("New state for service " << static_cast<int32_t>(service_type) + << " is " + << static_cast<int32_t>(new_state)); + switch (new_state) { + case Application::StreamingState::kStopped: { + // Stop activity in media_manager_ when service is stopped + // State controller has been already notified by kSuspended event + // received before + media_manager_->StopStreaming(app_id, service_type); + break; + } + + case Application::StreamingState::kStarted: { + // Apply temporary streaming state and start activity in media_manager_ + state_ctrl_.OnVideoStreamingStarted(app); + media_manager_->StartStreaming(app_id, service_type); + break; + } + + case Application::StreamingState::kSuspended: { + // Don't stop activity in media_manager_ in that case + // Just cancel the temporary streaming state + state_ctrl_.OnVideoStreamingStopped(app); + break; + } } } |