diff --git a/services/audio_service/server/include/audio_server.h b/services/audio_service/server/include/audio_server.h index 96d8e3a775bc91b943a524ef68f14666999aa255..4ca37d1a659fe90dd613833b7ebf9aceacd52bfe 100644 --- a/services/audio_service/server/include/audio_server.h +++ b/services/audio_service/server/include/audio_server.h @@ -223,7 +223,7 @@ public: int32_t GetStandbyStatus(uint32_t sessionId, bool &isStandby, int64_t &enterStandbyTime) override; int32_t GenerateSessionId(uint32_t &sessionId) override; - + int32_t NotifyAccountsChanged() override; int32_t NotifySettingsDataReady() override; @@ -400,6 +400,7 @@ private: std::mutex streamLifeCycleMutex_ {}; // Temporary resolution to avoid pcm driver problem std::map usbInfoMap_; + std::mutex mtxGetUsbParameter_; std::atomic isAudioPolicyReady_ = false; std::mutex isAudioPolicyReadyMutex_; diff --git a/services/audio_service/server/src/audio_server.cpp b/services/audio_service/server/src/audio_server.cpp index 9f0758fa1a6a1485edf059a3128022784f72cc70..41f911ab8185dbfd054d49a6aa1cf7aa6ca20b13 100644 --- a/services/audio_service/server/src/audio_server.cpp +++ b/services/audio_service/server/src/audio_server.cpp @@ -1132,7 +1132,7 @@ const std::string AudioServer::GetUsbParameter(const std::string &condition) CHECK_AND_RETURN_RET_LOG(StringConverter(GetField(condition, "role", ' '), deviceRoleNum), usbInfoStr, "convert invalid value: %{public}s", GetField(condition, "role", ' ').c_str()); DeviceRole role = static_cast(deviceRoleNum); - + lock_guard lg(mtxGetUsbParameter_); std::shared_ptr sink = GetSinkByProp(HDI_ID_TYPE_PRIMARY, HDI_ID_INFO_USB, true); CHECK_AND_RETURN_RET_LOG(sink, "", "rendererSink is nullptr"); std::string infoCond = std::string("get_usb_info#C") + GetField(address, "card", ';') + "D0";