mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 16:50:18 +00:00
Merge "Add vendor extension effect example"
This commit is contained in:
@@ -39,7 +39,7 @@ union AcousticEchoCanceler {
|
||||
boolean mobileMode;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.AcousticEchoCanceler.Tag commonTag;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ union AutomaticGainControlV1 {
|
||||
boolean enableLimiter;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.AutomaticGainControlV1.Tag commonTag;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ union AutomaticGainControlV2 {
|
||||
int saturationMarginMb;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.AutomaticGainControlV2.Tag commonTag;
|
||||
}
|
||||
@Backing(type="int") @VintfStability
|
||||
|
||||
@@ -38,7 +38,7 @@ union BassBoost {
|
||||
int strengthPm;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.BassBoost.Tag commonTag;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ union Downmix {
|
||||
android.hardware.audio.effect.Downmix.Type type;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.Downmix.Tag commonTag;
|
||||
}
|
||||
@VintfStability
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
package android.hardware.audio.effect;
|
||||
@VintfStability
|
||||
union DynamicsProcessing {
|
||||
android.hardware.audio.effect.VendorExtension vendorExtension;
|
||||
android.hardware.audio.effect.VendorExtension vendor;
|
||||
android.hardware.audio.effect.DynamicsProcessing.EngineArchitecture engineArchitecture;
|
||||
android.hardware.audio.effect.DynamicsProcessing.ChannelConfig[] preEq;
|
||||
android.hardware.audio.effect.DynamicsProcessing.ChannelConfig[] postEq;
|
||||
@@ -46,7 +46,7 @@ union DynamicsProcessing {
|
||||
android.hardware.audio.effect.DynamicsProcessing.InputGain[] inputGain;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.DynamicsProcessing.Tag commonTag;
|
||||
}
|
||||
enum ResolutionPreference {
|
||||
|
||||
@@ -48,7 +48,7 @@ union EnvironmentalReverb {
|
||||
boolean bypass;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.EnvironmentalReverb.Tag commonTag;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
package android.hardware.audio.effect;
|
||||
@VintfStability
|
||||
union Equalizer {
|
||||
android.hardware.audio.effect.VendorExtension vendorExtension;
|
||||
android.hardware.audio.effect.VendorExtension vendor;
|
||||
android.hardware.audio.effect.Equalizer.BandLevel[] bandLevels;
|
||||
int preset;
|
||||
int[] centerFreqMh;
|
||||
@@ -42,7 +42,7 @@ union Equalizer {
|
||||
android.hardware.audio.effect.Equalizer.Preset[] presets;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.Equalizer.Tag commonTag;
|
||||
}
|
||||
@VintfStability
|
||||
|
||||
@@ -34,12 +34,12 @@
|
||||
package android.hardware.audio.effect;
|
||||
@VintfStability
|
||||
union HapticGenerator {
|
||||
android.hardware.audio.effect.VendorExtension vendorExtension;
|
||||
android.hardware.audio.effect.VendorExtension vendor;
|
||||
android.hardware.audio.effect.HapticGenerator.HapticScale[] hapticScales;
|
||||
android.hardware.audio.effect.HapticGenerator.VibratorInformation vibratorInfo;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.HapticGenerator.Tag commonTag;
|
||||
}
|
||||
@Backing(type="int") @VintfStability
|
||||
|
||||
@@ -38,7 +38,7 @@ union LoudnessEnhancer {
|
||||
int gainMb;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.LoudnessEnhancer.Tag commonTag;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ union NoiseSuppression {
|
||||
android.hardware.audio.effect.NoiseSuppression.Type type;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.NoiseSuppression.Tag commonTag;
|
||||
}
|
||||
@Backing(type="int") @VintfStability
|
||||
|
||||
@@ -42,7 +42,7 @@ union Parameter {
|
||||
android.hardware.audio.effect.Parameter.Specific specific;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorEffectTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorEffectTag;
|
||||
android.hardware.audio.effect.AcousticEchoCanceler.Id acousticEchoCancelerTag;
|
||||
android.hardware.audio.effect.AutomaticGainControlV1.Id automaticGainControlV1Tag;
|
||||
android.hardware.audio.effect.AutomaticGainControlV2.Id automaticGainControlV2Tag;
|
||||
|
||||
@@ -49,7 +49,7 @@ union PresetReverb {
|
||||
}
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.PresetReverb.Tag commonTag;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ union Virtualizer {
|
||||
android.media.audio.common.AudioDeviceDescription device;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.Virtualizer.Tag commonTag;
|
||||
android.hardware.audio.effect.Virtualizer.SpeakerAnglesPayload speakerAnglesPayload;
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ union Visualizer {
|
||||
android.hardware.audio.effect.Visualizer.MeasurementMode measurementMode;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.Visualizer.Tag commonTag;
|
||||
}
|
||||
@VintfStability
|
||||
|
||||
@@ -39,7 +39,7 @@ union Volume {
|
||||
boolean mute;
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
android.hardware.audio.effect.VendorExtension vendorExtensionTag;
|
||||
android.hardware.audio.effect.Volume.Tag commonTag;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ union AcousticEchoCanceler {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
AcousticEchoCanceler.Tag commonTag;
|
||||
}
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ union AutomaticGainControlV1 {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
AutomaticGainControlV1.Tag commonTag;
|
||||
}
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ union AutomaticGainControlV2 {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
AutomaticGainControlV2.Tag commonTag;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ union BassBoost {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
BassBoost.Tag commonTag;
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ union Downmix {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
Downmix.Tag commonTag;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,14 +32,14 @@ union DynamicsProcessing {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
DynamicsProcessing.Tag commonTag;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vendor DynamicsProcessing implementation definition for additional parameters.
|
||||
*/
|
||||
VendorExtension vendorExtension;
|
||||
VendorExtension vendor;
|
||||
|
||||
/**
|
||||
* Resolution preference definition.
|
||||
|
||||
@@ -33,7 +33,7 @@ union EnvironmentalReverb {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
EnvironmentalReverb.Tag commonTag;
|
||||
}
|
||||
|
||||
|
||||
@@ -31,14 +31,14 @@ union Equalizer {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
Equalizer.Tag commonTag;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vendor Equalizer implementation definition for additional parameters.
|
||||
*/
|
||||
VendorExtension vendorExtension;
|
||||
VendorExtension vendor;
|
||||
|
||||
/**
|
||||
* Level setting for each band in millibels.
|
||||
|
||||
@@ -33,14 +33,14 @@ union HapticGenerator {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
HapticGenerator.Tag commonTag;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vendor HapticGenerator implementation definition for additional parameters.
|
||||
*/
|
||||
VendorExtension vendorExtension;
|
||||
VendorExtension vendor;
|
||||
|
||||
@VintfStability
|
||||
@Backing(type="int")
|
||||
|
||||
@@ -32,7 +32,7 @@ union LoudnessEnhancer {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
LoudnessEnhancer.Tag commonTag;
|
||||
}
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ union NoiseSuppression {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
NoiseSuppression.Tag commonTag;
|
||||
}
|
||||
|
||||
|
||||
@@ -66,10 +66,10 @@ union Parameter {
|
||||
@VintfStability
|
||||
union Id {
|
||||
/**
|
||||
* Parameter tag defined for vendor effects. Use int here so there is flexibility for vendor
|
||||
* to define different tag.
|
||||
* Parameter tag defined for vendor effects. Use VendorExtension here so it's possible to
|
||||
* pass customized information.
|
||||
*/
|
||||
int vendorEffectTag;
|
||||
VendorExtension vendorEffectTag;
|
||||
/**
|
||||
* Parameter tag defined for nested parameters. Can be used to get any parameter defined in
|
||||
* nested Union structure.
|
||||
|
||||
@@ -68,7 +68,7 @@ union PresetReverb {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
PresetReverb.Tag commonTag;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ union Virtualizer {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
Virtualizer.Tag commonTag;
|
||||
SpeakerAnglesPayload speakerAnglesPayload;
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ union Visualizer {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
Visualizer.Tag commonTag;
|
||||
}
|
||||
Id id;
|
||||
|
||||
@@ -31,7 +31,7 @@ union Volume {
|
||||
*/
|
||||
@VintfStability
|
||||
union Id {
|
||||
int vendorExtensionTag;
|
||||
VendorExtension vendorExtensionTag;
|
||||
Volume.Tag commonTag;
|
||||
}
|
||||
|
||||
|
||||
@@ -170,7 +170,7 @@ ndk::ScopedAStatus DynamicsProcessingSw::setParameterSpecific(const Parameter::S
|
||||
EX_ILLEGAL_ARGUMENT, "inputGainCfgFailed");
|
||||
return ndk::ScopedAStatus::ok();
|
||||
}
|
||||
case DynamicsProcessing::vendorExtension: {
|
||||
case DynamicsProcessing::vendor: {
|
||||
LOG(ERROR) << __func__ << " unsupported tag: " << toString(tag);
|
||||
return ndk::ScopedAStatus::fromExceptionCodeWithMessage(
|
||||
EX_ILLEGAL_ARGUMENT, "DynamicsProcessingTagNotSupported");
|
||||
@@ -237,7 +237,7 @@ ndk::ScopedAStatus DynamicsProcessingSw::getParameterDynamicsProcessing(
|
||||
dpParam.set<DynamicsProcessing::inputGain>(mContext->getInputGainCfgs());
|
||||
break;
|
||||
}
|
||||
case DynamicsProcessing::vendorExtension: {
|
||||
case DynamicsProcessing::vendor: {
|
||||
LOG(ERROR) << __func__ << " unsupported tag: " << toString(tag);
|
||||
return ndk::ScopedAStatus::fromExceptionCodeWithMessage(
|
||||
EX_ILLEGAL_ARGUMENT, "DynamicsProcessingTagNotSupported");
|
||||
|
||||
@@ -88,7 +88,7 @@ ndk::ScopedAStatus ExtensionEffect::setParameterSpecific(const Parameter::Specif
|
||||
std::optional<DefaultExtension> defaultExt;
|
||||
RETURN_IF(STATUS_OK != vendorEffect.extension.getParcelable(&defaultExt), EX_ILLEGAL_ARGUMENT,
|
||||
"getParcelableFailed");
|
||||
RETURN_IF(!defaultExt.has_value(), EX_ILLEGAL_ARGUMENT, "parcelableNulld");
|
||||
RETURN_IF(!defaultExt.has_value(), EX_ILLEGAL_ARGUMENT, "parcelableNull");
|
||||
RETURN_IF(mContext->setParams(defaultExt->bytes) != RetCode::SUCCESS, EX_ILLEGAL_ARGUMENT,
|
||||
"paramNotSupported");
|
||||
|
||||
@@ -99,10 +99,15 @@ ndk::ScopedAStatus ExtensionEffect::getParameterSpecific(const Parameter::Id& id
|
||||
Parameter::Specific* specific) {
|
||||
auto tag = id.getTag();
|
||||
RETURN_IF(Parameter::Id::vendorEffectTag != tag, EX_ILLEGAL_ARGUMENT, "wrongIdTag");
|
||||
auto specificId = id.get<Parameter::Id::vendorEffectTag>();
|
||||
auto extensionId = id.get<Parameter::Id::vendorEffectTag>();
|
||||
std::optional<DefaultExtension> defaultIdExt;
|
||||
RETURN_IF(STATUS_OK != extensionId.extension.getParcelable(&defaultIdExt), EX_ILLEGAL_ARGUMENT,
|
||||
"getIdParcelableFailed");
|
||||
RETURN_IF(!defaultIdExt.has_value(), EX_ILLEGAL_ARGUMENT, "parcelableIdNull");
|
||||
|
||||
VendorExtension extension;
|
||||
DefaultExtension defaultExt;
|
||||
defaultExt.bytes = mContext->getParams(specificId);
|
||||
defaultExt.bytes = mContext->getParams(defaultIdExt->bytes);
|
||||
RETURN_IF(STATUS_OK != extension.extension.setParcelable(defaultExt), EX_ILLEGAL_ARGUMENT,
|
||||
"setParcelableFailed");
|
||||
specific->set<Parameter::Specific::vendorEffect>(extension);
|
||||
|
||||
@@ -37,7 +37,7 @@ class ExtensionEffectContext final : public EffectContext {
|
||||
mParams = params;
|
||||
return RetCode::SUCCESS;
|
||||
}
|
||||
std::vector<uint8_t> getParams(int tag __unused) const { return mParams; }
|
||||
std::vector<uint8_t> getParams(std::vector<uint8_t> id __unused) const { return mParams; }
|
||||
|
||||
private:
|
||||
std::vector<uint8_t> mParams;
|
||||
|
||||
@@ -224,7 +224,7 @@ bool DynamicsProcessingTestHelper::isParamEqual(const DynamicsProcessing::Tag& t
|
||||
dpRef.get<DynamicsProcessing::inputGain>(),
|
||||
dpTest.get<DynamicsProcessing::inputGain>());
|
||||
}
|
||||
case DynamicsProcessing::vendorExtension: {
|
||||
case DynamicsProcessing::vendor: {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user