diff options
author | Sylwester Nawrocki <sylvester.nawrocki@gmail.com> | 2013-01-19 13:51:55 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-02-05 12:04:06 -0500 |
commit | 2ccbe779bcdee130ea7f1525670dc9d60318a981 (patch) | |
tree | f667acca6ab42a0565b062616b3a6f176508e874 /include/media | |
parent | af9bb33aa33d4beb5d0ac505d48530a56856f66c (diff) |
[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>
Diffstat (limited to 'include/media')
-rw-r--r-- | include/media/v4l2-ctrls.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/include/media/v4l2-ctrls.h b/include/media/v4l2-ctrls.h index c4cc04136074..91125b6f05a5 100644 --- a/include/media/v4l2-ctrls.h +++ b/include/media/v4l2-ctrls.h | |||
@@ -518,6 +518,26 @@ void v4l2_ctrl_activate(struct v4l2_ctrl *ctrl, bool active); | |||
518 | */ | 518 | */ |
519 | void v4l2_ctrl_grab(struct v4l2_ctrl *ctrl, bool grabbed); | 519 | void v4l2_ctrl_grab(struct v4l2_ctrl *ctrl, bool grabbed); |
520 | 520 | ||
521 | /** v4l2_ctrl_modify_range() - Update the range of a control. | ||
522 | * @ctrl: The control to update. | ||
523 | * @min: The control's minimum value. | ||
524 | * @max: The control's maximum value. | ||
525 | * @step: The control's step value | ||
526 | * @def: The control's default value. | ||
527 | * | ||
528 | * Update the range of a control on the fly. This works for control types | ||
529 | * INTEGER, BOOLEAN, MENU, INTEGER MENU and BITMASK. For menu controls the | ||
530 | * @step value is interpreted as a menu_skip_mask. | ||
531 | * | ||
532 | * An error is returned if one of the range arguments is invalid for this | ||
533 | * control type. | ||
534 | * | ||
535 | * This function assumes that the control handler is not locked and will | ||
536 | * take the lock itself. | ||
537 | */ | ||
538 | int v4l2_ctrl_modify_range(struct v4l2_ctrl *ctrl, | ||
539 | s32 min, s32 max, u32 step, s32 def); | ||
540 | |||
521 | /** v4l2_ctrl_lock() - Helper function to lock the handler | 541 | /** v4l2_ctrl_lock() - Helper function to lock the handler |
522 | * associated with the control. | 542 | * associated with the control. |
523 | * @ctrl: The control to lock. | 543 | * @ctrl: The control to lock. |