summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPaul Elder <paul.elder@ideasonboard.com>2022-08-26 11:50:55 -0500
committerPaul Elder <paul.elder@ideasonboard.com>2022-10-18 18:52:52 +0900
commit4e9ed14311c0b17cb77854bfd4a0288e790725e7 (patch)
tree142edc11f8ba2b551d38e5783d9126d283c3bee5 /include
parent3b54b56a2d0228f879fb2502706a00dd67f84989 (diff)
utils: ipc: Allow the skipHeader attribute on enums
Currently, enums that are passed between pipeline handlers and their IPA must be defined in a mojom file. However, there is a use case for enum/flags to be defined in a C++ header, such that the enum can be used in a component other than the pipeline handler and its IPA. To support this, add support for the skipHeader attribute for enums. Like structs, it is only allowed in core.mojom. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'include')
-rw-r--r--include/libcamera/ipa/core.mojom6
-rw-r--r--include/libcamera/ipa/ipa_interface.h4
2 files changed, 6 insertions, 4 deletions
diff --git a/include/libcamera/ipa/core.mojom b/include/libcamera/ipa/core.mojom
index 33b8abed..5cef340d 100644
--- a/include/libcamera/ipa/core.mojom
+++ b/include/libcamera/ipa/core.mojom
@@ -14,8 +14,8 @@ module libcamera;
* - structs
*
* Attributes:
- * - skipHeader - structs only, and only in core.mojom
- * - Do not generate a C++ definition for the structure
+ * - skipHeader - allowed only for structs and enums in core.mojom
+ * - Do not generate a C++ definition for the structure or enum
* - Any type used in a mojom interface definition must have a corresponding
* definition in a mojom file for the code generator to accept it, except
* for types solely used as map/array members for which a definition is not
@@ -52,6 +52,8 @@ module libcamera;
* then the type definition in the core.mojom file should have the
* [skipHeader] attribute only
* - A (de)serializer will be generated for the type
+ * - enums that are defined in a libcamera C++ header also fall in this
+ * category
* - If a type definition has [skipHeader], then the header where the type is
* defined must be included in ipa_interface.h
* - Types that are solely used as array/map members do not require a mojom
diff --git a/include/libcamera/ipa/ipa_interface.h b/include/libcamera/ipa/ipa_interface.h
index 8afcfe21..8884f0ed 100644
--- a/include/libcamera/ipa/ipa_interface.h
+++ b/include/libcamera/ipa/ipa_interface.h
@@ -23,8 +23,8 @@
namespace libcamera {
/*
- * Structs that are defined in core.mojom and have the skipHeader tag must be
- * #included here.
+ * Structs and enums that are defined in core.mojom that have the skipHeader
+ * tag must be #included here.
*/
class IPAInterface