ipa: vimc: Add Flags to parameters

For the purpose of testing serializing/deserializing Flags in function
parameters, add an enum class TestFlags and Flags<TestFlags> to some
function parameters, both for input and output and Signals.

While at it, update the ipa_interface_test.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Paul Elder 2022-08-03 20:03:03 +09:00
parent 23fd404690
commit 3b54b56a2d
4 changed files with 46 additions and 9 deletions

View file

@ -31,7 +31,10 @@ public:
IPAVimc();
~IPAVimc();
int init(const IPASettings &settings, const ipa::vimc::IPAOperationCode code) override;
int init(const IPASettings &settings,
const ipa::vimc::IPAOperationCode code,
const Flags<ipa::vimc::TestFlag> inFlags,
Flags<ipa::vimc::TestFlag> *outFlags) override;
int start() override;
void stop() override;
@ -66,7 +69,10 @@ IPAVimc::~IPAVimc()
::close(fd_);
}
int IPAVimc::init(const IPASettings &settings, const ipa::vimc::IPAOperationCode code)
int IPAVimc::init(const IPASettings &settings,
const ipa::vimc::IPAOperationCode code,
const Flags<ipa::vimc::TestFlag> inFlags,
Flags<ipa::vimc::TestFlag> *outFlags)
{
trace(ipa::vimc::IPAOperationInit);
@ -76,6 +82,13 @@ int IPAVimc::init(const IPASettings &settings, const ipa::vimc::IPAOperationCode
LOG(IPAVimc, Debug) << "Got opcode " << code;
LOG(IPAVimc, Debug)
<< "Flag 2 was "
<< (inFlags & ipa::vimc::TestFlag::Flag2 ? "" : "not ")
<< "set";
*outFlags |= ipa::vimc::TestFlag::Flag1;
File conf(settings.configurationFile);
if (!conf.open(File::OpenModeFlag::ReadOnly)) {
LOG(IPAVimc, Error) << "Failed to open configuration file";
@ -144,7 +157,8 @@ void IPAVimc::fillParamsBuffer([[maybe_unused]] uint32_t frame, uint32_t bufferI
return;
}
paramsBufferReady.emit(bufferId);
Flags<ipa::vimc::TestFlag> flags;
paramsBufferReady.emit(bufferId, flags);
}
void IPAVimc::initTrace()