doc-rst: linux_tv: don't simplify VIDIOC_G_foo references
[deliverable/linux.git] / Documentation / linux_tv / media / v4l / vidioc-g-ctrl.rst
CommitLineData
5377d91f
MH
1.. -*- coding: utf-8; mode: rst -*-
2
af4a4d0d 3.. _VIDIOC_G_CTRL:
5377d91f
MH
4
5**********************************
6ioctl VIDIOC_G_CTRL, VIDIOC_S_CTRL
7**********************************
8
9*man VIDIOC_G_CTRL(2)*
10
11VIDIOC_S_CTRL
12Get or set the value of a control
13
14
15Synopsis
16========
17
18.. c:function:: int ioctl( int fd, int request, struct v4l2_control *argp )
19
20Arguments
21=========
22
23``fd``
24 File descriptor returned by :ref:`open() <func-open>`.
25
26``request``
27 VIDIOC_G_CTRL, VIDIOC_S_CTRL
28
29``argp``
30
31
32Description
33===========
34
35To get the current value of a control applications initialize the ``id``
36field of a struct :c:type:`struct v4l2_control` and call the
4e03cb76 37:ref:`VIDIOC_G_CTRL <VIDIOC_G_CTRL>` ioctl with a pointer to this structure. To change the
5377d91f
MH
38value of a control applications initialize the ``id`` and ``value``
39fields of a struct :c:type:`struct v4l2_control` and call the
2212ff25 40:ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>` ioctl.
5377d91f
MH
41
42When the ``id`` is invalid drivers return an EINVAL error code. When the
43``value`` is out of bounds drivers can choose to take the closest valid
44value or return an ERANGE error code, whatever seems more appropriate.
2212ff25 45However, :ref:`VIDIOC_S_CTRL <VIDIOC_G_CTRL>` is a write-only ioctl, it does not return the
5377d91f
MH
46actual new value. If the ``value`` is inappropriate for the control
47(e.g. if it refers to an unsupported menu index of a menu control), then
48EINVAL error code is returned as well.
49
50These ioctls work only with user controls. For other control classes the
4e03cb76 51:ref:`VIDIOC_G_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>`,
af4a4d0d
MCC
52:ref:`VIDIOC_S_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` or
53:ref:`VIDIOC_TRY_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` must be used.
5377d91f
MH
54
55
56.. _v4l2-control:
57
58.. flat-table:: struct v4l2_control
59 :header-rows: 0
60 :stub-columns: 0
61 :widths: 1 1 2
62
63
64 - .. row 1
65
66 - __u32
67
68 - ``id``
69
70 - Identifies the control, set by the application.
71
72 - .. row 2
73
74 - __s32
75
76 - ``value``
77
78 - New value or current value.
79
80
81
82Return Value
83============
84
85On success 0 is returned, on error -1 and the ``errno`` variable is set
86appropriately. The generic error codes are described at the
87:ref:`Generic Error Codes <gen-errors>` chapter.
88
89EINVAL
90 The struct :ref:`v4l2_control <v4l2-control>` ``id`` is invalid
91 or the ``value`` is inappropriate for the given control (i.e. if a
92 menu item is selected that is not supported by the driver according
af4a4d0d 93 to :ref:`VIDIOC_QUERYMENU <VIDIOC_QUERYCTRL>`).
5377d91f
MH
94
95ERANGE
96 The struct :ref:`v4l2_control <v4l2-control>` ``value`` is out of
97 bounds.
98
99EBUSY
100 The control is temporarily not changeable, possibly because another
101 applications took over control of the device function this control
102 belongs to.
103
104EACCES
105 Attempt to set a read-only control or to get a write-only control.
106
107
108.. ------------------------------------------------------------------------------
109.. This file was automatically converted from DocBook-XML with the dbxml
110.. library (https://github.com/return42/sphkerneldoc). The origin XML comes
111.. from the linux kernel, refer to:
112..
113.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook
114.. ------------------------------------------------------------------------------
This page took 0.048063 seconds and 5 git commands to generate.