[libcamera-devel] [PATCH v5 0/9] utils: ipc: Add support for enums and Flags
Paul Elder
paul.elder at ideasonboard.com
Tue Oct 11 12:58:50 CEST 2022
v5 fixes a mistake in the scopedEnum implementation in v4, and adds
support for skipHeader to enums defined in core.mojom, so that they can
be defined in a C++ header and not redefined in mojom.
This patch series adds support for enums in function parameters, and
Flags all-around.
"all-around" does happen to exclude direct function return values,
though.
Patches 1~2 touch enums, where the first patch adds a test for current
enum support that hasn't been tested before, and the second actually
adds support for enums in function parameters.
Patches 3~4 add support for Flags, and 5 adds a test for it.
Patches 6 and 7 extend vimc to have dummy function parameters that are
enums and Flags to test enums and Flags as function parameters.
Patch 8 (new in v5) adds support for skipHeader. This was originally
going to posted on top after the rest of the series was merged, but I
found an issue with serialization of scoped enums directly, so this
series is getting a new version :/
Patch 9 adds a test for scoped enums and flags that are designated as
skipHeader. It touches core components (it has to, because that's the
only place that skipHeader enums can be defined), so it's set as RFC.
Paul Elder (9):
test: generated_serializer: Test enum that is struct member
utils: ipc: Add support for enums in function parameters
libcamera: ipa_data_serializer: Add serializer for Flags
utils: ipc: Add support for Flags
test: generated_serializer: Test Flags that is struct member
ipa: vimc: Add IPAOperationCode to init() parameter list
ipa: vimc: Add Flags to parameters
utils: ipc: Allow the skipHeader attribute on enums
[RFC] test: generated_serializer: Test skipHeader enums and flags
.../libcamera/internal/ipa_data_serializer.h | 46 +++++++++++++++++++
include/libcamera/ipa/core.mojom | 15 +++++-
include/libcamera/ipa/ipa_interface.h | 12 ++++-
include/libcamera/ipa/vimc.mojom | 14 +++++-
src/ipa/vimc/vimc.cpp | 22 +++++++--
src/libcamera/pipeline/vimc/vimc.cpp | 15 ++++--
test/ipa/ipa_interface_test.cpp | 6 ++-
.../generated_serializer_test.cpp | 36 +++++++++++++++
.../include/libcamera/ipa/test.mojom | 14 ++++++
.../core_ipa_interface.h.tmpl | 2 +-
.../definition_functions.tmpl | 2 +-
.../module_ipa_interface.h.tmpl | 2 +-
.../module_ipa_proxy.h.tmpl | 2 +-
.../libcamera_templates/proxy_functions.tmpl | 20 +++++++-
.../libcamera_templates/serializer.tmpl | 6 +++
.../generators/mojom_libcamera_generator.py | 39 ++++++++++++++--
16 files changed, 231 insertions(+), 22 deletions(-)
--
2.30.2
More information about the libcamera-devel
mailing list