[libcamera-devel,v3,08/10] libcamera: ipa: add dummy IPA implementation

Message ID 20190605005316.4835-9-paul.elder@ideasonboard.com
State Accepted
Headers show
Series
  • Add IPAManager and IPAInterface
Related show

Commit Message

Paul Elder June 5, 2019, 12:53 a.m. UTC
Add a dummy IPA module.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
Changes in v3:
- make meson a bit more DRY

Changes in v2:
- use macros for defining the version fields in ipaModuleInfo

 src/ipa/ipa_dummy.cpp | 45 +++++++++++++++++++++++++++++++++++++++++++
 src/ipa/meson.build   | 15 ++++++++++++++-
 2 files changed, 59 insertions(+), 1 deletion(-)
 create mode 100644 src/ipa/ipa_dummy.cpp

Patch

diff --git a/src/ipa/ipa_dummy.cpp b/src/ipa/ipa_dummy.cpp
new file mode 100644
index 0000000..ee7a3a8
--- /dev/null
+++ b/src/ipa/ipa_dummy.cpp
@@ -0,0 +1,45 @@ 
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2019, Google Inc.
+ *
+ * ipa_dummy.cpp - Dummy Image Processing Algorithm module
+ */
+
+#include <iostream>
+
+#include <libcamera/ipa/ipa_interface.h>
+#include <libcamera/ipa/ipa_module_info.h>
+
+namespace libcamera {
+
+class IPADummy : public IPAInterface
+{
+public:
+	int init();
+};
+
+int IPADummy::init()
+{
+	std::cout << "initializing dummy IPA!" << std::endl;
+	return 0;
+}
+
+/*
+ * External IPA module interface
+ */
+
+extern "C" {
+const struct IPAModuleInfo ipaModuleInfo = {
+	IPA_MODULE_API_VERSION,
+	0,
+	"PipelineHandlerVimc",
+	"Dummy IPA for Vimc",
+};
+
+IPAInterface *ipaCreate()
+{
+	return new IPADummy();
+}
+};
+
+}; /* namespace libcamera */
diff --git a/src/ipa/meson.build b/src/ipa/meson.build
index be4f954..3c33a37 100644
--- a/src/ipa/meson.build
+++ b/src/ipa/meson.build
@@ -1,2 +1,15 @@ 
+ipa_dummy_sources = files([
+    'ipa_dummy.cpp',
+])
+
+ipa_install_dir = join_paths(get_option('libdir'), 'libcamera')
+
+ipa_dummy = shared_library('ipa_dummy',
+                           ipa_dummy_sources,
+                           name_prefix : '',
+                           include_directories : libcamera_includes,
+                           install : true,
+                           install_dir : ipa_install_dir)
+
 config_h.set('IPA_MODULE_DIR',
-             '"' + join_paths(get_option('prefix'), get_option('libdir'), 'libcamera') + '"')
+             '"' + join_paths(get_option('prefix'), ipa_install_dir) + '"')