diff --git a/common/include/daudio_log.h b/common/include/daudio_log.h index 5f19498ef184aa96882e64ad1b91638ee6f693d2..7e98f0b229a6d42cb490c5b5bf5edeaba5e10b6f 100644 --- a/common/include/daudio_log.h +++ b/common/include/daudio_log.h @@ -38,6 +38,22 @@ void DHLog(DHLogLevel logLevel, const char *fmt, ...); #define DHLOGE(fmt, ...) DHLog(DH_LOG_ERROR, \ (std::string("[") + DH_LOG_TAG + "][" + __FUNCTION__ + "]:" + fmt).c_str(), ##__VA_ARGS__) + +#define CHECK_NULL_VOID(ptr) \ + do { \ + if (ptr == nullptr) { \ + DHLOGE("Address pointer is null");\ + return; \ + } \ + } while (0) + +#define CHECK_NULL_RETURN(ptr, ret) \ + do { \ + if (ptr == nullptr) { \ + DHLOGE("Address pointer is null");\ + return ret; \ + } \ + } while (0) } // namespace DistributedHardware } // namespace OHOS #endif // OHOS_DAUDIO_LOG_H diff --git a/services/audioclient/micclient/src/dmic_client.cpp b/services/audioclient/micclient/src/dmic_client.cpp index 24b8c9f12c6fd743b86be67ab8f573ccb5006e60..394a389b5cc9d7893d6dc8d9f08473239ca9bfe3 100644 --- a/services/audioclient/micclient/src/dmic_client.cpp +++ b/services/audioclient/micclient/src/dmic_client.cpp @@ -50,10 +50,7 @@ void DMicClient::OnEngineTransEvent(const AVTransEvent &event) void DMicClient::OnEngineTransMessage(const std::shared_ptr &message) { - if (message == nullptr) { - DHLOGE("The parameter is nullptr"); - return; - } + CHECK_NULL_VOID(message); DHLOGI("On Engine message, type : %s.", GetEventNameByType(message->type_).c_str()); DAudioSinkManager::GetInstance().HandleDAudioNotify(message->dstDevId_, message->dstDevId_, static_cast(message->type_), message->content_); @@ -78,10 +75,8 @@ int32_t DMicClient::OnStateChange(const AudioEventType type) DHLOGD("On state change type: %d.", type); AudioEvent event; cJSON *jParam = cJSON_CreateObject(); - if (jParam == nullptr) { - DHLOGE("Failed to create cJSON object."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(jParam, ERR_DH_AUDIO_NULLPTR); + cJSON_AddStringToObject(jParam, KEY_DH_ID, std::to_string(dhId_).c_str()); char *jsonData = cJSON_PrintUnformatted(jParam); if (jsonData == nullptr) { @@ -112,10 +107,7 @@ int32_t DMicClient::OnStateChange(const AudioEventType type) } std::shared_ptr cbObj = eventCallback_.lock(); - if (cbObj == nullptr) { - DHLOGE("Event callback is nullptr."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(cbObj, ERR_DH_AUDIO_NULLPTR); cbObj->NotifyEvent(event); return DH_SUCCESS; } @@ -136,10 +128,7 @@ int32_t DMicClient::AudioFwkClientSetUp() }; std::lock_guard lck(devMtx_); audioCapturer_ = AudioStandard::AudioCapturer::Create(capturerOptions); - if (audioCapturer_ == nullptr) { - DHLOGE("Audio capturer create failed."); - return ERR_DH_AUDIO_CLIENT_CAPTURER_CREATE_FAILED; - } + CHECK_NULL_RETURN(audioCapturer_, ERR_DH_AUDIO_CLIENT_CAPTURER_CREATE_FAILED); if (audioParam_.captureOpts.capturerFlags == MMAP_MODE) { int32_t ret = audioCapturer_->SetCapturerReadCallback(shared_from_this()); if (ret != DH_SUCCESS) { @@ -152,10 +141,7 @@ int32_t DMicClient::AudioFwkClientSetUp() int32_t DMicClient::TransSetUp() { - if (micTrans_ == nullptr) { - DHLOGE("mic trans in engine should be init by dev."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(micTrans_, ERR_DH_AUDIO_NULLPTR); int32_t ret = micTrans_->SetUp(audioParam_, audioParam_, shared_from_this(), CAP_MIC); if (ret != DH_SUCCESS) { DHLOGE("Mic trans setup failed."); @@ -184,10 +170,7 @@ int32_t DMicClient::SendMessage(uint32_t type, std::string content, std::string DHLOGE("event type is not NOTIFY_OPEN_MIC or NOTIFY_CLOSE_MIC or CLOSE_MIC. type: %u", type); return ERR_DH_AUDIO_NULLPTR; } - if (micTrans_ == nullptr) { - DHLOGE("mic trans is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(micTrans_, ERR_DH_AUDIO_NULLPTR); micTrans_->SendMessage(type, content, dstDevId); return DH_SUCCESS; } @@ -196,9 +179,9 @@ int32_t DMicClient::Release() { DHLOGI("Release mic client."); std::lock_guard lck(devMtx_); - if ((clientStatus_ != AudioStatus::STATUS_READY && clientStatus_ != AudioStatus::STATUS_STOP) || - micTrans_ == nullptr) { - DHLOGE("Mic status is wrong or mic trans is null, %d.", (int32_t)clientStatus_); + CHECK_NULL_RETURN(micTrans_, ERR_DH_AUDIO_SA_STATUS_ERR); + if (clientStatus_ != AudioStatus::STATUS_READY && clientStatus_ != AudioStatus::STATUS_STOP) { + DHLOGE("Mic status is wrong, %d.", (int32_t)clientStatus_); return ERR_DH_AUDIO_SA_STATUS_ERR; } bool isReleaseError = false; @@ -223,16 +206,15 @@ int32_t DMicClient::StartCapture() { DHLOGI("Start capturer."); std::lock_guard lck(devMtx_); - if (micTrans_ == nullptr || clientStatus_ != AudioStatus::STATUS_READY) { + CHECK_NULL_RETURN(micTrans_, ERR_DH_AUDIO_SA_STATUS_ERR); + CHECK_NULL_RETURN(audioCapturer_, ERR_DH_AUDIO_NULLPTR); + + if (clientStatus_ != AudioStatus::STATUS_READY) { DHLOGE("Audio capturer init failed or mic status wrong, status: %d.", (int32_t)clientStatus_); DAudioHisysevent::GetInstance().SysEventWriteFault(DAUDIO_OPT_FAIL, ERR_DH_AUDIO_SA_STATUS_ERR, "daudio init failed or mic status wrong."); return ERR_DH_AUDIO_SA_STATUS_ERR; } - if (audioCapturer_ == nullptr) { - DHLOGE("audio capturer is nullptr."); - return ERR_DH_AUDIO_NULLPTR; - } if (!audioCapturer_->Start()) { DHLOGE("Audio capturer start failed."); audioCapturer_->Release(); @@ -257,10 +239,8 @@ void DMicClient::AudioFwkCaptureData() size_t bytesRead = 0; bool errorFlag = false; int64_t startTime = GetNowTimeUs(); - if (audioCapturer_ == nullptr) { - DHLOGE("audio capturer is nullptr"); - return; - } + CHECK_NULL_VOID(audioCapturer_); + while (bytesRead < audioParam_.comParam.frameSize) { int32_t len = audioCapturer_->Read(*(audioData->Data() + bytesRead), audioParam_.comParam.frameSize - bytesRead, isBlocking_.load()); @@ -322,15 +302,14 @@ int32_t DMicClient::OnDecodeTransDataDone(const std::shared_ptr &audi void DMicClient::OnReadData(size_t length) { AudioStandard::BufferDesc bufDesc; - if (audioCapturer_ == nullptr) { - DHLOGE("audioCapturer is nullptr."); - return; - } - int32_t ret = audioCapturer_->GetBufferDesc(bufDesc); - if (ret != DH_SUCCESS || bufDesc.buffer == nullptr || bufDesc.bufLength == 0) { - DHLOGE("Get buffer desc failed. On read data."); + CHECK_NULL_VOID(audioCapturer_); + + if (audioCapturer_->GetBufferDesc(bufDesc) != DH_SUCCESS || bufDesc.bufLength == 0) { + DHLOGE("Get buffer desc failed."); return; } + CHECK_NULL_VOID(bufDesc.buffer); + std::shared_ptr audioData = std::make_shared(audioParam_.comParam.frameSize); if (audioData->Capacity() != bufDesc.bufLength) { DHLOGE("Audio data length is not equal to buflength. datalength: %d, bufLength: %d", @@ -340,10 +319,8 @@ void DMicClient::OnReadData(size_t length) DHLOGE("Copy audio data failed."); } audioCapturer_->Enqueue(bufDesc); - if (micTrans_ == nullptr) { - DHLOGE("Mic trans is nullptr."); - return; - } + + CHECK_NULL_VOID(micTrans_); if (micTrans_->FeedAudioData(audioData) != DH_SUCCESS) { DHLOGE("Failed to send data."); } @@ -359,12 +336,7 @@ int32_t DMicClient::StopCapture() "daudio capturer is not start or mic status wrong."); return ERR_DH_AUDIO_SA_STATUS_ERR; } - if (micTrans_ == nullptr) { - DHLOGE("The capturer or mictrans is not instantiated."); - DAudioHisysevent::GetInstance().SysEventWriteFault(DAUDIO_OPT_FAIL, - ERR_DH_AUDIO_NULLPTR, "daudio capturer or mictrans is not instantiated."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(micTrans_, ERR_DH_AUDIO_NULLPTR); isBlocking_.store(false); if (audioParam_.captureOpts.capturerFlags != MMAP_MODE && isCaptureReady_.load()) { diff --git a/services/audioclient/spkclient/src/dspeaker_client.cpp b/services/audioclient/spkclient/src/dspeaker_client.cpp index ae932fe948f2d750a7db1cf65b0b3a84ed15cd6a..9b8a9cf0917251665fb590e83a8f2298f00875c8 100644 --- a/services/audioclient/spkclient/src/dspeaker_client.cpp +++ b/services/audioclient/spkclient/src/dspeaker_client.cpp @@ -46,10 +46,7 @@ void DSpeakerClient::OnEngineTransEvent(const AVTransEvent &event) void DSpeakerClient::OnEngineTransMessage(const std::shared_ptr &message) { - if (message == nullptr) { - DHLOGE("The parameter is nullptr"); - return; - } + CHECK_NULL_VOID(message); DHLOGI("On Engine message, type : %s.", GetEventNameByType(message->type_).c_str()); DAudioSinkManager::GetInstance().HandleDAudioNotify(message->dstDevId_, message->dstDevId_, static_cast(message->type_), message->content_); @@ -97,10 +94,8 @@ int32_t DSpeakerClient::CreateAudioRenderer(const AudioParam ¶m) }; std::lock_guard lck(devMtx_); audioRenderer_ = AudioStandard::AudioRenderer::Create(rendererOptions); - if (audioRenderer_ == nullptr) { - DHLOGE("Audio renderer create failed."); - return ERR_DH_AUDIO_CLIENT_RENDER_CREATE_FAILED; - } + CHECK_NULL_RETURN(audioRenderer_, ERR_DH_AUDIO_CLIENT_RENDER_CREATE_FAILED); + audioRenderer_ ->SetRendererCallback(shared_from_this()); if (audioParam_.renderOpts.renderFlags != MMAP_MODE) { return DH_SUCCESS; @@ -116,15 +111,13 @@ int32_t DSpeakerClient::CreateAudioRenderer(const AudioParam ¶m) void DSpeakerClient::OnWriteData(size_t length) { AudioStandard::BufferDesc bufDesc; - if (audioRenderer_ == nullptr) { - DHLOGE("AudioRenderer is nullptr."); - return; - } - int32_t ret = audioRenderer_->GetBufferDesc(bufDesc); - if (ret != DH_SUCCESS || bufDesc.buffer == nullptr || bufDesc.bufLength == 0) { + CHECK_NULL_VOID(audioRenderer_); + if (audioRenderer_->GetBufferDesc(bufDesc) != DH_SUCCESS || bufDesc.bufLength == 0) { DHLOGE("Get buffer desc failed."); return; } + CHECK_NULL_VOID(bufDesc.buffer); + std::shared_ptr audioData = nullptr; { std::unique_lock spkLck(dataQueueMtx_); @@ -154,10 +147,8 @@ int32_t DSpeakerClient::SetUp(const AudioParam ¶m) DHLOGE("Set up failed, Create Audio renderer failed."); return ret; } - if (speakerTrans_ == nullptr) { - DHLOGE("Speaker trans should be init by dev."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speakerTrans_, ERR_DH_AUDIO_NULLPTR); + ret = speakerTrans_->SetUp(audioParam_, audioParam_, shared_from_this(), CAP_SPK); if (ret != DH_SUCCESS) { DHLOGE("Speaker trans setup failed."); @@ -217,12 +208,8 @@ int32_t DSpeakerClient::StartRender() { DHLOGI("Start spk client."); std::lock_guard lck(devMtx_); - if (audioRenderer_ == nullptr || clientStatus_ != AudioStatus::STATUS_READY) { - DHLOGE("Audio renderer init failed or spk status wrong, status: %d.", (int32_t)clientStatus_); - DAudioHisysevent::GetInstance().SysEventWriteFault(DAUDIO_OPT_FAIL, ERR_DH_AUDIO_SA_STATUS_ERR, - "daudio renderer init failed or spk status wrong."); - return ERR_DH_AUDIO_SA_STATUS_ERR; - } + CHECK_NULL_RETURN(audioRenderer_, ERR_DH_AUDIO_SA_STATUS_ERR); + if (!audioRenderer_->Start()) { DHLOGE("Audio renderer start failed."); DAudioHisysevent::GetInstance().SysEventWriteFault(DAUDIO_OPT_FAIL, ERR_DH_AUDIO_CLIENT_RENDER_STARTUP_FAILURE, @@ -353,10 +340,8 @@ int32_t DSpeakerClient::OnDecodeTransDataDone(const std::shared_ptr & { DHLOGI("Write stream buffer."); int64_t startTime = GetNowTimeUs(); - if (audioData == nullptr) { - DHLOGE("The parameter is empty."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(audioData, ERR_DH_AUDIO_NULLPTR); + std::lock_guard lock(dataQueueMtx_); while (dataQueue_.size() > DATA_QUEUE_MAX_SIZE) { DHLOGD("Data queue overflow."); @@ -395,10 +380,7 @@ int32_t DSpeakerClient::OnStateChange(const AudioEventType type) } std::shared_ptr cbObj = eventCallback_.lock(); - if (cbObj == nullptr) { - DHLOGE("Event callback is nullptr."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(cbObj, ERR_DH_AUDIO_NULLPTR); cbObj->NotifyEvent(event); return DH_SUCCESS; } @@ -413,10 +395,8 @@ string DSpeakerClient::GetVolumeLevel() int32_t minVolumeLevel = AudioStandard::AudioSystemManager::GetInstance()->GetMinVolume(volumeType); bool isUpdateUi = false; cJSON *jParam = cJSON_CreateObject(); - if (jParam == nullptr) { - DHLOGE("Failed to create cJSON object."); - return ""; - } + CHECK_NULL_RETURN(jParam, ""); + cJSON_AddStringToObject(jParam, KEY_DH_ID, std::to_string(dhId_).c_str()); cJSON_AddStringToObject(jParam, KEY_CHANGE_TYPE, FIRST_VOLUME_CHANAGE); cJSON_AddStringToObject(jParam, AUDIO_STREAM_TYPE, std::to_string(streamType).c_str()); @@ -441,15 +421,11 @@ void DSpeakerClient::OnVolumeKeyEvent(AudioStandard::VolumeEvent volumeEvent) { DHLOGD("Volume change event."); std::shared_ptr cbObj = eventCallback_.lock(); - if (cbObj == nullptr) { - DHLOGE("Event callback is nullptr."); - return; - } + CHECK_NULL_VOID(cbObj); + cJSON *jParam = cJSON_CreateObject(); - if (jParam == nullptr) { - DHLOGE("Failed to create cJSON object."); - return; - } + CHECK_NULL_VOID(jParam); + cJSON_AddStringToObject(jParam, KEY_DH_ID, std::to_string(dhId_).c_str()); cJSON_AddStringToObject(jParam, KEY_CHANGE_TYPE, VOLUME_CHANAGE); cJSON_AddStringToObject(jParam, AUDIO_STREAM_TYPE, std::to_string(volumeEvent.volumeType).c_str()); @@ -475,15 +451,11 @@ void DSpeakerClient::OnInterrupt(const AudioStandard::InterruptEvent &interruptE { DHLOGD("Audio focus interrupt event."); std::shared_ptr cbObj = eventCallback_.lock(); - if (cbObj == nullptr) { - DHLOGE("Event callback is nullptr."); - return; - } + CHECK_NULL_VOID(cbObj); + cJSON *jParam = cJSON_CreateObject(); - if (jParam == nullptr) { - DHLOGE("Failed to create cJSON object."); - return; - } + CHECK_NULL_VOID(jParam); + cJSON_AddStringToObject(jParam, KEY_DH_ID, std::to_string(dhId_).c_str()); cJSON_AddStringToObject(jParam, KEY_CHANGE_TYPE, INTERRUPT_EVENT); cJSON_AddStringToObject(jParam, VOLUME_EVENT_TYPE, std::to_string(interruptEvent.eventType).c_str()); @@ -509,15 +481,11 @@ void DSpeakerClient::OnStateChange(const AudioStandard::RendererState state, { DHLOGD("On render state change. state: %d", state); std::shared_ptr cbObj = eventCallback_.lock(); - if (cbObj == nullptr) { - DHLOGE("Event callback is nullptr."); - return; - } + CHECK_NULL_VOID(cbObj); + cJSON *jParam = cJSON_CreateObject(); - if (jParam == nullptr) { - DHLOGE("Failed to create cJSON object."); - return; - } + CHECK_NULL_VOID(jParam); + cJSON_AddStringToObject(jParam, KEY_DH_ID, std::to_string(dhId_).c_str()); cJSON_AddStringToObject(jParam, KEY_CHANGE_TYPE, RENDER_STATE_CHANGE_EVENT); cJSON_AddStringToObject(jParam, KEY_STATE, std::to_string(state).c_str()); @@ -648,10 +616,7 @@ int32_t DSpeakerClient::SendMessage(uint32_t type, std::string content, std::str DHLOGE("event type is not NOTIFY_OPEN_SPK or NOTIFY_CLOSE_SPK. type:%u", type); return ERR_DH_AUDIO_NULLPTR; } - if (speakerTrans_ == nullptr) { - DHLOGE("speaker trans is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speakerTrans_, ERR_DH_AUDIO_NULLPTR); speakerTrans_->SendMessage(type, content, dstDevId); return DH_SUCCESS; } diff --git a/services/audiomanager/managersink/src/daudio_sink_dev.cpp b/services/audiomanager/managersink/src/daudio_sink_dev.cpp index cea5be9993d29e377e6830c3a13d07b4385c56f7..5096b4bbccaabec041e03d6baf69d398c2cecc21 100644 --- a/services/audiomanager/managersink/src/daudio_sink_dev.cpp +++ b/services/audiomanager/managersink/src/daudio_sink_dev.cpp @@ -45,10 +45,7 @@ DAudioSinkDev::~DAudioSinkDev() int32_t DAudioSinkDev::AwakeAudioDev() { auto runner = AppExecFwk::EventRunner::Create(true); - if (runner == nullptr) { - DHLOGE("Create runner failed."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(runner, ERR_DH_AUDIO_NULLPTR); handler_ = std::make_shared(runner, shared_from_this()); return DH_SUCCESS; } @@ -56,10 +53,7 @@ int32_t DAudioSinkDev::AwakeAudioDev() void DAudioSinkDev::SleepAudioDev() { DHLOGD("Sleep audio dev."); - if (handler_ == nullptr) { - DHLOGI("Event handler is already stoped."); - return; - } + CHECK_NULL_VOID(handler_); while (!handler_->IsIdle()) { DHLOGD("handler is running, wait for idle."); usleep(WAIT_HANDLER_IDLE_TIME_US); @@ -70,8 +64,9 @@ void DAudioSinkDev::SleepAudioDev() int32_t DAudioSinkDev::InitAVTransEngines(const ChannelState channelState, IAVEngineProvider *providerPtr) { DHLOGI("Init InitAVTransEngines"); + CHECK_NULL_RETURN(providerPtr, ERR_DH_AUDIO_FAILED); - if (channelState == ChannelState::UNKNOWN || providerPtr == nullptr) { + if (channelState == ChannelState::UNKNOWN) { DHLOGE("The channel type is invalid."); return ERR_DH_AUDIO_FAILED; } @@ -103,10 +98,7 @@ void DAudioSinkDev::NotifyEvent(const AudioEvent &audioEvent) } auto eventParam = std::make_shared(audioEvent); auto msgEvent = AppExecFwk::InnerEvent::Get(static_cast(audioEvent.type), eventParam, 0); - if (handler_ == nullptr) { - DHLOGE("The event handler is null."); - return; - } + CHECK_NULL_VOID(handler_); if (handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { DHLOGD("Send event success."); } @@ -151,11 +143,7 @@ int32_t DAudioSinkDev::TaskOpenDSpeaker(const std::string &args) return ret; } - if (speakerClient == nullptr) { - DHLOGE("speaker client should be init by dev."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(speakerClient, ERR_DH_AUDIO_NULLPTR); ret = speakerClient->SetUp(audioParam); if (ret != DH_SUCCESS) { DHLOGE("Setup speaker failed, ret: %d.", ret); @@ -175,10 +163,7 @@ int32_t DAudioSinkDev::TaskCloseDSpeaker(const std::string &args) } std::lock_guard devLck(spkClientMutex_); auto speakerClient = spkClientMap_[dhId]; - if (speakerClient == nullptr) { - DHLOGE("Speaker client is null or already closed."); - return DH_SUCCESS; - } + CHECK_NULL_RETURN(speakerClient, DH_SUCCESS); int32_t ret = speakerClient->StopRender(); if (ret != DH_SUCCESS) { @@ -197,10 +182,8 @@ int32_t DAudioSinkDev::ParseDhidFromEvent(std::string args) { DHLOGI("ParseDhidFrom args : %s", args.c_str()); cJSON *jParam = cJSON_Parse(args.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON: %s", cJSON_GetErrorPtr()); - return -1; - } + CHECK_NULL_RETURN(jParam, ERR_DH_AUDIO_FAILED); + if (!CJsonParamCheck(jParam, { KEY_DH_ID })) { DHLOGE("Not found the keys of dhId."); cJSON_Delete(jParam); @@ -230,10 +213,8 @@ int32_t DAudioSinkDev::TaskStartRender(const std::string &args) std::lock_guard devLck(spkClientMutex_); speakerClient = spkClientMap_[dhId]; } - if (speakerClient == nullptr) { - DHLOGE("Speaker client is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speakerClient, ERR_DH_AUDIO_NULLPTR); + int32_t ret = speakerClient->StartRender(); if (ret != DH_SUCCESS) { DHLOGE("Start render failed. ret: %d.", ret); @@ -270,10 +251,8 @@ int32_t DAudioSinkDev::TaskOpenDMic(const std::string &args) std::lock_guard devLck(micClientMutex_); micClient = micClientMap_[dhId]; } - if (micClient == nullptr) { - DHLOGE("Mic client should be init by dev."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(micClient, ERR_DH_AUDIO_NULLPTR); + ret = micClient->SetUp(audioParam); if (ret != DH_SUCCESS) { DHLOGE("Set up mic failed, ret: %d.", ret); @@ -299,10 +278,7 @@ int32_t DAudioSinkDev::TaskCloseDMic(const std::string &args) } std::lock_guard devLck(micClientMutex_); std::shared_ptr micClient = micClientMap_[dhId]; - if (micClient == nullptr) { - DHLOGE("Mic client is null or already closed."); - return DH_SUCCESS; - } + CHECK_NULL_RETURN(micClient, DH_SUCCESS); int32_t ret = micClient->StopCapture(); if (ret != DH_SUCCESS) { @@ -338,9 +314,7 @@ int32_t DAudioSinkDev::TaskSetParameter(const std::string &args) std::lock_guard devLck(spkClientMutex_); speakerClient = spkClientMap_[dhId]; } - if (speakerClient == nullptr) { - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speakerClient, ERR_DH_AUDIO_NULLPTR); return speakerClient->SetAudioParameters(event); } @@ -357,10 +331,8 @@ int32_t DAudioSinkDev::TaskSetVolume(const std::string &args) std::lock_guard devLck(spkClientMutex_); speakerClient = spkClientMap_[dhId]; } - if (speakerClient == nullptr) { - DHLOGE("Speaker client already closed."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speakerClient, ERR_DH_AUDIO_NULLPTR); + AudioEvent event(AudioEventType::VOLUME_SET, args); int32_t ret = speakerClient->SetAudioParameters(event); if (ret != DH_SUCCESS) { @@ -384,10 +356,8 @@ int32_t DAudioSinkDev::TaskSetMute(const std::string &args) std::lock_guard devLck(spkClientMutex_); speakerClient = spkClientMap_[dhId]; } - if (speakerClient == nullptr) { - DHLOGE("Speaker client already closed."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speakerClient, ERR_DH_AUDIO_NULLPTR); + AudioEvent event(AudioEventType::VOLUME_MUTE_SET, args); int32_t ret = speakerClient->SetMute(event); if (ret != DH_SUCCESS) { @@ -432,10 +402,7 @@ int32_t DAudioSinkDev::TaskPlayStatusChange(const std::string &args) std::lock_guard devLck(spkClientMutex_); speakerClient = spkClientMap_[dhId]; } - if (speakerClient == nullptr) { - DHLOGE("Speaker client already closed."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speakerClient, ERR_DH_AUDIO_NULLPTR); speakerClient->PlayStatusChange(args); DHLOGD("Play status change success."); return DH_SUCCESS; @@ -455,10 +422,8 @@ int32_t DAudioSinkDev::SendAudioEventToRemote(const AudioEvent &event) std::lock_guard devLck(spkClientMutex_); speakerClient = spkClientMap_[dhId]; } - if (speakerClient == nullptr) { - DHLOGE("Audio ctrl mgr not init."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speakerClient, ERR_DH_AUDIO_NULLPTR); + int32_t ret = speakerClient->SendMessage(static_cast(event.type), event.content, devId_); if (ret != DH_SUCCESS) { @@ -612,10 +577,7 @@ void DAudioSinkDev::SinkEventHandler::NotifyCtrlClosed(const AppExecFwk::InnerEv return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); if (sinkDevObj->TaskCloseDSpeaker(eventParam) != DH_SUCCESS) { DHLOGE("Close speaker failed."); return; @@ -635,10 +597,8 @@ void DAudioSinkDev::SinkEventHandler::NotifyOpenSpeaker(const AppExecFwk::InnerE return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); + json jParam = json::parse(eventParam, nullptr, false); if (!JsonParamCheck(jParam, { KEY_DH_ID, KEY_AUDIO_PARAM })) { DHLOGE("Json param check failed."); @@ -661,10 +621,7 @@ void DAudioSinkDev::SinkEventHandler::NotifyCloseSpeaker(const AppExecFwk::Inner return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); if (sinkDevObj->TaskCloseDSpeaker(eventParam) != DH_SUCCESS) { DHLOGE("Open speaker failed."); return; @@ -680,10 +637,8 @@ void DAudioSinkDev::SinkEventHandler::NotifySpeakerOpened(const AppExecFwk::Inne return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); + if (sinkDevObj->TaskStartRender(eventParam) != DH_SUCCESS) { DHLOGE("Speaker client start failed."); return; @@ -702,10 +657,8 @@ void DAudioSinkDev::SinkEventHandler::NotifySpeakerClosed(const AppExecFwk::Inne return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); + if (sinkDevObj->TaskCloseDSpeaker(eventParam) != DH_SUCCESS) { DHLOGE("Close speaker failed."); return; @@ -720,10 +673,8 @@ void DAudioSinkDev::SinkEventHandler::NotifyOpenMic(const AppExecFwk::InnerEvent return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); + json jParam = json::parse(eventParam, nullptr, false); if (!JsonParamCheck(jParam, { KEY_DH_ID, KEY_AUDIO_PARAM })) { DHLOGE("Json param check failed."); @@ -746,10 +697,8 @@ void DAudioSinkDev::SinkEventHandler::NotifyCloseMic(const AppExecFwk::InnerEven return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); + if (sinkDevObj->TaskCloseDMic(eventParam) != DH_SUCCESS) { DHLOGE("Close mic failed."); return; @@ -770,10 +719,8 @@ void DAudioSinkDev::SinkEventHandler::NotifyMicClosed(const AppExecFwk::InnerEve return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); + if (sinkDevObj->TaskCloseDMic(eventParam) != DH_SUCCESS) { DHLOGE("Close mic failed."); return; @@ -788,10 +735,8 @@ void DAudioSinkDev::SinkEventHandler::NotifySetVolume(const AppExecFwk::InnerEve return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); + if (sinkDevObj->TaskSetVolume(eventParam) != DH_SUCCESS) { DHLOGE("Set volume failed."); return; @@ -806,10 +751,8 @@ void DAudioSinkDev::SinkEventHandler::NotifyVolumeChange(const AppExecFwk::Inner return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); + if (sinkDevObj->TaskVolumeChange(eventParam) != DH_SUCCESS) { DHLOGE("Notify volume change status to source device failed."); return; @@ -824,10 +767,8 @@ void DAudioSinkDev::SinkEventHandler::NotifySetParam(const AppExecFwk::InnerEven return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); + if (sinkDevObj->TaskSetParameter(eventParam) != DH_SUCCESS) { DHLOGE("Set parameters failed."); return; @@ -842,10 +783,8 @@ void DAudioSinkDev::SinkEventHandler::NotifySetMute(const AppExecFwk::InnerEvent return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); + if (sinkDevObj->TaskSetMute(eventParam) != DH_SUCCESS) { DHLOGE("Set mute failed."); return; @@ -860,10 +799,8 @@ void DAudioSinkDev::SinkEventHandler::NotifyFocusChange(const AppExecFwk::InnerE return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); + if (sinkDevObj->TaskFocusChange(eventParam) != DH_SUCCESS) { DHLOGE("Handle focus change event failed."); return; @@ -878,10 +815,8 @@ void DAudioSinkDev::SinkEventHandler::NotifyRenderStateChange(const AppExecFwk:: return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); + if (sinkDevObj->TaskRenderStateChange(eventParam) != DH_SUCCESS) { DHLOGE("Handle render state change failed."); return; @@ -896,10 +831,8 @@ void DAudioSinkDev::SinkEventHandler::NotifyPlayStatusChange(const AppExecFwk::I return; } auto sinkDevObj = sinkDev_.lock(); - if (sinkDevObj == nullptr) { - DHLOGE("Sink dev is invalid."); - return; - } + CHECK_NULL_VOID(sinkDevObj); + if (sinkDevObj->TaskPlayStatusChange(eventParam) != DH_SUCCESS) { DHLOGE("Handle play status change event failed."); return; @@ -909,15 +842,9 @@ void DAudioSinkDev::SinkEventHandler::NotifyPlayStatusChange(const AppExecFwk::I int32_t DAudioSinkDev::SinkEventHandler::GetEventParam(const AppExecFwk::InnerEvent::Pointer &event, std::string &eventParam) { - if (event == nullptr) { - DHLOGE("The input event is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(event, ERR_DH_AUDIO_NULLPTR); std::shared_ptr paramObj = event->GetSharedObject(); - if (paramObj == nullptr) { - DHLOGE("The event parameter object is nullptr."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(paramObj, ERR_DH_AUDIO_NULLPTR); eventParam = paramObj->content; return DH_SUCCESS; } @@ -931,10 +858,8 @@ int32_t DAudioSinkDev::PauseDistributedHardware(const std::string &networkId) std::lock_guard devLck(micClientMutex_); micClient = micClientMap_[dhId]; } - if (micClient == nullptr) { - DHLOGE("Mic client should be init by dev."); - return ERR_DH_AUDIO_NULLPTR; - } + + CHECK_NULL_RETURN(micClient, ERR_DH_AUDIO_NULLPTR); int32_t ret = micClient->PauseCapture(); if (ret != DH_SUCCESS) { DHLOGE("Pause mic client failed, ret: %d.", ret); @@ -951,10 +876,8 @@ int32_t DAudioSinkDev::ResumeDistributedHardware(const std::string &networkId) std::lock_guard devLck(micClientMutex_); micClient = micClientMap_[dhId]; } - if (micClient == nullptr) { - DHLOGE("Mic client should be init by dev."); - return ERR_DH_AUDIO_NULLPTR; - } + + CHECK_NULL_RETURN(micClient, ERR_DH_AUDIO_NULLPTR); int32_t ret = micClient->ResumeCapture(); if (ret != DH_SUCCESS) { DHLOGE("Resume mic client failed, ret: %d.", ret); diff --git a/services/audiomanager/managersink/src/daudio_sink_manager.cpp b/services/audiomanager/managersink/src/daudio_sink_manager.cpp index d4d6d81724b46b069bae33c4d08ecb8549020c10..c05403b35a161fa158787940b5f1f260e44f8897 100644 --- a/services/audiomanager/managersink/src/daudio_sink_manager.cpp +++ b/services/audiomanager/managersink/src/daudio_sink_manager.cpp @@ -65,36 +65,33 @@ int32_t DAudioSinkManager::Init(const sptr &sinkCallback DHLOGI("Init audio sink manager."); initCallback_ = std::make_shared(); ipcSinkCallback_ = sinkCallback; - int32_t ret = GetLocalDeviceNetworkId(localNetworkId_); - if (ret != DH_SUCCESS) { - DHLOGE("Get local network id failed, ret: %d.", ret); - return ret; + if (GetLocalDeviceNetworkId(localNetworkId_) != DH_SUCCESS) { + DHLOGE("Get local network id failed."); + return ERR_DH_AUDIO_FAILED; } - ret = LoadAVReceiverEngineProvider(); - if (ret != DH_SUCCESS || rcvProviderPtr_ == nullptr) { - DHLOGE("Load av transport receiver engine provider failed."); + if (LoadAVReceiverEngineProvider() != DH_SUCCESS) { + DHLOGE("Load av receiver engine failed."); return ERR_DH_AUDIO_FAILED; } + CHECK_NULL_RETURN(rcvProviderPtr_, ERR_DH_AUDIO_FAILED); providerListener_ = std::make_shared(); - ret = rcvProviderPtr_->RegisterProviderCallback(providerListener_); - if (ret != DH_SUCCESS) { - DHLOGE("Register av transport receiver Provider Callback failed."); + if (rcvProviderPtr_->RegisterProviderCallback(providerListener_) != DH_SUCCESS) { + DHLOGE("Register av receiver engine callback failed."); return ERR_DH_AUDIO_FAILED; } - DHLOGI("LoadAVReceiverEngineProvider success."); + DHLOGI("Load av receiver engine success."); - ret = LoadAVSenderEngineProvider(); - if (ret != DH_SUCCESS || sendProviderPtr_ == nullptr) { - DHLOGI("Load av transport sender engine provider failed."); + if (LoadAVSenderEngineProvider() != DH_SUCCESS) { + DHLOGI("Load av sender engine provider failed."); return ERR_DH_AUDIO_FAILED; } - ret = sendProviderPtr_->RegisterProviderCallback(providerListener_); - if (ret != DH_SUCCESS) { - DHLOGE("Register av transport sender Provider Callback failed."); + CHECK_NULL_RETURN(sendProviderPtr_, ERR_DH_AUDIO_FAILED); + if (sendProviderPtr_->RegisterProviderCallback(providerListener_) != DH_SUCCESS) { + DHLOGE("Register av sender engine callback failed."); return ERR_DH_AUDIO_FAILED; } - DHLOGI("LoadAVSenderEngineProvider success."); + DHLOGI("Load av sender engine success."); return DH_SUCCESS; } @@ -221,20 +218,13 @@ int32_t DAudioSinkManager::DAudioNotify(const std::string &devId, const std::str } auto samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); - if (samgr == nullptr) { - DHLOGE("Failed to get system ability mgr."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(samgr, ERR_DH_AUDIO_NULLPTR); + auto remoteObject = samgr->GetSystemAbility(DISTRIBUTED_HARDWARE_AUDIO_SOURCE_SA_ID, devId); - if (remoteObject == nullptr) { - DHLOGE("remoteObject is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(remoteObject, ERR_DH_AUDIO_NULLPTR); + sptr remoteSvrProxy = iface_cast(remoteObject); - if (remoteSvrProxy == nullptr) { - DHLOGE("Failed to get remote daudio sink SA."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(remoteSvrProxy, ERR_DH_AUDIO_NULLPTR); { std::lock_guard lck(remoteSvrMutex_); sourceServiceMap_[devId] = remoteSvrProxy; @@ -252,10 +242,7 @@ void DAudioSinkManager::NotifyEvent(const std::string &devId, const int32_t even DHLOGE("Notify event error, dev not exist."); return; } - if (audioDevMap_[devId] == nullptr) { - DHLOGE("Notify event error, dev is nullptr."); - return; - } + CHECK_NULL_VOID(audioDevMap_[devId]); audioDevMap_[devId]->NotifyEvent(audioEvent); } @@ -267,10 +254,7 @@ void DAudioSinkManager::ClearAudioDev(const std::string &devId) DHLOGD("Device not register."); return; } - if (dev->second == nullptr) { - DHLOGD("Device already released."); - return; - } + CHECK_NULL_VOID(dev->second); dev->second->SleepAudioDev(); audioDevMap_.erase(devId); } @@ -285,10 +269,8 @@ int32_t DAudioSinkManager::LoadAVReceiverEngineProvider() return ERR_DH_AUDIO_NULLPTR; } pRHandler_ = dlopen(path, RTLD_LAZY | RTLD_NODELETE); - if (pRHandler_ == nullptr) { - DHLOGE("%s handler load failed, failed reason : %s", path, dlerror()); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(pRHandler_, ERR_DH_AUDIO_NULLPTR); + AVTransProviderClass getEngineFactoryFunc = (AVTransProviderClass)dlsym(pRHandler_, GET_RECEIVER_PROVIDER_FUNC.c_str()); if (getEngineFactoryFunc == nullptr) { @@ -322,10 +304,8 @@ int32_t DAudioSinkManager::LoadAVSenderEngineProvider() return ERR_DH_AUDIO_NULLPTR; } pSHandler_ = dlopen(path, RTLD_LAZY | RTLD_NODELETE); - if (pSHandler_ == nullptr) { - DHLOGE("%s handler load failed, failed reason : %s", path, dlerror()); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(pSHandler_, ERR_DH_AUDIO_NULLPTR); + AVTransProviderClass getEngineFactoryFunc = (AVTransProviderClass)dlsym(pSHandler_, GET_SENDER_PROVIDER_FUNC.c_str()); if (getEngineFactoryFunc == nullptr) { diff --git a/services/audiomanager/managersource/src/daudio_source_dev.cpp b/services/audiomanager/managersource/src/daudio_source_dev.cpp index c9dd1d676c8537f652b0b80ec2386a289b9ff038..5e434236271b50bc18b51f865b4fba44e4302a51 100644 --- a/services/audiomanager/managersource/src/daudio_source_dev.cpp +++ b/services/audiomanager/managersource/src/daudio_source_dev.cpp @@ -91,10 +91,7 @@ DAudioSourceDev::DAudioSourceDev(const std::string &devId, const std::shared_ptr int32_t DAudioSourceDev::AwakeAudioDev() { auto runner = AppExecFwk::EventRunner::Create(true); - if (runner == nullptr) { - DHLOGE("Create runner failed."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(runner, ERR_DH_AUDIO_NULLPTR); handler_ = std::make_shared(runner, shared_from_this()); return DH_SUCCESS; } @@ -102,10 +99,7 @@ int32_t DAudioSourceDev::AwakeAudioDev() void DAudioSourceDev::SleepAudioDev() { DHLOGD("Sleep audio dev."); - if (handler_ == nullptr) { - DHLOGI("Event handler is already stopped."); - return; - } + CHECK_NULL_VOID(handler_); while (!handler_->IsIdle()) { DHLOGD("handler is running, wait for idle."); usleep(WAIT_HANDLER_IDLE_TIME_US); @@ -117,10 +111,8 @@ int32_t DAudioSourceDev::EnableDAudio(const std::string &dhId, const std::string { DHLOGI("Enable audio device, dhId: %s.", dhId.c_str()); isRpcOpen_.store(true); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); + json jParam = { { KEY_DEV_ID, devId_ }, { KEY_DH_ID, dhId }, { KEY_ATTRS, attrs } }; auto eventParam = std::make_shared(jParam); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_DAUDIO_ENABLE, eventParam, 0); @@ -136,10 +128,7 @@ int32_t DAudioSourceDev::DisableDAudio(const std::string &dhId) { DHLOGI("Disable audio device, dhId: %s.", dhId.c_str()); isRpcOpen_.store(false); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); json jParamClose = { { KEY_DH_ID, dhId } }; AudioEvent event(AudioEventType::EVENT_UNKNOWN, jParamClose.dump()); @@ -175,10 +164,7 @@ int32_t DAudioSourceDev::DisableDAudio(const std::string &dhId) int32_t DAudioSourceDev::RestoreThreadStatus() { - if (handler_ == nullptr) { - DHLOGI("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); json jParam; auto eventParam = std::make_shared(jParam); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_SET_THREAD_STATUS, eventParam, 0); @@ -214,10 +200,7 @@ void DAudioSourceDev::NotifyEvent(const AudioEvent &event) int32_t DAudioSourceDev::HandleOpenDSpeaker(const AudioEvent &event) { DHLOGI("Open speaker device."); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); auto eventParam = std::make_shared(event); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_OPEN_SPEAKER, eventParam, 0); @@ -232,11 +215,7 @@ int32_t DAudioSourceDev::HandleOpenDSpeaker(const AudioEvent &event) int32_t DAudioSourceDev::HandleCloseDSpeaker(const AudioEvent &event) { DHLOGI("Close speaker device."); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); auto eventParam = std::make_shared(event); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_CLOSE_SPEAKER, eventParam, 0); if (!handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { @@ -263,10 +242,7 @@ int32_t DAudioSourceDev::HandleDSpeakerClosed(const AudioEvent &event) return ERR_DH_AUDIO_FAILED; } auto speaker = FindIoDevImpl(event.content); - if (speaker == nullptr) { - DHLOGE("The IO device is invaild."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speaker, ERR_DH_AUDIO_NULLPTR); return speaker->NotifyHdfAudioEvent(event, dhId); } @@ -288,10 +264,7 @@ std::shared_ptr DAudioSourceDev::FindIoDevImpl(std::string args) int32_t DAudioSourceDev::HandleOpenDMic(const AudioEvent &event) { DHLOGI("Open mic device."); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); auto eventParam = std::make_shared(event); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_OPEN_MIC, eventParam, 0); @@ -306,11 +279,7 @@ int32_t DAudioSourceDev::HandleOpenDMic(const AudioEvent &event) int32_t DAudioSourceDev::HandleCloseDMic(const AudioEvent &event) { DHLOGI("Close mic device."); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); auto eventParam = std::make_shared(event); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_CLOSE_MIC, eventParam, 0); if (!handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { @@ -331,11 +300,7 @@ int32_t DAudioSourceDev::HandleDMicOpened(const AudioEvent &event) int32_t DAudioSourceDev::HandleDMicClosed(const AudioEvent &event) { DHLOGI("Dmic device closed, event.content = %s.", event.content.c_str()); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); auto eventParam = std::make_shared(event); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_DMIC_CLOSED, eventParam, 0); if (!handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { @@ -378,11 +343,7 @@ int32_t DAudioSourceDev::HandleNotifyRPC(const AudioEvent &event) int32_t DAudioSourceDev::HandleVolumeSet(const AudioEvent &event) { DHLOGD("Start handle volume set."); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); auto eventParam = std::make_shared(event); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_VOLUME_SET, eventParam, 0); if (!handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { @@ -396,11 +357,7 @@ int32_t DAudioSourceDev::HandleVolumeSet(const AudioEvent &event) int32_t DAudioSourceDev::HandleVolumeChange(const AudioEvent &event) { DHLOGD("Start handle volume change."); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); auto eventParam = std::make_shared(event); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_VOLUME_CHANGE, eventParam, 0); if (!handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { @@ -414,11 +371,7 @@ int32_t DAudioSourceDev::HandleVolumeChange(const AudioEvent &event) int32_t DAudioSourceDev::HandleFocusChange(const AudioEvent &event) { DHLOGD("Start handle focus change."); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); auto eventParam = std::make_shared(event); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_AUDIO_FOCUS_CHANGE, eventParam, 0); if (!handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { @@ -432,11 +385,7 @@ int32_t DAudioSourceDev::HandleFocusChange(const AudioEvent &event) int32_t DAudioSourceDev::HandleRenderStateChange(const AudioEvent &event) { DHLOGD("Start handle render state change."); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); auto eventParam = std::make_shared(event); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_AUDIO_RENDER_STATE_CHANGE, eventParam, 0); if (!handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { @@ -450,11 +399,7 @@ int32_t DAudioSourceDev::HandleRenderStateChange(const AudioEvent &event) int32_t DAudioSourceDev::HandlePlayStatusChange(const AudioEvent &event) { DHLOGD("Play status change, content: %s.", event.content.c_str()); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); auto eventParam = std::make_shared(event); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_CHANGE_PLAY_STATUS, eventParam, 0); if (!handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { @@ -468,11 +413,7 @@ int32_t DAudioSourceDev::HandlePlayStatusChange(const AudioEvent &event) int32_t DAudioSourceDev::HandleSpkMmapStart(const AudioEvent &event) { DHLOGI("Spk mmap start, content: %s.", event.content.c_str()); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); auto eventParam = std::make_shared(event); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_MMAP_SPK_START, eventParam, 0); if (!handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { @@ -486,11 +427,7 @@ int32_t DAudioSourceDev::HandleSpkMmapStart(const AudioEvent &event) int32_t DAudioSourceDev::HandleSpkMmapStop(const AudioEvent &event) { DHLOGI("Spk mmap stop, content: %s.", event.content.c_str()); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); auto eventParam = std::make_shared(event); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_MMAP_SPK_STOP, eventParam, 0); if (!handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { @@ -504,11 +441,7 @@ int32_t DAudioSourceDev::HandleSpkMmapStop(const AudioEvent &event) int32_t DAudioSourceDev::HandleMicMmapStart(const AudioEvent &event) { DHLOGI("Mic mmap start, content: %s.", event.content.c_str()); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); auto eventParam = std::make_shared(event); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_MMAP_MIC_START, eventParam, 0); if (!handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { @@ -522,11 +455,7 @@ int32_t DAudioSourceDev::HandleMicMmapStart(const AudioEvent &event) int32_t DAudioSourceDev::HandleMicMmapStop(const AudioEvent &event) { DHLOGI("Mic mmap stop, content: %s.", event.content.c_str()); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); auto eventParam = std::make_shared(event); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_MMAP_MIC_STOP, eventParam, 0); if (!handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { @@ -636,11 +565,7 @@ void DAudioSourceDev::OnEnableTaskResult(int32_t resultCode, const std::string & { (void)funcName; DHLOGI("On enable task result."); - if (mgrCallback_ == nullptr) { - DHLOGE("DAudio source manager callback is null."); - return; - } - + CHECK_NULL_VOID(mgrCallback_); if (result.length() > DAUDIO_MAX_JSON_LEN || result.empty()) { return; } @@ -687,10 +612,7 @@ int32_t DAudioSourceDev::DisableDSpeaker(const int32_t dhId) return DH_SUCCESS; } auto ioDev = deviceMap_[dhId]; - if (ioDev == nullptr) { - DHLOGE("Speaker device is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(ioDev, ERR_DH_AUDIO_NULLPTR); return ioDev->DisableDevice(dhId); } @@ -702,10 +624,7 @@ int32_t DAudioSourceDev::DisableDMic(const int32_t dhId) return DH_SUCCESS; } auto ioDev = deviceMap_[dhId]; - if (ioDev == nullptr) { - DHLOGE("Mic device is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(ioDev, ERR_DH_AUDIO_NULLPTR); return ioDev->DisableDevice(dhId); } @@ -713,11 +632,7 @@ void DAudioSourceDev::OnDisableTaskResult(int32_t resultCode, const std::string { (void)funcName; DHLOGI("On disable task result."); - if (mgrCallback_ == nullptr) { - DHLOGE("DAudio source manager callback is null."); - return; - } - + CHECK_NULL_VOID(mgrCallback_); if (result.length() > DAUDIO_MAX_JSON_LEN || result.empty()) { return; } @@ -743,6 +658,7 @@ int32_t DAudioSourceDev::TaskOpenDSpeaker(const std::string &args) return ERR_DH_AUDIO_FAILED; } auto speaker = FindIoDevImpl(args); + if (speaker == nullptr) { DHLOGE("The IO device is invaild."); NotifyHDF(NOTIFY_OPEN_SPEAKER_RESULT, HDF_EVENT_RESULT_FAILED, dhId); @@ -776,10 +692,7 @@ int32_t DAudioSourceDev::ParseDhidFromEvent(std::string args) { DHLOGI("ParseDhidFrom args : %s", args.c_str()); cJSON *jParam = cJSON_Parse(args.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON: %s", cJSON_GetErrorPtr()); - return -1; - } + CHECK_NULL_RETURN(jParam, ERR_DH_AUDIO_FAILED); if (!CJsonParamCheck(jParam, { KEY_DH_ID })) { DHLOGE("Not found the keys of dhId."); cJSON_Delete(jParam); @@ -838,17 +751,12 @@ int32_t DAudioSourceDev::CloseSpkNew(const std::string &args) NotifySinkDev(CLOSE_SPEAKER, jAudioParam, jParam[KEY_DH_ID]); bool closeStatus = true; auto speaker = FindIoDevImpl(args); - if (speaker == nullptr) { - DHLOGE("The IO device is invaild."); - return ERR_DH_AUDIO_NULLPTR; - } - int32_t ret = speaker->Stop(); - if (ret != DH_SUCCESS) { + CHECK_NULL_RETURN(speaker, ERR_DH_AUDIO_NULLPTR); + if (speaker->Stop() != DH_SUCCESS) { DHLOGE("Speaker stop failed."); closeStatus = false; } - ret = speaker->Release(); - if (ret != DH_SUCCESS) { + if (speaker->Release() != DH_SUCCESS) { DHLOGE("Speaker release failed."); closeStatus = false; } @@ -952,22 +860,8 @@ int32_t DAudioSourceDev::CloseMicNew(const std::string &args) NotifySinkDev(CLOSE_MIC, jAudioParam, jParam[KEY_DH_ID]); auto mic = FindIoDevImpl(args); - if (mic == nullptr) { - DHLOGE("Mic device not init"); - return DH_SUCCESS; - } - bool closeStatus = true; - int32_t ret = mic->Stop(); - if (ret != DH_SUCCESS) { - DHLOGE("Mic stop failed, error code %d", ret); - closeStatus = false; - } - ret = mic->Release(); - if (ret != DH_SUCCESS) { - DHLOGE("Mic release failed, error code %d", ret); - closeStatus = false; - } - if (!closeStatus) { + CHECK_NULL_RETURN(mic, DH_SUCCESS); + if (mic->Stop() != DH_SUCCESS || mic->Release() != DH_SUCCESS) { return ERR_DH_AUDIO_FAILED; } return DH_SUCCESS; @@ -1014,10 +908,7 @@ int32_t DAudioSourceDev::TaskDMicClosed(const std::string &args) return ERR_DH_AUDIO_FAILED; } auto mic = FindIoDevImpl(args); - if (mic == nullptr) { - DHLOGE("Mic already clear."); - return DH_SUCCESS; - } + CHECK_NULL_RETURN(mic, DH_SUCCESS); AudioEvent event(MIC_CLOSED, args); return mic->NotifyHdfAudioEvent(event, dhId); } @@ -1033,10 +924,7 @@ int32_t DAudioSourceDev::TaskChangeVolume(const std::string &args) { DHLOGD("Task change volume, args: %s.", args.c_str()); cJSON *jParam = cJSON_Parse(args.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON: %s", cJSON_GetErrorPtr()); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(jParam, ERR_DH_AUDIO_NULLPTR); if (!CJsonParamCheck(jParam, { KEY_DH_ID })) { DHLOGE("Not found the keys of dhId."); cJSON_Delete(jParam); @@ -1068,10 +956,8 @@ int32_t DAudioSourceDev::TaskChangeRenderState(const std::string &args) { DHLOGD("Task change render state, args: %s.", args.c_str()); cJSON *jParam = cJSON_Parse(args.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON: %s", cJSON_GetErrorPtr()); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(jParam, ERR_DH_AUDIO_NULLPTR); + if (!CJsonParamCheck(jParam, { KEY_DH_ID })) { DHLOGE("Not found the keys of dhId."); cJSON_Delete(jParam); @@ -1092,29 +978,24 @@ int32_t DAudioSourceDev::TaskPlayStatusChange(const std::string &args) { DHLOGD("Task play status change, content: %s.", args.c_str()); AudioEvent audioEvent(CHANGE_PLAY_STATUS, args); - int32_t ret = SendAudioEventToRemote(audioEvent); - if (ret != DH_SUCCESS) { + if (SendAudioEventToRemote(audioEvent) != DH_SUCCESS) { DHLOGE("Task Play status change failed."); return ERR_DH_AUDIO_FAILED; } auto speaker = FindIoDevImpl(args); - if (speaker == nullptr) { - DHLOGE("The IO device is invaild."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speaker, ERR_DH_AUDIO_NULLPTR); + std::string changeType = ParseStringFromArgs(args, KEY_CHANGE_TYPE); if (changeType == AUDIO_EVENT_RESTART) { - ret = speaker->Restart(); - if (ret != DH_SUCCESS) { + if (speaker->Restart() != DH_SUCCESS) { DHLOGE("Speaker restart failed."); } - return ret; + return ERR_DH_AUDIO_FAILED; } else if (changeType == AUDIO_EVENT_PAUSE) { - ret = speaker->Pause(); - if (ret != DH_SUCCESS) { + if (speaker->Pause() != DH_SUCCESS) { DHLOGE("Speaker Pause failed."); } - return ret; + return ERR_DH_AUDIO_FAILED; } else { DHLOGE("Play status error."); return ERR_DH_AUDIO_FAILED; @@ -1136,10 +1017,8 @@ int32_t DAudioSourceDev::SendAudioEventToRemote(const AudioEvent &event) } else { speaker = FindIoDevImpl(event.content); } - if (speaker == nullptr) { - DHLOGE("Audio ctrl mgr not init."); - return ERR_DH_AUDIO_NULLPTR; - } + + CHECK_NULL_RETURN(speaker, ERR_DH_AUDIO_NULLPTR); int32_t ret = speaker->SendMessage(static_cast(event.type), event.content, devId_); if (ret != DH_SUCCESS) { @@ -1153,10 +1032,7 @@ int32_t DAudioSourceDev::TaskSpkMmapStart(const std::string &args) { DHLOGI("Task spk mmap start, content: %s.", args.c_str()); auto speaker = FindIoDevImpl(args); - if (speaker == nullptr) { - DHLOGE("Task spk mmap start, speaker is nullptr."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speaker, ERR_DH_AUDIO_NULLPTR); int32_t ret = speaker->MmapStart(); if (ret != DH_SUCCESS) { DHLOGE("Task spk mmap start fail, error code: %d.", ret); @@ -1168,10 +1044,7 @@ int32_t DAudioSourceDev::TaskSpkMmapStop(const std::string &args) { DHLOGI("Task spk mmap stop, content: %s.", args.c_str()); auto speaker = FindIoDevImpl(args); - if (speaker == nullptr) { - DHLOGE("Task spk mmap start, speaker is nullptr."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speaker, ERR_DH_AUDIO_NULLPTR); speaker->MmapStop(); return DH_SUCCESS; } @@ -1180,10 +1053,7 @@ int32_t DAudioSourceDev::TaskMicMmapStart(const std::string &args) { DHLOGI("Task mic mmap start, content: %s.", args.c_str()); auto mic = FindIoDevImpl(args); - if (mic == nullptr) { - DHLOGE("Task mic mmap start, mic is nullptr."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(mic, ERR_DH_AUDIO_NULLPTR); int32_t ret = mic->MmapStart(); if (ret != DH_SUCCESS) { DHLOGE("Task mic mmap start fail, error code: %d.", ret); @@ -1195,10 +1065,7 @@ int32_t DAudioSourceDev::TaskMicMmapStop(const std::string &args) { DHLOGI("Task mic mmap stop, content: %s.", args.c_str()); auto mic = FindIoDevImpl(args); - if (mic == nullptr) { - DHLOGE("Task mic mmap stop, mic is nullptr."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(mic, ERR_DH_AUDIO_NULLPTR); mic->MmapStop(); return DH_SUCCESS; } @@ -1332,44 +1199,24 @@ void DAudioSourceDev::SourceEventHandler::ProcessEvent(const AppExecFwk::InnerEv void DAudioSourceDev::SourceEventHandler::EnableDAudioCallback(const AppExecFwk::InnerEvent::Pointer &event) { - if (event == nullptr) { - DHLOGE("The input event is null."); - return; - } + CHECK_NULL_VOID(event); std::shared_ptr jParam = event->GetSharedObject(); - if (jParam == nullptr) { - DHLOGE("The json parameter is null."); - return; - } + CHECK_NULL_VOID(jParam); auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } - int32_t ret = sourceDevObj->TaskEnableDAudio(jParam->dump()); - if (ret != DH_SUCCESS) { + CHECK_NULL_VOID(sourceDevObj); + if (sourceDevObj->TaskEnableDAudio(jParam->dump()) != DH_SUCCESS) { DHLOGE("Open ctrl channel failed."); } } void DAudioSourceDev::SourceEventHandler::DisableDAudioCallback(const AppExecFwk::InnerEvent::Pointer &event) { - if (event == nullptr) { - DHLOGE("The input event is null."); - return; - } + CHECK_NULL_VOID(event); std::shared_ptr jParam = event->GetSharedObject(); - if (jParam == nullptr) { - DHLOGE("The json parameter is null."); - return; - } + CHECK_NULL_VOID(jParam); auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } - int32_t ret = sourceDevObj->TaskDisableDAudio(jParam->dump()); - if (ret != DH_SUCCESS) { + CHECK_NULL_VOID(sourceDevObj); + if (sourceDevObj->TaskDisableDAudio(jParam->dump()) != DH_SUCCESS) { DHLOGE("Disable distributed audio failed."); } } @@ -1382,10 +1229,7 @@ void DAudioSourceDev::SourceEventHandler::OpenDSpeakerCallback(const AppExecFwk: return; } auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } + CHECK_NULL_VOID(sourceDevObj); if (sourceDevObj->TaskOpenDSpeaker(eventParam) != DH_SUCCESS) { DHLOGE("Open speaker failed."); return; @@ -1401,10 +1245,7 @@ void DAudioSourceDev::SourceEventHandler::CloseDSpeakerCallback(const AppExecFwk return; } auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } + CHECK_NULL_VOID(sourceDevObj); if (sourceDevObj->TaskCloseDSpeaker(eventParam) != DH_SUCCESS) { DHLOGE("Close speaker failed."); return; @@ -1420,10 +1261,7 @@ void DAudioSourceDev::SourceEventHandler::OpenDMicCallback(const AppExecFwk::Inn return; } auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } + CHECK_NULL_VOID(sourceDevObj); if (sourceDevObj->TaskOpenDMic(eventParam) != DH_SUCCESS) { DHLOGE("Open mic failed."); return; @@ -1439,10 +1277,7 @@ void DAudioSourceDev::SourceEventHandler::CloseDMicCallback(const AppExecFwk::In return; } auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } + CHECK_NULL_VOID(sourceDevObj); if (sourceDevObj->TaskCloseDMic(eventParam) != DH_SUCCESS) { DHLOGE("Close mic failed."); return; @@ -1458,10 +1293,7 @@ void DAudioSourceDev::SourceEventHandler::DMicClosedCallback(const AppExecFwk::I return; } auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } + CHECK_NULL_VOID(sourceDevObj); if (sourceDevObj->TaskDMicClosed(eventParam) != DH_SUCCESS) { DHLOGE("Deal dmic closed failed."); return; @@ -1477,10 +1309,7 @@ void DAudioSourceDev::SourceEventHandler::SetVolumeCallback(const AppExecFwk::In return; } auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } + CHECK_NULL_VOID(sourceDevObj); if (sourceDevObj->TaskSetVolume(eventParam) != DH_SUCCESS) { DHLOGE("Set volume failed."); return; @@ -1496,10 +1325,7 @@ void DAudioSourceDev::SourceEventHandler::ChangeVolumeCallback(const AppExecFwk: return; } auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } + CHECK_NULL_VOID(sourceDevObj); if (sourceDevObj->TaskChangeVolume(eventParam) != DH_SUCCESS) { DHLOGE("Failed to process volume change event."); return; @@ -1515,10 +1341,7 @@ void DAudioSourceDev::SourceEventHandler::ChangeFocusCallback(const AppExecFwk:: return; } auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } + CHECK_NULL_VOID(sourceDevObj); if (sourceDevObj->TaskChangeFocus(eventParam) != DH_SUCCESS) { DHLOGE("Failed to process focus change event."); return; @@ -1534,10 +1357,7 @@ void DAudioSourceDev::SourceEventHandler::ChangeRenderStateCallback(const AppExe return; } auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } + CHECK_NULL_VOID(sourceDevObj); if (sourceDevObj->TaskChangeRenderState(eventParam) != DH_SUCCESS) { DHLOGE("Failed to process render state change event."); return; @@ -1553,10 +1373,7 @@ void DAudioSourceDev::SourceEventHandler::PlayStatusChangeCallback(const AppExec return; } auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } + CHECK_NULL_VOID(sourceDevObj); if (sourceDevObj->TaskPlayStatusChange(eventParam) != DH_SUCCESS) { DHLOGE("Failed to process playing status change event."); return; @@ -1572,10 +1389,7 @@ void DAudioSourceDev::SourceEventHandler::SpkMmapStartCallback(const AppExecFwk: return; } auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } + CHECK_NULL_VOID(sourceDevObj); if (sourceDevObj->TaskSpkMmapStart(eventParam) != DH_SUCCESS) { DHLOGE("Failed to start speaker with mmap mode."); return; @@ -1591,10 +1405,7 @@ void DAudioSourceDev::SourceEventHandler::SpkMmapStopCallback(const AppExecFwk:: return; } auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } + CHECK_NULL_VOID(sourceDevObj); if (sourceDevObj->TaskSpkMmapStop(eventParam) != DH_SUCCESS) { DHLOGE("Failed to stop speaker with mmap mode."); return; @@ -1610,10 +1421,7 @@ void DAudioSourceDev::SourceEventHandler::MicMmapStartCallback(const AppExecFwk: return; } auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } + CHECK_NULL_VOID(sourceDevObj); if (sourceDevObj->TaskMicMmapStart(eventParam) != DH_SUCCESS) { DHLOGE("Failed to start mic with mmap mode."); return; @@ -1629,10 +1437,7 @@ void DAudioSourceDev::SourceEventHandler::MicMmapStopCallback(const AppExecFwk:: return; } auto sourceDevObj = sourceDev_.lock(); - if (sourceDevObj == nullptr) { - DHLOGE("Source dev is invalid."); - return; - } + CHECK_NULL_VOID(sourceDevObj); if (sourceDevObj->TaskMicMmapStop(eventParam) != DH_SUCCESS) { DHLOGE("Failed to stop mic with mmap mode."); return; @@ -1643,26 +1448,17 @@ void DAudioSourceDev::SourceEventHandler::MicMmapStopCallback(const AppExecFwk:: void DAudioSourceDev::SourceEventHandler::SetThreadStatusFlagTrue(const AppExecFwk::InnerEvent::Pointer &event) { (void) event; - auto sourceDevobj = sourceDev_.lock(); - if (sourceDevobj == nullptr) { - DHLOGE("Source dev is invaild."); - return; - } - sourceDevobj->threadStatusFlag_ = true; + auto sourceDevObj = sourceDev_.lock(); + CHECK_NULL_VOID(sourceDevObj); + sourceDevObj->threadStatusFlag_ = true; } int32_t DAudioSourceDev::SourceEventHandler::GetEventParam(const AppExecFwk::InnerEvent::Pointer &event, std::string &eventParam) { - if (event == nullptr) { - DHLOGE("The input event is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(event, ERR_DH_AUDIO_NULLPTR); std::shared_ptr paramObj = event->GetSharedObject(); - if (paramObj == nullptr) { - DHLOGE("The event parameter object is nullptr."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(paramObj, ERR_DH_AUDIO_NULLPTR); eventParam = paramObj->content; return DH_SUCCESS; } diff --git a/services/audiomanager/managersource/src/daudio_source_manager.cpp b/services/audiomanager/managersource/src/daudio_source_manager.cpp index d8152fc78f572777483b6f474259d8524104c399..3ee148a9c6e54d6da9af69a3ba1e862ae502b08f 100644 --- a/services/audiomanager/managersource/src/daudio_source_manager.cpp +++ b/services/audiomanager/managersource/src/daudio_source_manager.cpp @@ -70,10 +70,7 @@ DAudioSourceManager::~DAudioSourceManager() int32_t DAudioSourceManager::Init(const sptr &callback) { DHLOGI("Init audio source manager."); - if (callback == nullptr) { - DHLOGE("Callback is nullptr."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(callback, ERR_DH_AUDIO_NULLPTR); if (DAudioHdiHandler::GetInstance().InitHdiHandler() != DH_SUCCESS) { DHLOGE("Init Hdi handler failed."); return ERR_DH_AUDIO_FAILED; @@ -104,10 +101,7 @@ int32_t DAudioSourceManager::Init(const sptr &callback) } // init event handler auto runner = AppExecFwk::EventRunner::Create(true); - if (runner == nullptr) { - DHLOGE("Create runner failed."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(runner, ERR_DH_AUDIO_NULLPTR); handler_ = std::make_shared(runner); DHLOGI("Init DAudioManager successfuly."); return DH_SUCCESS; @@ -144,11 +138,8 @@ int32_t DAudioSourceManager::UnInit() DHLOGE("Uninit Hdi handler failed."); return ERR_DH_AUDIO_FAILED; } - // uninit event handler - if (handler_ == nullptr) { - DHLOGI("Uninit audio source manager exit. handler is null"); - return DH_SUCCESS; - } + + CHECK_NULL_RETURN(handler_, DH_SUCCESS); while (!handler_->IsIdle()) { DHLOGD("manager handler is running, wait for idle."); usleep(WAIT_HANDLER_IDLE_TIME_US); @@ -172,10 +163,8 @@ int32_t DAudioSourceManager::EnableDAudio(const std::string &devId, const std::s { DHLOGI("Enable distributed audio, devId: %s, dhId: %s, version: %s, reqId: %s.", GetAnonyString(devId).c_str(), dhId.c_str(), version.c_str(), reqId.c_str()); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); + json jParam = { { KEY_DEV_ID, devId }, { KEY_DH_ID, dhId }, { KEY_VERSION, version }, { KEY_ATTRS, attrs }, { KEY_REQID, reqId } }; auto eventParam = std::make_shared(jParam); @@ -222,10 +211,7 @@ int32_t DAudioSourceManager::DisableDAudio(const std::string &devId, const std:: { DHLOGI("Disable distributed audio, devId: %s, dhId: %s, reqId: %s.", GetAnonyString(devId).c_str(), dhId.c_str(), reqId.c_str()); - if (handler_ == nullptr) { - DHLOGE("Event handler is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(handler_, ERR_DH_AUDIO_NULLPTR); json jParam = { { KEY_DEV_ID, devId }, { KEY_DH_ID, dhId }, { KEY_REQID, reqId } }; auto eventParam = std::make_shared(jParam); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_MANAGER_DISABLE_DAUDIO, eventParam, 0); @@ -256,10 +242,7 @@ int32_t DAudioSourceManager::DoDisableDAudio(const std::string &args) DHLOGE("Audio device not exist."); return ERR_DH_AUDIO_SA_DEVICE_NOT_EXIST; } - if (audioDevMap_[devId].dev == nullptr) { - DHLOGE("Audio device is null."); - return DH_SUCCESS; - } + CHECK_NULL_RETURN(audioDevMap_[devId].dev, DH_SUCCESS); audioDevMap_[devId].ports[dhId] = reqId; sourceDev = audioDevMap_[devId].dev; } @@ -317,20 +300,11 @@ int32_t DAudioSourceManager::DAudioNotify(const std::string &devId, const std::s } auto samgr = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager(); - if (samgr == nullptr) { - DHLOGE("Failed to get system ability mgr."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(samgr, ERR_DH_AUDIO_NULLPTR); auto remoteObject = samgr->GetSystemAbility(DISTRIBUTED_HARDWARE_AUDIO_SINK_SA_ID, devId); - if (remoteObject == nullptr) { - DHLOGE("Object is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(remoteObject, ERR_DH_AUDIO_NULLPTR); sptr remoteSvrProxy = iface_cast(remoteObject); - if (remoteSvrProxy == nullptr) { - DHLOGE("Failed to get remote daudio sink SA."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(remoteSvrProxy, ERR_DH_AUDIO_NULLPTR); { std::lock_guard lck(remoteSvrMutex_); sinkServiceMap_[devId] = remoteSvrProxy; @@ -351,10 +325,7 @@ int32_t DAudioSourceManager::OnEnableDAudio(const std::string &devId, const std: DeleteAudioDevice(devId, dhId); } - if (ipcCallback_ == nullptr) { - DHLOGE("Audio Ipc callback is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(ipcCallback_, ERR_DH_AUDIO_NULLPTR); return ipcCallback_->OnNotifyRegResult(devId, dhId, reqId, result, ""); } @@ -370,10 +341,7 @@ int32_t DAudioSourceManager::OnDisableDAudio(const std::string &devId, const std DeleteAudioDevice(devId, dhId); } - if (ipcCallback_ == nullptr) { - DHLOGE("Audio Ipc callback is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(ipcCallback_, ERR_DH_AUDIO_NULLPTR); return ipcCallback_->OnNotifyUnregResult(devId, dhId, reqId, result, ""); } @@ -433,10 +401,7 @@ void DAudioSourceManager::ClearAudioDev(const std::string &devId) std::lock_guard lock(devMapMtx_); if (audioDevMap_[devId].ports.empty()) { DHLOGI("audioDevMap_[devId].ports is empty."); - if (audioDevMap_[devId].dev == nullptr) { - DHLOGE("audioDevMap_[devId].dev is nullptr."); - return; - } + CHECK_NULL_VOID(audioDevMap_[devId].dev); audioDevMap_[devId].dev->SleepAudioDev(); DHLOGI("back from SleepAudioDev."); audioDevMap_.erase(devId); @@ -447,10 +412,7 @@ void DAudioSourceManager::RestoreThreadStatus() { if (!audioDevMap_.empty()) { for (auto &iter : audioDevMap_) { - if (iter.second.dev == nullptr) { - DHLOGE("Listen audioDev error, dev is nullptr."); - continue; - } + CHECK_NULL_VOID(iter.second.dev); iter.second.dev->RestoreThreadStatus(); } } @@ -491,10 +453,7 @@ int32_t DAudioSourceManager::LoadAVSenderEngineProvider() return ERR_DH_AUDIO_NULLPTR; } pSHandler_ = dlopen(path, RTLD_LAZY | RTLD_NODELETE); - if (pSHandler_ == nullptr) { - DHLOGE("%s handler load failed, failed reason : %s", path, dlerror()); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(pSHandler_, ERR_DH_AUDIO_NULLPTR); AVTransProviderClass getEngineFactoryFunc = (AVTransProviderClass)dlsym(pSHandler_, GET_SENDER_PROVIDER_FUNC.c_str()); if (getEngineFactoryFunc == nullptr) { @@ -529,10 +488,7 @@ int32_t DAudioSourceManager::LoadAVReceiverEngineProvider() return ERR_DH_AUDIO_NULLPTR; } pRHandler_ = dlopen(path, RTLD_LAZY | RTLD_NODELETE); - if (pRHandler_ == nullptr) { - DHLOGE("%s handler load failed, failed reason : %s", path, dlerror()); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(pRHandler_, ERR_DH_AUDIO_NULLPTR); AVTransProviderClass getEngineFactoryFunc = (AVTransProviderClass)dlsym(pRHandler_, GET_RECEIVER_PROVIDER_FUNC.c_str()); if (getEngineFactoryFunc == nullptr) { @@ -589,10 +545,7 @@ void DAudioSourceManager::SourceManagerHandler::ProcessEvent(const AppExecFwk::I void DAudioSourceManager::SourceManagerHandler::EnableDAudioCallback(const AppExecFwk::InnerEvent::Pointer &event) { - if (event == nullptr) { - DHLOGE("The input event is null."); - return; - } + CHECK_NULL_VOID(event); std::string eventParam; if (GetEventParam(event, eventParam) != DH_SUCCESS) { DHLOGE("Failed to get event parameters."); @@ -604,10 +557,7 @@ void DAudioSourceManager::SourceManagerHandler::EnableDAudioCallback(const AppEx void DAudioSourceManager::SourceManagerHandler::DisableDAudioCallback(const AppExecFwk::InnerEvent::Pointer &event) { - if (event == nullptr) { - DHLOGE("The input event is null."); - return; - } + CHECK_NULL_VOID(event); std::string eventParam; if (GetEventParam(event, eventParam) != DH_SUCCESS) { DHLOGE("Failed to get event parameters."); @@ -620,15 +570,9 @@ void DAudioSourceManager::SourceManagerHandler::DisableDAudioCallback(const AppE int32_t DAudioSourceManager::SourceManagerHandler::GetEventParam(const AppExecFwk::InnerEvent::Pointer &event, std::string &eventParam) { - if (event == nullptr) { - DHLOGE("The input event id null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(event, ERR_DH_AUDIO_NULLPTR); std::shared_ptr paramObj = event->GetSharedObject(); - if (paramObj == nullptr) { - DHLOGE("The event parameter object is nullptr."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(paramObj, ERR_DH_AUDIO_NULLPTR); eventParam = paramObj->dump(); return DH_SUCCESS; } diff --git a/services/audiomanager/managersource/src/dmic_dev.cpp b/services/audiomanager/managersource/src/dmic_dev.cpp index 8393c766b2f33c211b4a9bbc8429bdced4e7174a..8dae43b7ab6634ce9ec03ad09bd1a184b3be7959 100644 --- a/services/audiomanager/managersource/src/dmic_dev.cpp +++ b/services/audiomanager/managersource/src/dmic_dev.cpp @@ -49,10 +49,7 @@ void DMicDev::OnEngineTransEvent(const AVTransEvent &event) void DMicDev::OnEngineTransMessage(const std::shared_ptr &message) { - if (message == nullptr) { - DHLOGE("The parameter is nullptr"); - return; - } + CHECK_NULL_VOID(message); DHLOGI("On Engine message, type : %s.", GetEventNameByType(message->type_).c_str()); DAudioSourceManager::GetInstance().HandleDAudioNotify(message->dstDevId_, message->dstDevId_, message->type_, message->content_); @@ -120,10 +117,7 @@ int32_t DMicDev::OpenDevice(const std::string &devId, const int32_t dhId) { DHLOGI("Open mic device devId: %s, dhId: %d.", GetAnonyString(devId).c_str(), dhId); std::shared_ptr cbObj = audioEventCallback_.lock(); - if (cbObj == nullptr) { - DHLOGE("Event callback is null"); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(cbObj, ERR_DH_AUDIO_NULLPTR); json jParam = { { KEY_DH_ID, std::to_string(dhId) } }; AudioEvent event(AudioEventType::OPEN_MIC, jParam.dump()); cbObj->NotifyEvent(event); @@ -136,10 +130,7 @@ int32_t DMicDev::CloseDevice(const std::string &devId, const int32_t dhId) { DHLOGI("Close mic device devId: %s, dhId: %d.", GetAnonyString(devId).c_str(), dhId); std::shared_ptr cbObj = audioEventCallback_.lock(); - if (cbObj == nullptr) { - DHLOGE("Event callback is null"); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(cbObj, ERR_DH_AUDIO_NULLPTR); json jParam = { { KEY_DH_ID, std::to_string(dhId) } }; AudioEvent event(AudioEventType::CLOSE_MIC, jParam.dump()); cbObj->NotifyEvent(event); @@ -172,10 +163,7 @@ int32_t DMicDev::NotifyEvent(const std::string &devId, const int32_t dhId, const { DHLOGD("Notify mic event, type: %d.", event.type); std::shared_ptr cbObj = audioEventCallback_.lock(); - if (cbObj == nullptr) { - DHLOGE("Event callback is null"); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(cbObj, ERR_DH_AUDIO_NULLPTR); switch (event.type) { case AudioEventType::AUDIO_START: curStatus_ = AudioStatus::STATUS_START; @@ -196,11 +184,7 @@ int32_t DMicDev::NotifyEvent(const std::string &devId, const int32_t dhId, const int32_t DMicDev::SetUp() { DHLOGI("Set up mic device."); - if (micTrans_ == nullptr) { - DHLOGE("mic trans should be init by dev."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(micTrans_, ERR_DH_AUDIO_NULLPTR); int32_t ret = micTrans_->SetUp(param_, param_, shared_from_this(), CAP_MIC); if (ret != DH_SUCCESS) { DHLOGE("Mic trans set up failed. ret: %d.", ret); @@ -212,10 +196,7 @@ int32_t DMicDev::SetUp() int32_t DMicDev::Start() { DHLOGI("Start mic device."); - if (micTrans_ == nullptr) { - DHLOGE("Mic trans is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(micTrans_, ERR_DH_AUDIO_NULLPTR); int32_t ret = micTrans_->Start(); if (ret != DH_SUCCESS) { DHLOGE("Mic trans start failed, ret: %d.", ret); @@ -247,11 +228,7 @@ int32_t DMicDev::Restart() int32_t DMicDev::Stop() { DHLOGI("Stop mic device."); - if (micTrans_ == nullptr) { - DHLOGE("Mic trans is null."); - return DH_SUCCESS; - } - + CHECK_NULL_RETURN(micTrans_, DH_SUCCESS); isOpened_.store(false); isTransReady_.store(false); int32_t ret = micTrans_->Stop(); @@ -270,10 +247,7 @@ int32_t DMicDev::Release() ashmem_ = nullptr; DHLOGI("UnInit ashmem success."); } - if (micTrans_ == nullptr) { - DHLOGE("Mic trans is null."); - return DH_SUCCESS; - } + CHECK_NULL_RETURN(micTrans_, DH_SUCCESS); int32_t ret = micTrans_->Release(); if (ret != DH_SUCCESS) { @@ -375,10 +349,7 @@ int32_t DMicDev::RefreshAshmemInfo(const std::string &devId, const int32_t dhId, int32_t DMicDev::MmapStart() { - if (ashmem_ == nullptr) { - DHLOGE("Ashmem is nullptr"); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(ashmem_, ERR_DH_AUDIO_NULLPTR); std::lock_guard lock(writeAshmemMutex_); frameIndex_ = 0; startTime_ = 0; @@ -491,10 +462,7 @@ int32_t DMicDev::OnStateChange(const AudioEventType type) } event.content = GetCJsonString(KEY_DH_ID, std::to_string(dhId_).c_str()); std::shared_ptr cbObj = audioEventCallback_.lock(); - if (cbObj == nullptr) { - DHLOGE("Event callback is null"); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(cbObj, ERR_DH_AUDIO_NULLPTR); cbObj->NotifyEvent(event); return DH_SUCCESS; } @@ -506,20 +474,14 @@ int32_t DMicDev::SendMessage(uint32_t type, std::string content, std::string dst DHLOGE("Send message to remote. not OPEN_MIC or CLOSE_MIC. type: %u", type); return ERR_DH_AUDIO_NULLPTR; } - if (micTrans_ == nullptr) { - DHLOGE("mic trans is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(micTrans_, ERR_DH_AUDIO_NULLPTR); micTrans_->SendMessage(type, content, dstDevId); return DH_SUCCESS; } int32_t DMicDev::OnDecodeTransDataDone(const std::shared_ptr &audioData) { - if (audioData == nullptr) { - DHLOGE("The parameter is empty."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(audioData, ERR_DH_AUDIO_NULLPTR); std::lock_guard lock(dataQueueMtx_); dataQueSize_ = curStatus_ != AudioStatus::STATUS_START ? (param_.captureOpts.capturerFlags == MMAP_MODE ? LOW_LATENCY_DATA_QUEUE_HALF_SIZE : DATA_QUEUE_HALF_SIZE) : diff --git a/services/audiomanager/managersource/src/dspeaker_dev.cpp b/services/audiomanager/managersource/src/dspeaker_dev.cpp index fe8fd85d6e7077f826be121c0ea10aecaa7bfbef..c6c2e849115c6adce34080ad477467f7452264d4 100644 --- a/services/audiomanager/managersource/src/dspeaker_dev.cpp +++ b/services/audiomanager/managersource/src/dspeaker_dev.cpp @@ -101,10 +101,7 @@ void DSpeakerDev::OnEngineTransEvent(const AVTransEvent &event) void DSpeakerDev::OnEngineTransMessage(const std::shared_ptr &message) { - if (message == nullptr) { - DHLOGE("The parameter is nullptr"); - return; - } + CHECK_NULL_VOID(message); DHLOGI("On Engine message, type : %s.", GetEventNameByType(message->type_).c_str()); DAudioSourceManager::GetInstance().HandleDAudioNotify(message->dstDevId_, message->dstDevId_, message->type_, message->content_); @@ -114,10 +111,7 @@ int32_t DSpeakerDev::OpenDevice(const std::string &devId, const int32_t dhId) { DHLOGI("Open speaker device devId: %s, dhId: %d.", GetAnonyString(devId).c_str(), dhId); std::shared_ptr cbObj = audioEventCallback_.lock(); - if (cbObj == nullptr) { - DHLOGE("Event callback is null"); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(cbObj, ERR_DH_AUDIO_NULLPTR); json jParam = { { KEY_DH_ID, std::to_string(dhId) } }; AudioEvent event(AudioEventType::OPEN_SPEAKER, jParam.dump()); @@ -131,10 +125,7 @@ int32_t DSpeakerDev::CloseDevice(const std::string &devId, const int32_t dhId) { DHLOGI("Close speaker device devId: %s, dhId: %d.", GetAnonyString(devId).c_str(), dhId); std::shared_ptr cbObj = audioEventCallback_.lock(); - if (cbObj == nullptr) { - DHLOGE("Event callback is null"); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(cbObj, ERR_DH_AUDIO_NULLPTR); json jParam = { { KEY_DH_ID, std::to_string(dhId) } }; AudioEvent event(AudioEventType::CLOSE_SPEAKER, jParam.dump()); @@ -169,10 +160,7 @@ int32_t DSpeakerDev::NotifyEvent(const std::string &devId, int32_t dhId, const A { DHLOGD("Notify speaker event."); std::shared_ptr cbObj = audioEventCallback_.lock(); - if (cbObj == nullptr) { - DHLOGE("Event callback is null"); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(cbObj, ERR_DH_AUDIO_NULLPTR); AudioEvent audioEvent(event.type, event.content); cbObj->NotifyEvent(audioEvent); return DH_SUCCESS; @@ -181,10 +169,7 @@ int32_t DSpeakerDev::NotifyEvent(const std::string &devId, int32_t dhId, const A int32_t DSpeakerDev::SetUp() { DHLOGI("Set up speaker device."); - if (speakerTrans_ == nullptr) { - DHLOGE("Spk trans should be init by dev."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speakerTrans_, ERR_DH_AUDIO_NULLPTR); int32_t ret = speakerTrans_->SetUp(param_, param_, shared_from_this(), CAP_SPK); if (ret != DH_SUCCESS) { @@ -197,11 +182,7 @@ int32_t DSpeakerDev::SetUp() int32_t DSpeakerDev::Start() { DHLOGI("Start speaker device."); - if (speakerTrans_ == nullptr) { - DHLOGE("Speaker trans is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(speakerTrans_, ERR_DH_AUDIO_NULLPTR); int32_t ret = speakerTrans_->Start(); if (ret != DH_SUCCESS) { DHLOGE("Speaker trans start failed, ret: %d.", ret); @@ -221,11 +202,7 @@ int32_t DSpeakerDev::Start() int32_t DSpeakerDev::Stop() { DHLOGI("Stop speaker device."); - if (speakerTrans_ == nullptr) { - DHLOGE("Speaker trans is null."); - return DH_SUCCESS; - } - + CHECK_NULL_RETURN(speakerTrans_, DH_SUCCESS); isOpened_.store(false); isTransReady_.store(false); int32_t ret = speakerTrans_->Stop(); @@ -245,11 +222,7 @@ int32_t DSpeakerDev::Release() ashmem_ = nullptr; DHLOGI("UnInit ashmem success."); } - if (speakerTrans_ == nullptr) { - DHLOGE("Speaker trans is null."); - return DH_SUCCESS; - } - + CHECK_NULL_RETURN(speakerTrans_, DH_SUCCESS); int32_t ret = speakerTrans_->Release(); if (ret != DH_SUCCESS) { DHLOGE("Release speaker trans failed, ret: %d.", ret); @@ -261,11 +234,7 @@ int32_t DSpeakerDev::Release() int32_t DSpeakerDev::Pause() { DHLOGI("Pause."); - if (speakerTrans_ == nullptr) { - DHLOGE("Speaker trans is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(speakerTrans_, ERR_DH_AUDIO_NULLPTR); int32_t ret = speakerTrans_->Pause(); if (ret != DH_SUCCESS) { DHLOGE("Pause speaker trans failed, ret: %d.", ret); @@ -278,11 +247,7 @@ int32_t DSpeakerDev::Pause() int32_t DSpeakerDev::Restart() { DHLOGI("Restart."); - if (speakerTrans_ == nullptr) { - DHLOGE("Speaker trans is null."); - return ERR_DH_AUDIO_NULLPTR; - } - + CHECK_NULL_RETURN(speakerTrans_, ERR_DH_AUDIO_NULLPTR); int32_t ret = speakerTrans_->Restart(param_, param_); if (ret != DH_SUCCESS) { DHLOGE("Restart speaker trans failed, ret: %d.", ret); @@ -310,10 +275,7 @@ int32_t DSpeakerDev::WriteStreamData(const std::string &devId, const int32_t dhI { DHLOGD("Write stream data, dhId:%d", dhId); int64_t startTime = GetNowTimeUs(); - if (speakerTrans_ == nullptr) { - DHLOGE("Write stream data, speaker trans is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speakerTrans_, ERR_DH_AUDIO_NULLPTR); #ifdef DUMP_DSPEAKERDEV_FILE if (DaudioHidumper::GetInstance().QueryDumpDataFlag()) { if (!dumpFlag_) { @@ -374,10 +336,7 @@ int32_t DSpeakerDev::RefreshAshmemInfo(const std::string &devId, const int32_t d int32_t DSpeakerDev::MmapStart() { - if (ashmem_ == nullptr) { - DHLOGE("Ashmem is nullptr"); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(ashmem_, ERR_DH_AUDIO_NULLPTR); isEnqueueRunning_.store(true); enqueueDataThread_ = std::thread(&DSpeakerDev::EnqueueThread, this); if (pthread_setname_np(enqueueDataThread_.native_handle(), ENQUEUE_THREAD) != DH_SUCCESS) { @@ -405,10 +364,7 @@ void DSpeakerDev::EnqueueThread() DHLOGE("Copy audio data failed."); } } - if (speakerTrans_ == nullptr) { - DHLOGE("Speaker enqueue thread, trans is nullptr."); - return; - } + CHECK_NULL_VOID(speakerTrans_); #ifdef DUMP_DSPEAKERDEV_FILE if (DaudioHidumper::GetInstance().QueryDumpDataFlag()) { SaveFile(SPK_LOWLATENCY_FILENAME, const_cast(audioData->Data()), audioData->Size()); @@ -453,10 +409,7 @@ int32_t DSpeakerDev::SendMessage(uint32_t type, std::string content, std::string DHLOGE("Send message to remote. not OPEN_SPK or CLOSE_SPK. type: %u", type); return ERR_DH_AUDIO_NULLPTR; } - if (speakerTrans_ == nullptr) { - DHLOGE("speaker trans is null."); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(speakerTrans_, ERR_DH_AUDIO_NULLPTR); speakerTrans_->SendMessage(type, content, dstDevId); return DH_SUCCESS; } @@ -490,10 +443,7 @@ int32_t DSpeakerDev::OnStateChange(const AudioEventType type) } event.content = GetCJsonString(KEY_DH_ID, std::to_string(dhId_).c_str()); std::shared_ptr cbObj = audioEventCallback_.lock(); - if (cbObj == nullptr) { - DHLOGE("Event callback is null"); - return ERR_DH_AUDIO_NULLPTR; - } + CHECK_NULL_RETURN(cbObj, ERR_DH_AUDIO_NULLPTR); cbObj->NotifyEvent(event); return DH_SUCCESS; }