Merge "CSD: rename get/setOutputRs2 to include upper bound" into udc-dev
diff --git a/media/libaudioclient/aidl/android/media/ISoundDose.aidl b/media/libaudioclient/aidl/android/media/ISoundDose.aidl
index 69f9a1f..6404753 100644
--- a/media/libaudioclient/aidl/android/media/ISoundDose.aidl
+++ b/media/libaudioclient/aidl/android/media/ISoundDose.aidl
@@ -23,8 +23,8 @@
* AudioService#SoundDoseHelper to the audio server
*/
interface ISoundDose {
- /** Set a new RS2 value used for momentary exposure warnings. */
- oneway void setOutputRs2(float rs2Value);
+ /** Set a new RS2 upper bound used for momentary exposure warnings. */
+ oneway void setOutputRs2UpperBound(float rs2Value);
/**
* Resets the native CSD values. This can happen after a crash in the
@@ -49,8 +49,8 @@
oneway void updateAttenuation(float attenuationDB, int device);
/* -------------------------- Test API methods --------------------------
- /** Get the currently used RS2 value. */
- float getOutputRs2();
+ /** Get the currently used RS2 upper bound. */
+ float getOutputRs2UpperBound();
/** Get the current CSD from audioserver. */
float getCsd();
/** Enables/Disables MEL computations from framework. */
diff --git a/services/audioflinger/sounddose/SoundDoseManager.cpp b/services/audioflinger/sounddose/SoundDoseManager.cpp
index dcaa0f1..18d93a5 100644
--- a/services/audioflinger/sounddose/SoundDoseManager.cpp
+++ b/services/audioflinger/sounddose/SoundDoseManager.cpp
@@ -24,7 +24,7 @@
#include <android-base/stringprintf.h>
#include <media/AidlConversionCppNdk.h>
#include <cinttypes>
-#include <time.h>
+#include <ctime>
#include <utils/Log.h>
namespace android {
@@ -65,12 +65,12 @@
processor->setAttenuation(mMelAttenuationDB[activeTypeIt->second]);
}
processor->setDeviceId(deviceId);
- processor->setOutputRs2(mRs2Value);
+ processor->setOutputRs2UpperBound(mRs2UpperBound);
return processor;
} else {
ALOGV("%s: creating new callback for stream id %d", __func__, streamHandle);
sp<audio_utils::MelProcessor> melProcessor = sp<audio_utils::MelProcessor>::make(
- sampleRate, channelCount, format, this, deviceId, mRs2Value);
+ sampleRate, channelCount, format, this, deviceId, mRs2UpperBound);
const auto activeTypeIt = mActiveDeviceTypes.find(deviceId);
if (activeTypeIt != mActiveDeviceTypes.end()) {
melProcessor->setAttenuation(mMelAttenuationDB[activeTypeIt->second]);
@@ -92,10 +92,10 @@
return false;
}
- if (!mHalSoundDose->setOutputRs2(mRs2Value).isOk()) {
+ if (!mHalSoundDose->setOutputRs2UpperBound(mRs2UpperBound).isOk()) {
ALOGW("%s: Cannot set RS2 value for momentary exposure %f",
__func__,
- mRs2Value);
+ mRs2UpperBound);
}
// initialize the HAL sound dose callback lazily
@@ -116,30 +116,30 @@
return true;
}
-void SoundDoseManager::setOutputRs2(float rs2Value) {
+void SoundDoseManager::setOutputRs2UpperBound(float rs2Value) {
ALOGV("%s", __func__);
std::lock_guard _l(mLock);
if (mHalSoundDose != nullptr) {
// using the HAL sound dose interface
- if (!mHalSoundDose->setOutputRs2(rs2Value).isOk()) {
+ if (!mHalSoundDose->setOutputRs2UpperBound(rs2Value).isOk()) {
ALOGE("%s: Cannot set RS2 value for momentary exposure %f", __func__, rs2Value);
return;
}
- mRs2Value = rs2Value;
+ mRs2UpperBound = rs2Value;
return;
}
for (auto& streamProcessor : mActiveProcessors) {
sp<audio_utils::MelProcessor> processor = streamProcessor.second.promote();
if (processor != nullptr) {
- status_t result = processor->setOutputRs2(rs2Value);
+ status_t result = processor->setOutputRs2UpperBound(rs2Value);
if (result != NO_ERROR) {
- ALOGW("%s: could not set RS2 value %f for stream %d", __func__, rs2Value,
+ ALOGW("%s: could not set RS2 upper bound %f for stream %d", __func__, rs2Value,
streamProcessor.first);
return;
}
- mRs2Value = rs2Value;
+ mRs2UpperBound = rs2Value;
}
}
}
@@ -259,11 +259,11 @@
}
}
-binder::Status SoundDoseManager::SoundDose::setOutputRs2(float value) {
+binder::Status SoundDoseManager::SoundDose::setOutputRs2UpperBound(float value) {
ALOGV("%s", __func__);
auto soundDoseManager = mSoundDoseManager.promote();
if (soundDoseManager != nullptr) {
- soundDoseManager->setOutputRs2(value);
+ soundDoseManager->setOutputRs2UpperBound(value);
}
return binder::Status::ok();
}
@@ -287,12 +287,12 @@
return binder::Status::ok();
}
-binder::Status SoundDoseManager::SoundDose::getOutputRs2(float* value) {
+binder::Status SoundDoseManager::SoundDose::getOutputRs2UpperBound(float* value) {
ALOGV("%s", __func__);
auto soundDoseManager = mSoundDoseManager.promote();
if (soundDoseManager != nullptr) {
std::lock_guard _l(soundDoseManager->mLock);
- *value = soundDoseManager->mRs2Value;
+ *value = soundDoseManager->mRs2UpperBound;
}
return binder::Status::ok();
}
diff --git a/services/audioflinger/sounddose/SoundDoseManager.h b/services/audioflinger/sounddose/SoundDoseManager.h
index f31a5d9..9e07d38 100644
--- a/services/audioflinger/sounddose/SoundDoseManager.h
+++ b/services/audioflinger/sounddose/SoundDoseManager.h
@@ -36,12 +36,12 @@
public:
/** CSD is computed with a rolling window of 7 days. */
static constexpr int64_t kCsdWindowSeconds = 604800; // 60s * 60m * 24h * 7d
- /** Default RS2 value in dBA as defined in IEC 62368-1 3rd edition. */
- static constexpr float kDefaultRs2Value = 100.f;
+ /** Default RS2 upper bound in dBA as defined in IEC 62368-1 3rd edition. */
+ static constexpr float kDefaultRs2UpperBound = 100.f;
SoundDoseManager()
: mMelAggregator(sp<audio_utils::MelAggregator>::make(kCsdWindowSeconds)),
- mRs2Value(kDefaultRs2Value) {};
+ mRs2UpperBound(kDefaultRs2UpperBound) {};
/**
* \brief Creates or gets the MelProcessor assigned to the streamHandle
@@ -68,12 +68,12 @@
void removeStreamProcessor(audio_io_handle_t streamHandle);
/**
- * Sets the output RS2 value for momentary exposure warnings. Must not be
+ * Sets the output RS2 upper bound for momentary exposure warnings. Must not be
* higher than 100dBA and not lower than 80dBA.
*
* \param rs2Value value to use for momentary exposure
*/
- void setOutputRs2(float rs2Value);
+ void setOutputRs2UpperBound(float rs2Value);
/**
* \brief Registers the interface for passing callbacks to the AudioService and gets
@@ -129,11 +129,11 @@
virtual void binderDied(const wp<IBinder>& who);
/** BnSoundDose override */
- binder::Status setOutputRs2(float value) override;
+ binder::Status setOutputRs2UpperBound(float value) override;
binder::Status resetCsd(float currentCsd,
const std::vector<media::SoundDoseRecord>& records) override;
binder::Status updateAttenuation(float attenuationDB, int device) override;
- binder::Status getOutputRs2(float* value) override;
+ binder::Status getOutputRs2UpperBound(float* value) override;
binder::Status getCsd(float* value) override;
binder::Status forceUseFrameworkMel(bool useFrameworkMel) override;
binder::Status forceComputeCsdOnAllDevices(bool computeCsdOnAllDevices) override;
@@ -183,7 +183,7 @@
std::map<AudioDeviceTypeAddr, audio_port_handle_t> mActiveDevices GUARDED_BY(mLock);
std::unordered_map<audio_port_handle_t, audio_devices_t> mActiveDeviceTypes GUARDED_BY(mLock);
- float mRs2Value GUARDED_BY(mLock);
+ float mRs2UpperBound GUARDED_BY(mLock);
std::unordered_map<audio_devices_t, float> mMelAttenuationDB GUARDED_BY(mLock);
sp<SoundDose> mSoundDose GUARDED_BY(mLock);
diff --git a/services/audioflinger/sounddose/tests/sounddosemanager_tests.cpp b/services/audioflinger/sounddose/tests/sounddosemanager_tests.cpp
index c836207..e07a3a4 100644
--- a/services/audioflinger/sounddose/tests/sounddosemanager_tests.cpp
+++ b/services/audioflinger/sounddose/tests/sounddosemanager_tests.cpp
@@ -33,8 +33,8 @@
class HalSoundDoseMock : public BnSoundDose {
public:
- MOCK_METHOD(ndk::ScopedAStatus, getOutputRs2, (float*), (override));
- MOCK_METHOD(ndk::ScopedAStatus, setOutputRs2, (float), (override));
+ MOCK_METHOD(ndk::ScopedAStatus, getOutputRs2UpperBound, (float*), (override));
+ MOCK_METHOD(ndk::ScopedAStatus, setOutputRs2UpperBound, (float), (override));
MOCK_METHOD(ndk::ScopedAStatus, registerSoundDoseCallback,
(const std::shared_ptr<ISoundDose::IHalSoundDoseCallback>&), (override));
};
@@ -45,7 +45,7 @@
mSoundDoseManager = sp<SoundDoseManager>::make();
mHalSoundDose = ndk::SharedRefBase::make<HalSoundDoseMock>();
- ON_CALL(*mHalSoundDose.get(), setOutputRs2)
+ ON_CALL(*mHalSoundDose.get(), setOutputRs2UpperBound)
.WillByDefault([] (float rs2) {
EXPECT_EQ(rs2, ISoundDose::DEFAULT_MAX_RS2);
return ndk::ScopedAStatus::ok();
@@ -105,7 +105,7 @@
}
TEST_F(SoundDoseManagerTest, SetHalSoundDoseDisablesNewMelProcessorCallbacks) {
- EXPECT_CALL(*mHalSoundDose.get(), setOutputRs2).Times(1);
+ EXPECT_CALL(*mHalSoundDose.get(), setOutputRs2UpperBound).Times(1);
EXPECT_CALL(*mHalSoundDose.get(), registerSoundDoseCallback)
.Times(1)
.WillOnce([&] (const std::shared_ptr<ISoundDose::IHalSoundDoseCallback>& callback) {
@@ -123,7 +123,7 @@
}
TEST_F(SoundDoseManagerTest, SetHalSoundDoseRegistersHalCallbacks) {
- EXPECT_CALL(*mHalSoundDose.get(), setOutputRs2).Times(1);
+ EXPECT_CALL(*mHalSoundDose.get(), setOutputRs2UpperBound).Times(1);
EXPECT_CALL(*mHalSoundDose.get(), registerSoundDoseCallback)
.Times(1)
.WillOnce([&] (const std::shared_ptr<ISoundDose::IHalSoundDoseCallback>& callback) {
@@ -137,7 +137,7 @@
TEST_F(SoundDoseManagerTest, MomentaryExposureFromHalWithNoAddressIllegalArgument) {
std::shared_ptr<ISoundDose::IHalSoundDoseCallback> halCallback;
- EXPECT_CALL(*mHalSoundDose.get(), setOutputRs2).Times(1);
+ EXPECT_CALL(*mHalSoundDose.get(), setOutputRs2UpperBound).Times(1);
EXPECT_CALL(*mHalSoundDose.get(), registerSoundDoseCallback)
.Times(1)
.WillOnce([&] (const std::shared_ptr<ISoundDose::IHalSoundDoseCallback>& callback) {
@@ -158,7 +158,7 @@
TEST_F(SoundDoseManagerTest, MomentaryExposureFromHalAfterInternalSelectedReturnsException) {
std::shared_ptr<ISoundDose::IHalSoundDoseCallback> halCallback;
- EXPECT_CALL(*mHalSoundDose.get(), setOutputRs2).Times(1);
+ EXPECT_CALL(*mHalSoundDose.get(), setOutputRs2UpperBound).Times(1);
EXPECT_CALL(*mHalSoundDose.get(), registerSoundDoseCallback)
.Times(1)
.WillOnce([&] (const std::shared_ptr<ISoundDose::IHalSoundDoseCallback>& callback) {
@@ -180,7 +180,7 @@
TEST_F(SoundDoseManagerTest, OnNewMelValuesFromHalWithNoAddressIllegalArgument) {
std::shared_ptr<ISoundDose::IHalSoundDoseCallback> halCallback;
- EXPECT_CALL(*mHalSoundDose.get(), setOutputRs2).Times(1);
+ EXPECT_CALL(*mHalSoundDose.get(), setOutputRs2UpperBound).Times(1);
EXPECT_CALL(*mHalSoundDose.get(), registerSoundDoseCallback)
.Times(1)
.WillOnce([&] (const std::shared_ptr<ISoundDose::IHalSoundDoseCallback>& callback) {