1 /* 2 * Copyright (c) 2024-2025 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 "multimedia_audio_manager_impl.h" 17 #include "cj_lambda.h" 18 #include "audio_manager_log.h" 19 #include "multimedia_audio_common.h" 20 #include "multimedia_audio_error.h" 21 #include "multimedia_audio_routing_manager_impl.h" 22 #include "multimedia_audio_stream_manager_impl.h" 23 #include "multimedia_audio_volume_manager_impl.h" 24 25 namespace OHOS { 26 namespace AudioStandard { 27 extern "C" { MMAAudioManagerImpl()28MMAAudioManagerImpl::MMAAudioManagerImpl() 29 { 30 audioMgr_ = AudioSystemManager::GetInstance(); 31 } 32 GetAudioScene()33int32_t MMAAudioManagerImpl::GetAudioScene() 34 { 35 auto scene = audioMgr_->GetAudioScene(); 36 if (scene == AUDIO_SCENE_VOICE_RINGING) { 37 scene = AUDIO_SCENE_RINGING; 38 } 39 return scene; 40 } 41 GetStreamManger(int32_t * errorCode)42int64_t MMAAudioManagerImpl::GetStreamManger(int32_t *errorCode) 43 { 44 auto mgr = FFIData::Create<MMAAudioStreamManagerImpl>(); 45 if (!mgr) { 46 *errorCode = CJ_ERR_SYSTEM; 47 AUDIO_ERR_LOG("Create StreamManger error"); 48 return CJ_ERR_INVALID_RETURN_VALUE; 49 } 50 *errorCode = SUCCESS_CODE; 51 return mgr->GetID(); 52 } 53 GetRoutingManager(int32_t * errorCode)54int64_t MMAAudioManagerImpl::GetRoutingManager(int32_t *errorCode) 55 { 56 auto mgr = FFIData::Create<MMAAudioRoutingManagerImpl>(); 57 if (!mgr) { 58 *errorCode = CJ_ERR_SYSTEM; 59 AUDIO_ERR_LOG("Create RoutingManager error"); 60 return CJ_ERR_INVALID_RETURN_VALUE; 61 } 62 *errorCode = SUCCESS_CODE; 63 return mgr->GetID(); 64 } GetVolumeManager(int32_t * errorCode)65int64_t MMAAudioManagerImpl::GetVolumeManager(int32_t *errorCode) 66 { 67 auto mgr = FFIData::Create<MMAAudioVolumeManagerImpl>(); 68 if (mgr == nullptr) { 69 *errorCode = CJ_ERR_SYSTEM; 70 AUDIO_ERR_LOG("GetVolumeManager failed."); 71 return CJ_ERR_INVALID_RETURN_VALUE; 72 } 73 *errorCode = SUCCESS_CODE; 74 return mgr->GetID(); 75 } 76 } 77 } // namespace AudioStandard 78 } // namespace OHOS 79