From 006aa232ac92e3ccde06a3b1536d6e02e8496766 Mon Sep 17 00:00:00 2001
From: Daniel Scally <dan.scally@ideasonboard.com>
Date: Mon, 16 Jan 2023 07:58:12 +0000
Subject: libcamera: Add new libcamera source

Provide the integration of a libcamera source within uvc-gadget.
This adds C++ support to the project and adds libcamera as an
optional external dependency.

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
---
 include/uvcgadget/libcamera-source.h | 29 +++++++++++++++++++++++++++++
 include/uvcgadget/meson.build        |  1 +
 2 files changed, 30 insertions(+)
 create mode 100644 include/uvcgadget/libcamera-source.h

(limited to 'include/uvcgadget')

diff --git a/include/uvcgadget/libcamera-source.h b/include/uvcgadget/libcamera-source.h
new file mode 100644
index 0000000..8e08dcd
--- /dev/null
+++ b/include/uvcgadget/libcamera-source.h
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+/*
+ * libcamera video source
+ *
+ * Copyright (C) 2022 Ideas on Board Oy.
+ * Copyright (C) 2022 Kieran Bingham
+ *
+ * Contact: Kieran Bingham <kieran.bingham@ideasonboard.com>
+ */
+#ifndef __LIBCAMERA_SOURCE_H__
+#define __LIBCAMERA_SOURCE_H__
+
+#include "video-source.h"
+
+struct events;
+struct video_source;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct video_source *libcamera_source_create(const char *devname);
+void libcamera_source_init(struct video_source *src, struct events *events);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif /* __LIBCAMERA_SOURCE_H__ */
diff --git a/include/uvcgadget/meson.build b/include/uvcgadget/meson.build
index d5aaf17..a9e4384 100644
--- a/include/uvcgadget/meson.build
+++ b/include/uvcgadget/meson.build
@@ -3,6 +3,7 @@
 uvcgadget_public_headers = files([
   'configfs.h',
   'events.h',
+  'libcamera-source.h',
   'list.h',
   'stream.h',
   'timer.h',
-- 
cgit v1.2.3