Effect AIDL Add visualizer libeffect implementation
Bug: 258124419
Test: atest VtsHalVisualizerTargetTest
Change-Id: I4ad827a4e8951a16738580ecf91fe1b9cf65cc20
diff --git a/audio/aidl/default/visualizer/VisualizerSw.cpp b/audio/aidl/default/visualizer/VisualizerSw.cpp
index 37eb30b..735180e 100644
--- a/audio/aidl/default/visualizer/VisualizerSw.cpp
+++ b/audio/aidl/default/visualizer/VisualizerSw.cpp
@@ -56,9 +56,12 @@
const std::string VisualizerSw::kEffectName = "VisualizerSw";
/* capabilities */
-const Visualizer::CaptureSizeRange mCaptureSizeRange = {MIN_CAPTURE_SIZE, MAX_CAPTURE_SIZE};
-const Visualizer::Capability VisualizerSw::kCapability = {.maxLatencyMs = MAX_LATENCY,
- .captureSizeRange = mCaptureSizeRange};
+const Visualizer::CaptureSamplesRange VisualizerSwContext::kCaptureSamplesRange = {
+ VisualizerSwContext::kMinCaptureSize, VisualizerSwContext::kMaxCaptureSize};
+const Visualizer::Capability VisualizerSw::kCapability = {
+ .maxLatencyMs = VisualizerSwContext::kMaxLatencyMs,
+ .captureSampleRange = VisualizerSwContext::kCaptureSamplesRange};
+
const Descriptor VisualizerSw::kDescriptor = {
.common = {.id = {.type = kVisualizerTypeUUID,
.uuid = kVisualizerSwImplUUID,
@@ -84,8 +87,8 @@
auto tag = vsParam.getTag();
switch (tag) {
- case Visualizer::captureSizeBytes: {
- RETURN_IF(mContext->setVsCaptureSize(vsParam.get<Visualizer::captureSizeBytes>()) !=
+ case Visualizer::captureSamples: {
+ RETURN_IF(mContext->setVsCaptureSize(vsParam.get<Visualizer::captureSamples>()) !=
RetCode::SUCCESS,
EX_ILLEGAL_ARGUMENT, "captureSizeNotSupported");
return ndk::ScopedAStatus::ok();
@@ -159,8 +162,8 @@
Visualizer vsParam;
switch (tag) {
- case Visualizer::captureSizeBytes: {
- vsParam.set<Visualizer::captureSizeBytes>(mContext->getVsCaptureSize());
+ case Visualizer::captureSamples: {
+ vsParam.set<Visualizer::captureSamples>(mContext->getVsCaptureSize());
break;
}
case Visualizer::scalingMode: {
@@ -190,9 +193,9 @@
mContext->getVsMeasurement());
break;
}
- case Visualizer::GetOnlyParameters::captureBytes: {
- getOnlyParam.set<Visualizer::GetOnlyParameters::captureBytes>(
- mContext->getVsCaptureBytes());
+ case Visualizer::GetOnlyParameters::captureSampleBuffer: {
+ getOnlyParam.set<Visualizer::GetOnlyParameters::captureSampleBuffer>(
+ mContext->getVsCaptureSampleBuffer());
break;
}
default: {
diff --git a/audio/aidl/default/visualizer/VisualizerSw.h b/audio/aidl/default/visualizer/VisualizerSw.h
index a95537c..edaf123 100644
--- a/audio/aidl/default/visualizer/VisualizerSw.h
+++ b/audio/aidl/default/visualizer/VisualizerSw.h
@@ -22,24 +22,24 @@
#include "effect-impl/EffectImpl.h"
#include "effect-impl/EffectUUID.h"
-#define MIN_CAPTURE_SIZE 128
-#define MAX_CAPTURE_SIZE 1024
-#define MAX_LATENCY 3000
-#define CAPTURE_BUF_SIZE 65536
-
namespace aidl::android::hardware::audio::effect {
class VisualizerSwContext final : public EffectContext {
public:
+ static const int kMinCaptureSize = 0x80;
+ static const int kMaxCaptureSize = 0x400;
+ static const int kMaxLatencyMs = 3000;
+ static const int kMaxCaptureBufSize = 0xffff;
+ static const Visualizer::CaptureSamplesRange kCaptureSamplesRange;
VisualizerSwContext(int statusDepth, const Parameter::Common& common)
: EffectContext(statusDepth, common) {
LOG(DEBUG) << __func__;
- mCaptureBytes.resize(CAPTURE_BUF_SIZE);
- fill(mCaptureBytes.begin(), mCaptureBytes.end(), 0x80);
+ mCaptureSampleBuffer.resize(kMaxCaptureBufSize);
+ fill(mCaptureSampleBuffer.begin(), mCaptureSampleBuffer.end(), 0x80);
}
RetCode setVsCaptureSize(int captureSize) {
- if (captureSize < MIN_CAPTURE_SIZE || captureSize > MAX_CAPTURE_SIZE) {
+ if (captureSize < kMinCaptureSize || captureSize > kMaxCaptureSize) {
LOG(ERROR) << __func__ << " invalid captureSize " << captureSize;
return RetCode::ERROR_ILLEGAL_PARAMETER;
}
@@ -64,7 +64,7 @@
Visualizer::MeasurementMode getVsMeasurementMode() const { return mMeasurementMode; }
RetCode setVsLatency(int latency) {
- if (latency < 0 || latency > MAX_LATENCY) {
+ if (latency < 0 || latency > kMaxLatencyMs) {
LOG(ERROR) << __func__ << " invalid latency " << latency;
return RetCode::ERROR_ILLEGAL_PARAMETER;
}
@@ -74,15 +74,15 @@
}
Visualizer::GetOnlyParameters::Measurement getVsMeasurement() const { return mMeasurement; }
- std::vector<uint8_t> getVsCaptureBytes() const { return mCaptureBytes; }
+ std::vector<uint8_t> getVsCaptureSampleBuffer() const { return mCaptureSampleBuffer; }
private:
- int mCaptureSize = MAX_CAPTURE_SIZE;
+ int mCaptureSize = kMaxCaptureSize;
Visualizer::ScalingMode mScalingMode = Visualizer::ScalingMode::NORMALIZED;
Visualizer::MeasurementMode mMeasurementMode = Visualizer::MeasurementMode::NONE;
int mLatency;
const Visualizer::GetOnlyParameters::Measurement mMeasurement = {0, 0};
- std::vector<uint8_t> mCaptureBytes;
+ std::vector<uint8_t> mCaptureSampleBuffer;
};
class VisualizerSw final : public EffectImpl {