libcamera: control: Add vendor control id range reservation

Add a new control_ranges.yaml file that is used to reserve control id
ranges/offsets for libcamera and vendor specific controls. This file is
used by the gen-controls.py script to generate control id values for
each control.

Draft controls now have a separate range from core libcamera controls,
breaking the existing numbering behaviour.

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
This commit is contained in:
Naushir Patuck
2023-11-09 11:31:31 +00:00
parent 0455bbbf51
commit d3365b358f
4 changed files with 35 additions and 5 deletions
+18
View File
@@ -0,0 +1,18 @@
# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright (C) 2023, Raspberry Pi Ltd
#
%YAML 1.1
---
# Specifies the control id ranges/offsets for core/draft libcamera and vendor
# controls and properties.
ranges:
# Core libcamera controls
libcamera: 0
# Draft designated libcamera controls
draft: 10000
# Raspberry Pi vendor controls
rpi: 20000
# Next range starts at 30000
...
+3 -1
View File
@@ -141,11 +141,13 @@ foreach mode, input_files : controls_mode_files
template_file = files('property_ids.cpp.in')
endif
ranges_file = files('control_ranges.yaml')
control_sources += custom_target(mode + '_cpp',
input : input_files,
output : mode + '_ids.cpp',
command : [gen_controls, '-o', '@OUTPUT@',
'--mode', mode, '-t', template_file, '@INPUT@'])
'--mode', mode, '-t', template_file,
'-r', ranges_file, '@INPUT@'])
endforeach
libcamera_sources += control_sources