[media] v4l2-ctrl: Add helper function for the controls range update
This patch adds a helper function that allows to modify range, i.e. minimum, maximum, step and default value of a v4l2 control, after the control has been created and initialized. This is helpful in situations when range of a control depends on user configurable parameters, e.g. camera sensor absolute exposure time depending on an output image resolution and frame rate. v4l2_ctrl_modify_range() function allows to modify range of an INTEGER, BOOL, MENU, INTEGER_MENU and BITMASK type controls. Based on a patch from Hans Verkuil http://patchwork.linuxtv.org/patch/8654. Signed-off-by: Sylwester Nawrocki <sylvester.nawrocki@gmail.com> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:

committed by
Mauro Carvalho Chehab

parent
af9bb33aa3
commit
2ccbe779bc
@@ -518,6 +518,26 @@ void v4l2_ctrl_activate(struct v4l2_ctrl *ctrl, bool active);
|
||||
*/
|
||||
void v4l2_ctrl_grab(struct v4l2_ctrl *ctrl, bool grabbed);
|
||||
|
||||
/** v4l2_ctrl_modify_range() - Update the range of a control.
|
||||
* @ctrl: The control to update.
|
||||
* @min: The control's minimum value.
|
||||
* @max: The control's maximum value.
|
||||
* @step: The control's step value
|
||||
* @def: The control's default value.
|
||||
*
|
||||
* Update the range of a control on the fly. This works for control types
|
||||
* INTEGER, BOOLEAN, MENU, INTEGER MENU and BITMASK. For menu controls the
|
||||
* @step value is interpreted as a menu_skip_mask.
|
||||
*
|
||||
* An error is returned if one of the range arguments is invalid for this
|
||||
* control type.
|
||||
*
|
||||
* This function assumes that the control handler is not locked and will
|
||||
* take the lock itself.
|
||||
*/
|
||||
int v4l2_ctrl_modify_range(struct v4l2_ctrl *ctrl,
|
||||
s32 min, s32 max, u32 step, s32 def);
|
||||
|
||||
/** v4l2_ctrl_lock() - Helper function to lock the handler
|
||||
* associated with the control.
|
||||
* @ctrl: The control to lock.
|
||||
|
Reference in New Issue
Block a user