libcamera: controls: Use vendor tags for draft controls and properties

Label draft controls and properties through the "draft" vendor tag
and deprecate the existing "draft: true" mechanism. This uses the new
vendor tags mechanism to place draft controls in the same
libcamera::controls::draft namespace and provide a defined control id
range for these controls. This requires moving all draft controls from
control_ids.yaml to control_ids_draft.yaml.

One breaking change in this commit is that draft control ids also move
to the libcamera::controls::draft namespace from the existing
libcamera::controls namespace. This is desirable to avoid API breakages
when adding new libcamera controls. So, for example, the use of
controls::NOISE_REDUCTION_MODE will need to be replaced with
controls::draft::NOISE_REDUCTION_MODE.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Naushir Patuck 2023-11-09 12:30:18 +00:00
parent d3365b358f
commit e18a007b9d
15 changed files with 286 additions and 352 deletions

View file

@ -26,12 +26,6 @@ ${controls}
extern const ControlIdMap controls;
namespace draft {
${draft_controls}
} /* namespace draft */
${vendor_controls}
} /* namespace controls */

View file

@ -34,10 +34,12 @@ libcamera_headers_install_dir = get_option('includedir') / libcamera_include_dir
controls_map = {
'controls': {
'draft': 'control_ids_draft.yaml',
'core': 'control_ids_core.yaml',
},
'properties': {
'draft': 'property_ids_draft.yaml',
'core': 'property_ids_core.yaml',
}
}

View file

@ -23,12 +23,6 @@ ${ids}
${controls}
namespace draft {
${draft_controls}
} /* namespace draft */
extern const ControlIdMap properties;
${vendor_controls}