summaryrefslogtreecommitdiff
path: root/src/libcamera/include/ipa_module.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/include/ipa_module.h')
-rw-r--r--src/libcamera/include/ipa_module.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libcamera/include/ipa_module.h b/src/libcamera/include/ipa_module.h
index a4c6dbdf..7ac5cad5 100644
--- a/src/libcamera/include/ipa_module.h
+++ b/src/libcamera/include/ipa_module.h
@@ -7,8 +7,10 @@
#ifndef __LIBCAMERA_IPA_MODULE_H__
#define __LIBCAMERA_IPA_MODULE_H__
+#include <memory>
#include <string>
+#include <libcamera/ipa/ipa_interface.h>
#include <libcamera/ipa/ipa_module_info.h>
namespace libcamera {
@@ -17,16 +19,26 @@ class IPAModule
{
public:
explicit IPAModule(const std::string &libPath);
+ ~IPAModule();
bool isValid() const;
const struct IPAModuleInfo &info() const;
+ bool load();
+
+ std::unique_ptr<IPAInterface> createInstance();
+
private:
struct IPAModuleInfo info_;
std::string libPath_;
bool valid_;
+ bool loaded_;
+
+ void *dlHandle_;
+ typedef IPAInterface *(*IPAIntfFactory)(void);
+ IPAIntfFactory ipaCreate_;
int loadIPAModuleInfo();
};