[libcamera-devel] [PATCH 08/16] libcamera/base: Move class helpers to the base library

Kieran Bingham kieran.bingham at ideasonboard.com
Fri Jun 25 12:07:27 CEST 2021


Hi Hiro,

On 25/06/2021 04:38, Hirokazu Honda wrote:
> Hi Kieran,
> 
> On Fri, Jun 25, 2021 at 10:35 AM Kieran Bingham
> <kieran.bingham at ideasonboard.com> wrote:
>>
>> Move the class support infrastructure to the base library.
>>
>> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>> ---
>>  include/libcamera/{ => base}/class.h            | 0
>>  include/libcamera/base/meson.build              | 1 +
>>  include/libcamera/buffer.h                      | 3 ++-
>>  include/libcamera/camera.h                      | 3 ++-
>>  include/libcamera/camera_manager.h              | 3 ++-
>>  include/libcamera/controls.h                    | 3 ++-
>>  include/libcamera/framebuffer_allocator.h       | 2 +-
>>  include/libcamera/internal/buffer.h             | 3 ++-
>>  include/libcamera/internal/byte_stream_buffer.h | 3 ++-
>>  include/libcamera/internal/camera_sensor.h      | 3 ++-
>>  include/libcamera/internal/file.h               | 3 ++-
>>  include/libcamera/internal/log.h                | 3 +--
>>  include/libcamera/internal/media_object.h       | 2 +-
>>  include/libcamera/internal/pipeline_handler.h   | 3 ++-
>>  include/libcamera/internal/v4l2_subdevice.h     | 3 ++-
>>  include/libcamera/internal/v4l2_videodevice.h   | 3 ++-
>>  include/libcamera/meson.build                   | 1 -
>>  include/libcamera/request.h                     | 3 ++-
>>  src/android/camera_buffer.h                     | 3 ++-
>>  src/android/camera_capabilities.h               | 3 ++-
>>  src/android/camera_hal_config.h                 | 2 +-
>>  src/libcamera/{ => base}/class.cpp              | 2 +-
>>  src/libcamera/base/meson.build                  | 1 +
>>  src/libcamera/meson.build                       | 1 -
>>  24 files changed, 35 insertions(+), 22 deletions(-)
>>  rename include/libcamera/{ => base}/class.h (100%)
>>  rename src/libcamera/{ => base}/class.cpp (99%)
>>
>> diff --git a/include/libcamera/class.h b/include/libcamera/base/class.h
>> similarity index 100%
>> rename from include/libcamera/class.h
>> rename to include/libcamera/base/class.h
> 
> Shall we change a header guard from __LIBCAMERA_CLASS_H__ to
> __LIBCAMERA_BASE_CLASS_H__?


Ayee - I missed it - absolutely.

I've updated with:

diff --git a/include/libcamera/base/class.h b/include/libcamera/base/class.h
index f384a4889588..a07dac057331 100644
--- a/include/libcamera/base/class.h
+++ b/include/libcamera/base/class.h
@@ -4,8 +4,8 @@
  *
  * class.h - Utilities and helpers for classes
  */
-#ifndef __LIBCAMERA_CLASS_H__
-#define __LIBCAMERA_CLASS_H__
+#ifndef __LIBCAMERA_BASE_CLASS_H__
+#define __LIBCAMERA_BASE_CLASS_H__

 #include <memory>

(1/2) Stage this hunk [y,n,q,a,d,j,J,g,/,e,?]? y
@@ -102,4 +102,4 @@ private:

 } /* namespace libcamera */

-#endif /* __LIBCAMERA_CLASS_H__ */
+#endif /* __LIBCAMERA_BASE_CLASS_H__ */

And I've missed these on the other files I moved in the early hours of
this morning, so I'll make the same changes to those as well.

Does your tag apply with this change added?

(although I suspect I'm going to have to send this series out as a v2
anyway).


