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 | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/components/application_manager/src/application_manager_impl.cc b/src/components/application_manager/src/application_manager_impl.cc index f16c21ea84..248b54fee5 100644 --- a/src/components/application_manager/src/application_manager_impl.cc +++ b/src/components/application_manager/src/application_manager_impl.cc @@ -143,6 +143,7 @@ ApplicationManagerImpl::ApplicationManagerImpl( : settings_(am_settings) , applications_list_lock_(true) , audio_pass_thru_active_(false) + , audio_pass_thru_app_id_(0) , driver_distraction_state_( hmi_apis::Common_DriverDistractionState::INVALID_ENUM) , is_vr_session_strated_(false) @@ -784,6 +785,17 @@ bool ApplicationManagerImpl::BeginAudioPassThrough() { } } +bool ApplicationManagerImpl::BeginAudioPassThru(uint32_t app_id) { + sync_primitives::AutoLock lock(audio_pass_thru_lock_); + if (audio_pass_thru_active_) { + return false; + } else { + audio_pass_thru_active_ = true; + audio_pass_thru_app_id_ = app_id; + return true; + } +} + bool ApplicationManagerImpl::EndAudioPassThrough() { sync_primitives::AutoLock lock(audio_pass_thru_lock_); if (audio_pass_thru_active_) { @@ -794,6 +806,17 @@ bool ApplicationManagerImpl::EndAudioPassThrough() { } } +bool ApplicationManagerImpl::EndAudioPassThru(uint32_t app_id) { + sync_primitives::AutoLock lock(audio_pass_thru_lock_); + if (audio_pass_thru_active_ && audio_pass_thru_app_id_ == app_id) { + audio_pass_thru_active_ = false; + audio_pass_thru_app_id_ = 0; + return true; + } else { + return false; + } +} + hmi_apis::Common_DriverDistractionState::eType ApplicationManagerImpl::driver_distraction_state() const { return driver_distraction_state_; @@ -3222,9 +3245,8 @@ void ApplicationManagerImpl::UnregisterApplication( commands_holder_->Clear(app_to_remove); - if (audio_pass_thru_active_) { + if (EndAudioPassThru(app_id)) { // May be better to put this code in MessageHelper? - EndAudioPassThrough(); StopAudioPassThru(app_id); MessageHelper::SendStopAudioPathThru(*this); } @@ -4441,6 +4463,11 @@ void ApplicationManagerImpl::AddMockApplication(ApplicationSharedPtr mock_app) { apps_size_ = applications_.size(); applications_list_lock_.Release(); } + +void ApplicationManagerImpl::SetMockMediaManager( + media_manager::MediaManager* mock_media_manager) { + media_manager_ = mock_media_manager; +} #endif // BUILD_TESTS #ifdef SDL_REMOTE_CONTROL struct MobileAppIdPredicate { |