[libcamera-devel] [PATCH 3/3] cros: Support the new cros camera API with set_up and tear_down

Paul Elder paul.elder at ideasonboard.com
Thu Feb 25 11:42:17 CET 2021


Implement and expose the symbol and functions that the new cros camera
API requires. Since we don't actually need them, leave them empty.

Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>
---
 src/cros/camera3_hal.cpp  | 21 +++++++++++++++++++++
 src/cros/meson.build      | 16 ++++++++++++++++
 src/libcamera/meson.build |  6 ++++++
 src/meson.build           |  4 ++++
 4 files changed, 47 insertions(+)
 create mode 100644 src/cros/camera3_hal.cpp
 create mode 100644 src/cros/meson.build

diff --git a/src/cros/camera3_hal.cpp b/src/cros/camera3_hal.cpp
new file mode 100644
index 00000000..31ad36ac
--- /dev/null
+++ b/src/cros/camera3_hal.cpp
@@ -0,0 +1,21 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * Copyright (C) 2021, Google Inc.
+ *
+ * camera3_hal.cpp - cros-specific components of Android Camera HALv3 module
+ */
+
+#include <cros-camera/cros_camera_hal.h>
+
+static void set_up(cros::CameraMojoChannelManagerToken *token)
+{
+}
+
+static void tear_down()
+{
+}
+
+cros::cros_camera_hal_t CROS_CAMERA_EXPORT CROS_CAMERA_HAL_INFO_SYM = {
+	.set_up = set_up,
+	.tear_down = tear_down
+};
diff --git a/src/cros/meson.build b/src/cros/meson.build
new file mode 100644
index 00000000..31aa58c9
--- /dev/null
+++ b/src/cros/meson.build
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: CC0-1.0
+
+cros_hal_include_dir = '/mnt/host/source/src/aosp/external/libchrome'
+
+cros_hal_info_sources = files([
+    'camera3_hal.cpp',
+])
+
+cros_hal_info = static_library('cros_hal_info',
+                               cros_hal_info_sources,
+                               c_args : '-Wno-shadow',
+                               include_directories : [cros_includes,
+                                                      cros_hal_include_dir,
+                                                      android_includes])
+
+cros_hal_info_obj = cros_hal_info.extract_objects('camera3_hal.cpp')
diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
index 4b5e33ce..c40eb41f 100644
--- a/src/libcamera/meson.build
+++ b/src/libcamera/meson.build
@@ -139,6 +139,11 @@ if android_enabled
     libcamera_deps += android_deps
 endif
 
+libcamera_objects = []
+if cros_enabled
+    libcamera_objects += cros_hal_info_obj
+endif
+
 # We add '/' to the build_rpath as a 'safe' path to act as a boolean flag.
 # The build_rpath is stripped at install time by meson, so we determine at
 # runtime if the library is running from an installed location by checking
@@ -149,6 +154,7 @@ libcamera = shared_library('camera',
                            install : true,
                            link_with : libcamera_link_with,
                            include_directories : includes,
+                           objects : libcamera_objects,
                            build_rpath : '/',
                            dependencies : libcamera_deps)
 
diff --git a/src/meson.build b/src/meson.build
index 0b26ca70..ec85cc47 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -15,6 +15,10 @@ endif
 # are included directly into the libcamera library when this is enabled.
 subdir('android')
 
+if cros_enabled
+    subdir('cros')
+endif
+
 subdir('libcamera')
 subdir('ipa')
 
-- 
2.27.0



More information about the libcamera-devel mailing list