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:
parent
d3365b358f
commit
e18a007b9d
15 changed files with 286 additions and 352 deletions
|
@ -32,14 +32,12 @@ def generate_py(controls, mode):
|
|||
name, ctrl = ctrls.popitem()
|
||||
|
||||
if vendor not in vendors and vendor != 'libcamera':
|
||||
vendors_class_def.append('class Py{}Controls\n{{\n}};\n'.format(vendor))
|
||||
vendor_defs.append('\tauto {} = py::class_<Py{}Controls>(controls, \"{}\");'.format(vendor, vendor, vendor))
|
||||
vendor_mode_str = f'{vendor.capitalize()}{mode.capitalize()}'
|
||||
vendors_class_def.append('class Py{}\n{{\n}};\n'.format(vendor_mode_str))
|
||||
vendor_defs.append('\tauto {} = py::class_<Py{}>(controls, \"{}\");'.format(vendor, vendor_mode_str, vendor))
|
||||
vendors.append(vendor)
|
||||
|
||||
if ctrl.get('draft'):
|
||||
ns = 'libcamera::{}::draft::'.format(mode)
|
||||
container = 'draft'
|
||||
elif vendor != 'libcamera':
|
||||
if vendor != 'libcamera':
|
||||
ns = 'libcamera::{}::{}::'.format(mode, vendor)
|
||||
container = vendor
|
||||
else:
|
||||
|
|
|
@ -17,16 +17,11 @@ class PyControls
|
|||
{
|
||||
};
|
||||
|
||||
class PyDraftControls
|
||||
{
|
||||
};
|
||||
|
||||
${vendors_class_def}
|
||||
|
||||
void init_py_controls_generated(py::module& m)
|
||||
{
|
||||
auto controls = py::class_<PyControls>(m, "controls");
|
||||
auto draft = py::class_<PyDraftControls>(controls, "draft");
|
||||
${vendors_defs}
|
||||
|
||||
${controls}
|
||||
|
|
|
@ -17,16 +17,11 @@ class PyProperties
|
|||
{
|
||||
};
|
||||
|
||||
class PyDraftProperties
|
||||
{
|
||||
};
|
||||
|
||||
${vendors_class_def}
|
||||
|
||||
void init_py_properties_generated(py::module& m)
|
||||
{
|
||||
auto controls = py::class_<PyProperties>(m, "properties");
|
||||
auto draft = py::class_<PyDraftProperties>(controls, "draft");
|
||||
${vendors_defs}
|
||||
|
||||
${controls}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue