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 "pa_adapter_manager.h"
17 #include "pro_audio_stream_manager.h"
18 
19 namespace OHOS {
20 namespace AudioStandard {
GetPlaybackManager(ManagerType managerType)21 IStreamManager &IStreamManager::GetPlaybackManager(ManagerType managerType)
22 {
23     switch (managerType) {
24         case DIRECT_PLAYBACK:
25             static ProAudioStreamManager directManager(DIRECT_PLAYBACK);
26             return directManager;
27         case VOIP_PLAYBACK:
28             static ProAudioStreamManager voipManager(VOIP_PLAYBACK);
29             return voipManager;
30         case PLAYBACK:
31         default:
32             static PaAdapterManager adapterManager(PLAYBACK);
33             return adapterManager;
34     }
35 }
36 
GetDupPlaybackManager()37 IStreamManager &IStreamManager::GetDupPlaybackManager()
38 {
39     static PaAdapterManager adapterManager(DUP_PLAYBACK);
40     return adapterManager;
41 }
42 
GetDualPlaybackManager()43 IStreamManager &IStreamManager::GetDualPlaybackManager()
44 {
45     static PaAdapterManager adapterManager(DUAL_PLAYBACK);
46     return adapterManager;
47 }
48 
GetRecorderManager()49 IStreamManager &IStreamManager::GetRecorderManager()
50 {
51     static PaAdapterManager adapterManager(RECORDER);
52     return adapterManager;
53 }
54 } // namespace AudioStandard
55 } // namespace OHOS
56