ipa: Pass IPA initialization settings to IPAInterface::init()

Add a new IPASettings class to pass IPA initialization settings through
the IPAInterface::init() method. The settings currently only contain the
name of a configuration file, and are expected to be extended later.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
This commit is contained in:
Laurent Pinchart
2020-04-27 02:36:18 +03:00
parent 26a4b03ed8
commit a6de903089
14 changed files with 82 additions and 21 deletions
+6 -2
View File
@@ -79,11 +79,15 @@ void *IPAInterfaceWrapper::get_interface(struct ipa_context *_ctx)
return ctx->ipa_.get();
}
void IPAInterfaceWrapper::init(struct ipa_context *_ctx)
void IPAInterfaceWrapper::init(struct ipa_context *_ctx,
const struct ipa_settings *settings)
{
IPAInterfaceWrapper *ctx = static_cast<IPAInterfaceWrapper *>(_ctx);
ctx->ipa_->init();
IPASettings ipaSettings{
.configurationFile = settings->configuration_file
};
ctx->ipa_->init(ipaSettings);
}
int IPAInterfaceWrapper::start(struct ipa_context *_ctx)
+2 -1
View File
@@ -23,7 +23,8 @@ public:
private:
static void destroy(struct ipa_context *ctx);
static void *get_interface(struct ipa_context *ctx);
static void init(struct ipa_context *ctx);
static void init(struct ipa_context *ctx,
const struct ipa_settings *settings);
static int start(struct ipa_context *ctx);
static void stop(struct ipa_context *ctx);
static void register_callbacks(struct ipa_context *ctx,
+1 -1
View File
@@ -32,7 +32,7 @@ LOG_DEFINE_CATEGORY(IPARkISP1)
class IPARkISP1 : public IPAInterface
{
public:
int init() override { return 0; }
int init(const IPASettings &settings) override { return 0; }
int start() override { return 0; }
void stop() override {}
+2 -2
View File
@@ -31,7 +31,7 @@ public:
IPAVimc();
~IPAVimc();
int init() override;
int init(const IPASettings &settings) override;
int start() override;
void stop() override;
@@ -61,7 +61,7 @@ IPAVimc::~IPAVimc()
::close(fd_);
}
int IPAVimc::init()
int IPAVimc::init(const IPASettings &settings)
{
trace(IPAOperationInit);