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_utils.h" 17 #include "audio_engine_log.h" 18 #ifdef SUPPORT_OLD_ENGINE 19 #include "pa_adapter_manager.h" 20 #endif 21 #include "hpae_adapter_manager.h" 22 #include "pro_audio_stream_manager.h" 23 24 namespace OHOS { 25 namespace AudioStandard { GetPlaybackManager(ManagerType managerType)26IStreamManager &IStreamManager::GetPlaybackManager(ManagerType managerType) 27 { 28 switch (managerType) { 29 case DIRECT_PLAYBACK: 30 static ProAudioStreamManager directManager(DIRECT_PLAYBACK); 31 return directManager; 32 case EAC3_PLAYBACK: 33 static ProAudioStreamManager eac3Manager(EAC3_PLAYBACK); 34 return eac3Manager; 35 case VOIP_PLAYBACK: 36 static ProAudioStreamManager voipManager(VOIP_PLAYBACK); 37 return voipManager; 38 case PLAYBACK: 39 default: 40 #ifdef SUPPORT_OLD_ENGINE 41 int32_t engineFlag = GetEngineFlag(); 42 if (engineFlag == 1) { 43 static HpaeAdapterManager adapterManager(PLAYBACK); 44 return adapterManager; 45 } else { 46 static PaAdapterManager adapterManager(PLAYBACK); 47 return adapterManager; 48 } 49 #else 50 static HpaeAdapterManager adapterManager(PLAYBACK); 51 return adapterManager; 52 #endif 53 } 54 } 55 GetDupPlaybackManager()56IStreamManager &IStreamManager::GetDupPlaybackManager() 57 { 58 #ifdef SUPPORT_OLD_ENGINE 59 int32_t engineFlag = GetEngineFlag(); 60 if (engineFlag == 1) { 61 static HpaeAdapterManager adapterManager(DUP_PLAYBACK); 62 return adapterManager; 63 } else { 64 static PaAdapterManager adapterManager(DUP_PLAYBACK); 65 return adapterManager; 66 } 67 #else 68 static HpaeAdapterManager adapterManager(DUP_PLAYBACK); 69 return adapterManager; 70 #endif 71 } 72 GetDualPlaybackManager()73IStreamManager &IStreamManager::GetDualPlaybackManager() 74 { 75 #ifdef SUPPORT_OLD_ENGINE 76 int32_t engineFlag = GetEngineFlag(); 77 if (engineFlag == 1) { 78 static HpaeAdapterManager adapterManager(DUAL_PLAYBACK); 79 return adapterManager; 80 } else { 81 static PaAdapterManager adapterManager(DUAL_PLAYBACK); 82 return adapterManager; 83 } 84 #else 85 static HpaeAdapterManager adapterManager(DUAL_PLAYBACK); 86 return adapterManager; 87 #endif 88 } 89 GetRecorderManager()90IStreamManager &IStreamManager::GetRecorderManager() 91 { 92 #ifdef SUPPORT_OLD_ENGINE 93 int32_t engineFlag = GetEngineFlag(); 94 if (engineFlag == 1) { 95 static HpaeAdapterManager adapterManager(RECORDER); 96 return adapterManager; 97 } else { 98 static PaAdapterManager adapterManager(RECORDER); 99 return adapterManager; 100 } 101 #else 102 static HpaeAdapterManager adapterManager(RECORDER); 103 return adapterManager; 104 #endif 105 } 106 } // namespace AudioStandard 107 } // namespace OHOS 108