To get the current value of a control applications
initialize the id field of a struct
v4l2_control and call the
VIDIOC_G_CTRL ioctl with a pointer to this
structure. To change the value of a control applications initialize
the id and value
fields of a struct v4l2_control and call the
VIDIOC_S_CTRL ioctl.
When the id is invalid drivers
return an EINVAL error code. When the value is out
of bounds drivers can choose to take the closest valid value or return
an ERANGE error code, whatever seems more appropriate. However,
VIDIOC_S_CTRL is a write-only ioctl, it does not
return the actual new value.
These ioctls work only with user controls. For other
control classes the VIDIOC_G_EXT_CTRLS, VIDIOC_S_EXT_CTRLS or
VIDIOC_TRY_EXT_CTRLS must be used.
On success 0 is returned, on error -1 and the errno variable is set appropriately:
The struct v4l2_control id is
invalid.
The struct v4l2_control value
is out of bounds.
The control is temporarily not changeable, possibly because another applications took over control of the device function this control belongs to.