>> diff --git a/include/libcamera/base/meson.build b/include/libcamera/base/meson.build
>> index 9f0ba6b0e10c..2db756c504c9 100644
>> --- a/include/libcamera/base/meson.build
>> +++ b/include/libcamera/base/meson.build
>> @@ -3,6 +3,7 @@
>>  libcamera_base_include_dir = libcamera_include_dir / 'base'
>>
>>  libcamera_base_headers = files([
>> +    'class.h',
>>      'utils.h',
>>  ])
>>
>> diff --git a/include/libcamera/buffer.h b/include/libcamera/buffer.h
>> index e0af00900409..323d1cba41a9 100644
>> --- a/include/libcamera/buffer.h
>> +++ b/include/libcamera/buffer.h
>> @@ -10,7 +10,8 @@
>>  #include <stdint.h>
>>  #include <vector>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>> +
>>  #include <libcamera/file_descriptor.h>
>>
>>  namespace libcamera {
>> diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h
>> index d71641805c0a..ea0914009c2b 100644
>> --- a/include/libcamera/camera.h
>> +++ b/include/libcamera/camera.h
>> @@ -12,7 +12,8 @@
>>  #include <stdint.h>
>>  #include <string>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>> +
>>  #include <libcamera/controls.h>
>>  #include <libcamera/object.h>
>>  #include <libcamera/request.h>
>> diff --git a/include/libcamera/camera_manager.h b/include/libcamera/camera_manager.h
>> index c2f0b786da8e..5deede035115 100644
>> --- a/include/libcamera/camera_manager.h
>> +++ b/include/libcamera/camera_manager.h
>> @@ -12,7 +12,8 @@
>>  #include <sys/types.h>
>>  #include <vector>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>> +
>>  #include <libcamera/object.h>
>>  #include <libcamera/signal.h>
>>
>> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h
>> index 1c9b37e617bc..f62b6cf055d6 100644
>> --- a/include/libcamera/controls.h
>> +++ b/include/libcamera/controls.h
>> @@ -14,7 +14,8 @@
>>  #include <unordered_map>
>>  #include <vector>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>> +
>>  #include <libcamera/geometry.h>
>>  #include <libcamera/span.h>
>>
>> diff --git a/include/libcamera/framebuffer_allocator.h b/include/libcamera/framebuffer_allocator.h
>> index 0c85631a1da2..cbc9ce101889 100644
>> --- a/include/libcamera/framebuffer_allocator.h
>> +++ b/include/libcamera/framebuffer_allocator.h
>> @@ -11,7 +11,7 @@
>>  #include <memory>
>>  #include <vector>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>>
>>  namespace libcamera {
>>
>> diff --git a/include/libcamera/internal/buffer.h b/include/libcamera/internal/buffer.h
>> index 9da1fbd12c27..91dd24969385 100644
>> --- a/include/libcamera/internal/buffer.h
>> +++ b/include/libcamera/internal/buffer.h
>> @@ -10,7 +10,8 @@
>>  #include <sys/mman.h>
>>  #include <vector>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>> +
>>  #include <libcamera/buffer.h>
>>  #include <libcamera/span.h>
>>
>> diff --git a/include/libcamera/internal/byte_stream_buffer.h b/include/libcamera/internal/byte_stream_buffer.h
>> index 866cb9b0b2a6..7eefb1a71f07 100644
>> --- a/include/libcamera/internal/byte_stream_buffer.h
>> +++ b/include/libcamera/internal/byte_stream_buffer.h
>> @@ -11,7 +11,8 @@
>>  #include <stdint.h>
>>  #include <type_traits>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>> +
>>  #include <libcamera/span.h>
>>
>>  namespace libcamera {
>> diff --git a/include/libcamera/internal/camera_sensor.h b/include/libcamera/internal/camera_sensor.h
>> index e133ebf45bf7..7bc540619721 100644
>> --- a/include/libcamera/internal/camera_sensor.h
>> +++ b/include/libcamera/internal/camera_sensor.h
>> @@ -11,7 +11,8 @@
>>  #include <string>
>>  #include <vector>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>> +
>>  #include <libcamera/controls.h>
>>  #include <libcamera/geometry.h>
>>  #include <libcamera/ipa/core_ipa_interface.h>
>> diff --git a/include/libcamera/internal/file.h b/include/libcamera/internal/file.h
>> index f0b313a5faae..44621ceb4c19 100644
>> --- a/include/libcamera/internal/file.h
>> +++ b/include/libcamera/internal/file.h
>> @@ -11,7 +11,8 @@
>>  #include <string>
>>  #include <sys/types.h>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>> +
>>  #include <libcamera/span.h>
>>
>>  namespace libcamera {
>> diff --git a/include/libcamera/internal/log.h b/include/libcamera/internal/log.h
>> index 9c2beab6a33a..82e55a623e04 100644
>> --- a/include/libcamera/internal/log.h
>> +++ b/include/libcamera/internal/log.h
>> @@ -10,8 +10,7 @@
>>  #include <chrono>
>>  #include <sstream>
>>
>> -#include <libcamera/class.h>
>> -
>> +#include <libcamera/base/class.h>
>>  #include <libcamera/base/utils.h>
>>
>>  namespace libcamera {
>> diff --git a/include/libcamera/internal/media_object.h b/include/libcamera/internal/media_object.h
>> index 1c82c27928a8..2f5d33e1903e 100644
>> --- a/include/libcamera/internal/media_object.h
>> +++ b/include/libcamera/internal/media_object.h
>> @@ -12,7 +12,7 @@
>>
>>  #include <linux/media.h>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>>
>>  namespace libcamera {
>>
>> diff --git a/include/libcamera/internal/pipeline_handler.h b/include/libcamera/internal/pipeline_handler.h
>> index 31dadf285a58..8beb6b76dd3f 100644
>> --- a/include/libcamera/internal/pipeline_handler.h
>> +++ b/include/libcamera/internal/pipeline_handler.h
>> @@ -15,7 +15,8 @@
>>  #include <sys/types.h>
>>  #include <vector>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>> +
>>  #include <libcamera/controls.h>
>>  #include <libcamera/object.h>
>>  #include <libcamera/stream.h>
>> diff --git a/include/libcamera/internal/v4l2_subdevice.h b/include/libcamera/internal/v4l2_subdevice.h
>> index d2b9ca55439e..d07dd6b444d0 100644
>> --- a/include/libcamera/internal/v4l2_subdevice.h
>> +++ b/include/libcamera/internal/v4l2_subdevice.h
>> @@ -11,7 +11,8 @@
>>  #include <string>
>>  #include <vector>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>> +
>>  #include <libcamera/geometry.h>
>>
>>  #include "libcamera/internal/formats.h"
>> diff --git a/include/libcamera/internal/v4l2_videodevice.h b/include/libcamera/internal/v4l2_videodevice.h
>> index 7938343bba8d..227d015e8937 100644
>> --- a/include/libcamera/internal/v4l2_videodevice.h
>> +++ b/include/libcamera/internal/v4l2_videodevice.h
>> @@ -16,8 +16,9 @@
>>
>>  #include <linux/videodev2.h>
>>
>> +#include <libcamera/base/class.h>
>> +
>>  #include <libcamera/buffer.h>
>> -#include <libcamera/class.h>
>>  #include <libcamera/geometry.h>
>>  #include <libcamera/pixel_format.h>
>>  #include <libcamera/signal.h>
>> diff --git a/include/libcamera/meson.build b/include/libcamera/meson.build
>> index 1fa1bf4a4e78..7cba3de6ca96 100644
>> --- a/include/libcamera/meson.build
>> +++ b/include/libcamera/meson.build
>> @@ -5,7 +5,6 @@ libcamera_public_headers = files([
>>      'buffer.h',
>>      'camera.h',
>>      'camera_manager.h',
>> -    'class.h',
>>      'compiler.h',
>>      'controls.h',
>>      'file_descriptor.h',
>> diff --git a/include/libcamera/request.h b/include/libcamera/request.h
>> index 5596901ddd8e..00c646fea7f2 100644
>> --- a/include/libcamera/request.h
>> +++ b/include/libcamera/request.h
>> @@ -13,7 +13,8 @@
>>  #include <string>
>>  #include <unordered_set>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>> +
>>  #include <libcamera/controls.h>
>>  #include <libcamera/signal.h>
>>
>> diff --git a/src/android/camera_buffer.h b/src/android/camera_buffer.h
>> index c88124b2b3f3..e850c4e36668 100644
>> --- a/src/android/camera_buffer.h
>> +++ b/src/android/camera_buffer.h
>> @@ -9,7 +9,8 @@
>>
>>  #include <hardware/camera3.h>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>> +
>>  #include <libcamera/span.h>
>>
>>  class CameraBuffer final : public libcamera::Extensible
>> diff --git a/src/android/camera_capabilities.h b/src/android/camera_capabilities.h
>> index f511607bbd90..4f5be82595d6 100644
>> --- a/src/android/camera_capabilities.h
>> +++ b/src/android/camera_capabilities.h
>> @@ -11,8 +11,9 @@
>>  #include <memory>
>>  #include <vector>
>>
>> +#include <libcamera/base/class.h>
>> +
>>  #include <libcamera/camera.h>
>> -#include <libcamera/class.h>
>>  #include <libcamera/formats.h>
>>  #include <libcamera/geometry.h>
>>
>> diff --git a/src/android/camera_hal_config.h b/src/android/camera_hal_config.h
>> index 97dc69c1def5..a79d5d6c42dc 100644
>> --- a/src/android/camera_hal_config.h
>> +++ b/src/android/camera_hal_config.h
>> @@ -10,7 +10,7 @@
>>  #include <map>
>>  #include <string>
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>>
>>  struct CameraConfigData {
>>         int facing = -1;
>> diff --git a/src/libcamera/class.cpp b/src/libcamera/base/class.cpp
>> similarity index 99%
>> rename from src/libcamera/class.cpp
>> rename to src/libcamera/base/class.cpp
>> index 28c35633d7db..165beafc243d 100644
>> --- a/src/libcamera/class.cpp
>> +++ b/src/libcamera/base/class.cpp
>> @@ -5,7 +5,7 @@
>>   * class.cpp - Utilities and helpers for classes
>>   */
>>
>> -#include <libcamera/class.h>
>> +#include <libcamera/base/class.h>
>>
>>  /**
>>   * \file class.h
>> diff --git a/src/libcamera/base/meson.build b/src/libcamera/base/meson.build
>> index 6d9ec37414f8..302a288685d3 100644
>> --- a/src/libcamera/base/meson.build
>> +++ b/src/libcamera/base/meson.build
>> @@ -1,6 +1,7 @@
>>  # SPDX-License-Identifier: CC0-1.0
>>
>>  libcamera_base_sources = files([
>> +    'class.cpp',
>>      'utils.cpp',
>>  ])
>>
>> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
>> index ac401c25d498..a341004c0c19 100644
>> --- a/src/libcamera/meson.build
>> +++ b/src/libcamera/meson.build
>> @@ -10,7 +10,6 @@ libcamera_sources = files([
>>      'camera_manager.cpp',
>>      'camera_sensor.cpp',
>>      'camera_sensor_properties.cpp',
>> -    'class.cpp',
>>      'controls.cpp',
>>      'control_serializer.cpp',
>>      'control_validator.cpp',
>> --
>> 2.30.2
>>


More information about the libcamera-devel mailing list