From b635a90fd70d0033b12edf7b2a25e59def7c19e3 Mon Sep 17 00:00:00 2001 From: Bobie Date: Sat, 16 Sep 2023 18:37:19 +0800 Subject: [PATCH 1/2] =?UTF-8?q?Revert=20"=E4=BF=AE=E6=94=B9=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E7=94=A8=E4=BE=8B=E4=BB=A5=E5=8F=8A=E4=B8=80=E5=A4=84?= =?UTF-8?q?=E5=86=85=E5=AD=98=E6=B3=84=E6=BC=8F=E9=97=AE=E9=A2=98"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 4d0a892b75e20ea54c324b8e4ecf0abba6162c1f. Signed-off-by: Bobie --- .../managersource/include/daudio_source_dev.h | 2 +- .../managersource/src/daudio_source_dev.cpp | 10 +++++++--- .../managersink/src/daudio_sink_manager_test.cpp | 4 +--- .../sourcedevice/src/daudio_source_dev_test.cpp | 13 +++++++------ .../sourcemanager/src/daudio_source_mgr_test.cpp | 4 ++-- 5 files changed, 18 insertions(+), 15 deletions(-) diff --git a/services/audiomanager/managersource/include/daudio_source_dev.h b/services/audiomanager/managersource/include/daudio_source_dev.h index 5db9200e..1be525e1 100644 --- a/services/audiomanager/managersource/include/daudio_source_dev.h +++ b/services/audiomanager/managersource/include/daudio_source_dev.h @@ -75,7 +75,7 @@ private: int32_t NotifySinkDevOpenMic(cJSON *jParam); int32_t OpenDMicInner(); - void CleanupJson(cJSON *jParamCopy, char *content); + void CleanupJson(cJSON *jParamCopy, cJSON *jParam, char *content); void OnDisableTaskResult(int32_t resultCode, const std::string &result, const std::string &funcName); void OnEnableTaskResult(int32_t resultCode, const std::string &result, const std::string &funcName); diff --git a/services/audiomanager/managersource/src/daudio_source_dev.cpp b/services/audiomanager/managersource/src/daudio_source_dev.cpp index c3a16f4d..915668b4 100644 --- a/services/audiomanager/managersource/src/daudio_source_dev.cpp +++ b/services/audiomanager/managersource/src/daudio_source_dev.cpp @@ -1330,9 +1330,10 @@ void DAudioSourceDev::OnTaskResult(int32_t resultCode, const std::string &result funcName.c_str()); } -void DAudioSourceDev::CleanupJson(cJSON *jParamCopy, char *content) +void DAudioSourceDev::CleanupJson(cJSON *jParamCopy, cJSON *jParam, char *content) { cJSON_Delete(jParamCopy); + cJSON_Delete(jParam); cJSON_free(content); } @@ -1356,16 +1357,19 @@ int32_t DAudioSourceDev::NotifySinkDev(const AudioEventType type, const cJSON *p const uint32_t randomTaskCode = rd(); constexpr uint32_t eventOffset = 4; cJSON_AddStringToObject(jParam, KEY_RANDOM_TASK_CODE, std::to_string(randomTaskCode).c_str()); + DHLOGD("Notify sink dev, new engine, random task code:%s", std::to_string(randomTaskCode).c_str()); if (speaker_ == nullptr || mic_ == nullptr) { cJSON_Delete(jParamCopy); + cJSON_Delete(jParam); DHLOGE("speaker or mic dev is null."); return ERR_DH_AUDIO_NULLPTR; } if (type == OPEN_CTRL || type == CLOSE_CTRL) { cJSON_Delete(jParamCopy); + cJSON_Delete(jParam); DHLOGE("In new engine mode, ctrl is not allowed."); return ERR_DH_AUDIO_NULLPTR; } @@ -1376,10 +1380,10 @@ int32_t DAudioSourceDev::NotifySinkDev(const AudioEventType type, const cJSON *p if (type == CLOSE_SPEAKER || type == CLOSE_MIC) { // Close spk || Close mic do not need to wait RPC - CleanupJson(jParamCopy, content); + CleanupJson(jParamCopy, jParam, content); return DH_SUCCESS; } - CleanupJson(jParamCopy, content); + CleanupJson(jParamCopy, jParam, content); return WaitForRPC(static_cast(static_cast(type) + eventOffset)); } diff --git a/services/audiomanager/test/unittest/managersink/src/daudio_sink_manager_test.cpp b/services/audiomanager/test/unittest/managersink/src/daudio_sink_manager_test.cpp index 570d01d4..bad59dca 100644 --- a/services/audiomanager/test/unittest/managersink/src/daudio_sink_manager_test.cpp +++ b/services/audiomanager/test/unittest/managersink/src/daudio_sink_manager_test.cpp @@ -56,12 +56,10 @@ HWTEST_F(DAudioSinkManagerTest, CreateAudioDevice_001, TestSize.Level1) daudioSinkManager.LoadAVReceiverEngineProvider(); EXPECT_EQ(DH_SUCCESS, daudioSinkManager.CreateAudioDevice(devId)); daudioSinkManager.channelState_ = ChannelState::MIC_CONTROL_OPENED; - daudioSinkManager.LoadAVSenderEngineProvider(); + daudioSinkManager.LoadAVReceiverEngineProvider(); EXPECT_EQ(DH_SUCCESS, daudioSinkManager.CreateAudioDevice(devId)); auto dev = std::make_shared(devId); daudioSinkManager.audioDevMap_.emplace(devId, dev); - daudioSinkManager.channelState_ = ChannelState::MIC_CONTROL_OPENED; - daudioSinkManager.LoadAVSenderEngineProvider(); EXPECT_EQ(DH_SUCCESS, daudioSinkManager.CreateAudioDevice(devId)); daudioSinkManager.channelState_ = ChannelState::MIC_CONTROL_OPENED; daudioSinkManager.sendProviderPtr_ = nullptr; diff --git a/services/audiomanager/test/unittest/sourcedevice/src/daudio_source_dev_test.cpp b/services/audiomanager/test/unittest/sourcedevice/src/daudio_source_dev_test.cpp index 24423e0d..8328aa1b 100644 --- a/services/audiomanager/test/unittest/sourcedevice/src/daudio_source_dev_test.cpp +++ b/services/audiomanager/test/unittest/sourcedevice/src/daudio_source_dev_test.cpp @@ -752,7 +752,7 @@ HWTEST_F(DAudioSourceDevTest, TaskOpenDSpeaker_001, TestSize.Level1) std::string tempLongStr(DAUDIO_MAX_JSON_LEN + 1, 'a'); EXPECT_EQ(ERR_DH_AUDIO_SA_PARAM_INVALID, sourceDev_->TaskOpenDSpeaker(tempLongStr)); - EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, sourceDev_->TaskOpenDSpeaker(ARGS)); + EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceDev_->TaskOpenDSpeaker(ARGS)); cJSON *jParamSpk = cJSON_CreateObject(); cJSON_AddStringToObject(jParamSpk, KEY_DH_ID, DH_ID_SPK.c_str()); @@ -787,10 +787,10 @@ HWTEST_F(DAudioSourceDevTest, TaskCloseDSpeaker_001, TestSize.Level1) EXPECT_EQ(ERR_DH_AUDIO_SA_PARAM_INVALID, sourceDev_->TaskCloseDSpeaker(tempLongStr)); sourceDev_->speaker_->isOpened_ = true; - EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, sourceDev_->TaskCloseDSpeaker(ARGS)); + EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceDev_->TaskCloseDSpeaker(ARGS)); sourceDev_->speaker_->isOpened_ = false; - EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, sourceDev_->TaskCloseDSpeaker(ARGS)); + EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceDev_->TaskCloseDSpeaker(ARGS)); cJSON *jParamSpk = cJSON_CreateObject(); cJSON_AddStringToObject(jParamSpk, KEY_DH_ID, DH_ID_SPK.c_str()); @@ -858,10 +858,10 @@ HWTEST_F(DAudioSourceDevTest, TaskCloseDMic_001, TestSize.Level1) EXPECT_EQ(ERR_DH_AUDIO_SA_PARAM_INVALID, sourceDev_->TaskCloseDMic(tempLongStr)); sourceDev_->mic_->isOpened_ = true; - EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, sourceDev_->TaskCloseDMic(ARGS)); + EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceDev_->TaskCloseDMic(ARGS)); sourceDev_->mic_->isOpened_ = false; - EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, sourceDev_->TaskCloseDMic(ARGS)); + EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceDev_->TaskCloseDMic(ARGS)); cJSON *jParamMic = cJSON_CreateObject(); cJSON_AddStringToObject(jParamMic, KEY_DH_ID, DH_ID_MIC.c_str()); @@ -1141,14 +1141,15 @@ HWTEST_F(DAudioSourceDevTest, NotifyHDF_003, TestSize.Level1) HWTEST_F(DAudioSourceDevTest, NotifySinkDev_001, TestSize.Level1) { cJSON *jAudioParam = cJSON_CreateObject(); + sourceDev_->isRpcOpen_.store(false); EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceDev_->NotifySinkDev(CLOSE_MIC, jAudioParam, DH_ID_SPK)); + sourceDev_->isRpcOpen_.store(true); EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, sourceDev_->NotifySinkDev(CLOSE_MIC, jAudioParam, DH_ID_SPK)); sourceDev_->mic_ = std::make_shared(DEV_ID, sourceDev_); sourceDev_->speaker_ = std::make_shared(DEV_ID, sourceDev_); EXPECT_EQ(DH_SUCCESS, sourceDev_->NotifySinkDev(CLOSE_MIC, jAudioParam, DH_ID_SPK)); - cJSON_Delete(jAudioParam); } /** diff --git a/services/audiomanager/test/unittest/sourcemanager/src/daudio_source_mgr_test.cpp b/services/audiomanager/test/unittest/sourcemanager/src/daudio_source_mgr_test.cpp index ab9600b1..6bc3da9c 100644 --- a/services/audiomanager/test/unittest/sourcemanager/src/daudio_source_mgr_test.cpp +++ b/services/audiomanager/test/unittest/sourcemanager/src/daudio_source_mgr_test.cpp @@ -182,12 +182,12 @@ HWTEST_F(DAudioSourceMgrTest, DisableDAudio_001, TestSize.Level1) */ HWTEST_F(DAudioSourceMgrTest, HandleDAudioNotify_001, TestSize.Level1) { - EXPECT_EQ(ERR_DH_AUDIO_FAILED, + EXPECT_EQ(ERR_DH_AUDIO_SA_DEVICE_NOT_EXIST, sourceMgr.HandleDAudioNotify(DEV_ID, DH_ID_SPK, OPEN_SPEAKER, "openspk")); std::string reqId = GetRandomID(); EXPECT_EQ(DH_SUCCESS, sourceMgr.EnableDAudio(DEV_ID, DH_ID_SPK, "", ATTRS, reqId)); - EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceMgr.HandleDAudioNotify(DEV_ID, DH_ID_SPK, OPEN_SPEAKER, "openspk")); + EXPECT_EQ(DH_SUCCESS, sourceMgr.HandleDAudioNotify(DEV_ID, DH_ID_SPK, OPEN_SPEAKER, "openspk")); EXPECT_EQ(DH_SUCCESS, sourceMgr.DisableDAudio(DEV_ID, DH_ID_SPK, reqId)); EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceMgr.HandleDAudioNotify(DEV_ID + "1", DH_ID_SPK, CLOSE_CTRL, "")); -- Gitee From dd641bbc44a9426cb0c47c6202ba937c8aabbf5c Mon Sep 17 00:00:00 2001 From: Bobie Date: Sat, 16 Sep 2023 18:39:08 +0800 Subject: [PATCH 2/2] =?UTF-8?q?Revert=20"cJSON=E6=95=B4=E6=94=B9"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 686bd11635508274ec65a9f3abe42c286b1b1703. Signed-off-by: Bobie --- audiohandler/BUILD.gn | 7 +- audiohandler/include/daudio_handler.h | 3 - audiohandler/src/daudio_handler.cpp | 56 +-- audiohandler/test/unittest/BUILD.gn | 3 +- bundle.json | 2 +- common/dfx_utils/test/unittest/BUILD.gn | 4 +- common/include/daudio_util.h | 12 +- common/src/daudio_util.cpp | 67 +-- common/test/unittest/BUILD.gn | 3 +- .../test/unittest/src/daudio_utils_test.cpp | 9 +- .../inner_kits/native_cpp/audio_sink/BUILD.gn | 11 +- .../native_cpp/audio_source/BUILD.gn | 11 +- .../test/unittest/audiosinktest/BUILD.gn | 1 + .../test/unittest/audiosourcetest/BUILD.gn | 1 + .../test/unittest/spkclient/BUILD.gn | 1 + .../unittest/daudio_manager_callback/BUILD.gn | 5 +- .../managersink/include/daudio_sink_dev.h | 9 +- .../managersink/src/daudio_sink_dev.cpp | 154 ++---- .../managersink/src/daudio_sink_manager.cpp | 12 +- .../managersource/include/daudio_source_dev.h | 14 +- .../managersource/include/dmic_dev.h | 4 +- .../managersource/include/dspeaker_dev.h | 4 +- .../managersource/src/daudio_source_dev.cpp | 450 ++++-------------- .../src/daudio_source_manager.cpp | 12 +- .../managersource/src/dmic_dev.cpp | 42 +- .../managersource/src/dspeaker_dev.cpp | 40 +- services/audiomanager/servicesink/BUILD.gn | 3 +- services/audiomanager/servicesource/BUILD.gn | 3 +- .../BUILD.gn | 7 +- .../sourceservicedaudionotify_fuzzer/BUILD.gn | 7 +- .../sourceserviceinitsource_fuzzer/BUILD.gn | 2 - .../BUILD.gn | 7 +- .../BUILD.gn | 7 +- .../BUILD.gn | 7 +- .../test/unittest/managersink/BUILD.gn | 3 +- .../managersink/src/daudio_sink_dev_test.cpp | 3 +- .../test/unittest/servicesink/BUILD.gn | 1 + .../test/unittest/servicesource/BUILD.gn | 3 +- .../test/unittest/sourcedevice/BUILD.gn | 3 +- .../src/daudio_source_dev_test.cpp | 203 +++----- .../test/unittest/sourcemanager/BUILD.gn | 3 +- .../unittest/common/decodeprocessor/BUILD.gn | 4 +- .../unittest/common/encodeprocessor/BUILD.gn | 3 +- .../include/audio_ctrl_channel.h | 6 +- .../src/audio_ctrl_channel.cpp | 61 +-- .../audiochannel/audiodatachannel/BUILD.gn | 7 +- .../audioctrltransport/BUILD.gn | 3 +- .../audiotransportstatus/BUILD.gn | 1 + .../audiotransport/decodetransport/BUILD.gn | 3 +- .../audiotransport/encodetransport/BUILD.gn | 3 +- .../test/unittest/audioctrlchannel/BUILD.gn | 3 +- .../src/audio_ctrl_channel_test.cpp | 3 +- .../test/unittest/audioctrltransport/BUILD.gn | 1 + .../test/unittest/audiodatachannel/BUILD.gn | 3 +- .../unittest/audiotransportstatus/BUILD.gn | 3 +- .../test/unittest/decodetransport/BUILD.gn | 7 +- .../test/unittest/encodetransport/BUILD.gn | 7 +- .../test/unittest/receiverengine/BUILD.gn | 3 +- .../test/unittest/senderengine/BUILD.gn | 3 +- services/common/BUILD.gn | 4 +- .../test/unittest/task_queue/BUILD.gn | 2 +- .../common/test/unittest/audiodata/BUILD.gn | 1 + services/softbusadapter/BUILD.gn | 11 +- .../softbusonbytesreceived_fuzzer/BUILD.gn | 3 +- .../softbusonsessionclosed_fuzzer/BUILD.gn | 3 +- .../softbusonsessionopened_fuzzer/BUILD.gn | 3 +- .../softbusonstreamreceived_fuzzer/BUILD.gn | 3 +- .../softbusadapter/test/unittest/BUILD.gn | 3 +- 68 files changed, 337 insertions(+), 1019 deletions(-) diff --git a/audiohandler/BUILD.gn b/audiohandler/BUILD.gn index 07a32861..f95694e6 100644 --- a/audiohandler/BUILD.gn +++ b/audiohandler/BUILD.gn @@ -17,7 +17,7 @@ import("../distributedaudio.gni") ohos_shared_library("distributed_audio_handler") { include_dirs = [ - "//third_party/cJSON", + "//third_party/json/include", "${fwk_common_path}/utils/include", "${fwk_utils_path}/include", "${mediastandardfwk_path}/audiomanager/include", @@ -33,10 +33,7 @@ ohos_shared_library("distributed_audio_handler") { sources = [ "src/daudio_handler.cpp" ] - deps = [ - "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", - ] + deps = [ "${services_path}/common:distributed_audio_utils" ] external_deps = [ "audio_framework:audio_capturer", diff --git a/audiohandler/include/daudio_handler.h b/audiohandler/include/daudio_handler.h index 2a352363..4b79ea82 100644 --- a/audiohandler/include/daudio_handler.h +++ b/audiohandler/include/daudio_handler.h @@ -18,8 +18,6 @@ #include -#include "cJSON.h" - #include "ihardware_handler.h" #include "single_instance.h" #include "audio_param.h" @@ -59,7 +57,6 @@ private: ~DAudioHandler(); int32_t QueryCodecInfo(); int32_t QueryAudioInfo(); - void AddItemsToObject(cJSON* infoJson, const int32_t &dhId); void GetSupportAudioInfo(AudioInfo &audioInfos, CoderInfo &encoderInfos, CoderInfo &decoderInfos); private: diff --git a/audiohandler/src/daudio_handler.cpp b/audiohandler/src/daudio_handler.cpp index 45b3bf7c..06e57b69 100644 --- a/audiohandler/src/daudio_handler.cpp +++ b/audiohandler/src/daudio_handler.cpp @@ -19,6 +19,7 @@ #include "audio_system_manager.h" #include "avcodec_list.h" +#include "nlohmann/json.hpp" #include "string_ex.h" #include "histreamer_query_tool.h" @@ -30,6 +31,8 @@ #undef DH_LOG_TAG #define DH_LOG_TAG "DAudioHandler" +using json = nlohmann::json; + namespace OHOS { namespace DistributedHardware { IMPLEMENT_SINGLE_INSTANCE(DAudioHandler); @@ -79,61 +82,40 @@ std::vector DAudioHandler::Query() for (auto dev : audioDevices) { auto dhId = audioSrv->GetPinValueFromType(dev->deviceType_, dev->deviceRole_); - cJSON* infoJson = cJSON_CreateObject(); - if (infoJson == nullptr) { - DHLOGE("Failed to create cJSON object."); - return dhItemVec; + json infoJson; + int32_t deviceType = GetDevTypeByDHId(dhId); + if (deviceType == AUDIO_DEVICE_TYPE_MIC) { + infoJson["SampleRates"] = micInfos_.sampleRates; + infoJson["ChannelMasks"] = micInfos_.channels; + infoJson["Formats"] = micInfos_.formats; + } else if (deviceType == AUDIO_DEVICE_TYPE_SPEAKER) { + infoJson["SampleRates"] = spkInfos_.sampleRates; + infoJson["ChannelMasks"] = spkInfos_.channels; + infoJson["Formats"] = spkInfos_.formats; } - - AddItemsToObject(infoJson, dhId); - cJSON_AddNumberToObject(infoJson, "INTERRUPT_GROUP_ID", dev->interruptGroupId_); - cJSON_AddNumberToObject(infoJson, "VOLUME_GROUP_ID", dev->volumeGroupId_); + infoJson["INTERRUPT_GROUP_ID"] = dev->interruptGroupId_; + infoJson["VOLUME_GROUP_ID"] = dev->volumeGroupId_; std::string audioEncoders = HiStreamerQueryTool::GetInstance().QueryHiStreamerPluginInfo(HISTREAM_PLUGIN_TYPE::AUDIO_ENCODER); DHLOGI("DScreen QueryAudioEncoderAbility info: %s", audioEncoders.c_str()); - cJSON_AddStringToObject(infoJson, KEY_HISTREAMER_AUDIO_ENCODER.c_str(), audioEncoders.c_str()); + infoJson[KEY_HISTREAMER_AUDIO_ENCODER] = audioEncoders; std::string audioDecoders = HiStreamerQueryTool::GetInstance().QueryHiStreamerPluginInfo(HISTREAM_PLUGIN_TYPE::AUDIO_DECODER); DHLOGI("DScreen QueryAudioDecoderAbility info: %s", audioDecoders.c_str()); - cJSON_AddStringToObject(infoJson, KEY_HISTREAMER_AUDIO_DECODER.c_str(), audioDecoders.c_str()); + infoJson[KEY_HISTREAMER_AUDIO_DECODER] = audioDecoders; DHItem dhItem; dhItem.dhId = std::to_string(dhId); - char *jsonStr = cJSON_Print(infoJson); - dhItem.attrs = jsonStr; + dhItem.attrs = infoJson.dump(); dhItemVec.push_back(dhItem); - DHLOGD("Query result: dhId: %d, attrs: %s.", dhId, jsonStr); - - cJSON_Delete(infoJson); - cJSON_free(jsonStr); + DHLOGD("Query result: dhId: %d, attrs: %s.", dhId, infoJson.dump().c_str()); } ablityForDumpVec_ = dhItemVec; return dhItemVec; } -void DAudioHandler::AddItemsToObject(cJSON* infoJson, const int32_t &dhId) -{ - DHLOGD("Get dhId and then add other items into json object"); - int32_t deviceType = GetDevTypeByDHId(dhId); - if (deviceType == AUDIO_DEVICE_TYPE_MIC) { - cJSON_AddItemToObject(infoJson, "SampleRates", - cJSON_CreateIntArray(micInfos_.sampleRates.data(), micInfos_.sampleRates.size())); - cJSON_AddItemToObject(infoJson, "ChannelMasks", - cJSON_CreateIntArray(micInfos_.channels.data(), micInfos_.channels.size())); - cJSON_AddItemToObject(infoJson, "Formats", - cJSON_CreateIntArray(micInfos_.formats.data(), micInfos_.formats.size())); - } else if (deviceType == AUDIO_DEVICE_TYPE_SPEAKER) { - cJSON_AddItemToObject(infoJson, "SampleRates", - cJSON_CreateIntArray(spkInfos_.sampleRates.data(), spkInfos_.sampleRates.size())); - cJSON_AddItemToObject(infoJson, "ChannelMasks", - cJSON_CreateIntArray(spkInfos_.channels.data(), spkInfos_.channels.size())); - cJSON_AddItemToObject(infoJson, "Formats", - cJSON_CreateIntArray(spkInfos_.formats.data(), spkInfos_.formats.size())); - } -} - std::vector DAudioHandler::ablityForDump() { DHLOGD("Get audio ablity for dump."); diff --git a/audiohandler/test/unittest/BUILD.gn b/audiohandler/test/unittest/BUILD.gn index 2660eaf8..c250a8da 100644 --- a/audiohandler/test/unittest/BUILD.gn +++ b/audiohandler/test/unittest/BUILD.gn @@ -20,7 +20,7 @@ config("module_private_config") { visibility = [ ":*" ] include_dirs = [ - "//third_party/cJSON", + "//third_party/json/include", "${fwk_common_path}/utils/include", "${mediastandard_path}/interfaces/inner_api/native", "${mediastandard_path}/services/utils/include", @@ -47,7 +47,6 @@ ohos_unittest("AudioHandlerTest") { deps = [ "${distributedaudio_path}/audiohandler:distributed_audio_handler", - "//third_party/cJSON:cjson", "//third_party/googletest:gtest_main", ] diff --git a/bundle.json b/bundle.json index 1936ba25..e963b311 100755 --- a/bundle.json +++ b/bundle.json @@ -45,7 +45,7 @@ "samgr" ], "third_party": [ - "cJSON" + "json" ] }, "build": { diff --git a/common/dfx_utils/test/unittest/BUILD.gn b/common/dfx_utils/test/unittest/BUILD.gn index b8b8f360..3a863e45 100644 --- a/common/dfx_utils/test/unittest/BUILD.gn +++ b/common/dfx_utils/test/unittest/BUILD.gn @@ -55,14 +55,13 @@ config("module_private_config") { "${services_path}/common/audioeventcallback", "${services_path}/audiomanager/managersource/include", "${softbusadapter_path}/include", + "//third_party/json/include", "${fwk_common_path}/utils/include", "${mediastandardfwk_path}/audiocapturer/include", "${mediastandardfwk_path}/audiocommon/include", "${mediastandardfwk_path}/audiorenderer/include", "${mediastandardfwk_path}/audiomanager/include", ] - - include_dirs += [ "//third_party/cJSON" ] } ## UnitTest daudio_dfx_test @@ -77,7 +76,6 @@ ohos_unittest("DAudioDfxTest") { deps = [ "${services_path}/audiomanager/servicesource:distributed_audio_source", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", "//third_party/googletest:gmock", "//third_party/googletest:gtest_main", ] diff --git a/common/include/daudio_util.h b/common/include/daudio_util.h index 69341c40..33d43922 100644 --- a/common/include/daudio_util.h +++ b/common/include/daudio_util.h @@ -19,7 +19,9 @@ #include #include #include -#include "cJSON.h" +#include "nlohmann/json.hpp" + +using json = nlohmann::json; #define AUDIO_MS_PER_SECOND 1000 #define AUDIO_US_PER_SECOND 1000000 @@ -34,10 +36,10 @@ int64_t GetNowTimeUs(); int32_t GetAudioParamStr(const std::string ¶ms, const std::string &key, std::string &value); int32_t GetAudioParamBool(const std::string ¶ms, const std::string &key, bool &value); int32_t GetAudioParamInt(const std::string ¶ms, const std::string &key, int32_t &value); -bool JsonParamCheck(const cJSON *jsonObj, const std::initializer_list &keys); -bool IsString(const cJSON *jsonObj, const std::string &key); -bool IsInt32(const cJSON *jsonObj, const std::string &key); -bool IsAudioParam(const cJSON *jsonObj, const std::string &key); +bool JsonParamCheck(const json &jsonObj, const std::initializer_list &key); +bool IsString(const json &jsonObj, const std::string &key); +bool IsInt32(const json &jsonObj, const std::string &key); +bool IsAudioParam(const json &jsonObj, const std::string &key); int32_t CalculateSampleNum(uint32_t sampleRate, uint32_t timems); int64_t GetCurNano(); int32_t AbsoluteSleep(int64_t nanoTime); diff --git a/common/src/daudio_util.cpp b/common/src/daudio_util.cpp index ed19a99e..e1a1fc1f 100644 --- a/common/src/daudio_util.cpp +++ b/common/src/daudio_util.cpp @@ -35,7 +35,7 @@ namespace OHOS { namespace DistributedHardware { -using JsonTypeCheckFunc = bool (*)(const cJSON *jsonObj, const std::string &key); +using JsonTypeCheckFunc = bool (*)(const json &jsonObj, const std::string &key); constexpr int32_t WORD_WIDTH_8 = 8; constexpr int32_t WORD_WIDTH_4 = 4; constexpr size_t INT32_SHORT_ID_LENGTH = 20; @@ -193,17 +193,16 @@ int32_t GetAudioParamInt(const std::string ¶ms, const std::string &key, int3 return DH_SUCCESS; } -bool JsonParamCheck(const cJSON *jsonObj, const std::initializer_list &keys) +bool JsonParamCheck(const json &jsonObj, const std::initializer_list &keys) { - if (jsonObj == nullptr || !cJSON_IsObject(jsonObj)) { - DHLOGE("JSON parameter is invalid."); + if (jsonObj.is_discarded()) { + DHLOGE("Json parameter is invalid."); return false; } for (auto it = keys.begin(); it != keys.end(); it++) { - cJSON *paramValue = cJSON_GetObjectItemCaseSensitive(jsonObj, (*it).c_str()); - if (paramValue == nullptr) { - DHLOGE("JSON parameter does not contain key: %s", (*it).c_str()); + if (!jsonObj.contains(*it)) { + DHLOGE("Json parameter not contain param(%s).", (*it).c_str()); return false; } @@ -212,69 +211,29 @@ bool JsonParamCheck(const cJSON *jsonObj, const std::initializer_listsecond; bool res = (*func)(jsonObj, *it); if (!res) { - DHLOGE("The key %s value format in JSON is illegal.", (*it).c_str()); + DHLOGE("The key %s value format in json is illegal.", (*it).c_str()); return false; } } return true; } -bool IsString(const cJSON *jsonObj, const std::string &key) +bool IsString(const json &jsonObj, const std::string &key) { - if (jsonObj == nullptr || !cJSON_IsObject(jsonObj)) { - DHLOGE("JSON parameter is invalid."); - return false; - } - cJSON *paramValue = cJSON_GetObjectItemCaseSensitive(jsonObj, key.c_str()); - if (paramValue == nullptr) { - DHLOGE("paramValue is null"); - return false; - } - - if (cJSON_IsString(paramValue)) { - return true; - } - return false; + return jsonObj[key].is_string(); } -bool IsInt32(const cJSON *jsonObj, const std::string &key) +bool IsInt32(const json &jsonObj, const std::string &key) { - if (jsonObj == nullptr || !cJSON_IsObject(jsonObj)) { - DHLOGE("JSON parameter is invalid."); - return false; - } - cJSON *paramValue = cJSON_GetObjectItemCaseSensitive(jsonObj, key.c_str()); - if (paramValue == nullptr) { - DHLOGE("paramValue is null"); - return false; - } - - if (cJSON_IsNumber(paramValue)) { - int value = paramValue->valueint; - if (INT32_MIN <= value && value <= INT32_MAX) { - return true; - } - } - return false; + return jsonObj[key].is_number_integer() && INT32_MIN <= jsonObj[key] && jsonObj[key] <= INT32_MAX; } -bool IsAudioParam(const cJSON *jsonObj, const std::string &key) +bool IsAudioParam(const json &jsonObj, const std::string &key) { - if (jsonObj == nullptr || !cJSON_IsObject(jsonObj)) { - DHLOGE("JSON parameter is invalid."); - return false; - } - cJSON *paramValue = cJSON_GetObjectItemCaseSensitive(jsonObj, key.c_str()); - if (paramValue == nullptr || !cJSON_IsObject(paramValue)) { - DHLOGE("paramValue is null or is not object"); - return false; - } - - return JsonParamCheck(paramValue, + return JsonParamCheck(jsonObj[key], { KEY_SAMPLING_RATE, KEY_CHANNELS, KEY_FORMAT, KEY_SOURCE_TYPE, KEY_CONTENT_TYPE, KEY_STREAM_USAGE }); } diff --git a/common/test/unittest/BUILD.gn b/common/test/unittest/BUILD.gn index e1de2daf..b6231b5d 100644 --- a/common/test/unittest/BUILD.gn +++ b/common/test/unittest/BUILD.gn @@ -23,7 +23,7 @@ config("module_private_config") { include_dirs = [ "${fwk_common_path}/utils/include", - "//third_party/cJSON", + "//third_party/json/include", ] include_dirs += [ @@ -41,7 +41,6 @@ ohos_unittest("DaudioUtilsTest") { deps = [ "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", "//third_party/googletest:gtest_main", ] diff --git a/common/test/unittest/src/daudio_utils_test.cpp b/common/test/unittest/src/daudio_utils_test.cpp index 42344968..88131841 100644 --- a/common/test/unittest/src/daudio_utils_test.cpp +++ b/common/test/unittest/src/daudio_utils_test.cpp @@ -257,18 +257,13 @@ HWTEST_F(DAudioUtilsTest, DAudioUtilTest_005, TestSize.Level1) HWTEST_F(DAudioUtilsTest, DAudioUtilTest_006, TestSize.Level1) { std::string tempKey = "TestParam"; - cJSON *jParam = cJSON_CreateObject(); - cJSON_AddItemToObject(jParam, KEY_DEV_ID, cJSON_CreateString("TEST_DEV_ID")); - cJSON_AddItemToObject(jParam, KEY_AUDIO_PARAM, cJSON_CreateString("TEST_PARAM")); - cJSON_AddItemToObject(jParam, KEY_FORMAT, cJSON_CreateString("TEST_8000")); - cJSON_AddItemToObject(jParam, tempKey.c_str(), cJSON_CreateString("TEST_TEMP_KEY")); - + json jParam = { { KEY_DEV_ID, "TEST_DEV_ID" }, {KEY_AUDIO_PARAM, "TEST_PARAM" }, {KEY_FORMAT, "TEST_8000" }, + { tempKey, "TEST_TEMP_KEY" } }; EXPECT_EQ(false, JsonParamCheck(jParam, { KEY_ATTRS })); EXPECT_EQ(false, JsonParamCheck(jParam, { KEY_AUDIO_PARAM })); EXPECT_EQ(false, JsonParamCheck(jParam, { KEY_FORMAT })); EXPECT_EQ(false, JsonParamCheck(jParam, { tempKey })); EXPECT_EQ(true, JsonParamCheck(jParam, { KEY_DEV_ID })); - cJSON_Delete(jParam); } /** diff --git a/interfaces/inner_kits/native_cpp/audio_sink/BUILD.gn b/interfaces/inner_kits/native_cpp/audio_sink/BUILD.gn index 3997a2e1..423af490 100755 --- a/interfaces/inner_kits/native_cpp/audio_sink/BUILD.gn +++ b/interfaces/inner_kits/native_cpp/audio_sink/BUILD.gn @@ -16,13 +16,15 @@ import("//build/ohos_var.gni") import("../../../../distributedaudio.gni") ohos_shared_library("distributed_audio_sink_sdk") { - include_dirs = [ "${fwk_common_path}/utils/include" ] + include_dirs = [ + "${fwk_common_path}/utils/include", + "//third_party/json/include", + ] include_dirs += [ "include", "${common_path}/include", "${common_path}/dfx_utils/include", - "//third_party/cJSON", ] sources = [ @@ -31,10 +33,7 @@ ohos_shared_library("distributed_audio_sink_sdk") { "src/daudio_sink_proxy.cpp", ] - deps = [ - "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", - ] + deps = [ "${services_path}/common:distributed_audio_utils" ] external_deps = [ "c_utils:utils", diff --git a/interfaces/inner_kits/native_cpp/audio_source/BUILD.gn b/interfaces/inner_kits/native_cpp/audio_source/BUILD.gn index e97ea79f..bf65d534 100755 --- a/interfaces/inner_kits/native_cpp/audio_source/BUILD.gn +++ b/interfaces/inner_kits/native_cpp/audio_source/BUILD.gn @@ -16,13 +16,15 @@ import("//build/ohos_var.gni") import("../../../../distributedaudio.gni") ohos_shared_library("distributed_audio_source_sdk") { - include_dirs = [ "${fwk_common_path}/utils/include" ] + include_dirs = [ + "${fwk_common_path}/utils/include", + "//third_party/json/include", + ] include_dirs += [ "include", "${common_path}/include", "${common_path}/dfx_utils/include", - "//third_party/cJSON", ] sources = [ @@ -33,10 +35,7 @@ ohos_shared_library("distributed_audio_source_sdk") { "src/daudio_source_proxy.cpp", ] - deps = [ - "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", - ] + deps = [ "${services_path}/common:distributed_audio_utils" ] external_deps = [ "c_utils:utils", diff --git a/interfaces/inner_kits/native_cpp/test/unittest/audiosinktest/BUILD.gn b/interfaces/inner_kits/native_cpp/test/unittest/audiosinktest/BUILD.gn index 88d30e02..7e1afd53 100755 --- a/interfaces/inner_kits/native_cpp/test/unittest/audiosinktest/BUILD.gn +++ b/interfaces/inner_kits/native_cpp/test/unittest/audiosinktest/BUILD.gn @@ -20,6 +20,7 @@ config("module_private_config") { visibility = [ ":*" ] include_dirs = [ + "//third_party/json/include", "${fwk_common_path}/utils/include", "${fwk_utils_path}/include", ] diff --git a/interfaces/inner_kits/native_cpp/test/unittest/audiosourcetest/BUILD.gn b/interfaces/inner_kits/native_cpp/test/unittest/audiosourcetest/BUILD.gn index 0c1d9cd7..4b921210 100755 --- a/interfaces/inner_kits/native_cpp/test/unittest/audiosourcetest/BUILD.gn +++ b/interfaces/inner_kits/native_cpp/test/unittest/audiosourcetest/BUILD.gn @@ -20,6 +20,7 @@ config("module_private_config") { visibility = [ ":*" ] include_dirs = [ + "//third_party/json/include", "${fwk_common_path}/utils/include", "${fwk_utils_path}/include", "${fwk_utils_path}/include/log", diff --git a/services/audioclient/test/unittest/spkclient/BUILD.gn b/services/audioclient/test/unittest/spkclient/BUILD.gn index ee7f5efa..190b39ce 100644 --- a/services/audioclient/test/unittest/spkclient/BUILD.gn +++ b/services/audioclient/test/unittest/spkclient/BUILD.gn @@ -25,6 +25,7 @@ config("module_private_config") { "${mediastandardfwk_path}/audiocommon/include", "${mediastandardfwk_path}/audiomanager/include", "${mediastandardfwk_path}/audiorenderer/include", + "//third_party/json/include", ] include_dirs += [ diff --git a/services/audiohdiproxy/test/unittest/daudio_manager_callback/BUILD.gn b/services/audiohdiproxy/test/unittest/daudio_manager_callback/BUILD.gn index 17cebd41..64312074 100644 --- a/services/audiohdiproxy/test/unittest/daudio_manager_callback/BUILD.gn +++ b/services/audiohdiproxy/test/unittest/daudio_manager_callback/BUILD.gn @@ -22,7 +22,10 @@ module_out_path = config("module_private_config") { visibility = [ ":*" ] - include_dirs = [ "${fwk_common_path}/utils/include" ] + include_dirs = [ + "${fwk_common_path}/utils/include", + "//third_party/json/include", + ] include_dirs += [ "include", diff --git a/services/audiomanager/managersink/include/daudio_sink_dev.h b/services/audiomanager/managersink/include/daudio_sink_dev.h index cdbe97aa..905a7b0b 100644 --- a/services/audiomanager/managersink/include/daudio_sink_dev.h +++ b/services/audiomanager/managersink/include/daudio_sink_dev.h @@ -22,7 +22,7 @@ #include #include "event_handler.h" -#include "cJSON.h" +#include "nlohmann/json.hpp" #include "daudio_sink_dev_ctrl_manager.h" #include "dmic_client.h" @@ -38,6 +38,8 @@ #include "direct_dspeaker_client.h" #endif +using json = nlohmann::json; + namespace OHOS { namespace DistributedHardware { enum class ChannelState { @@ -73,14 +75,11 @@ private: int32_t TaskPlayStatusChange(const std::string &args); void NotifySourceDev(const AudioEventType type, const std::string dhId, const int32_t result); - int32_t from_json(const cJSON *jsonObj, AudioParam &audioParam); + int32_t from_json(const json &j, AudioParam &audioParam); int32_t HandleEngineMessage(uint32_t type, std::string content, std::string devId); int32_t SendAudioEventToRemote(const AudioEvent &event); void JudgeDeviceStatus(); - int32_t GetCJsonObjectItems(const cJSON *jsonObj, AudioParam &audioParam); - int32_t GetParamValue(const cJSON *jsonObj, const char* key, int32_t& value); - private: std::mutex rpcWaitMutex_; std::condition_variable rpcWaitCond_; diff --git a/services/audiomanager/managersink/src/daudio_sink_dev.cpp b/services/audiomanager/managersink/src/daudio_sink_dev.cpp index 908b945f..053b88db 100644 --- a/services/audiomanager/managersink/src/daudio_sink_dev.cpp +++ b/services/audiomanager/managersink/src/daudio_sink_dev.cpp @@ -116,44 +116,31 @@ int32_t DAudioSinkDev::TaskOpenDSpeaker(const std::string &args) if (args.length() > DAUDIO_MAX_JSON_LEN || args.empty()) { return ERR_DH_AUDIO_SA_PARAM_INVALID; } - - cJSON *jParam = cJSON_Parse(args.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON parameter."); - cJSON_Delete(jParam); - return ERR_DH_AUDIO_FAILED; - } + json jParam = json::parse(args, nullptr, false); if (!JsonParamCheck(jParam, { KEY_DH_ID, KEY_AUDIO_PARAM })) { - cJSON_Delete(jParam); - DHLOGE("Not found the keys."); return ERR_DH_AUDIO_FAILED; } - spkDhId_ = std::string(cJSON_GetObjectItemCaseSensitive(jParam, KEY_DH_ID)->valuestring); - cJSON *audioParamJson = cJSON_GetObjectItemCaseSensitive(jParam, KEY_AUDIO_PARAM); + spkDhId_ = jParam[KEY_DH_ID]; AudioParam audioParam; - int32_t ret = from_json(audioParamJson, audioParam); + int32_t ret = from_json(jParam[KEY_AUDIO_PARAM], audioParam); if (ret != DH_SUCCESS) { DHLOGE("Get audio param from json failed, error code %d.", ret); - cJSON_Delete(jParam); return ret; } if (speakerClient_ == nullptr) { DHLOGE("speaker client should be init by dev."); - cJSON_Delete(jParam); return ERR_DH_AUDIO_NULLPTR; } - + DHLOGI("Open speaker device."); ret = speakerClient_->SetUp(audioParam); if (ret != DH_SUCCESS) { DHLOGE("Setup speaker failed, ret: %d.", ret); NotifySourceDev(NOTIFY_OPEN_SPEAKER_RESULT, spkDhId_, ERR_DH_AUDIO_FAILED); - cJSON_Delete(jParam); return ERR_DH_AUDIO_FAILED; } - NotifySourceDev(NOTIFY_OPEN_SPEAKER_RESULT, spkDhId_, ret); - cJSON_Delete(jParam); + NotifySourceDev(NOTIFY_OPEN_SPEAKER_RESULT, spkDhId_, ret); DHLOGI("Open speaker device task end, notify source ret %d.", ret); isSpkInUse_.store(true); return ret; @@ -204,34 +191,21 @@ int32_t DAudioSinkDev::TaskOpenDMic(const std::string &args) if (args.length() > DAUDIO_MAX_JSON_LEN || args.empty()) { return ERR_DH_AUDIO_SA_PARAM_INVALID; } - - cJSON *jParam = cJSON_Parse(args.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON parameter."); - cJSON_Delete(jParam); - return ERR_DH_AUDIO_FAILED; - } + json jParam = json::parse(args, nullptr, false); if (!JsonParamCheck(jParam, { KEY_DH_ID, KEY_AUDIO_PARAM })) { - DHLOGE("Not found the keys."); - cJSON_Delete(jParam); return ERR_DH_AUDIO_FAILED; } - micDhId_ = std::string(cJSON_GetObjectItemCaseSensitive(jParam, KEY_DH_ID)->valuestring); - cJSON *audioParamJson = cJSON_GetObjectItemCaseSensitive(jParam, KEY_AUDIO_PARAM); + micDhId_ = jParam[KEY_DH_ID]; AudioParam audioParam; - int32_t ret = from_json(audioParamJson, audioParam); + int32_t ret = from_json(jParam[KEY_AUDIO_PARAM], audioParam); if (ret != DH_SUCCESS) { DHLOGE("Get audio param from json failed, error code %d.", ret); - cJSON_Delete(jParam); return ret; } - if (micClient_ == nullptr) { DHLOGE("Mic client should be init by dev."); - cJSON_Delete(jParam); return ERR_DH_AUDIO_NULLPTR; } - do { ret = micClient_->SetUp(audioParam); if (ret != DH_SUCCESS) { @@ -244,10 +218,7 @@ int32_t DAudioSinkDev::TaskOpenDMic(const std::string &args) break; } } while (false); - NotifySourceDev(NOTIFY_OPEN_MIC_RESULT, micDhId_, ret); - cJSON_Delete(jParam); - DHLOGI("Open mic device task end, notify source ret %d.", ret); isMicInUse_.store(true); return ret; @@ -387,107 +358,40 @@ void DAudioSinkDev::NotifySourceDev(const AudioEventType type, const std::string { std::random_device rd; const uint32_t randomTaskCode = rd(); - - cJSON *jEvent = cJSON_CreateObject(); - if (jEvent == nullptr) { - DHLOGE("Failed to create JSON data."); - return; - } - cJSON_AddStringToObject(jEvent, KEY_DH_ID, dhId.c_str()); - cJSON_AddNumberToObject(jEvent, KEY_RESULT, result); - cJSON_AddNumberToObject(jEvent, KEY_EVENT_TYPE, static_cast(type)); - cJSON_AddNumberToObject(jEvent, KEY_RANDOM_TASK_CODE, randomTaskCode); - - DHLOGD("Notify source dev, new engine, random task code:%u", randomTaskCode); + json jEvent; + jEvent[KEY_DH_ID] = dhId; + jEvent[KEY_RESULT] = result; + jEvent[KEY_EVENT_TYPE] = type; + jEvent[KEY_RANDOM_TASK_CODE] = std::to_string(randomTaskCode); + + DHLOGD("Notify source dev, new engine, random task code:%s", std::to_string(randomTaskCode).c_str()); if (type == NOTIFY_OPEN_CTRL_RESULT || type == NOTIFY_CLOSE_CTRL_RESULT) { DHLOGE("In new engine mode, ctrl is not allowed."); - cJSON_Delete(jEvent); - return; - } - char *message = cJSON_PrintUnformatted(jEvent); - if (message == nullptr) { - DHLOGE("Failed to create JSON data."); - cJSON_Delete(jEvent); return; } - std::string messageStr(message); - if (speakerClient_ != nullptr) { - speakerClient_->SendMessage(static_cast(type), messageStr, devId_); + speakerClient_->SendMessage(static_cast(type), jEvent.dump(), devId_); } if (micClient_ != nullptr) { - micClient_->SendMessage(static_cast(type), messageStr, devId_); + micClient_->SendMessage(static_cast(type), jEvent.dump(), devId_); } - cJSON_Delete(jEvent); - cJSON_free(message); } -int32_t DAudioSinkDev::GetParamValue(const cJSON *jsonObj, const char* key, int32_t& value) +int32_t DAudioSinkDev::from_json(const json &j, AudioParam &audioParam) { - cJSON *paramValue = cJSON_GetObjectItemCaseSensitive(jsonObj, key); - if (paramValue == nullptr || !cJSON_IsNumber(paramValue)) { - return ERR_DH_AUDIO_FAILED; - } - value = paramValue->valueint; - return DH_SUCCESS; -} - -int32_t DAudioSinkDev::GetCJsonObjectItems(const cJSON *jsonObj, AudioParam &audioParam) -{ - int32_t result = 0; - result = GetParamValue(jsonObj, KEY_SAMPLING_RATE, reinterpret_cast(audioParam.comParam.sampleRate)); - if (result != DH_SUCCESS) { - return result; - } - result = GetParamValue(jsonObj, KEY_CHANNELS, reinterpret_cast(audioParam.comParam.channelMask)); - if (result != DH_SUCCESS) { - return result; - } - result = GetParamValue(jsonObj, KEY_FORMAT, reinterpret_cast(audioParam.comParam.bitFormat)); - if (result != DH_SUCCESS) { - return result; - } - result = GetParamValue(jsonObj, KEY_FRAMESIZE, reinterpret_cast(audioParam.comParam.frameSize)); - if (result != DH_SUCCESS) { - return result; - } - result = GetParamValue(jsonObj, KEY_SOURCE_TYPE, reinterpret_cast(audioParam.captureOpts.sourceType)); - if (result != DH_SUCCESS) { - return result; - } - result = GetParamValue(jsonObj, KEY_CONTENT_TYPE, reinterpret_cast(audioParam.renderOpts.contentType)); - if (result != DH_SUCCESS) { - return result; - } - result = GetParamValue(jsonObj, KEY_STREAM_USAGE, reinterpret_cast(audioParam.renderOpts.streamUsage)); - if (result != DH_SUCCESS) { - return result; - } - result = GetParamValue(jsonObj, KEY_RENDER_FLAGS, reinterpret_cast(audioParam.renderOpts.renderFlags)); - if (result != DH_SUCCESS) { - return result; - } - result = GetParamValue(jsonObj, KEY_CAPTURE_FLAGS, - reinterpret_cast(audioParam.captureOpts.capturerFlags)); - if (result != DH_SUCCESS) { - return result; - } - return DH_SUCCESS; -} - -int32_t DAudioSinkDev::from_json(const cJSON *jsonObj, AudioParam &audioParam) -{ - if (!JsonParamCheck(jsonObj, - { KEY_SAMPLING_RATE, KEY_CHANNELS, KEY_FORMAT, KEY_SOURCE_TYPE, KEY_CONTENT_TYPE, KEY_STREAM_USAGE, - KEY_RENDER_FLAGS, KEY_CAPTURE_FLAGS, KEY_FRAMESIZE })) { - DHLOGE("Not found the keys."); - return ERR_DH_AUDIO_FAILED; - } - - int ret = GetCJsonObjectItems(jsonObj, audioParam); - if (ret != DH_SUCCESS) { + if (!JsonParamCheck(j, + { KEY_SAMPLING_RATE, KEY_CHANNELS, KEY_FORMAT, KEY_SOURCE_TYPE, KEY_CONTENT_TYPE, KEY_STREAM_USAGE })) { return ERR_DH_AUDIO_FAILED; } + j.at(KEY_SAMPLING_RATE).get_to(audioParam.comParam.sampleRate); + j.at(KEY_CHANNELS).get_to(audioParam.comParam.channelMask); + j.at(KEY_FORMAT).get_to(audioParam.comParam.bitFormat); + j.at(KEY_FRAMESIZE).get_to(audioParam.comParam.frameSize); + j.at(KEY_SOURCE_TYPE).get_to(audioParam.captureOpts.sourceType); + j.at(KEY_CONTENT_TYPE).get_to(audioParam.renderOpts.contentType); + j.at(KEY_STREAM_USAGE).get_to(audioParam.renderOpts.streamUsage); + j.at(KEY_RENDER_FLAGS).get_to(audioParam.renderOpts.renderFlags); + j.at(KEY_CAPTURE_FLAGS).get_to(audioParam.captureOpts.capturerFlags); return DH_SUCCESS; } diff --git a/services/audiomanager/managersink/src/daudio_sink_manager.cpp b/services/audiomanager/managersink/src/daudio_sink_manager.cpp index 11508f3c..87b79f77 100644 --- a/services/audiomanager/managersink/src/daudio_sink_manager.cpp +++ b/services/audiomanager/managersink/src/daudio_sink_manager.cpp @@ -143,15 +143,10 @@ int32_t DAudioSinkManager::HandleDAudioNotify(const std::string &devId, const st } // now ctrl channel is also goto here, please sure here not crash. - cJSON *jParam = cJSON_Parse(eventContent.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON parameter."); - cJSON_Delete(jParam); - return ERR_DH_AUDIO_FAILED; - } + json jParam = json::parse(eventContent, nullptr, false); if (JsonParamCheck(jParam, { KEY_RANDOM_TASK_CODE })) { DHLOGD("Receive audio notify from source, random task code: %s", - cJSON_GetObjectItemCaseSensitive(jParam, KEY_RANDOM_TASK_CODE)->valuestring); + ((std::string)jParam[KEY_RANDOM_TASK_CODE]).c_str()); } bool isDevExisted = false; { @@ -159,12 +154,9 @@ int32_t DAudioSinkManager::HandleDAudioNotify(const std::string &devId, const st isDevExisted = audioDevMap_.find(devId) != audioDevMap_.end(); } if (!isDevExisted && CreateAudioDevice(devId) != DH_SUCCESS) { - cJSON_Delete(jParam); return ERR_DH_AUDIO_FAILED; } - NotifyEvent(devId, eventType, eventContent); - cJSON_Delete(jParam); return DH_SUCCESS; } diff --git a/services/audiomanager/managersource/include/daudio_source_dev.h b/services/audiomanager/managersource/include/daudio_source_dev.h index 1be525e1..7e95e466 100644 --- a/services/audiomanager/managersource/include/daudio_source_dev.h +++ b/services/audiomanager/managersource/include/daudio_source_dev.h @@ -18,7 +18,7 @@ #include #include -#include "cJSON.h" +#include "nlohmann/json.hpp" #include "event_handler.h" @@ -33,6 +33,8 @@ #include "idaudio_ipc_callback.h" #include "idaudio_hdi_callback.h" +using json = nlohmann::json; + namespace OHOS { namespace DistributedHardware { class DAudioSourceDev : public IAudioEventCallback, public std::enable_shared_from_this { @@ -50,7 +52,6 @@ public: private: int32_t EnableDSpeaker(const int32_t dhId, const std::string &attrs); int32_t EnableDMic(const int32_t dhId, const std::string &attrs); - int32_t DisableDAudioInner(const std::string &dhId); int32_t DisableDSpeaker(const int32_t dhId); int32_t DisableDMic(const int32_t dhId); @@ -59,7 +60,6 @@ private: int32_t TaskOpenCtrlChannel(const std::string &args); int32_t TaskCloseCtrlChannel(const std::string &args); int32_t TaskOpenDSpeaker(const std::string &args); - int32_t OpenDSpeakerInner(); int32_t TaskCloseDSpeaker(const std::string &args); int32_t TaskOpenDMic(const std::string &args); int32_t TaskCloseDMic(const std::string &args); @@ -73,10 +73,6 @@ private: int32_t TaskMicMmapStart(const std::string &args); int32_t TaskMicMmapStop(const std::string &args); - int32_t NotifySinkDevOpenMic(cJSON *jParam); - int32_t OpenDMicInner(); - void CleanupJson(cJSON *jParamCopy, cJSON *jParam, char *content); - void OnDisableTaskResult(int32_t resultCode, const std::string &result, const std::string &funcName); void OnEnableTaskResult(int32_t resultCode, const std::string &result, const std::string &funcName); void OnTaskResult(int32_t resultCode, const std::string &result, const std::string &funcName); @@ -104,12 +100,12 @@ private: int32_t HandleMicMmapStart(const AudioEvent &event); int32_t HandleMicMmapStop(const AudioEvent &event); - int32_t NotifySinkDev(const AudioEventType type, const cJSON *param, const std::string dhId); + int32_t NotifySinkDev(const AudioEventType type, const json Param, const std::string dhId); int32_t NotifyHDF(const AudioEventType type, const std::string result); int32_t OpenCtrlTrans(const AudioEvent &event); int32_t CloseCtrlTrans(const AudioEvent &event, bool isSpk); AudioEventType getEventTypeFromArgs(const std::string &args); - void to_json(cJSON **j, const AudioParam ¶m); + void to_json(json &j, const AudioParam ¶m); int32_t SendAudioEventToRemote(const AudioEvent &event); int32_t CloseSpkOld(const std::string &args); int32_t CloseSpkNew(const std::string &args); diff --git a/services/audiomanager/managersource/include/dmic_dev.h b/services/audiomanager/managersource/include/dmic_dev.h index 751f91ca..68d49948 100644 --- a/services/audiomanager/managersource/include/dmic_dev.h +++ b/services/audiomanager/managersource/include/dmic_dev.h @@ -19,7 +19,7 @@ #include #include #include -#include "cJSON.h" +#include "nlohmann/json.hpp" #include "audio_param.h" #include "audio_status.h" @@ -31,6 +31,8 @@ #include "iaudio_event_callback.h" #include "idaudio_hdi_callback.h" +using json = nlohmann::json; + namespace OHOS { namespace DistributedHardware { class DMicDev : public IDAudioHdiCallback, diff --git a/services/audiomanager/managersource/include/dspeaker_dev.h b/services/audiomanager/managersource/include/dspeaker_dev.h index 397a15fb..0b2f8a5e 100644 --- a/services/audiomanager/managersource/include/dspeaker_dev.h +++ b/services/audiomanager/managersource/include/dspeaker_dev.h @@ -19,7 +19,7 @@ #include #include #include -#include "cJSON.h" +#include "nlohmann/json.hpp" #include "audio_param.h" #include "ashmem.h" @@ -30,6 +30,8 @@ #include "iaudio_datatrans_callback.h" #include "idaudio_hdi_callback.h" +using json = nlohmann::json; + namespace OHOS { namespace DistributedHardware { class DSpeakerDev : public IDAudioHdiCallback, diff --git a/services/audiomanager/managersource/src/daudio_source_dev.cpp b/services/audiomanager/managersource/src/daudio_source_dev.cpp index 915668b4..1ae4cbc0 100644 --- a/services/audiomanager/managersource/src/daudio_source_dev.cpp +++ b/services/audiomanager/managersource/src/daudio_source_dev.cpp @@ -15,7 +15,6 @@ #include "daudio_source_dev.h" -#include #include #include "daudio_constants.h" @@ -118,42 +117,32 @@ int32_t DAudioSourceDev::EnableDAudio(const std::string &dhId, const std::string DHLOGE("Event handler is null."); return ERR_DH_AUDIO_NULLPTR; } - - cJSON *jParam = cJSON_CreateObject(); - if (jParam == nullptr) { - DHLOGE("Failed to create JSON object."); - return ERR_DH_AUDIO_NULLPTR; - } - cJSON_AddStringToObject(jParam, KEY_DEV_ID, devId_.c_str()); - cJSON_AddStringToObject(jParam, KEY_DH_ID, dhId.c_str()); - cJSON_AddStringToObject(jParam, KEY_ATTRS, attrs.c_str()); - auto eventParam = std::shared_ptr(jParam, cJSON_Delete); + 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); if (!handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { DHLOGE("Send event failed."); return ERR_DH_AUDIO_FAILED; } - DHLOGD("Enable audio task generated successfully."); + DHLOGD("Enable audio task generate successfully."); return DH_SUCCESS; } -int32_t DAudioSourceDev::DisableDAudioInner(const std::string &dhId) +int32_t DAudioSourceDev::DisableDAudio(const std::string &dhId) { - cJSON *jParamClose = cJSON_CreateObject(); - if (jParamClose == nullptr) { - DHLOGE("Failed to create JSON object."); - return ERR_DH_AUDIO_NULLPTR; - } - cJSON_AddStringToObject(jParamClose, KEY_DH_ID, dhId.c_str()); - char *closeArg = cJSON_PrintUnformatted(jParamClose); - if (closeArg == nullptr) { - DHLOGE("Failed to create JSON data."); - cJSON_Delete(jParamClose); + 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; } - std::string closeStr(closeArg); - AudioEvent event(AudioEventType::EVENT_UNKNOWN, std::string(closeStr)); + if (!CheckIsNum(dhId)) { + DHLOGE("Disable audio device dhId param error."); + return ERR_DH_AUDIO_SA_DISABLE_PARAM_INVALID; + } + json jParamClose = { { KEY_DH_ID, dhId } }; + AudioEvent event(AudioEventType::EVENT_UNKNOWN, jParamClose.dump()); int32_t dhIdNum = std::stoi(dhId); switch (GetDevTypeByDHId(dhIdNum)) { case AUDIO_DEVICE_TYPE_SPEAKER: @@ -165,49 +154,18 @@ int32_t DAudioSourceDev::DisableDAudioInner(const std::string &dhId) HandleCloseDMic(event); break; default: - cJSON_Delete(jParamClose); - cJSON_free(closeArg); DHLOGE("Unknown audio device."); return ERR_DH_AUDIO_NOT_SUPPORT; } - cJSON_Delete(jParamClose); - cJSON_free(closeArg); - return DH_SUCCESS; -} - -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; - } - if (!CheckIsNum(dhId)) { - DHLOGE("Disable audio device dhId param error."); - return ERR_DH_AUDIO_SA_DISABLE_PARAM_INVALID; - } - int32_t ret = DisableDAudioInner(dhId); - if (ret != DH_SUCCESS) { - DHLOGE("Failed to disable audio,result is: %d", ret); - return ret; - } - - cJSON *jParam = cJSON_CreateObject(); - if (jParam == nullptr) { - DHLOGE("Failed to create JSON object."); - return ERR_DH_AUDIO_NULLPTR; - } - cJSON_AddStringToObject(jParam, KEY_DEV_ID, devId_.c_str()); - cJSON_AddStringToObject(jParam, KEY_DH_ID, dhId.c_str()); - auto eventParam = std::shared_ptr(jParam, cJSON_Delete); + json jParam = { { KEY_DEV_ID, devId_ }, { KEY_DH_ID, dhId } }; + auto eventParam = std::make_shared(jParam); auto msgEvent = AppExecFwk::InnerEvent::Get(EVENT_DAUDIO_DISABLE, eventParam, 0); if (!handler_->SendEvent(msgEvent, 0, AppExecFwk::EventQueue::Priority::IMMEDIATE)) { DHLOGE("Send event failed."); return ERR_DH_AUDIO_FAILED; } - DHLOGD("Disable audio task generated successfully."); + DHLOGD("Disable audio task generate successfully."); return DH_SUCCESS; } @@ -404,29 +362,20 @@ int32_t DAudioSourceDev::HandleNotifyRPC(const AudioEvent &event) if (event.content.length() > DAUDIO_MAX_JSON_LEN || event.content.empty()) { return ERR_DH_AUDIO_SA_PARAM_INVALID; } - cJSON *jParam = cJSON_Parse(event.content.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON data"); - cJSON_Delete(jParam); - return ERR_DH_AUDIO_FAILED; - } + json jParam = json::parse(event.content, nullptr, false); if (!JsonParamCheck(jParam, { KEY_RESULT })) { - DHLOGE("Not found the keys."); - cJSON_Delete(jParam); return ERR_DH_AUDIO_FAILED; } - rpcResult_ = (cJSON_IsTrue(cJSON_GetObjectItem(jParam, KEY_RESULT)) == 1) ? true : false; + rpcResult_ = (jParam[KEY_RESULT] == DH_SUCCESS) ? true : false; DHLOGD("Notify RPC event: %d, result: %d.", event.type, rpcResult_); std::map::iterator iter = eventNotifyMap_.find(event.type); if (iter == eventNotifyMap_.end()) { - cJSON_Delete(jParam); DHLOGE("Invalid eventType."); return ERR_DH_AUDIO_NOT_FOUND_KEY; } rpcNotify_ = iter->second; rpcWaitCond_.notify_all(); - cJSON_Delete(jParam); return DH_SUCCESS; } @@ -634,44 +583,22 @@ int32_t DAudioSourceDev::TaskEnableDAudio(const std::string &args) if (args.length() > DAUDIO_MAX_JSON_LEN || args.empty()) { return ERR_DH_AUDIO_SA_PARAM_INVALID; } - - cJSON *jParam = cJSON_Parse(args.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON parameter."); - cJSON_Delete(jParam); - return ERR_DH_AUDIO_FAILED; - } - if (!JsonParamCheck(jParam, { KEY_DH_ID, KEY_ATTRS }) || - !CheckIsNum(std::string(cJSON_GetObjectItemCaseSensitive(jParam, KEY_DH_ID)->valuestring))) { - cJSON_Delete(jParam); + json jParam = json::parse(args, nullptr, false); + if (!JsonParamCheck(jParam, { KEY_DH_ID, KEY_ATTRS }) || !CheckIsNum((std::string)jParam[KEY_DH_ID])) { DHLOGE("The keys or values is invalid."); return ERR_DH_AUDIO_SA_ENABLE_PARAM_INVALID; } - cJSON *jsonDhId = cJSON_GetObjectItemCaseSensitive(jParam, KEY_DH_ID); - if (jsonDhId == nullptr) { - DHLOGE("Failed to get object item."); - cJSON_Delete(jParam); - return ERR_DH_AUDIO_NULLPTR; - } - int32_t dhId = std::atoi(jsonDhId->valuestring); - char *attrs = cJSON_PrintUnformatted(cJSON_GetObjectItem(jParam, KEY_ATTRS)); - std::string attrsStr(attrs); - int32_t result = 0; + int32_t dhId = std::stoi((std::string)jParam[KEY_DH_ID]); + switch (GetDevTypeByDHId(dhId)) { case AUDIO_DEVICE_TYPE_SPEAKER: - result = EnableDSpeaker(dhId, attrsStr); - break; + return EnableDSpeaker(dhId, jParam[KEY_ATTRS]); case AUDIO_DEVICE_TYPE_MIC: - result = EnableDMic(dhId, attrsStr); - break; + return EnableDMic(dhId, jParam[KEY_ATTRS]); default: DHLOGE("Unknown audio device."); - result = ERR_DH_AUDIO_NOT_SUPPORT; - break; + return ERR_DH_AUDIO_NOT_SUPPORT; } - cJSON_Delete(jParam); - cJSON_free(attrs); - return result; } int32_t DAudioSourceDev::EnableDSpeaker(const int32_t dhId, const std::string &attrs) @@ -706,29 +633,12 @@ void DAudioSourceDev::OnEnableTaskResult(int32_t resultCode, const std::string & if (result.length() > DAUDIO_MAX_JSON_LEN || result.empty()) { return; } - cJSON *jParam = cJSON_Parse(result.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON parameter."); - cJSON_Delete(jParam); - return; - } + json jParam = json::parse(result, nullptr, false); if (!JsonParamCheck(jParam, { KEY_DEV_ID, KEY_DH_ID })) { DHLOGE("Not found the keys."); - cJSON_Delete(jParam); return; } - char *devId = cJSON_PrintUnformatted(cJSON_GetObjectItem(jParam, KEY_DEV_ID)); - std::string devIdStr(devId); - char *dhId = cJSON_PrintUnformatted(cJSON_GetObjectItem(jParam, KEY_DH_ID)); - std::string dhIdStr(dhId); - mgrCallback_->OnEnableAudioResult(devIdStr, dhIdStr, resultCode); - cJSON_Delete(jParam); - if (devId != nullptr) { - cJSON_free(devId); - } - if (dhId != nullptr) { - cJSON_free(dhId); - } + mgrCallback_->OnEnableAudioResult(jParam[KEY_DEV_ID], jParam[KEY_DH_ID], resultCode); } int32_t DAudioSourceDev::TaskDisableDAudio(const std::string &args) @@ -737,39 +647,20 @@ int32_t DAudioSourceDev::TaskDisableDAudio(const std::string &args) if (args.length() > DAUDIO_MAX_JSON_LEN || args.empty()) { return ERR_DH_AUDIO_SA_PARAM_INVALID; } - cJSON *jParam = cJSON_Parse(args.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON parameter."); - cJSON_Delete(jParam); - return ERR_DH_AUDIO_FAILED; - } - if (!JsonParamCheck(jParam, { KEY_DH_ID }) || - !CheckIsNum(std::string(cJSON_GetObjectItem(jParam, KEY_DH_ID)->valuestring))) { - cJSON_Delete(jParam); - DHLOGE("Not found the keys."); + json jParam = json::parse(args, nullptr, false); + if (!JsonParamCheck(jParam, { KEY_DH_ID }) || !CheckIsNum((std::string)jParam[KEY_DH_ID])) { return ERR_DH_AUDIO_SA_DISABLE_PARAM_INVALID; } - cJSON *jsonDhId = cJSON_GetObjectItemCaseSensitive(jParam, KEY_DH_ID); - if (jsonDhId == nullptr) { - DHLOGE("Failed to get object item."); - return ERR_DH_AUDIO_NULLPTR; - } - int32_t dhId = std::atoi(jsonDhId->valuestring); - int32_t result = 0; + int32_t dhId = std::stoi((std::string)jParam[KEY_DH_ID]); switch (GetDevTypeByDHId(dhId)) { case AUDIO_DEVICE_TYPE_SPEAKER: - result = DisableDSpeaker(dhId); - break; + return DisableDSpeaker(dhId); case AUDIO_DEVICE_TYPE_MIC: - result = DisableDMic(dhId); - break; + return DisableDMic(dhId); default: DHLOGE("Unknown audio device."); - result = ERR_DH_AUDIO_NOT_SUPPORT; - break; + return ERR_DH_AUDIO_NOT_SUPPORT; } - cJSON_Delete(jParam); - return result; } int32_t DAudioSourceDev::DisableDSpeaker(const int32_t dhId) @@ -804,29 +695,12 @@ void DAudioSourceDev::OnDisableTaskResult(int32_t resultCode, const std::string if (result.length() > DAUDIO_MAX_JSON_LEN || result.empty()) { return; } - cJSON *jParam = cJSON_Parse(result.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON parameter."); - cJSON_Delete(jParam); - return; - } + json jParam = json::parse(result, nullptr, false); if (!JsonParamCheck(jParam, { KEY_DEV_ID, KEY_DH_ID })) { DHLOGE("Not found the keys."); - cJSON_Delete(jParam); return; } - char *devId = cJSON_PrintUnformatted(cJSON_GetObjectItem(jParam, KEY_DEV_ID)); - std::string devIdStr(devId); - char *dhId = cJSON_PrintUnformatted(cJSON_GetObjectItem(jParam, KEY_DH_ID)); - std::string dhIdStr(dhId); - mgrCallback_->OnDisableAudioResult(devIdStr, dhIdStr, resultCode); - cJSON_Delete(jParam); - if (devId != nullptr) { - cJSON_free(devId); - } - if (dhId != nullptr) { - cJSON_free(dhId); - } + mgrCallback_->OnDisableAudioResult(jParam[KEY_DEV_ID], jParam[KEY_DH_ID], resultCode); } int32_t DAudioSourceDev::TaskOpenDSpeaker(const std::string &args) @@ -839,51 +713,26 @@ int32_t DAudioSourceDev::TaskOpenDSpeaker(const std::string &args) if (args.length() > DAUDIO_MAX_JSON_LEN || args.empty()) { return ERR_DH_AUDIO_SA_PARAM_INVALID; } - cJSON *jParam = cJSON_Parse(args.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON: %s", cJSON_GetErrorPtr()); - cJSON_Delete(jParam); - return ERR_DH_AUDIO_NULLPTR; - } + json jParam = json::parse(args, nullptr, false); if (!JsonParamCheck(jParam, { KEY_DH_ID })) { - DHLOGE("Not found the keys."); - cJSON_Delete(jParam); return ERR_DH_AUDIO_FAILED; } + int32_t ret = speaker_->InitSenderEngine(DAudioSourceManager::GetInstance().getSenderProvider()); if (ret != DH_SUCCESS) { DHLOGE("Speaker init sender Engine, error code %d.", ret); - cJSON_Delete(jParam); return ret; } - cJSON *jAudioParam = cJSON_CreateObject(); - if (jAudioParam == nullptr) { - DHLOGE("Failed to parse JSON: %s", cJSON_GetErrorPtr()); - return ERR_DH_AUDIO_NULLPTR; - } - to_json(&jAudioParam, speaker_->GetAudioParam()); - ret = NotifySinkDev(OPEN_SPEAKER, jAudioParam, std::string(cJSON_GetObjectItem(jParam, KEY_DH_ID)->valuestring)); + + json jAudioParam; + to_json(jAudioParam, speaker_->GetAudioParam()); + ret = NotifySinkDev(OPEN_SPEAKER, jAudioParam, jParam[KEY_DH_ID]); if (ret != DH_SUCCESS) { DHLOGE("Notify sink open speaker failed, error code %d.", ret); - cJSON_Delete(jParam); - cJSON_Delete(jAudioParam); - return ret; - } - ret = OpenDSpeakerInner(); - if (ret != DH_SUCCESS) { - DHLOGE("Task Open DSpeaker Execute failed, error code %d.", ret); - cJSON_Delete(jParam); - cJSON_Delete(jAudioParam); return ret; } - cJSON_Delete(jParam); - cJSON_Delete(jAudioParam); - return DH_SUCCESS; -} -int32_t DAudioSourceDev::OpenDSpeakerInner() -{ - int32_t ret = speaker_->SetUp(); + ret = speaker_->SetUp(); if (ret != DH_SUCCESS) { DHLOGE("Speaker setup failed, error code %d.", ret); return ret; @@ -914,26 +763,12 @@ int32_t DAudioSourceDev::CloseSpkOld(const std::string &args) closeStatus = false; } if (!speaker_->IsOpened()) { - cJSON *jAudioParam = cJSON_CreateObject(); - if (jAudioParam == nullptr) { - DHLOGE("Failed to create JSON object."); - return ERR_DH_AUDIO_NULLPTR; - } - cJSON *jParam = cJSON_Parse(args.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON parameter."); - cJSON_Delete(jParam); - return ERR_DH_AUDIO_NULLPTR; - } + json jAudioParam; + json jParam = json::parse(args, nullptr, false); if (!JsonParamCheck(jParam, { KEY_DH_ID })) { - DHLOGE("Not found the keys."); - cJSON_Delete(jParam); - cJSON_Delete(jAudioParam); return ERR_DH_AUDIO_FAILED; } - NotifySinkDev(CLOSE_SPEAKER, jAudioParam, std::string(cJSON_GetObjectItem(jParam, KEY_DH_ID)->valuestring)); - cJSON_Delete(jParam); - cJSON_Delete(jAudioParam); + NotifySinkDev(CLOSE_SPEAKER, jAudioParam, jParam[KEY_DH_ID]); } if (!closeStatus) { return ERR_DH_AUDIO_FAILED; @@ -944,24 +779,13 @@ int32_t DAudioSourceDev::CloseSpkOld(const std::string &args) int32_t DAudioSourceDev::CloseSpkNew(const std::string &args) { DHLOGI("Close speaker new"); - cJSON *jAudioParam = cJSON_CreateObject(); - if (jAudioParam == nullptr) { - DHLOGE("Failed to create JSON object."); - return ERR_DH_AUDIO_NULLPTR; - } - cJSON *jParam = cJSON_Parse(args.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON parameter."); - cJSON_Delete(jParam); - return ERR_DH_AUDIO_NULLPTR; - } + json jAudioParam; + json jParam = json::parse(args, nullptr, false); if (!JsonParamCheck(jParam, { KEY_DH_ID })) { - DHLOGE("Task close speaker new, json param check failed."); - cJSON_Delete(jParam); - cJSON_Delete(jAudioParam); + DHLOGE("Task close speaker, json param check failed."); return ERR_DH_AUDIO_FAILED; } - NotifySinkDev(CLOSE_SPEAKER, jAudioParam, std::string(cJSON_GetObjectItem(jParam, KEY_DH_ID)->valuestring)); + NotifySinkDev(CLOSE_SPEAKER, jAudioParam, jParam[KEY_DH_ID]); bool closeStatus = true; int32_t ret = speaker_->Stop(); if (ret != DH_SUCCESS) { @@ -974,12 +798,8 @@ int32_t DAudioSourceDev::CloseSpkNew(const std::string &args) closeStatus = false; } if (!closeStatus) { - cJSON_Delete(jParam); - cJSON_Delete(jAudioParam); return ERR_DH_AUDIO_FAILED; } - cJSON_Delete(jParam); - cJSON_Delete(jAudioParam); return DH_SUCCESS; } @@ -1025,54 +845,20 @@ int32_t DAudioSourceDev::TaskOpenDMic(const std::string &args) return ret; } - cJSON *jParam = cJSON_Parse(args.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON: %s", cJSON_GetErrorPtr()); - cJSON_Delete(jParam); - mic_->Release(); - return ERR_DH_AUDIO_FAILED; - } + json jAudioParam; + json jParam = json::parse(args, nullptr, false); if (!JsonParamCheck(jParam, { KEY_DH_ID })) { - cJSON_Delete(jParam); return ERR_DH_AUDIO_FAILED; } - - ret = NotifySinkDevOpenMic(jParam); - if (ret != DH_SUCCESS) { - cJSON_Delete(jParam); - return ret; - } - - ret = OpenDMicInner(); - if (ret != DH_SUCCESS) { - cJSON_Delete(jParam); - return ret; - } - cJSON_Delete(jParam); - return DH_SUCCESS; -} - -int32_t DAudioSourceDev::NotifySinkDevOpenMic(cJSON *jParam) -{ - cJSON *jAudioParam = cJSON_CreateObject(); - if (jAudioParam == nullptr) { - return ERR_DH_AUDIO_NULLPTR; - } - to_json(&jAudioParam, mic_->GetAudioParam()); - int32_t ret = NotifySinkDev(OPEN_MIC, jAudioParam, cJSON_GetObjectItem(jParam, KEY_DH_ID)->valuestring); + to_json(jAudioParam, mic_->GetAudioParam()); + ret = NotifySinkDev(OPEN_MIC, jAudioParam, jParam[KEY_DH_ID]); if (ret != DH_SUCCESS) { DHLOGE("Notify sink open mic failed, error code %d.", ret); mic_->Release(); - cJSON_Delete(jAudioParam); return ret; } - cJSON_Delete(jAudioParam); - return DH_SUCCESS; -} -int32_t DAudioSourceDev::OpenDMicInner() -{ - int32_t ret = mic_->Start(); + ret = mic_->Start(); if (ret != DH_SUCCESS) { DHLOGE("Mic start failed, error code %d.", ret); mic_->Stop(); @@ -1098,26 +884,13 @@ int32_t DAudioSourceDev::CloseMicOld(const std::string &args) closeStatus = false; } if (!mic_->IsOpened()) { - cJSON *jAudioParam = cJSON_CreateObject(); - if (jAudioParam == nullptr) { - DHLOGE("Failed to create JSON object."); - return ERR_DH_AUDIO_NULLPTR; - } - cJSON *jParam = cJSON_Parse(args.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON parameter."); - cJSON_Delete(jParam); - return ERR_DH_AUDIO_NULLPTR; - } + json jAudioParam; + json jParam = json::parse(args, nullptr, false); if (!JsonParamCheck(jParam, { KEY_DH_ID })) { DHLOGE("Task close mic, json param check failed."); - cJSON_Delete(jAudioParam); - cJSON_Delete(jParam); return ERR_DH_AUDIO_FAILED; } - NotifySinkDev(CLOSE_MIC, jAudioParam, std::string(cJSON_GetObjectItem(jParam, KEY_DH_ID)->valuestring)); - cJSON_Delete(jAudioParam); - cJSON_Delete(jParam); + NotifySinkDev(CLOSE_MIC, jAudioParam, jParam[KEY_DH_ID]); } if (!closeStatus) { return ERR_DH_AUDIO_FAILED; @@ -1128,24 +901,13 @@ int32_t DAudioSourceDev::CloseMicOld(const std::string &args) int32_t DAudioSourceDev::CloseMicNew(const std::string &args) { DHLOGI("Close mic new."); - cJSON *jAudioParam = cJSON_CreateObject(); - if (jAudioParam == nullptr) { - DHLOGE("Failed to create JSON object."); - return ERR_DH_AUDIO_NULLPTR; - } - cJSON *jParam = cJSON_Parse(args.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON parameter."); - cJSON_Delete(jParam); - return ERR_DH_AUDIO_NULLPTR; - } + json jAudioParam; + json jParam = json::parse(args, nullptr, false); if (!JsonParamCheck(jParam, { KEY_DH_ID })) { DHLOGE("Task close mic, json param check failed."); - cJSON_Delete(jAudioParam); - cJSON_Delete(jParam); return ERR_DH_AUDIO_FAILED; } - NotifySinkDev(CLOSE_MIC, jAudioParam, std::string(cJSON_GetObjectItem(jParam, KEY_DH_ID)->valuestring)); + NotifySinkDev(CLOSE_MIC, jAudioParam, jParam[KEY_DH_ID]); bool closeStatus = true; int32_t ret = mic_->Stop(); @@ -1159,12 +921,8 @@ int32_t DAudioSourceDev::CloseMicNew(const std::string &args) closeStatus = false; } if (!closeStatus) { - cJSON_Delete(jAudioParam); - cJSON_Delete(jParam); return ERR_DH_AUDIO_FAILED; } - cJSON_Delete(jAudioParam); - cJSON_Delete(jParam); return DH_SUCCESS; } @@ -1330,60 +1088,35 @@ void DAudioSourceDev::OnTaskResult(int32_t resultCode, const std::string &result funcName.c_str()); } -void DAudioSourceDev::CleanupJson(cJSON *jParamCopy, cJSON *jParam, char *content) -{ - cJSON_Delete(jParamCopy); - cJSON_Delete(jParam); - cJSON_free(content); -} - -int32_t DAudioSourceDev::NotifySinkDev(const AudioEventType type, const cJSON *param, const std::string dhId) +int32_t DAudioSourceDev::NotifySinkDev(const AudioEventType type, const json Param, const std::string dhId) { if (!isRpcOpen_.load()) { DHLOGE("Network connection failure, rpc is not open!"); return ERR_DH_AUDIO_FAILED; } - cJSON *jParam = cJSON_CreateObject(); - if (jParam == nullptr) { - DHLOGE("Failed to create JSON object."); - return ERR_DH_AUDIO_NULLPTR; - } - cJSON_AddStringToObject(jParam, KEY_DH_ID, dhId.c_str()); - cJSON_AddNumberToObject(jParam, KEY_EVENT_TYPE, static_cast(type)); - cJSON *jParamCopy = cJSON_Duplicate(param, 1); - cJSON_AddItemToObject(jParam, KEY_AUDIO_PARAM, jParamCopy); std::random_device rd; const uint32_t randomTaskCode = rd(); constexpr uint32_t eventOffset = 4; - cJSON_AddStringToObject(jParam, KEY_RANDOM_TASK_CODE, std::to_string(randomTaskCode).c_str()); - + json jParam = { { KEY_DH_ID, dhId }, + { KEY_EVENT_TYPE, type }, + { KEY_AUDIO_PARAM, Param }, + { KEY_RANDOM_TASK_CODE, std::to_string(randomTaskCode) } }; DHLOGD("Notify sink dev, new engine, random task code:%s", std::to_string(randomTaskCode).c_str()); - if (speaker_ == nullptr || mic_ == nullptr) { - cJSON_Delete(jParamCopy); - cJSON_Delete(jParam); DHLOGE("speaker or mic dev is null."); return ERR_DH_AUDIO_NULLPTR; } - if (type == OPEN_CTRL || type == CLOSE_CTRL) { - cJSON_Delete(jParamCopy); - cJSON_Delete(jParam); DHLOGE("In new engine mode, ctrl is not allowed."); return ERR_DH_AUDIO_NULLPTR; } - char *content = cJSON_PrintUnformatted(jParam); - std::string contentStr(content); - speaker_->SendMessage(static_cast(type), contentStr, devId_); - mic_->SendMessage(static_cast(type), contentStr, devId_); - + speaker_->SendMessage(static_cast(type), jParam.dump(), devId_); + mic_->SendMessage(static_cast(type), jParam.dump(), devId_); if (type == CLOSE_SPEAKER || type == CLOSE_MIC) { // Close spk || Close mic do not need to wait RPC - CleanupJson(jParamCopy, jParam, content); return DH_SUCCESS; } - CleanupJson(jParamCopy, jParam, content); return WaitForRPC(static_cast(static_cast(type) + eventOffset)); } @@ -1424,22 +1157,15 @@ AudioEventType DAudioSourceDev::getEventTypeFromArgs(const std::string &args) return AudioEventType::VOLUME_SET; } -void DAudioSourceDev::to_json(cJSON **j, const AudioParam ¶m) +void DAudioSourceDev::to_json(json &j, const AudioParam ¶m) { - *j = cJSON_CreateObject(); - if (*j == nullptr) { - DHLOGE("Failed to create JSON object."); - return; - } - cJSON_AddNumberToObject(*j, KEY_SAMPLING_RATE, param.comParam.sampleRate); - cJSON_AddNumberToObject(*j, KEY_FORMAT, param.comParam.bitFormat); - cJSON_AddNumberToObject(*j, KEY_CHANNELS, param.comParam.channelMask); - cJSON_AddNumberToObject(*j, KEY_FRAMESIZE, param.comParam.frameSize); - cJSON_AddNumberToObject(*j, KEY_CONTENT_TYPE, param.renderOpts.contentType); - cJSON_AddNumberToObject(*j, KEY_STREAM_USAGE, param.renderOpts.streamUsage); - cJSON_AddNumberToObject(*j, KEY_RENDER_FLAGS, param.renderOpts.renderFlags); - cJSON_AddNumberToObject(*j, KEY_CAPTURE_FLAGS, param.captureOpts.capturerFlags); - cJSON_AddNumberToObject(*j, KEY_SOURCE_TYPE, param.captureOpts.sourceType); + j = json { + { KEY_SAMPLING_RATE, param.comParam.sampleRate }, { KEY_FORMAT, param.comParam.bitFormat }, + { KEY_CHANNELS, param.comParam.channelMask }, { KEY_FRAMESIZE, param.comParam.frameSize }, + { KEY_CONTENT_TYPE, param.renderOpts.contentType }, { KEY_STREAM_USAGE, param.renderOpts.streamUsage }, + { KEY_RENDER_FLAGS, param.renderOpts.renderFlags }, { KEY_CAPTURE_FLAGS, param.captureOpts.capturerFlags }, + { KEY_SOURCE_TYPE, param.captureOpts.sourceType }, + }; } DAudioSourceDev::SourceEventHandler::SourceEventHandler(const std::shared_ptr &runner, @@ -1484,7 +1210,7 @@ void DAudioSourceDev::SourceEventHandler::EnableDAudioCallback(const AppExecFwk: DHLOGE("The input event is null."); return; } - cJSON *jParam = event->GetSharedObject().get(); + std::shared_ptr jParam = event->GetSharedObject(); if (jParam == nullptr) { DHLOGE("The json parameter is null."); return; @@ -1494,17 +1220,11 @@ void DAudioSourceDev::SourceEventHandler::EnableDAudioCallback(const AppExecFwk: DHLOGE("Source dev is invalid."); return; } - char* jsonString = cJSON_PrintUnformatted(jParam); - std::string jParamStr(jsonString, jsonString + strlen(jsonString)); - if (jsonString != nullptr) { - cJSON_free(jsonString); - } - DHLOGI("EnableDAudioCallback jParamStr is: %s", jParamStr.c_str()); - int32_t ret = sourceDevObj->TaskEnableDAudio(jParamStr); + int32_t ret = sourceDevObj->TaskEnableDAudio(jParam->dump()); if (ret != DH_SUCCESS) { DHLOGE("Open ctrl channel failed."); } - sourceDevObj->OnEnableTaskResult(ret, jParamStr, ""); + sourceDevObj->OnEnableTaskResult(ret, jParam->dump(), ""); } void DAudioSourceDev::SourceEventHandler::DisableDAudioCallback(const AppExecFwk::InnerEvent::Pointer &event) @@ -1513,7 +1233,7 @@ void DAudioSourceDev::SourceEventHandler::DisableDAudioCallback(const AppExecFwk DHLOGE("The input event is null."); return; } - cJSON *jParam = event->GetSharedObject().get(); + std::shared_ptr jParam = event->GetSharedObject(); if (jParam == nullptr) { DHLOGE("The json parameter is null."); return; @@ -1523,17 +1243,11 @@ void DAudioSourceDev::SourceEventHandler::DisableDAudioCallback(const AppExecFwk DHLOGE("Source dev is invalid."); return; } - char* jsonString = cJSON_PrintUnformatted(jParam); - std::string jParamStr(jsonString, jsonString + strlen(jsonString)); - if (jsonString != nullptr) { - cJSON_free(jsonString); - } - DHLOGI("DisableDAudioCallback jParamStr is: %s", jParamStr.c_str()); - int32_t ret = sourceDevObj->TaskDisableDAudio(jParamStr); + int32_t ret = sourceDevObj->TaskDisableDAudio(jParam->dump()); if (ret != DH_SUCCESS) { DHLOGE("Disable distributed audio failed."); } - sourceDevObj->OnDisableTaskResult(ret, jParamStr, ""); + sourceDevObj->OnDisableTaskResult(ret, jParam->dump(), ""); } void DAudioSourceDev::SourceEventHandler::OpenDSpeakerCallback(const AppExecFwk::InnerEvent::Pointer &event) diff --git a/services/audiomanager/managersource/src/daudio_source_manager.cpp b/services/audiomanager/managersource/src/daudio_source_manager.cpp index 8612977e..85923dc1 100644 --- a/services/audiomanager/managersource/src/daudio_source_manager.cpp +++ b/services/audiomanager/managersource/src/daudio_source_manager.cpp @@ -180,29 +180,21 @@ int32_t DAudioSourceManager::HandleDAudioNotify(const std::string &devId, const } // now ctrl channel is also goto here, please sure here not crash. - cJSON *jParam = cJSON_Parse(eventContent.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON parameter."); - cJSON_Delete(jParam); - return ERR_DH_AUDIO_FAILED; - } + json jParam = json::parse(eventContent, nullptr, false); if (JsonParamCheck(jParam, { KEY_RANDOM_TASK_CODE })) { DHLOGD("Receive audio notify from sink, random task code: %s", - cJSON_GetObjectItemCaseSensitive(jParam, KEY_RANDOM_TASK_CODE)->valuestring); + ((std::string)jParam[KEY_RANDOM_TASK_CODE]).c_str()); } std::lock_guard lock(devMapMtx_); auto dev = audioDevMap_.find(devId); if (dev == audioDevMap_.end()) { - cJSON_Delete(jParam); DHLOGE("Audio device not exist."); return ERR_DH_AUDIO_SA_DEVICE_NOT_EXIST; } AudioEvent audioEvent(eventType, eventContent); audioDevMap_[devId].dev->NotifyEvent(audioEvent); - - cJSON_Delete(jParam); return DH_SUCCESS; } diff --git a/services/audiomanager/managersource/src/dmic_dev.cpp b/services/audiomanager/managersource/src/dmic_dev.cpp index 5f2a04f4..e2f15d0c 100644 --- a/services/audiomanager/managersource/src/dmic_dev.cpp +++ b/services/audiomanager/managersource/src/dmic_dev.cpp @@ -159,28 +159,11 @@ int32_t DMicDev::OpenDevice(const std::string &devId, const int32_t dhId) DHLOGE("Event callback is null"); return ERR_DH_AUDIO_SA_MICCALLBACK_NULL; } - - cJSON *jParam = cJSON_CreateObject(); - if (jParam == nullptr) { - DHLOGE("Failed to create cJSON object."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } - cJSON_AddStringToObject(jParam, KEY_DH_ID, std::to_string(dhId).c_str()); - - char *jsonData = cJSON_PrintUnformatted(jParam); - if (jsonData == nullptr) { - cJSON_Delete(jParam); - DHLOGE("Failed to create JSON data."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } - - std::string jsonDataStr(jsonData); - AudioEvent event(AudioEventType::OPEN_MIC, jsonDataStr); + json jParam = { { KEY_DH_ID, std::to_string(dhId) } }; + AudioEvent event(AudioEventType::OPEN_MIC, jParam.dump()); cbObj->NotifyEvent(event); DAudioHisysevent::GetInstance().SysEventWriteBehavior(DAUDIO_OPEN, devId, std::to_string(dhId), "daudio mic device open success."); - cJSON_Delete(jParam); - cJSON_free(jsonData); return DH_SUCCESS; } @@ -192,28 +175,11 @@ int32_t DMicDev::CloseDevice(const std::string &devId, const int32_t dhId) DHLOGE("Event callback is null"); return ERR_DH_AUDIO_SA_MICCALLBACK_NULL; } - - cJSON *jParam = cJSON_CreateObject(); - if (jParam == nullptr) { - DHLOGE("Failed to create cJSON object."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } - cJSON_AddStringToObject(jParam, KEY_DH_ID, std::to_string(dhId).c_str()); - - char *jsonData = cJSON_PrintUnformatted(jParam); - if (jsonData == nullptr) { - cJSON_Delete(jParam); - DHLOGE("Failed to create JSON data."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } - - std::string jsonDataStr(jsonData); - AudioEvent event(AudioEventType::CLOSE_MIC, jsonDataStr); + json jParam = { { KEY_DH_ID, std::to_string(dhId) } }; + AudioEvent event(AudioEventType::CLOSE_MIC, jParam.dump()); cbObj->NotifyEvent(event); DAudioHisysevent::GetInstance().SysEventWriteBehavior(DAUDIO_CLOSE, devId, std::to_string(dhId), "daudio mic device close success."); - cJSON_Delete(jParam); - cJSON_free(jsonData); curPort_ = 0; return DH_SUCCESS; } diff --git a/services/audiomanager/managersource/src/dspeaker_dev.cpp b/services/audiomanager/managersource/src/dspeaker_dev.cpp index 9ada4b8e..bc4bda05 100644 --- a/services/audiomanager/managersource/src/dspeaker_dev.cpp +++ b/services/audiomanager/managersource/src/dspeaker_dev.cpp @@ -152,27 +152,11 @@ int32_t DSpeakerDev::OpenDevice(const std::string &devId, const int32_t dhId) return ERR_DH_AUDIO_SA_EVENT_CALLBACK_NULL; } - cJSON *jParam = cJSON_CreateObject(); - if (jParam == nullptr) { - DHLOGE("Failed to create cJSON object."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } - cJSON_AddStringToObject(jParam, KEY_DH_ID, std::to_string(dhId).c_str()); - char *jsonData = cJSON_PrintUnformatted(jParam); - if (jsonData == nullptr) { - DHLOGE("Failed to create JSON data."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } - - std::string jsonDataStr(jsonData); - AudioEvent event(AudioEventType::OPEN_SPEAKER, jsonDataStr); + json jParam = { { KEY_DH_ID, std::to_string(dhId) } }; + AudioEvent event(AudioEventType::OPEN_SPEAKER, jParam.dump()); cbObj->NotifyEvent(event); DAudioHisysevent::GetInstance().SysEventWriteBehavior(DAUDIO_OPEN, devId, std::to_string(dhId), "daudio spk device open success."); - - cJSON_Delete(jParam); - cJSON_free(jsonData); - return DH_SUCCESS; } @@ -185,27 +169,11 @@ int32_t DSpeakerDev::CloseDevice(const std::string &devId, const int32_t dhId) return ERR_DH_AUDIO_SA_EVENT_CALLBACK_NULL; } - cJSON *jParam = cJSON_CreateObject(); - if (jParam == nullptr) { - DHLOGE("Failed to create cJSON object."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } - cJSON_AddStringToObject(jParam, KEY_DH_ID, std::to_string(dhId).c_str()); - char *jsonData = cJSON_PrintUnformatted(jParam); - if (jsonData == nullptr) { - DHLOGE("Failed to create JSON data."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } - - std::string jsonDataStr(jsonData); - AudioEvent event(AudioEventType::CLOSE_SPEAKER, jsonDataStr); + json jParam = { { KEY_DH_ID, std::to_string(dhId) } }; + AudioEvent event(AudioEventType::CLOSE_SPEAKER, jParam.dump()); cbObj->NotifyEvent(event); DAudioHisysevent::GetInstance().SysEventWriteBehavior(DAUDIO_CLOSE, devId, std::to_string(dhId), "daudio spk device close success."); - - cJSON_Delete(jParam); - cJSON_free(jsonData); - curPort_ = 0; return DH_SUCCESS; } diff --git a/services/audiomanager/servicesink/BUILD.gn b/services/audiomanager/servicesink/BUILD.gn index f6017f36..d7ce250d 100755 --- a/services/audiomanager/servicesink/BUILD.gn +++ b/services/audiomanager/servicesink/BUILD.gn @@ -17,7 +17,7 @@ import("../../../distributedaudio.gni") ohos_shared_library("distributed_audio_sink") { include_dirs = [ - "//third_party/cJSON", + "//third_party/json/include", "${fwk_common_path}/utils/include", ] @@ -87,7 +87,6 @@ ohos_shared_library("distributed_audio_sink") { "${audio_transport_path}/decodetransport:distributed_audio_decode_transport", "${audio_transport_path}/encodetransport:distributed_audio_encode_transport", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", ] external_deps = [ diff --git a/services/audiomanager/servicesource/BUILD.gn b/services/audiomanager/servicesource/BUILD.gn index ca27245d..d0a6f69d 100755 --- a/services/audiomanager/servicesource/BUILD.gn +++ b/services/audiomanager/servicesource/BUILD.gn @@ -17,7 +17,7 @@ import("../../../distributedaudio.gni") ohos_shared_library("distributed_audio_source") { include_dirs = [ - "//third_party/cJSON", + "//third_party/json/include", "${driver_audio_path}/include", "${fwk_common_path}/utils/include", "${mediastandardfwk_path}/audiocapturer/include", @@ -89,7 +89,6 @@ ohos_shared_library("distributed_audio_source") { "${hdf_interfaces_path}/audioext/v1_0:libdaudioext_proxy_1.0", "${services_path}/common:distributed_audio_utils", "${services_path}/hdfaudioclient:daudio_client", - "//third_party/cJSON:cjson", ] external_deps = [ diff --git a/services/audiomanager/test/fuzztest/sourceserviceconfigdistributedhardware_fuzzer/BUILD.gn b/services/audiomanager/test/fuzztest/sourceserviceconfigdistributedhardware_fuzzer/BUILD.gn index ca83b774..7179b7e0 100644 --- a/services/audiomanager/test/fuzztest/sourceserviceconfigdistributedhardware_fuzzer/BUILD.gn +++ b/services/audiomanager/test/fuzztest/sourceserviceconfigdistributedhardware_fuzzer/BUILD.gn @@ -49,13 +49,10 @@ ohos_fuzztest("SourceServiceConfigDistributedHardwareFuzzTest") { "${innerkits_path}/native_cpp/audio_source/include", "${distributedaudio_path}/audiohandler/include", "${services_path}/audiomanager/servicesource/include", - "//third_party/cJSON", ] - deps = [ - "${services_path}/audiomanager/servicesource:distributed_audio_source", - "//third_party/cJSON:cjson", - ] + deps = + [ "${services_path}/audiomanager/servicesource:distributed_audio_source" ] defines = [ "HI_LOG_ENABLE", diff --git a/services/audiomanager/test/fuzztest/sourceservicedaudionotify_fuzzer/BUILD.gn b/services/audiomanager/test/fuzztest/sourceservicedaudionotify_fuzzer/BUILD.gn index 33f09616..16a24e8a 100644 --- a/services/audiomanager/test/fuzztest/sourceservicedaudionotify_fuzzer/BUILD.gn +++ b/services/audiomanager/test/fuzztest/sourceservicedaudionotify_fuzzer/BUILD.gn @@ -49,13 +49,10 @@ ohos_fuzztest("SourceServiceDAudioNotifyFuzzTest") { "${innerkits_path}/native_cpp/audio_source/include", "${distributedaudio_path}/audiohandler/include", "${services_path}/audiomanager/servicesource/include", - "//third_party/cJSON", ] - deps = [ - "${services_path}/audiomanager/servicesource:distributed_audio_source", - "//third_party/cJSON:cjson", - ] + deps = + [ "${services_path}/audiomanager/servicesource:distributed_audio_source" ] defines = [ "HI_LOG_ENABLE", diff --git a/services/audiomanager/test/fuzztest/sourceserviceinitsource_fuzzer/BUILD.gn b/services/audiomanager/test/fuzztest/sourceserviceinitsource_fuzzer/BUILD.gn index 8aaa7d14..f8f85525 100644 --- a/services/audiomanager/test/fuzztest/sourceserviceinitsource_fuzzer/BUILD.gn +++ b/services/audiomanager/test/fuzztest/sourceserviceinitsource_fuzzer/BUILD.gn @@ -49,13 +49,11 @@ ohos_fuzztest("SourceServiceInitSourceFuzzTest") { "${innerkits_path}/native_cpp/audio_source/include", "${distributedaudio_path}/audiohandler/include", "${services_path}/audiomanager/servicesource/include", - "//third_party/cJSON", ] deps = [ "${innerkits_path}/native_cpp/audio_source:distributed_audio_source_sdk", "${services_path}/audiomanager/servicesource:distributed_audio_source", - "//third_party/cJSON:cjson", ] defines = [ diff --git a/services/audiomanager/test/fuzztest/sourceserviceregisterdistributedhardware_fuzzer/BUILD.gn b/services/audiomanager/test/fuzztest/sourceserviceregisterdistributedhardware_fuzzer/BUILD.gn index d06f9777..6f550758 100644 --- a/services/audiomanager/test/fuzztest/sourceserviceregisterdistributedhardware_fuzzer/BUILD.gn +++ b/services/audiomanager/test/fuzztest/sourceserviceregisterdistributedhardware_fuzzer/BUILD.gn @@ -48,13 +48,10 @@ ohos_fuzztest("SourceServiceRegisterDistributedHardwareFuzzTest") { "${innerkits_path}/native_cpp/audio_source/include", "${distributedaudio_path}/audiohandler/include", "${services_path}/audiomanager/servicesource/include", - "//third_party/cJSON", ] - deps = [ - "${services_path}/audiomanager/servicesource:distributed_audio_source", - "//third_party/cJSON:cjson", - ] + deps = + [ "${services_path}/audiomanager/servicesource:distributed_audio_source" ] defines = [ "HI_LOG_ENABLE", diff --git a/services/audiomanager/test/fuzztest/sourceservicereleasesource_fuzzer/BUILD.gn b/services/audiomanager/test/fuzztest/sourceservicereleasesource_fuzzer/BUILD.gn index 0e5788b5..c1c309ed 100644 --- a/services/audiomanager/test/fuzztest/sourceservicereleasesource_fuzzer/BUILD.gn +++ b/services/audiomanager/test/fuzztest/sourceservicereleasesource_fuzzer/BUILD.gn @@ -49,13 +49,10 @@ ohos_fuzztest("SourceServiceReleaseSourceFuzzTest") { "${innerkits_path}/native_cpp/audio_source/include", "${distributedaudio_path}/audiohandler/include", "${services_path}/audiomanager/servicesource/include", - "//third_party/cJSON", ] - deps = [ - "${services_path}/audiomanager/servicesource:distributed_audio_source", - "//third_party/cJSON:cjson", - ] + deps = + [ "${services_path}/audiomanager/servicesource:distributed_audio_source" ] defines = [ "HI_LOG_ENABLE", diff --git a/services/audiomanager/test/fuzztest/sourceserviceunregisterdistributedhardware_fuzzer/BUILD.gn b/services/audiomanager/test/fuzztest/sourceserviceunregisterdistributedhardware_fuzzer/BUILD.gn index f3e3f75f..a07af4d0 100644 --- a/services/audiomanager/test/fuzztest/sourceserviceunregisterdistributedhardware_fuzzer/BUILD.gn +++ b/services/audiomanager/test/fuzztest/sourceserviceunregisterdistributedhardware_fuzzer/BUILD.gn @@ -48,13 +48,10 @@ ohos_fuzztest("SourceServiceUnregisterDistributedHardwareFuzzTest") { "${innerkits_path}/native_cpp/audio_source/include", "${distributedaudio_path}/audiohandler/include", "${services_path}/audiomanager/servicesource/include", - "//third_party/cJSON", ] - deps = [ - "${services_path}/audiomanager/servicesource:distributed_audio_source", - "//third_party/cJSON:cjson", - ] + deps = + [ "${services_path}/audiomanager/servicesource:distributed_audio_source" ] defines = [ "HI_LOG_ENABLE", diff --git a/services/audiomanager/test/unittest/managersink/BUILD.gn b/services/audiomanager/test/unittest/managersink/BUILD.gn index 5da82c9f..6e4d28ec 100644 --- a/services/audiomanager/test/unittest/managersink/BUILD.gn +++ b/services/audiomanager/test/unittest/managersink/BUILD.gn @@ -22,7 +22,7 @@ config("module_private_config") { visibility = [ ":*" ] include_dirs = [ - "//third_party/cJSON", + "//third_party/json/include", "${audio_framework_path}/audiopolicy/include", "${mediastandardfwk_path}/audiocapturer/include", "${mediastandardfwk_path}/audiocommon/include", @@ -73,7 +73,6 @@ ohos_unittest("DaudioSinkDevTest") { deps = [ "${services_path}/audiomanager/servicesink:distributed_audio_sink", - "//third_party/cJSON:cjson", "//third_party/googletest:gmock", "//third_party/googletest:gtest_main", ] diff --git a/services/audiomanager/test/unittest/managersink/src/daudio_sink_dev_test.cpp b/services/audiomanager/test/unittest/managersink/src/daudio_sink_dev_test.cpp index faec8977..08a60b63 100644 --- a/services/audiomanager/test/unittest/managersink/src/daudio_sink_dev_test.cpp +++ b/services/audiomanager/test/unittest/managersink/src/daudio_sink_dev_test.cpp @@ -399,12 +399,11 @@ HWTEST_F(DAudioSinkDevTest, TaskRenderStateChange_002, TestSize.Level1) { std::string args; std::string devId = "devId"; - cJSON *j = cJSON_CreateObject(); + json j; AudioParam audioParam; sinkDev_->audioCtrlMgr_ = std::make_shared(devId, sinkDev_); EXPECT_NE(DH_SUCCESS, sinkDev_->TaskRenderStateChange(args)); EXPECT_EQ(ERR_DH_AUDIO_FAILED, sinkDev_->from_json(j, audioParam)); - cJSON_Delete(j); } /** diff --git a/services/audiomanager/test/unittest/servicesink/BUILD.gn b/services/audiomanager/test/unittest/servicesink/BUILD.gn index 464a1e08..22218c46 100644 --- a/services/audiomanager/test/unittest/servicesink/BUILD.gn +++ b/services/audiomanager/test/unittest/servicesink/BUILD.gn @@ -23,6 +23,7 @@ config("module_private_config") { include_dirs = [ "${audio_framework_path}/audiopolicy/include", + "//third_party/json/include", "${fwk_common_path}/utils/include", "${mediastandardfwk_path}/audiocapturer/include", "${mediastandardfwk_path}/audiocommon/include", diff --git a/services/audiomanager/test/unittest/servicesource/BUILD.gn b/services/audiomanager/test/unittest/servicesource/BUILD.gn index be274d12..92f83870 100644 --- a/services/audiomanager/test/unittest/servicesource/BUILD.gn +++ b/services/audiomanager/test/unittest/servicesource/BUILD.gn @@ -22,6 +22,7 @@ config("module_private_config") { visibility = [ ":*" ] include_dirs = [ + "//third_party/json/include", "${audio_framework_path}/audiopolicy/include", "${driver_audio_path}/include", "${fwk_common_path}/utils/include", @@ -71,7 +72,6 @@ config("module_private_config") { "${services_path}/common/taskProcessor/include", "${services_path}/hdfaudioclient/include", "${softbusadapter_path}/include", - "//third_party/cJSON", ] } @@ -85,7 +85,6 @@ ohos_unittest("DaudioSourceServiceTest") { deps = [ "${services_path}/audiomanager/servicesource:distributed_audio_source", - "//third_party/cJSON:cjson", "//third_party/googletest:gmock", "//third_party/googletest:gtest_main", ] diff --git a/services/audiomanager/test/unittest/sourcedevice/BUILD.gn b/services/audiomanager/test/unittest/sourcedevice/BUILD.gn index fbad425b..0caca862 100644 --- a/services/audiomanager/test/unittest/sourcedevice/BUILD.gn +++ b/services/audiomanager/test/unittest/sourcedevice/BUILD.gn @@ -20,7 +20,7 @@ config("module_private_config") { visibility = [ ":*" ] include_dirs = [ - "//third_party/cJSON", + "//third_party/json/include", "${driver_audio_path}/include", "${fwk_common_path}/utils/include", "${mediastandardfwk_path}/audiocapturer/include", @@ -75,7 +75,6 @@ ohos_unittest("DaudioSourceDevTest") { "${hdf_interfaces_path}/audioext/v1_0:libdaudioext_proxy_1.0", "${services_path}/audiomanager/servicesource:distributed_audio_source", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", "//third_party/googletest:gmock", "//third_party/googletest:gtest_main", ] diff --git a/services/audiomanager/test/unittest/sourcedevice/src/daudio_source_dev_test.cpp b/services/audiomanager/test/unittest/sourcedevice/src/daudio_source_dev_test.cpp index 8328aa1b..55846fed 100644 --- a/services/audiomanager/test/unittest/sourcedevice/src/daudio_source_dev_test.cpp +++ b/services/audiomanager/test/unittest/sourcedevice/src/daudio_source_dev_test.cpp @@ -436,11 +436,9 @@ HWTEST_F(DAudioSourceDevTest, HandleNotifyRPC_002, TestSize.Level1) */ HWTEST_F(DAudioSourceDevTest, HandleNotifyRPC_003, TestSize.Level1) { - cJSON *jParam = cJSON_CreateObject(); - EXPECT_NE(NULL, cJSON_AddNumberToObject(jParam, KEY_RESULT, DH_SUCCESS)); - AudioEvent event(CHANGE_PLAY_STATUS, std::string(cJSON_PrintUnformatted(jParam))); + json jParam = { { KEY_RESULT, DH_SUCCESS } }; + AudioEvent event(CHANGE_PLAY_STATUS, jParam.dump()); EXPECT_EQ(ERR_DH_AUDIO_NOT_FOUND_KEY, sourceDev_->HandleNotifyRPC(event)); - cJSON_Delete(jParam); event.type = NOTIFY_OPEN_SPEAKER_RESULT; EXPECT_EQ(DH_SUCCESS, sourceDev_->HandleNotifyRPC(event)); @@ -519,44 +517,20 @@ HWTEST_F(DAudioSourceDevTest, TaskEnableDAudio_001, TestSize.Level1) std::string tempLongStr(DAUDIO_MAX_JSON_LEN + 1, 'a'); EXPECT_EQ(ERR_DH_AUDIO_SA_PARAM_INVALID, sourceDev_->TaskEnableDAudio(tempLongStr)); - cJSON *jParam1 = cJSON_CreateObject(); - cJSON_AddStringToObject(jParam1, KEY_DEV_ID, DEV_ID.c_str()); - cJSON_AddStringToObject(jParam1, KEY_RESULT, "test_result"); - EXPECT_EQ(ERR_DH_AUDIO_SA_ENABLE_PARAM_INVALID, - sourceDev_->TaskEnableDAudio(std::string(cJSON_PrintUnformatted(jParam1)))); - cJSON_Delete(jParam1); - - cJSON *jParam2 = cJSON_CreateObject(); - cJSON_AddStringToObject(jParam2, KEY_DEV_ID, DEV_ID.c_str()); - cJSON_AddStringToObject(jParam2, KEY_DH_ID, "testDhId"); - cJSON_AddStringToObject(jParam2, KEY_ATTRS, ""); - EXPECT_EQ(ERR_DH_AUDIO_SA_ENABLE_PARAM_INVALID, - sourceDev_->TaskEnableDAudio(std::string(cJSON_PrintUnformatted(jParam2)))); - cJSON_Delete(jParam2); - - cJSON *jParam3 = cJSON_CreateObject(); - cJSON_AddStringToObject(jParam3, KEY_DEV_ID, DEV_ID.c_str()); - cJSON_AddStringToObject(jParam3, KEY_DH_ID, DH_ID_UNKNOWN.c_str()); - cJSON_AddStringToObject(jParam3, KEY_ATTRS, ""); - EXPECT_EQ(ERR_DH_AUDIO_NOT_SUPPORT, - sourceDev_->TaskEnableDAudio(std::string(cJSON_PrintUnformatted(jParam3)))); - cJSON_Delete(jParam3); - - cJSON *jParamSpk = cJSON_CreateObject(); - cJSON_AddStringToObject(jParamSpk, KEY_DEV_ID, DEV_ID.c_str()); - cJSON_AddStringToObject(jParamSpk, KEY_DH_ID, DH_ID_SPK.c_str()); - cJSON_AddStringToObject(jParamSpk, KEY_ATTRS, ""); - EXPECT_EQ(ERR_DH_AUDIO_FAILED, - sourceDev_->TaskEnableDAudio(std::string(cJSON_PrintUnformatted(jParamSpk)))); - cJSON_Delete(jParamSpk); - - cJSON *jParamMic = cJSON_CreateObject(); - cJSON_AddStringToObject(jParamMic, KEY_DEV_ID, DEV_ID.c_str()); - cJSON_AddStringToObject(jParamMic, KEY_DH_ID, DH_ID_MIC.c_str()); - cJSON_AddStringToObject(jParamMic, KEY_ATTRS, ""); - EXPECT_EQ(ERR_DH_AUDIO_FAILED, - sourceDev_->TaskEnableDAudio(std::string(cJSON_PrintUnformatted(jParamMic)))); - cJSON_Delete(jParamMic); + json jParam = { { KEY_DEV_ID, DEV_ID }, { KEY_RESULT, "test_result" } }; + EXPECT_EQ(ERR_DH_AUDIO_SA_ENABLE_PARAM_INVALID, sourceDev_->TaskEnableDAudio(jParam.dump())); + + jParam = { { KEY_DEV_ID, DEV_ID }, { KEY_DH_ID, "testDhId" }, { KEY_ATTRS, "" } }; + EXPECT_EQ(ERR_DH_AUDIO_SA_ENABLE_PARAM_INVALID, sourceDev_->TaskEnableDAudio(jParam.dump())); + + jParam = { { KEY_DEV_ID, DEV_ID }, { KEY_DH_ID, DH_ID_UNKNOWN }, { KEY_ATTRS, "" } }; + EXPECT_EQ(ERR_DH_AUDIO_NOT_SUPPORT, sourceDev_->TaskEnableDAudio(jParam.dump())); + + json jParam_spk = { { KEY_DEV_ID, DEV_ID }, { KEY_DH_ID, DH_ID_SPK }, { KEY_ATTRS, "" } }; + EXPECT_NE(DH_SUCCESS, sourceDev_->TaskEnableDAudio(jParam_spk.dump())); + + json jParam_mic = { { KEY_DEV_ID, DEV_ID }, { KEY_DH_ID, DH_ID_MIC }, { KEY_ATTRS, "" } }; + EXPECT_NE(DH_SUCCESS, sourceDev_->TaskEnableDAudio(jParam_mic.dump())); } /** @@ -572,40 +546,20 @@ HWTEST_F(DAudioSourceDevTest, TaskDisableDAudio_001, TestSize.Level1) std::string tempLongStr(DAUDIO_MAX_JSON_LEN + 1, 'a'); EXPECT_EQ(ERR_DH_AUDIO_SA_PARAM_INVALID, sourceDev_->TaskDisableDAudio(tempLongStr)); - cJSON *jParam1 = cJSON_CreateObject(); - cJSON_AddStringToObject(jParam1, KEY_DEV_ID, DEV_ID.c_str()); - cJSON_AddStringToObject(jParam1, KEY_RESULT, "test_result"); - EXPECT_EQ(ERR_DH_AUDIO_SA_DISABLE_PARAM_INVALID, - sourceDev_->TaskDisableDAudio(std::string(cJSON_PrintUnformatted(jParam1)))); - cJSON_Delete(jParam1); - - cJSON *jParam2 = cJSON_CreateObject(); - cJSON_AddStringToObject(jParam2, KEY_DEV_ID, DEV_ID.c_str()); - cJSON_AddStringToObject(jParam2, KEY_DH_ID, "testDhId"); - EXPECT_EQ(ERR_DH_AUDIO_SA_DISABLE_PARAM_INVALID, - sourceDev_->TaskDisableDAudio(std::string(cJSON_PrintUnformatted(jParam2)))); - cJSON_Delete(jParam2); - - cJSON *jParam3 = cJSON_CreateObject(); - cJSON_AddStringToObject(jParam3, KEY_DEV_ID, DEV_ID.c_str()); - cJSON_AddStringToObject(jParam3, KEY_DH_ID, DH_ID_UNKNOWN.c_str()); - EXPECT_EQ(ERR_DH_AUDIO_NOT_SUPPORT, - sourceDev_->TaskDisableDAudio(std::string(cJSON_PrintUnformatted(jParam3)))); - cJSON_Delete(jParam3); - - cJSON *jParamSpk = cJSON_CreateObject(); - cJSON_AddStringToObject(jParamSpk, KEY_DEV_ID, DEV_ID.c_str()); - cJSON_AddStringToObject(jParamSpk, KEY_DH_ID, DH_ID_SPK.c_str()); - EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, - sourceDev_->TaskDisableDAudio(std::string(cJSON_PrintUnformatted(jParamSpk)))); - cJSON_Delete(jParamSpk); - - cJSON *jParamMic = cJSON_CreateObject(); - cJSON_AddStringToObject(jParamMic, KEY_DEV_ID, DEV_ID.c_str()); - cJSON_AddStringToObject(jParamMic, KEY_DH_ID, DH_ID_MIC.c_str()); - EXPECT_EQ(ERR_DH_AUDIO_NULLPTR, - sourceDev_->TaskDisableDAudio(std::string(cJSON_PrintUnformatted(jParamMic)))); - cJSON_Delete(jParamMic); + json jParam = { { KEY_DEV_ID, DEV_ID }, { KEY_RESULT, "test_result" } }; + EXPECT_EQ(ERR_DH_AUDIO_SA_DISABLE_PARAM_INVALID, sourceDev_->TaskDisableDAudio(jParam.dump())); + + jParam = { { KEY_DEV_ID, DEV_ID }, { KEY_DH_ID, "testDhId" } }; + EXPECT_EQ(ERR_DH_AUDIO_SA_DISABLE_PARAM_INVALID, sourceDev_->TaskDisableDAudio(jParam.dump())); + + jParam = { { KEY_DEV_ID, DEV_ID }, { KEY_DH_ID, DH_ID_UNKNOWN } }; + EXPECT_EQ(ERR_DH_AUDIO_NOT_SUPPORT, sourceDev_->TaskDisableDAudio(jParam.dump())); + + json jParam_spk = { { KEY_DEV_ID, DEV_ID }, { KEY_DH_ID, DH_ID_SPK } }; + EXPECT_NE(DH_SUCCESS, sourceDev_->TaskDisableDAudio(jParam_spk.dump())); + + json jParam_mic = { { KEY_DEV_ID, DEV_ID }, { KEY_DH_ID, DH_ID_MIC } }; + EXPECT_NE(DH_SUCCESS, sourceDev_->TaskDisableDAudio(jParam_mic.dump())); } /** @@ -621,21 +575,15 @@ HWTEST_F(DAudioSourceDevTest, OnEnableTaskResult_001, TestSize.Level1) std::string tempLongStr(DAUDIO_MAX_JSON_LEN + 1, 'a'); sourceDev_->OnEnableTaskResult(DH_SUCCESS, tempLongStr, FUNC_NAME); - cJSON *jParam1 = cJSON_CreateObject(); - cJSON_AddStringToObject(jParam1, KEY_DEV_ID, DEV_ID.c_str()); - cJSON_AddStringToObject(jParam1, KEY_RESULT, "test_result"); - sourceDev_->OnEnableTaskResult(DH_SUCCESS, std::string(cJSON_PrintUnformatted(jParam1)), FUNC_NAME); - cJSON_Delete(jParam1); + json jParam = { { KEY_DEV_ID, DEV_ID }, { KEY_RESULT, "test_result" } }; + sourceDev_->OnEnableTaskResult(DH_SUCCESS, jParam.dump(), FUNC_NAME); - cJSON *jParam2 = cJSON_CreateObject(); - cJSON_AddStringToObject(jParam2, KEY_DEV_ID, DEV_ID.c_str()); - cJSON_AddStringToObject(jParam2, KEY_DH_ID, DH_ID_SPK.c_str()); - sourceDev_->OnEnableTaskResult(DH_SUCCESS, std::string(cJSON_PrintUnformatted(jParam2)), FUNC_NAME); - sourceDev_->OnEnableTaskResult(ERR_DH_AUDIO_NULLPTR, std::string(cJSON_PrintUnformatted(jParam2)), FUNC_NAME); + jParam = { { KEY_DEV_ID, DEV_ID }, { KEY_DH_ID, DH_ID_SPK } }; + sourceDev_->OnEnableTaskResult(DH_SUCCESS, jParam.dump(), FUNC_NAME); + sourceDev_->OnEnableTaskResult(ERR_DH_AUDIO_NULLPTR, jParam.dump(), FUNC_NAME); sourceDev_->mgrCallback_ = nullptr; - sourceDev_->OnEnableTaskResult(DH_SUCCESS, std::string(cJSON_PrintUnformatted(jParam2)), FUNC_NAME); - cJSON_Delete(jParam2); + sourceDev_->OnEnableTaskResult(DH_SUCCESS, jParam.dump(), FUNC_NAME); auto mgrCb = std::make_shared(); EXPECT_NE(DH_SUCCESS, mgrCb->OnEnableAudioResult(DEV_ID, DH_ID_SPK, DH_SUCCESS)); @@ -654,19 +602,15 @@ HWTEST_F(DAudioSourceDevTest, OnDisableTaskResult_001, TestSize.Level1) std::string tempLongStr(DAUDIO_MAX_JSON_LEN + 1, 'a'); sourceDev_->OnDisableTaskResult(DH_SUCCESS, tempLongStr, FUNC_NAME); - cJSON *jParam = cJSON_CreateObject(); - cJSON_AddStringToObject(jParam, KEY_DEV_ID, DEV_ID.c_str()); - cJSON_AddStringToObject(jParam, KEY_RESULT, "test_result"); - sourceDev_->OnDisableTaskResult(DH_SUCCESS, std::string(cJSON_PrintUnformatted(jParam)), FUNC_NAME); + json jParam = { { KEY_DEV_ID, DEV_ID }, { KEY_RESULT, "test_result" } }; + sourceDev_->OnDisableTaskResult(DH_SUCCESS, jParam.dump(), FUNC_NAME); - cJSON_AddStringToObject(jParam, KEY_DEV_ID, DEV_ID.c_str()); - cJSON_AddStringToObject(jParam, KEY_DH_ID, DH_ID_SPK.c_str()); - sourceDev_->OnDisableTaskResult(DH_SUCCESS, std::string(cJSON_PrintUnformatted(jParam)), FUNC_NAME); - sourceDev_->OnDisableTaskResult(ERR_DH_AUDIO_NULLPTR, std::string(cJSON_PrintUnformatted(jParam)), FUNC_NAME); + jParam = { { KEY_DEV_ID, DEV_ID }, { KEY_DH_ID, DH_ID_SPK } }; + sourceDev_->OnDisableTaskResult(DH_SUCCESS, jParam.dump(), FUNC_NAME); + sourceDev_->OnDisableTaskResult(ERR_DH_AUDIO_NULLPTR, jParam.dump(), FUNC_NAME); sourceDev_->mgrCallback_ = nullptr; - sourceDev_->OnDisableTaskResult(DH_SUCCESS, std::string(cJSON_PrintUnformatted(jParam)), FUNC_NAME); - cJSON_Delete(jParam); + sourceDev_->OnDisableTaskResult(DH_SUCCESS, jParam.dump(), FUNC_NAME); auto mgrCb = std::make_shared(); EXPECT_NE(DH_SUCCESS, mgrCb->OnDisableAudioResult(DEV_ID, DH_ID_SPK, DH_SUCCESS)); @@ -754,20 +698,16 @@ HWTEST_F(DAudioSourceDevTest, TaskOpenDSpeaker_001, TestSize.Level1) EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceDev_->TaskOpenDSpeaker(ARGS)); - cJSON *jParamSpk = cJSON_CreateObject(); - cJSON_AddStringToObject(jParamSpk, KEY_DH_ID, DH_ID_SPK.c_str()); + json jParam_spk = { { KEY_DH_ID, DH_ID_SPK } }; sourceDev_->isRpcOpen_.store(false); - EXPECT_EQ(ERR_DH_AUDIO_TRANS_NULL_VALUE, - sourceDev_->TaskOpenDSpeaker(std::string(cJSON_PrintUnformatted(jParamSpk)))); + EXPECT_EQ(ERR_DH_AUDIO_TRANS_NULL_VALUE, sourceDev_->TaskOpenDSpeaker(jParam_spk.dump())); sourceDev_->isRpcOpen_.store(true); - EXPECT_EQ(ERR_DH_AUDIO_TRANS_NULL_VALUE, - sourceDev_->TaskOpenDSpeaker(std::string(cJSON_PrintUnformatted(jParamSpk)))); + EXPECT_EQ(ERR_DH_AUDIO_TRANS_NULL_VALUE, sourceDev_->TaskOpenDSpeaker(jParam_spk.dump())); sourceDev_->rpcResult_ = true; sourceDev_->rpcNotify_ = sourceDev_->EVENT_NOTIFY_OPEN_SPK; - EXPECT_NE(DH_SUCCESS, sourceDev_->TaskOpenDSpeaker(std::string(cJSON_PrintUnformatted(jParamSpk)))); - cJSON_Delete(jParamSpk); + EXPECT_NE(DH_SUCCESS, sourceDev_->TaskOpenDSpeaker(jParam_spk.dump())); } /** @@ -792,10 +732,8 @@ HWTEST_F(DAudioSourceDevTest, TaskCloseDSpeaker_001, TestSize.Level1) sourceDev_->speaker_->isOpened_ = false; EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceDev_->TaskCloseDSpeaker(ARGS)); - cJSON *jParamSpk = cJSON_CreateObject(); - cJSON_AddStringToObject(jParamSpk, KEY_DH_ID, DH_ID_SPK.c_str()); - EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskCloseDSpeaker(std::string(cJSON_PrintUnformatted(jParamSpk)))); - cJSON_Delete(jParamSpk); + json jParam_spk = { { KEY_DH_ID, DH_ID_SPK } }; + EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskCloseDSpeaker(jParam_spk.dump())); } /** @@ -809,10 +747,8 @@ HWTEST_F(DAudioSourceDevTest, TaskCloseDSpeaker_002, TestSize.Level1) sourceDev_->speaker_ = std::make_shared(DEV_ID, sourceDev_); sourceDev_->speaker_->speakerTrans_ = std::make_shared(DEV_ID); - cJSON *jParamSpk = cJSON_CreateObject(); - cJSON_AddStringToObject(jParamSpk, KEY_DH_ID, DH_ID_SPK.c_str()); - EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceDev_->TaskCloseDSpeaker(std::string(cJSON_PrintUnformatted(jParamSpk)))); - cJSON_Delete(jParamSpk); + json jParam_spk = { { KEY_DH_ID, DH_ID_SPK } }; + EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceDev_->TaskCloseDSpeaker(jParam_spk.dump())); } /** @@ -835,10 +771,8 @@ HWTEST_F(DAudioSourceDevTest, TaskOpenDMic_001, TestSize.Level1) EXPECT_EQ(ERR_DH_AUDIO_TRANS_NULL_VALUE, sourceDev_->TaskOpenDMic(ARGS)); - cJSON *jParamMic = cJSON_CreateObject(); - cJSON_AddStringToObject(jParamMic, KEY_DH_ID, DH_ID_MIC.c_str()); - EXPECT_EQ(ERR_DH_AUDIO_TRANS_NULL_VALUE, sourceDev_->TaskOpenDMic(std::string(cJSON_PrintUnformatted(jParamMic)))); - cJSON_Delete(jParamMic); + json jParam_mic = { { KEY_DH_ID, DH_ID_MIC } }; + EXPECT_EQ(ERR_DH_AUDIO_TRANS_NULL_VALUE, sourceDev_->TaskOpenDMic(jParam_mic.dump())); } /** @@ -863,10 +797,8 @@ HWTEST_F(DAudioSourceDevTest, TaskCloseDMic_001, TestSize.Level1) sourceDev_->mic_->isOpened_ = false; EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceDev_->TaskCloseDMic(ARGS)); - cJSON *jParamMic = cJSON_CreateObject(); - cJSON_AddStringToObject(jParamMic, KEY_DH_ID, DH_ID_MIC.c_str()); - EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskCloseDMic(std::string(cJSON_PrintUnformatted(jParamMic)))); - cJSON_Delete(jParamMic); + json jParam_mic = { { KEY_DH_ID, DH_ID_MIC } }; + EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskCloseDMic(jParam_mic.dump())); } /** @@ -880,10 +812,8 @@ HWTEST_F(DAudioSourceDevTest, TaskCloseDMic_002, TestSize.Level1) sourceDev_->mic_ = std::make_shared(DEV_ID, sourceDev_); sourceDev_->mic_->micTrans_ = std::make_shared(DEV_ID); - cJSON *jParamMic = cJSON_CreateObject(); - cJSON_AddStringToObject(jParamMic, KEY_DH_ID, DH_ID_MIC.c_str()); - EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskCloseDMic(std::string(cJSON_PrintUnformatted(jParamMic)))); - cJSON_Delete(jParamMic); + json jParam_mic = { { KEY_DH_ID, DH_ID_MIC } }; + EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskCloseDMic(jParam_mic.dump())); } /** @@ -904,19 +834,17 @@ HWTEST_F(DAudioSourceDevTest, TaskOpenCtrlChannel_001, TestSize.Level1) EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskOpenCtrlChannel(ARGS)); - cJSON *jParam = cJSON_CreateObject(); - cJSON_AddStringToObject(jParam, KEY_DH_ID, DH_ID_SPK.c_str()); + json jParam = { { KEY_DH_ID, DH_ID_SPK } }; sourceDev_->isRpcOpen_.store(false); - EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskOpenCtrlChannel(std::string(cJSON_PrintUnformatted(jParam)))); + EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskOpenCtrlChannel(jParam.dump())); sourceDev_->isRpcOpen_.store(true); - EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskOpenCtrlChannel(std::string(cJSON_PrintUnformatted(jParam)))); + EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskOpenCtrlChannel(jParam.dump())); sourceDev_->rpcResult_ = true; sourceDev_->rpcNotify_ = sourceDev_->EVENT_NOTIFY_OPEN_MIC; - cJSON_AddStringToObject(jParam, KEY_DH_ID, DH_ID_SPK.c_str()); - EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskOpenCtrlChannel(std::string(cJSON_PrintUnformatted(jParam)))); - cJSON_Delete(jParam); + jParam = { { KEY_DH_ID, DH_ID_SPK } }; + EXPECT_EQ(DH_SUCCESS, sourceDev_->TaskOpenCtrlChannel(jParam.dump())); } /** @@ -967,10 +895,8 @@ HWTEST_F(DAudioSourceDevTest, TaskSetVolume_002, TestSize.Level1) sourceDev_->audioCtrlMgr_ = std::make_shared(DEV_ID, sourceDev_); EXPECT_NE(DH_SUCCESS, sourceDev_->TaskSetVolume(ARGS)); - cJSON *jParam = cJSON_CreateObject(); - cJSON_AddStringToObject(jParam, STREAM_MUTE_STATUS.c_str(), std::to_string(1).c_str()); - EXPECT_NE(DH_SUCCESS, sourceDev_->TaskSetVolume(std::string(cJSON_PrintUnformatted(jParam)))); - cJSON_Delete(jParam); + json jParam = { { STREAM_MUTE_STATUS, 1 } }; + EXPECT_NE(DH_SUCCESS, sourceDev_->TaskSetVolume(jParam.dump())); sourceDev_->OnTaskResult(ERR_DH_AUDIO_NULLPTR, "", FUNC_NAME); } @@ -1140,8 +1066,7 @@ HWTEST_F(DAudioSourceDevTest, NotifyHDF_003, TestSize.Level1) */ HWTEST_F(DAudioSourceDevTest, NotifySinkDev_001, TestSize.Level1) { - cJSON *jAudioParam = cJSON_CreateObject(); - + json jAudioParam; sourceDev_->isRpcOpen_.store(false); EXPECT_EQ(ERR_DH_AUDIO_FAILED, sourceDev_->NotifySinkDev(CLOSE_MIC, jAudioParam, DH_ID_SPK)); diff --git a/services/audiomanager/test/unittest/sourcemanager/BUILD.gn b/services/audiomanager/test/unittest/sourcemanager/BUILD.gn index 7aa05f34..fe5139cf 100644 --- a/services/audiomanager/test/unittest/sourcemanager/BUILD.gn +++ b/services/audiomanager/test/unittest/sourcemanager/BUILD.gn @@ -20,6 +20,7 @@ config("module_private_config") { visibility = [ ":*" ] include_dirs = [ + "//third_party/json/include", "${driver_audio_path}/include", "${fwk_common_path}/utils/include", "${mediastandardfwk_path}/audiocapturer/include", @@ -54,7 +55,6 @@ config("module_private_config") { "${services_path}/common/taskProcessor/include", "${services_path}/hdfaudioclient/include", "${softbusadapter_path}/include", - "//third_party/cJSON", ] } @@ -71,7 +71,6 @@ ohos_unittest("DaudioSourceMgrTest") { "${innerkits_path}/native_cpp/audio_source:distributed_audio_source_sdk", "${services_path}/audiomanager/servicesource:distributed_audio_source", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", "//third_party/googletest:gmock", "//third_party/googletest:gtest_main", ] diff --git a/services/audioprocessor/test/unittest/common/decodeprocessor/BUILD.gn b/services/audioprocessor/test/unittest/common/decodeprocessor/BUILD.gn index b409bb61..f68c7fa5 100644 --- a/services/audioprocessor/test/unittest/common/decodeprocessor/BUILD.gn +++ b/services/audioprocessor/test/unittest/common/decodeprocessor/BUILD.gn @@ -26,6 +26,7 @@ config("module_private_config") { "${mediastandard_path}/interfaces/innerkits/native/media/include", "${mediastandardfwk_path}/audiocommon/include", "${fwk_common_path}/utils/include", + "//third_party/json/include", ] include_dirs += [ @@ -37,7 +38,6 @@ config("module_private_config") { "${audio_processor_path}/directprocessor/include", "${audio_processor_path}/interface", "${audio_processor_path}/test/unittest/common", - "//third_party/cJSON", ] } @@ -54,7 +54,6 @@ ohos_unittest("DecodeProcessTest") { deps = [ "${audio_transport_path}/decodetransport:distributed_audio_decode_transport", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", "//third_party/googletest:gtest_main", ] @@ -80,7 +79,6 @@ ohos_unittest("DirectProcessorTest") { deps = [ "${audio_transport_path}/decodetransport:distributed_audio_decode_transport", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", "//third_party/googletest:gtest_main", ] diff --git a/services/audioprocessor/test/unittest/common/encodeprocessor/BUILD.gn b/services/audioprocessor/test/unittest/common/encodeprocessor/BUILD.gn index 81d835a6..83c58e0a 100644 --- a/services/audioprocessor/test/unittest/common/encodeprocessor/BUILD.gn +++ b/services/audioprocessor/test/unittest/common/encodeprocessor/BUILD.gn @@ -26,6 +26,7 @@ config("module_private_config") { "${mediastandard_path}/interfaces/innerkits/native/media/include", "${mediastandardfwk_path}/audiocommon/include", "${fwk_common_path}/utils/include", + "//third_party/json/include", ] include_dirs += [ @@ -36,7 +37,6 @@ config("module_private_config") { "${audio_processor_path}/encoder/include", "${audio_processor_path}/interface", "${audio_processor_path}/test/unittest/common", - "//third_party/cJSON", ] } @@ -53,7 +53,6 @@ ohos_unittest("EncodeProcessTest") { deps = [ "${audio_transport_path}/encodetransport:distributed_audio_encode_transport", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", "//third_party/googletest:gtest_main", ] diff --git a/services/audiotransport/audiochannel/audioctrlchannel/include/audio_ctrl_channel.h b/services/audiotransport/audiochannel/audioctrlchannel/include/audio_ctrl_channel.h index 6d95275c..7e959e62 100644 --- a/services/audiotransport/audiochannel/audioctrlchannel/include/audio_ctrl_channel.h +++ b/services/audiotransport/audiochannel/audioctrlchannel/include/audio_ctrl_channel.h @@ -16,12 +16,14 @@ #ifndef OHOS_AUDIO_CTRL_CHANNEL_H #define OHOS_AUDIO_CTRL_CHANNEL_H -#include "cJSON.h" +#include "nlohmann/json.hpp" #include "iaudio_channel_listener.h" #include "iaudio_channel.h" #include "softbus_adapter.h" +using json = nlohmann::json; + namespace OHOS { namespace DistributedHardware { class AudioCtrlChannel : public IAudioChannel, @@ -54,7 +56,7 @@ private: std::weak_ptr channelListener_; }; -int from_audioEventJson(const cJSON *jsonObj, AudioEvent &audioEvent); +int32_t from_audioEventJson(const json &j, AudioEvent &audioEvent); } // namespace DistributedHardware } // namespace OHOS #endif // OHOS_AUDIO_CTRL_CHANNEL_H diff --git a/services/audiotransport/audiochannel/audioctrlchannel/src/audio_ctrl_channel.cpp b/services/audiotransport/audiochannel/audioctrlchannel/src/audio_ctrl_channel.cpp index 03de9de6..501576c6 100644 --- a/services/audiotransport/audiochannel/audioctrlchannel/src/audio_ctrl_channel.cpp +++ b/services/audiotransport/audiochannel/audioctrlchannel/src/audio_ctrl_channel.cpp @@ -135,33 +135,15 @@ int32_t AudioCtrlChannel::SendData(const std::shared_ptr &data) int32_t AudioCtrlChannel::SendEvent(const AudioEvent &audioEvent) { DHLOGD("Send event, sessionId: %d.", sessionId_); - - cJSON *jAudioEvent = cJSON_CreateObject(); - if (jAudioEvent == nullptr) { - DHLOGE("Failed to create cJSON object."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } - - cJSON_AddNumberToObject(jAudioEvent, KEY_TYPE, static_cast(audioEvent.type)); - cJSON_AddStringToObject(jAudioEvent, KEY_EVENT_CONTENT, audioEvent.content.c_str()); - - char *jsonData = cJSON_PrintUnformatted(jAudioEvent); - if (jsonData == nullptr) { - cJSON_Delete(jAudioEvent); - DHLOGE("Failed to create JSON message."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } - std::string message(jsonData); - + json jAudioEvent; + jAudioEvent[KEY_TYPE] = audioEvent.type; + jAudioEvent[KEY_EVENT_CONTENT] = audioEvent.content; + std::string message = jAudioEvent.dump(); int ret = SendMsg(message); if (ret != DH_SUCCESS) { DHLOGE("Send audio event failed ret: %d.", ret); - cJSON_Delete(jAudioEvent); - cJSON_free(jsonData); return ret; } - cJSON_Delete(jAudioEvent); - cJSON_free(jsonData); return DH_SUCCESS; } @@ -247,21 +229,13 @@ void AudioCtrlChannel::OnBytesReceived(int32_t sessionId, const void *data, uint std::string message(buf, buf + dataLen); DHLOGI("On bytes received message: %s.", message.c_str()); - cJSON *jParam = cJSON_Parse(message.c_str()); - if (jParam == nullptr) { - DHLOGE("Failed to parse JSON message."); - cJSON_Delete(jParam); - free(buf); - return; - } AudioEvent audioEvent; + json jParam = json::parse(message, nullptr, false); if (from_audioEventJson(jParam, audioEvent) != DH_SUCCESS) { - DHLOGE("Get audioEvent from JSON failed."); - cJSON_Delete(jParam); + DHLOGE("Get audioEvent from json failed."); free(buf); return; } - cJSON_Delete(jParam); free(buf); DHLOGI("On bytes received end"); @@ -279,28 +253,15 @@ void AudioCtrlChannel::OnStreamReceived(int32_t sessionId, const StreamData *dat DHLOGI("Ctrl channel not support yet."); } -int from_audioEventJson(const cJSON *jsonObj, AudioEvent &audioEvent) +int from_audioEventJson(const json &j, AudioEvent &audioEvent) { - if (!JsonParamCheck(jsonObj, {KEY_TYPE, KEY_EVENT_CONTENT})) { - DHLOGE("JSON data is illegal."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } - - cJSON *typeValue = cJSON_GetObjectItemCaseSensitive(jsonObj, KEY_TYPE); - cJSON *contentValue = cJSON_GetObjectItemCaseSensitive(jsonObj, KEY_EVENT_CONTENT); - if (typeValue == nullptr || !cJSON_IsNumber(typeValue) || - contentValue == nullptr || !cJSON_IsString(contentValue)) { - DHLOGE("Failed to retrieve values from JSON."); - return ERR_DH_AUDIO_TRANS_NULL_VALUE; - } - int32_t typeInt = typeValue->valueint; - if (typeInt < EVENT_UNKNOWN || typeInt >= AUDIO_STOP) { - DHLOGE("Invalid AudioEventType value."); + if (!JsonParamCheck(j, {KEY_TYPE, KEY_EVENT_CONTENT})) { + DHLOGE("Json data is illegal."); return ERR_DH_AUDIO_TRANS_NULL_VALUE; } - audioEvent.type = static_cast(typeInt); - audioEvent.content = contentValue->valuestring; + j.at(KEY_TYPE).get_to(audioEvent.type); + j.at(KEY_EVENT_CONTENT).get_to(audioEvent.content); return DH_SUCCESS; } } // namespace DistributedHardware diff --git a/services/audiotransport/audiochannel/audiodatachannel/BUILD.gn b/services/audiotransport/audiochannel/audiodatachannel/BUILD.gn index f550e0c0..35ccab5c 100644 --- a/services/audiotransport/audiochannel/audiodatachannel/BUILD.gn +++ b/services/audiotransport/audiochannel/audiodatachannel/BUILD.gn @@ -16,7 +16,10 @@ import("//build/ohos_var.gni") import("../../../../distributedaudio.gni") ohos_shared_library("distributed_audio_data_channel") { - include_dirs = [ "${fwk_common_path}/utils/include" ] + include_dirs = [ + "${fwk_common_path}/utils/include", + "//third_party/json/include", + ] include_dirs += [ "include", @@ -26,7 +29,6 @@ ohos_shared_library("distributed_audio_data_channel") { "${services_path}/common/audiodata/include", "${audio_transport_path}/audiochannel/interface", "${softbusadapter_path}/include", - "//third_party/cJSON", ] sources = [ "src/audio_data_channel.cpp" ] @@ -34,7 +36,6 @@ ohos_shared_library("distributed_audio_data_channel") { deps = [ "${services_path}/common:distributed_audio_utils", "${softbusadapter_path}:distributed_audio_softbus_adapter", - "//third_party/cJSON:cjson", ] external_deps = [ diff --git a/services/audiotransport/audioctrltransport/BUILD.gn b/services/audiotransport/audioctrltransport/BUILD.gn index ed6fe638..619795b3 100644 --- a/services/audiotransport/audioctrltransport/BUILD.gn +++ b/services/audiotransport/audioctrltransport/BUILD.gn @@ -17,7 +17,7 @@ import("../../../distributedaudio.gni") ohos_shared_library("distributed_audio_control") { include_dirs = [ - "//third_party/cJSON", + "//third_party/json/include", "${fwk_common_path}/utils/include", ] @@ -41,7 +41,6 @@ ohos_shared_library("distributed_audio_control") { deps = [ "${services_path}/common:distributed_audio_utils", "${softbusadapter_path}:distributed_audio_softbus_adapter", - "//third_party/cJSON:cjson", ] external_deps = [ diff --git a/services/audiotransport/audiotransportstatus/BUILD.gn b/services/audiotransport/audiotransportstatus/BUILD.gn index 798bc721..965f6244 100644 --- a/services/audiotransport/audiotransportstatus/BUILD.gn +++ b/services/audiotransport/audiotransportstatus/BUILD.gn @@ -20,6 +20,7 @@ ohos_shared_library("distributed_audio_transport_status") { "${fwk_common_path}/utils/include", "${mediastandard_path}/interfaces/innerkits/native/media/include", "${mediastandardfwk_path}/audiocommon/include", + "//third_party/json/include", ] include_dirs += [ diff --git a/services/audiotransport/decodetransport/BUILD.gn b/services/audiotransport/decodetransport/BUILD.gn index a8db6935..bc26bcfe 100644 --- a/services/audiotransport/decodetransport/BUILD.gn +++ b/services/audiotransport/decodetransport/BUILD.gn @@ -31,6 +31,7 @@ ohos_shared_library("distributed_audio_decode_transport") { include_dirs = [ "${mediastandard_path}/interfaces/innerkits/native/media/include", "${mediastandardfwk_path}/audiocommon/include", + "//third_party/json/include", ] include_dirs += [ @@ -50,7 +51,6 @@ ohos_shared_library("distributed_audio_decode_transport") { "${services_path}/common/audiodata/include", "${services_path}/common/audioparam", "${softbusadapter_path}/include", - "//third_party/cJSON", ] public_configs = [ ":decode_transport_pub_config" ] @@ -70,7 +70,6 @@ ohos_shared_library("distributed_audio_decode_transport") { "${audio_transport_path}/audiochannel/audiodatachannel:distributed_audio_data_channel", "${audio_transport_path}/audiotransportstatus:distributed_audio_transport_status", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", ] external_deps = [ diff --git a/services/audiotransport/encodetransport/BUILD.gn b/services/audiotransport/encodetransport/BUILD.gn index 308b3de3..bc75f76f 100644 --- a/services/audiotransport/encodetransport/BUILD.gn +++ b/services/audiotransport/encodetransport/BUILD.gn @@ -31,6 +31,7 @@ ohos_shared_library("distributed_audio_encode_transport") { include_dirs = [ "${mediastandard_path}/interfaces/innerkits/native/media/include", "${mediastandardfwk_path}/audiocommon/include", + "//third_party/json/include", ] include_dirs += [ @@ -50,7 +51,6 @@ ohos_shared_library("distributed_audio_encode_transport") { "${services_path}/common/audiodata/include", "${services_path}/common/audioparam", "${softbusadapter_path}/include", - "//third_party/cJSON", ] public_configs = [ ":encode_transport_pub_config" ] @@ -70,7 +70,6 @@ ohos_shared_library("distributed_audio_encode_transport") { "${audio_transport_path}/audiochannel/audiodatachannel:distributed_audio_data_channel", "${audio_transport_path}/audiotransportstatus:distributed_audio_transport_status", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", ] external_deps = [ diff --git a/services/audiotransport/test/unittest/audioctrlchannel/BUILD.gn b/services/audiotransport/test/unittest/audioctrlchannel/BUILD.gn index bd82882b..998230c2 100644 --- a/services/audiotransport/test/unittest/audioctrlchannel/BUILD.gn +++ b/services/audiotransport/test/unittest/audioctrlchannel/BUILD.gn @@ -21,7 +21,7 @@ config("module_private_config") { visibility = [ ":*" ] include_dirs = [ - "//third_party/cJSON", + "//third_party/json/include", "${fwk_common_path}/utils/include", "${fwk_utils_path}/include/", ] @@ -50,7 +50,6 @@ ohos_unittest("AudioCtrlChannelTest") { deps = [ "${audio_transport_path}/audioctrltransport:distributed_audio_control", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", "//third_party/googletest:gmock", "//third_party/googletest:gtest_main", ] diff --git a/services/audiotransport/test/unittest/audioctrlchannel/src/audio_ctrl_channel_test.cpp b/services/audiotransport/test/unittest/audioctrlchannel/src/audio_ctrl_channel_test.cpp index c53f7728..5d6f27ae 100644 --- a/services/audiotransport/test/unittest/audioctrlchannel/src/audio_ctrl_channel_test.cpp +++ b/services/audiotransport/test/unittest/audioctrlchannel/src/audio_ctrl_channel_test.cpp @@ -175,9 +175,8 @@ HWTEST_F(AudioCtrlChannelTest, SendMsg_001, TestSize.Level1) HWTEST_F(AudioCtrlChannelTest, from_audioEventJson_001, TestSize.Level1) { AudioEvent event; - cJSON *j = cJSON_CreateObject(); + json j; EXPECT_NE(DH_SUCCESS, from_audioEventJson(j, event)); - cJSON_Delete(j); } } // namespace DistributedHardware } // namespace OHOS diff --git a/services/audiotransport/test/unittest/audioctrltransport/BUILD.gn b/services/audiotransport/test/unittest/audioctrltransport/BUILD.gn index b42a604f..7696159c 100644 --- a/services/audiotransport/test/unittest/audioctrltransport/BUILD.gn +++ b/services/audiotransport/test/unittest/audioctrltransport/BUILD.gn @@ -21,6 +21,7 @@ config("module_private_config") { visibility = [ ":*" ] include_dirs = [ + "//third_party/json/include", "${fwk_common_path}/utils/include", "${fwk_utils_path}/include/", ] diff --git a/services/audiotransport/test/unittest/audiodatachannel/BUILD.gn b/services/audiotransport/test/unittest/audiodatachannel/BUILD.gn index 7635979f..f4b60682 100644 --- a/services/audiotransport/test/unittest/audiodatachannel/BUILD.gn +++ b/services/audiotransport/test/unittest/audiodatachannel/BUILD.gn @@ -21,6 +21,7 @@ config("module_private_config") { visibility = [ ":*" ] include_dirs = [ + "//third_party/json/include", "${fwk_common_path}/utils/include", "${fwk_utils_path}/include/", ] @@ -35,7 +36,6 @@ config("module_private_config") { "${audio_transport_path}/audiochannel/audiodatachannel/include", "${audio_transport_path}/audioctrltransport/interface", "${audio_transport_path}/test/unittest/audiotranstestutils/include", - "//third_party/cJSON", ] } @@ -50,7 +50,6 @@ ohos_unittest("AudioDataChannelTest") { deps = [ "${audio_transport_path}/audiochannel/audiodatachannel:distributed_audio_data_channel", "${softbusadapter_path}:distributed_audio_softbus_adapter", - "//third_party/cJSON:cjson", "//third_party/googletest:gmock", "//third_party/googletest:gtest_main", ] diff --git a/services/audiotransport/test/unittest/audiotransportstatus/BUILD.gn b/services/audiotransport/test/unittest/audiotransportstatus/BUILD.gn index 1bc9ea82..8eed1d60 100644 --- a/services/audiotransport/test/unittest/audiotransportstatus/BUILD.gn +++ b/services/audiotransport/test/unittest/audiotransportstatus/BUILD.gn @@ -26,6 +26,7 @@ config("module_private_config") { "${fwk_common_path}/utils/include", "${mediastandard_path}/interfaces/innerkits/native/media/include", "${mediastandardfwk_path}/audiocommon/include", + "//third_party/json/include", ] include_dirs += [ @@ -41,7 +42,6 @@ config("module_private_config") { "${audio_transport_path}/test/unittest/audiotranstestutils/include", "${services_path}/common/audioparam", "${services_path}/common/audiodata/include", - "//third_party/cJSON", ] } @@ -61,7 +61,6 @@ ohos_unittest("TransportStatusTest") { "${audio_transport_path}/audiochannel/audiodatachannel:distributed_audio_data_channel", "${audio_transport_path}/audiotransportstatus:distributed_audio_transport_status", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", "//third_party/googletest:gtest_main", ] diff --git a/services/audiotransport/test/unittest/decodetransport/BUILD.gn b/services/audiotransport/test/unittest/decodetransport/BUILD.gn index 8aab728d..75cefc1b 100644 --- a/services/audiotransport/test/unittest/decodetransport/BUILD.gn +++ b/services/audiotransport/test/unittest/decodetransport/BUILD.gn @@ -22,7 +22,10 @@ module_output_path = config("module_private_config") { visibility = [ ":*" ] - include_dirs = [ "${fwk_common_path}/utils/include" ] + include_dirs = [ + "${fwk_common_path}/utils/include", + "//third_party/json/include", + ] include_dirs += [ "include", @@ -41,7 +44,6 @@ config("module_private_config") { "${services_path}/common/audiodata/include", "${services_path}/common/audioparam", "${softbusadapter_path}/include", - "//third_party/cJSON", ] } @@ -55,7 +57,6 @@ ohos_unittest("DecodeTransportTest") { deps = [ "${audio_transport_path}/decodetransport:distributed_audio_decode_transport", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", "//third_party/googletest:gtest_main", ] diff --git a/services/audiotransport/test/unittest/encodetransport/BUILD.gn b/services/audiotransport/test/unittest/encodetransport/BUILD.gn index 43902d34..22e4b574 100644 --- a/services/audiotransport/test/unittest/encodetransport/BUILD.gn +++ b/services/audiotransport/test/unittest/encodetransport/BUILD.gn @@ -22,7 +22,10 @@ module_output_path = config("module_private_config") { visibility = [ ":*" ] - include_dirs = [ "${fwk_common_path}/utils/include" ] + include_dirs = [ + "${fwk_common_path}/utils/include", + "//third_party/json/include", + ] include_dirs += [ "include", @@ -41,7 +44,6 @@ config("module_private_config") { "${services_path}/common/audiodata/include", "${services_path}/common/audioparam", "${softbusadapter_path}/include", - "//third_party/cJSON", ] } @@ -56,7 +58,6 @@ ohos_unittest("EncodeTransportTest") { "${audio_transport_path}/audiotransportstatus:distributed_audio_transport_status", "${audio_transport_path}/encodetransport:distributed_audio_encode_transport", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", "//third_party/googletest:gtest_main", ] diff --git a/services/audiotransport/test/unittest/receiverengine/BUILD.gn b/services/audiotransport/test/unittest/receiverengine/BUILD.gn index d34d4fcb..814d3dce 100644 --- a/services/audiotransport/test/unittest/receiverengine/BUILD.gn +++ b/services/audiotransport/test/unittest/receiverengine/BUILD.gn @@ -23,6 +23,7 @@ config("module_private_config") { include_dirs = [ "${mediastandard_path}/interfaces/innerkits/native/media/include", "${mediastandardfwk_path}/audiocommon/include", + "//third_party/json/include", ] include_dirs += [ @@ -35,7 +36,6 @@ config("module_private_config") { "${services_path}/common/audiodata/include", "${services_path}/common/audioparam", "${softbusadapter_path}/include", - "//third_party/cJSON", ] } @@ -53,7 +53,6 @@ ohos_unittest("AVTransReceiverAdapterTest") { deps = [ "${audio_transport_path}/decodetransport:distributed_audio_decode_transport", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", "//third_party/googletest:gmock", "//third_party/googletest:gtest_main", ] diff --git a/services/audiotransport/test/unittest/senderengine/BUILD.gn b/services/audiotransport/test/unittest/senderengine/BUILD.gn index 225af6c4..cded03c1 100644 --- a/services/audiotransport/test/unittest/senderengine/BUILD.gn +++ b/services/audiotransport/test/unittest/senderengine/BUILD.gn @@ -22,6 +22,7 @@ config("module_private_config") { include_dirs = [ "${mediastandard_path}/interfaces/innerkits/native/media/include", "${mediastandardfwk_path}/audiocommon/include", + "//third_party/json/include", ] include_dirs += [ @@ -34,7 +35,6 @@ config("module_private_config") { "${services_path}/common/audiodata/include", "${services_path}/common/audioparam", "${softbusadapter_path}/include", - "//third_party/cJSON", ] } @@ -52,7 +52,6 @@ ohos_unittest("AVTransSenderAdapterTest") { deps = [ "${audio_transport_path}/encodetransport:distributed_audio_encode_transport", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", "//third_party/googletest:gmock", "//third_party/googletest:gtest_main", ] diff --git a/services/common/BUILD.gn b/services/common/BUILD.gn index b2ec3ca9..bf4f8493 100644 --- a/services/common/BUILD.gn +++ b/services/common/BUILD.gn @@ -26,7 +26,7 @@ config("daudio_common_pub_config") { } config("daudio_common_private_config") { - include_dirs = [ "//third_party/cJSON" ] + include_dirs = [ "//third_party/json/include" ] include_dirs += [ "taskProcessor/include", @@ -51,8 +51,6 @@ ohos_shared_library("distributed_audio_utils") { "taskProcessor/src/task_queue.cpp", ] - deps = [ "//third_party/cJSON:cjson" ] - external_deps = [ "c_utils:utils", "dsoftbus:softbus_client", diff --git a/services/common/taskProcessor/test/unittest/task_queue/BUILD.gn b/services/common/taskProcessor/test/unittest/task_queue/BUILD.gn index 220acfae..c2049f5b 100644 --- a/services/common/taskProcessor/test/unittest/task_queue/BUILD.gn +++ b/services/common/taskProcessor/test/unittest/task_queue/BUILD.gn @@ -21,7 +21,7 @@ module_out_path = "distributed_audio/services/common/taskProcessor/test" config("module_private_config") { visibility = [ ":*" ] - include_dirs = [] + include_dirs = [ "//third_party/json/include" ] include_dirs += [ "${common_path}/include", diff --git a/services/common/test/unittest/audiodata/BUILD.gn b/services/common/test/unittest/audiodata/BUILD.gn index 4ade4027..4637f731 100644 --- a/services/common/test/unittest/audiodata/BUILD.gn +++ b/services/common/test/unittest/audiodata/BUILD.gn @@ -21,6 +21,7 @@ config("module_private_config") { include_dirs = [ "./include", + "//third_party/json/include", "${services_path}/common/audiodata/include", "${common_path}/include", ] diff --git a/services/softbusadapter/BUILD.gn b/services/softbusadapter/BUILD.gn index b8fb17c2..d460346c 100644 --- a/services/softbusadapter/BUILD.gn +++ b/services/softbusadapter/BUILD.gn @@ -16,14 +16,16 @@ import("//build/ohos_var.gni") import("../../distributedaudio.gni") ohos_shared_library("distributed_audio_softbus_adapter") { - include_dirs = [ "${fwk_common_path}/utils/include" ] + include_dirs = [ + "${fwk_common_path}/utils/include", + "//third_party/json/include", + ] include_dirs += [ "${common_path}/include", "${services_path}/common/audioparam", "${services_path}/common/audiodata/include", "${softbusadapter_path}/include", - "//third_party/cJSON", ] sources = [ @@ -31,10 +33,7 @@ ohos_shared_library("distributed_audio_softbus_adapter") { "src/softbus_adapter.cpp", ] - deps = [ - "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", - ] + deps = [ "${services_path}/common:distributed_audio_utils" ] external_deps = [ "c_utils:utils", diff --git a/services/softbusadapter/test/fuzztest/softbusonbytesreceived_fuzzer/BUILD.gn b/services/softbusadapter/test/fuzztest/softbusonbytesreceived_fuzzer/BUILD.gn index 8053d3f5..a4b79550 100644 --- a/services/softbusadapter/test/fuzztest/softbusonbytesreceived_fuzzer/BUILD.gn +++ b/services/softbusadapter/test/fuzztest/softbusonbytesreceived_fuzzer/BUILD.gn @@ -37,19 +37,18 @@ ohos_fuzztest("SoftbusOnBytesReceivedFuzzTest") { "${fwk_common_path}/log/include", "${fwk_common_path}/utils/include", "${softbusadapter_path}/include", + "//third_party/json/include", ] include_dirs += [ "include", "${common_path}/include", "${audio_transport_path}/audiochannel/audiodatachannel/include", - "//third_party/cJSON", ] deps = [ "${audio_transport_path}/audiochannel/audiodatachannel:distributed_audio_data_channel", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", ] external_deps = [ diff --git a/services/softbusadapter/test/fuzztest/softbusonsessionclosed_fuzzer/BUILD.gn b/services/softbusadapter/test/fuzztest/softbusonsessionclosed_fuzzer/BUILD.gn index 04c60496..dac1a93c 100644 --- a/services/softbusadapter/test/fuzztest/softbusonsessionclosed_fuzzer/BUILD.gn +++ b/services/softbusadapter/test/fuzztest/softbusonsessionclosed_fuzzer/BUILD.gn @@ -37,19 +37,18 @@ ohos_fuzztest("SoftbusOnSessionClosedFuzzTest") { "${fwk_common_path}/log/include", "${fwk_common_path}/utils/include", "${softbusadapter_path}/include", + "//third_party/json/include", ] include_dirs += [ "include", "${common_path}/include", "${audio_transport_path}/audiochannel/audiodatachannel/include", - "//third_party/cJSON", ] deps = [ "${audio_transport_path}/audiochannel/audiodatachannel:distributed_audio_data_channel", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", ] external_deps = [ diff --git a/services/softbusadapter/test/fuzztest/softbusonsessionopened_fuzzer/BUILD.gn b/services/softbusadapter/test/fuzztest/softbusonsessionopened_fuzzer/BUILD.gn index a0e44753..467d2a08 100644 --- a/services/softbusadapter/test/fuzztest/softbusonsessionopened_fuzzer/BUILD.gn +++ b/services/softbusadapter/test/fuzztest/softbusonsessionopened_fuzzer/BUILD.gn @@ -37,19 +37,18 @@ ohos_fuzztest("SoftbusOnSessionOpenedFuzzTest") { "${fwk_common_path}/log/include", "${fwk_common_path}/utils/include", "${softbusadapter_path}/include", + "//third_party/json/include", ] include_dirs += [ "include", "${common_path}/include", "${audio_transport_path}/audiochannel/audiodatachannel/include", - "//third_party/cJSON", ] deps = [ "${audio_transport_path}/audiochannel/audiodatachannel:distributed_audio_data_channel", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", ] external_deps = [ diff --git a/services/softbusadapter/test/fuzztest/softbusonstreamreceived_fuzzer/BUILD.gn b/services/softbusadapter/test/fuzztest/softbusonstreamreceived_fuzzer/BUILD.gn index 627a0643..f491ff04 100644 --- a/services/softbusadapter/test/fuzztest/softbusonstreamreceived_fuzzer/BUILD.gn +++ b/services/softbusadapter/test/fuzztest/softbusonstreamreceived_fuzzer/BUILD.gn @@ -37,19 +37,18 @@ ohos_fuzztest("SoftbusOnStreamReceivedFuzzTest") { "${fwk_common_path}/log/include", "${fwk_common_path}/utils/include", "${softbusadapter_path}/include", + "//third_party/json/include", ] include_dirs += [ "include", "${common_path}/include", "${audio_transport_path}/audiochannel/audiodatachannel/include", - "//third_party/cJSON", ] deps = [ "${audio_transport_path}/audiochannel/audiodatachannel:distributed_audio_data_channel", "${services_path}/common:distributed_audio_utils", - "//third_party/cJSON:cjson", ] external_deps = [ diff --git a/services/softbusadapter/test/unittest/BUILD.gn b/services/softbusadapter/test/unittest/BUILD.gn index 6ea77f59..189137bd 100644 --- a/services/softbusadapter/test/unittest/BUILD.gn +++ b/services/softbusadapter/test/unittest/BUILD.gn @@ -20,6 +20,7 @@ config("module_private_config") { visibility = [ ":*" ] include_dirs = [ + "//third_party/json/include", "${fwk_common_path}/utils/include", "${fwk_utils_path}/include/", ] @@ -30,7 +31,6 @@ config("module_private_config") { "${services_path}/common/audioparam", "${services_path}/common/audiodata/include", "${softbusadapter_path}/include", - "//third_party/cJSON", ] } @@ -44,7 +44,6 @@ ohos_unittest("SoftBusAdapterTest") { deps = [ "${softbusadapter_path}:distributed_audio_softbus_adapter", - "//third_party/cJSON:cjson", "//third_party/googletest:gmock", "//third_party/googletest:gtest_main", ] -- Gitee