Merge "Audio Effect : Add base implementation of commandImpl method" into main am: 5ef1f45f9e am: 1b9d201e40

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/3195744

Change-Id: I5ef57662b6f8846fd3ee454ab90031df5605a1a5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Shunkai Yao
2024-08-06 18:42:35 +00:00
committed by Automerger Merge Worker
4 changed files with 41 additions and 4 deletions

View File

@@ -242,4 +242,17 @@ RetCode EffectContext::notifyDataMqUpdate() {
LOG(VERBOSE) << __func__ << " : signal client for reopen";
return RetCode::SUCCESS;
}
RetCode EffectContext::enable() {
return RetCode::SUCCESS;
}
RetCode EffectContext::disable() {
return RetCode::SUCCESS;
}
RetCode EffectContext::reset() {
return RetCode::SUCCESS;
}
} // namespace aidl::android::hardware::audio::effect

View File

@@ -246,7 +246,6 @@ ndk::ScopedAStatus EffectImpl::command(CommandId command) {
startThread();
break;
case CommandId::STOP:
case CommandId::RESET:
RETURN_OK_IF(mState == State::IDLE);
mState = State::IDLE;
RETURN_IF(notifyEventFlag(mDataMqNotEmptyEf) != RetCode::SUCCESS, EX_ILLEGAL_STATE,
@@ -254,6 +253,13 @@ ndk::ScopedAStatus EffectImpl::command(CommandId command) {
stopThread();
RETURN_IF_ASTATUS_NOT_OK(commandImpl(command), "commandImplFailed");
break;
case CommandId::RESET:
mState = State::IDLE;
RETURN_IF(notifyEventFlag(mDataMqNotEmptyEf) != RetCode::SUCCESS, EX_ILLEGAL_STATE,
"notifyEventFlagNotEmptyFailed");
stopThread();
RETURN_IF_ASTATUS_NOT_OK(commandImpl(command), "commandImplFailed");
break;
default:
LOG(ERROR) << getEffectNameWithVersion() << __func__ << " instance still processing";
return ndk::ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT,
@@ -266,8 +272,22 @@ ndk::ScopedAStatus EffectImpl::command(CommandId command) {
ndk::ScopedAStatus EffectImpl::commandImpl(CommandId command) {
RETURN_IF(!mImplContext, EX_NULL_POINTER, "nullContext");
if (command == CommandId::RESET) {
mImplContext->resetBuffer();
switch (command) {
case CommandId::START:
mImplContext->enable();
break;
case CommandId::STOP:
mImplContext->disable();
break;
case CommandId::RESET:
mImplContext->disable();
mImplContext->reset();
mImplContext->resetBuffer();
break;
default:
LOG(ERROR) << __func__ << " commandId " << toString(command) << " not supported";
return ndk::ScopedAStatus::fromExceptionCodeWithMessage(EX_ILLEGAL_ARGUMENT,
"commandIdNotSupported");
}
return ndk::ScopedAStatus::ok();
}

View File

@@ -82,6 +82,10 @@ class EffectContext {
virtual ::android::hardware::EventFlag* getStatusEventFlag();
virtual RetCode enable();
virtual RetCode disable();
virtual RetCode reset();
protected:
int mVersion = 0;
size_t mInputFrameSize = 0;

View File

@@ -397,10 +397,10 @@ class EffectHelper {
outputBuffer.size(), outputBuffer));
}
// Disable the process
ASSERT_NO_FATAL_FAILURE(command(effect, CommandId::STOP));
EXPECT_NO_FATAL_FAILURE(EffectHelper::readFromFmq(statusMQ, 0, outputMQ, 0, outputBuffer));
// Disable the process
ASSERT_NO_FATAL_FAILURE(command(effect, CommandId::RESET));
}