forked from luck/tmp_suning_uos_patched
[media] v4l2-ctrls: always send an event if a control changed implicitly
By default no control events are sent to the application that caused the control value or flags change (i.e. the control(s) passed to VIDIOC_S_CTRL or VIDIOC_S_EXT_CTRLS). But if a change in one control causes a change in another control that was not part of the control(s) in VIDIOC_S_CTRL or S_EXT_CTRLS, then the application should be notified. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
adf41b9bc3
commit
639884a6d9
@ -712,10 +712,15 @@ static void new_to_cur(struct v4l2_fh *fh, struct v4l2_ctrl *ctrl,
|
||||
if (!is_cur_manual(ctrl->cluster[0]))
|
||||
ctrl->flags |= V4L2_CTRL_FLAG_INACTIVE;
|
||||
}
|
||||
if (changed || update_inactive)
|
||||
if (changed || update_inactive) {
|
||||
/* If a control was changed that was not one of the controls
|
||||
modified by the application, then send the event to all. */
|
||||
if (!ctrl->is_new)
|
||||
fh = NULL;
|
||||
send_event(fh, ctrl,
|
||||
(changed ? V4L2_EVENT_CTRL_CH_VALUE : 0) |
|
||||
(update_inactive ? V4L2_EVENT_CTRL_CH_FLAGS : 0));
|
||||
}
|
||||
}
|
||||
|
||||
/* Copy the current value to the new value */
|
||||
|
Loading…
Reference in New Issue
Block a user