From 5591fcfa40cb548a17de63f75816ce675fcb22fe Mon Sep 17 00:00:00 2001 From: Anurup M Date: Fri, 30 Jul 2021 20:27:19 +0530 Subject: [PATCH] add GetSingleKvStore to set and get volume Signed-off-by: Anurup M --- .../manager/pulseaudio_policy_manager.h | 5 +- .../src/manager/pulseaudio_policy_manager.cpp | 49 +++++-------------- 2 files changed, 14 insertions(+), 40 deletions(-) diff --git a/services/src/audio_policy/server/service/include/manager/pulseaudio_policy_manager.h b/services/src/audio_policy/server/service/include/manager/pulseaudio_policy_manager.h index dc8eca5bcb..9286ce7e58 100644 --- a/services/src/audio_policy/server/service/include/manager/pulseaudio_policy_manager.h +++ b/services/src/audio_policy/server/service/include/manager/pulseaudio_policy_manager.h @@ -123,8 +123,7 @@ private: void InitVolumeMap(bool isFirstBoot); bool LoadVolumeMap(void); void WriteVolumeToKvStore(AudioStreamType streamType, float volume); - bool LoadVolumeFromKvStore(std::unique_ptr& audioPolicyKvStoreSnapshot, - AudioStreamType streamType); + bool LoadVolumeFromKvStore(AudioStreamType streamType); void InitRingerMode(bool isFirstBoot); bool LoadRingerMode(void); void WriteRingerModeToKvStore(AudioRingerMode ringerMode); @@ -133,7 +132,7 @@ private: pa_threaded_mainloop* mMainLoop; std::unordered_map mVolumeMap; AudioRingerMode mRingerMode; - std::unique_ptr mAudioPolicyKvStore; + std::unique_ptr mAudioPolicyKvStore; }; } // namespace AudioStandard } // namespace OHOS diff --git a/services/src/audio_policy/server/service/src/manager/pulseaudio_policy_manager.cpp b/services/src/audio_policy/server/service/src/manager/pulseaudio_policy_manager.cpp index 8b43169d8e..a9d2616428 100644 --- a/services/src/audio_policy/server/service/src/manager/pulseaudio_policy_manager.cpp +++ b/services/src/audio_policy/server/service/src/manager/pulseaudio_policy_manager.cpp @@ -488,7 +488,7 @@ bool PulseAudioPolicyManager::InitAudioPolicyKvStore(bool& isFirstBoot) options.createIfMissing = false; options.encrypt = false; options.autoSync = true; - options.kvStoreType = KvStoreType::MULTI_VERSION; + options.kvStoreType = KvStoreType::SINGLE_VERSION; AppId appId; appId.appId = "policymanager"; @@ -497,12 +497,13 @@ bool PulseAudioPolicyManager::InitAudioPolicyKvStore(bool& isFirstBoot) // open and initialize kvstore instance. if (mAudioPolicyKvStore == nullptr) { - manager.GetKvStore(options, appId, storeId, [&](Status status, std::unique_ptr kvStore) { + manager.GetSingleKvStore( + options, appId, storeId, [&](Status status, std::unique_ptr singleKvStore) { if (status == Status::STORE_NOT_FOUND) { MEDIA_ERR_LOG("[PolicyManager] InitAudioPolicyKvStore: STORE_NOT_FOUND!"); return; } else { - mAudioPolicyKvStore = std::move(kvStore); + mAudioPolicyKvStore = std::move(singleKvStore); } }); } @@ -511,13 +512,14 @@ bool PulseAudioPolicyManager::InitAudioPolicyKvStore(bool& isFirstBoot) MEDIA_INFO_LOG("[PolicyManager] First Boot: Create AudioPolicyKvStore"); options.createIfMissing = true; // [create and] open and initialize kvstore instance. - manager.GetKvStore(options, appId, storeId, [&](Status status, std::unique_ptr kvStore) { + manager.GetSingleKvStore( + options, appId, storeId,[&](Status status, std::unique_ptr singleKvStore) { if (status != Status::SUCCESS) { MEDIA_ERR_LOG("[PolicyManager] Create AudioPolicyKvStore Failed!"); return; } - mAudioPolicyKvStore = std::move(kvStore); + mAudioPolicyKvStore = std::move(singleKvStore); isFirstBoot = true; }); } @@ -558,8 +560,7 @@ void PulseAudioPolicyManager::InitRingerMode(bool isFirstBoot) } } -bool PulseAudioPolicyManager::LoadVolumeFromKvStore(std::unique_ptr& audioPolicyKvStoreSnapshot, - AudioStreamType streamType) +bool PulseAudioPolicyManager::LoadVolumeFromKvStore(AudioStreamType streamType) { Key key; Value value; @@ -575,7 +576,7 @@ bool PulseAudioPolicyManager::LoadVolumeFromKvStore(std::unique_ptrGet(key, value); + Status status = mAudioPolicyKvStore->Get(key, value); if (status == Status::SUCCESS) { float volume = TransferByteArrayToType(value.Data()); mVolumeMap[streamType] = volume; @@ -594,25 +595,12 @@ bool PulseAudioPolicyManager::LoadVolumeMap(void) return false; } - std::unique_ptr audioPolicyKvStoreSnapshot; - - // open and initialize kvstore snapshot instance. - mAudioPolicyKvStore->GetKvStoreSnapshot(nullptr, - [&](Status status, std::unique_ptr kvStoreSnapshot) { - audioPolicyKvStoreSnapshot = std::move(kvStoreSnapshot); - }); - if (audioPolicyKvStoreSnapshot == nullptr) { - MEDIA_ERR_LOG("[PolicyManager] LoadVolumeMap: audioPolicyKvStoreSnapshot is null!"); - return false; - } - - if (!LoadVolumeFromKvStore(audioPolicyKvStoreSnapshot, STREAM_MUSIC)) + if (!LoadVolumeFromKvStore(STREAM_MUSIC)) MEDIA_ERR_LOG("[PolicyManager] LoadVolumeMap: Couldnot load volume for Music from kvStore!"); - if (!LoadVolumeFromKvStore(audioPolicyKvStoreSnapshot, STREAM_RING)) + if (!LoadVolumeFromKvStore(STREAM_RING)) MEDIA_ERR_LOG("[PolicyManager] LoadVolumeMap: Couldnot load volume for Ring from kvStore!"); - mAudioPolicyKvStore->ReleaseKvStoreSnapshot(std::move(audioPolicyKvStoreSnapshot)); return true; } @@ -623,28 +611,15 @@ bool PulseAudioPolicyManager::LoadRingerMode(void) return false; } - std::unique_ptr audioPolicyKvStoreSnapshot; - - // open and initialize kvstore snapshot instance. - mAudioPolicyKvStore->GetKvStoreSnapshot(nullptr, - [&](Status status, std::unique_ptr kvStoreSnapshot) { - audioPolicyKvStoreSnapshot = std::move(kvStoreSnapshot); - }); - if (audioPolicyKvStoreSnapshot == nullptr) { - MEDIA_ERR_LOG("[PolicyManager] LoadRingerMap: audioPolicyKvStoreSnapshot is null!"); - return false; - } - // get ringer mode value from kvstore. Key key = "ringermode"; Value value; - Status status = audioPolicyKvStoreSnapshot->Get(key, value); + Status status = mAudioPolicyKvStore->Get(key, value); if (status == Status::SUCCESS) { mRingerMode = static_cast(TransferByteArrayToType(value.Data())); MEDIA_DEBUG_LOG("[PolicyManager] Ringer Mode from kvStore %{public}d", mRingerMode); } - mAudioPolicyKvStore->ReleaseKvStoreSnapshot(std::move(audioPolicyKvStoreSnapshot)); return true; } -- Gitee