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