ioctl VIDIOC_G_CTRL, VIDIOC_S_CTRL &manvol; VIDIOC_G_CTRL VIDIOC_S_CTRL Get or set the value of a control int ioctl int fd int request struct v4l2_control *argp Arguments fd &fd; request VIDIOC_G_CTRL, VIDIOC_S_CTRL argp Description 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;. When the value is out of bounds drivers can choose to take the closest valid value or return an &ERANGE;, whatever seems more appropriate. However, VIDIOC_S_CTRL is a write-only ioctl, it does not return the actual new value. If the value is inappropriate for the control (e.g. if it refers to an unsupported menu index of a menu control), then &EINVAL; is returned as well. 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. struct <structname>v4l2_control</structname> &cs-str; __u32 id Identifies the control, set by the application. __s32 value New value or current value.
&return-value; EINVAL The &v4l2-control; id is invalid or the value is inappropriate for the given control (i.e. if a menu item is selected that is not supported by the driver according to &VIDIOC-QUERYMENU;). ERANGE The &v4l2-control; value is out of bounds. EBUSY The control is temporarily not changeable, possibly because another applications took over control of the device function this control belongs to. EACCES Attempt to set a read-only control or to get a write-only control.