[libcamera-devel] [PATCH v3 1/7] libcamera: Move extensible to class

Kieran Bingham kieran.bingham at ideasonboard.com
Fri Feb 12 14:30:50 CET 2021


The Extensible concept is a generic Class helper. To prepare for
further class helper additions, move the specific extensible
implementation and header to a more generic class header and source.

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
---
 include/libcamera/camera.h                  |  2 +-
 include/libcamera/camera_manager.h          |  2 +-
 include/libcamera/{extensible.h => class.h} |  8 ++++----
 include/libcamera/meson.build               |  2 +-
 src/libcamera/{extensible.cpp => class.cpp} | 11 +++++++----
 src/libcamera/meson.build                   |  2 +-
 6 files changed, 15 insertions(+), 12 deletions(-)
 rename include/libcamera/{extensible.h => class.h} (86%)
 rename src/libcamera/{extensible.cpp => class.cpp} (94%)

diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h
index f94f859988fe..cff9f46e801b 100644
--- a/include/libcamera/camera.h
+++ b/include/libcamera/camera.h
@@ -12,8 +12,8 @@
 #include <stdint.h>
 #include <string>
 
+#include <libcamera/class.h>
 #include <libcamera/controls.h>
-#include <libcamera/extensible.h>
 #include <libcamera/object.h>
 #include <libcamera/request.h>
 #include <libcamera/signal.h>
diff --git a/include/libcamera/camera_manager.h b/include/libcamera/camera_manager.h
index 8c8830e7ff1d..7b8e533fadd6 100644
--- a/include/libcamera/camera_manager.h
+++ b/include/libcamera/camera_manager.h
@@ -12,7 +12,7 @@
 #include <sys/types.h>
 #include <vector>
 
-#include <libcamera/extensible.h>
+#include <libcamera/class.h>
 #include <libcamera/object.h>
 #include <libcamera/signal.h>
 
diff --git a/include/libcamera/extensible.h b/include/libcamera/class.h
similarity index 86%
rename from include/libcamera/extensible.h
rename to include/libcamera/class.h
index 3f25a47c5064..cb278e58204a 100644
--- a/include/libcamera/extensible.h
+++ b/include/libcamera/class.h
@@ -2,10 +2,10 @@
 /*
  * Copyright (C) 2020, Google Inc.
  *
- * extensible.h - Utilities to create extensible public classes with stable ABIs
+ * class.h - Utilities and helpers for classes
  */
-#ifndef __LIBCAMERA_EXTENSIBLE_H__
-#define __LIBCAMERA_EXTENSIBLE_H__
+#ifndef __LIBCAMERA_CLASS_H__
+#define __LIBCAMERA_CLASS_H__
 
 #include <memory>
 
@@ -84,4 +84,4 @@ private:
 
 } /* namespace libcamera */
 
-#endif /* __LIBCAMERA_EXTENSIBLE_H__ */
+#endif /* __LIBCAMERA_CLASS_H__ */
diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build
index eb787d44746a..c7b8ee8e5c94 100644
--- a/include/libcamera/meson.build
+++ b/include/libcamera/meson.build
@@ -5,9 +5,9 @@ libcamera_public_headers = files([
     'buffer.h',
     'camera.h',
     'camera_manager.h',
+    'class.h',
     'compiler.h',
     'controls.h',
-    'extensible.h',
     'file_descriptor.h',
     'framebuffer_allocator.h',
     'geometry.h',
diff --git a/src/libcamera/extensible.cpp b/src/libcamera/class.cpp
similarity index 94%
rename from src/libcamera/extensible.cpp
rename to src/libcamera/class.cpp
index 1dcb0bf1b12f..ce230be91e61 100644
--- a/src/libcamera/extensible.cpp
+++ b/src/libcamera/class.cpp
@@ -2,14 +2,17 @@
 /*
  * Copyright (C) 2020, Google Inc.
  *
- * extensible.cpp - Utilities to create extensible public classes with stable ABIs
+ * class.cpp - Utilities and helpers for classes
  */
 
-#include <libcamera/extensible.h>
+#include <libcamera/class.h>
 
 /**
- * \file extensible.h
- * \brief Utilities to create extensible public classes with stable ABIs
+ * \file class.h
+ * \brief Utilities to help constructing class interfaces
+ *
+ * The extensible class can be inherited to create public classes with stable
+ * ABIs.
  */
 
 namespace libcamera {
diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
index ebce19d90c1e..939f1189b169 100644
--- a/src/libcamera/meson.build
+++ b/src/libcamera/meson.build
@@ -9,6 +9,7 @@ libcamera_sources = files([
     'camera_controls.cpp',
     'camera_manager.cpp',
     'camera_sensor.cpp',
+    'class.cpp',
     'controls.cpp',
     'control_serializer.cpp',
     'control_validator.cpp',
@@ -18,7 +19,6 @@ libcamera_sources = files([
     'event_dispatcher.cpp',
     'event_dispatcher_poll.cpp',
     'event_notifier.cpp',
-    'extensible.cpp',
     'file.cpp',
     'file_descriptor.cpp',
     'formats.cpp',
-- 
2.25.1



More information about the libcamera-devel mailing list