Message ID | 20221011105859.457567-1-paul.elder@ideasonboard.com |
---|---|
Headers | show |
Series |
|
Related | show |
Hi Paul, On Tue, Oct 11, 2022 at 07:58:50PM +0900, Paul Elder via libcamera-devel wrote: > 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. What prevents using skipHeader enums in other .mojom files ? > 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(-)