1 /* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "audio_state_manager.h" 17 #include "audio_log.h" 18 19 using namespace std; 20 21 namespace OHOS { 22 namespace AudioStandard { 23 SetPreferredMediaRenderDevice(const sptr<AudioDeviceDescriptor> & deviceDescriptor)24void AudioStateManager::SetPreferredMediaRenderDevice(const sptr<AudioDeviceDescriptor> &deviceDescriptor) 25 { 26 preferredMediaRenderDevice_ = deviceDescriptor; 27 } 28 SetPreferredCallRenderDevice(const sptr<AudioDeviceDescriptor> & deviceDescriptor)29void AudioStateManager::SetPreferredCallRenderDevice(const sptr<AudioDeviceDescriptor> &deviceDescriptor) 30 { 31 preferredCallRenderDevice_ = deviceDescriptor; 32 } 33 SetPreferredCallCaptureDevice(const sptr<AudioDeviceDescriptor> & deviceDescriptor)34void AudioStateManager::SetPreferredCallCaptureDevice(const sptr<AudioDeviceDescriptor> &deviceDescriptor) 35 { 36 std::lock_guard<std::mutex> lock(mutex_); 37 preferredCallCaptureDevice_ = deviceDescriptor; 38 } 39 SetPreferredRingRenderDevice(const sptr<AudioDeviceDescriptor> & deviceDescriptor)40void AudioStateManager::SetPreferredRingRenderDevice(const sptr<AudioDeviceDescriptor> &deviceDescriptor) 41 { 42 preferredRingRenderDevice_ = deviceDescriptor; 43 } 44 SetPreferredRecordCaptureDevice(const sptr<AudioDeviceDescriptor> & deviceDescriptor)45void AudioStateManager::SetPreferredRecordCaptureDevice(const sptr<AudioDeviceDescriptor> &deviceDescriptor) 46 { 47 preferredRecordCaptureDevice_ = deviceDescriptor; 48 } 49 SetPreferredToneRenderDevice(const sptr<AudioDeviceDescriptor> & deviceDescriptor)50void AudioStateManager::SetPreferredToneRenderDevice(const sptr<AudioDeviceDescriptor> &deviceDescriptor) 51 { 52 preferredToneRenderDevice_ = deviceDescriptor; 53 } 54 GetPreferredMediaRenderDevice()55unique_ptr<AudioDeviceDescriptor> AudioStateManager::GetPreferredMediaRenderDevice() 56 { 57 unique_ptr<AudioDeviceDescriptor> devDesc = make_unique<AudioDeviceDescriptor>(preferredMediaRenderDevice_); 58 return devDesc; 59 } 60 GetPreferredCallRenderDevice()61unique_ptr<AudioDeviceDescriptor> AudioStateManager::GetPreferredCallRenderDevice() 62 { 63 unique_ptr<AudioDeviceDescriptor> devDesc = make_unique<AudioDeviceDescriptor>(preferredCallRenderDevice_); 64 return devDesc; 65 } 66 GetPreferredCallCaptureDevice()67unique_ptr<AudioDeviceDescriptor> AudioStateManager::GetPreferredCallCaptureDevice() 68 { 69 std::lock_guard<std::mutex> lock(mutex_); 70 unique_ptr<AudioDeviceDescriptor> devDesc = make_unique<AudioDeviceDescriptor>(preferredCallCaptureDevice_); 71 return devDesc; 72 } 73 GetPreferredRingRenderDevice()74unique_ptr<AudioDeviceDescriptor> AudioStateManager::GetPreferredRingRenderDevice() 75 { 76 unique_ptr<AudioDeviceDescriptor> devDesc = make_unique<AudioDeviceDescriptor>(preferredRingRenderDevice_); 77 return devDesc; 78 } 79 GetPreferredRecordCaptureDevice()80unique_ptr<AudioDeviceDescriptor> AudioStateManager::GetPreferredRecordCaptureDevice() 81 { 82 unique_ptr<AudioDeviceDescriptor> devDesc = make_unique<AudioDeviceDescriptor>(preferredRecordCaptureDevice_); 83 return devDesc; 84 } 85 GetPreferredToneRenderDevice()86unique_ptr<AudioDeviceDescriptor> AudioStateManager::GetPreferredToneRenderDevice() 87 { 88 unique_ptr<AudioDeviceDescriptor> devDesc = make_unique<AudioDeviceDescriptor>(preferredToneRenderDevice_); 89 return devDesc; 90 } 91 UpdatePreferredMediaRenderDeviceConnectState(ConnectState state)92void AudioStateManager::UpdatePreferredMediaRenderDeviceConnectState(ConnectState state) 93 { 94 CHECK_AND_RETURN_LOG(preferredMediaRenderDevice_ != nullptr, "preferredMediaRenderDevice_ is nullptr"); 95 preferredMediaRenderDevice_->connectState_ = state; 96 } 97 UpdatePreferredCallRenderDeviceConnectState(ConnectState state)98void AudioStateManager::UpdatePreferredCallRenderDeviceConnectState(ConnectState state) 99 { 100 CHECK_AND_RETURN_LOG(preferredCallRenderDevice_ != nullptr, "preferredCallRenderDevice_ is nullptr"); 101 preferredCallRenderDevice_->connectState_ = state; 102 } 103 UpdatePreferredCallCaptureDeviceConnectState(ConnectState state)104void AudioStateManager::UpdatePreferredCallCaptureDeviceConnectState(ConnectState state) 105 { 106 CHECK_AND_RETURN_LOG(preferredCallCaptureDevice_ != nullptr, "preferredCallCaptureDevice_ is nullptr"); 107 preferredCallCaptureDevice_->connectState_ = state; 108 } 109 UpdatePreferredRecordCaptureDeviceConnectState(ConnectState state)110void AudioStateManager::UpdatePreferredRecordCaptureDeviceConnectState(ConnectState state) 111 { 112 CHECK_AND_RETURN_LOG(preferredRecordCaptureDevice_ != nullptr, "preferredRecordCaptureDevice_ is nullptr"); 113 preferredRecordCaptureDevice_->connectState_ = state; 114 } 115 } // namespace AudioStandard 116 } // namespace OHOS 117