<refentry id="vidioc-queryctrl">
  <refmeta>
    <refentrytitle>ioctl VIDIOC_QUERYCTRL, VIDIOC_QUERYMENU</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>VIDIOC_QUERYCTRL</refname>
    <refname>VIDIOC_QUERYMENU</refname>
    <refpurpose>Enumerate controls and menu control items</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <funcsynopsis>
      <funcprototype>
	<funcdef>int <function>ioctl</function></funcdef>
	<paramdef>int <parameter>fd</parameter></paramdef>
	<paramdef>int <parameter>request</parameter></paramdef>
	<paramdef>struct v4l2_queryctrl *<parameter>argp</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
    <funcsynopsis>
      <funcprototype>
	<funcdef>int <function>ioctl</function></funcdef>
	<paramdef>int <parameter>fd</parameter></paramdef>
	<paramdef>int <parameter>request</parameter></paramdef>
	<paramdef>struct v4l2_querymenu *<parameter>argp</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Arguments</title>

    <variablelist>
      <varlistentry>
	<term><parameter>fd</parameter></term>
	<listitem>
	  <para>&fd;</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>request</parameter></term>
	<listitem>
	  <para>VIDIOC_QUERYCTRL, VIDIOC_QUERYMENU</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>argp</parameter></term>
	<listitem>
	  <para></para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Description</title>

    <para>To query the attributes of a control applications set the
<structfield>id</structfield> field of a &v4l2-queryctrl; and call the
<constant>VIDIOC_QUERYCTRL</constant> ioctl with a pointer to this
structure. The driver fills the rest of the structure or returns an
&EINVAL; when the <structfield>id</structfield> is invalid.</para>

    <para>It is possible to enumerate controls by calling
<constant>VIDIOC_QUERYCTRL</constant> with successive
<structfield>id</structfield> values starting from
<constant>V4L2_CID_BASE</constant> up to and exclusive
<constant>V4L2_CID_BASE_LASTP1</constant>. Drivers may return
<errorcode>EINVAL</errorcode> if a control in this range is not
supported. Further applications can enumerate private controls, which
are not defined in this specification, by starting at
<constant>V4L2_CID_PRIVATE_BASE</constant> and incrementing
<structfield>id</structfield> until the driver returns
<errorcode>EINVAL</errorcode>.</para>

    <para>In both cases, when the driver sets the
<constant>V4L2_CTRL_FLAG_DISABLED</constant> flag in the
<structfield>flags</structfield> field this control is permanently
disabled and should be ignored by the application.<footnote>
	<para><constant>V4L2_CTRL_FLAG_DISABLED</constant> was
intended for two purposes: Drivers can skip predefined controls not
supported by the hardware (although returning EINVAL would do as
well), or disable predefined and private controls after hardware
detection without the trouble of reordering control arrays and indices
(EINVAL cannot be used to skip private controls because it would
prematurely end the enumeration).</para></footnote></para>

    <para>When the application ORs <structfield>id</structfield> with
<constant>V4L2_CTRL_FLAG_NEXT_CTRL</constant> the driver returns the
next supported control, or <errorcode>EINVAL</errorcode> if there is
none. Drivers which do not support this flag yet always return
<errorcode>EINVAL</errorcode>.</para>

    <para>Additional information is required for menu controls: the
names of the menu items. To query them applications set the
<structfield>id</structfield> and <structfield>index</structfield>
fields of &v4l2-querymenu; and call the
<constant>VIDIOC_QUERYMENU</constant> ioctl with a pointer to this
structure. The driver fills the rest of the structure or returns an
&EINVAL; when the <structfield>id</structfield> or
<structfield>index</structfield> is invalid. Menu items are enumerated
by calling <constant>VIDIOC_QUERYMENU</constant> with successive
<structfield>index</structfield> values from &v4l2-queryctrl;
<structfield>minimum</structfield> to
<structfield>maximum</structfield>, inclusive. Note that it is possible
for <constant>VIDIOC_QUERYMENU</constant> to return an &EINVAL; for some
indices between <structfield>minimum</structfield> and <structfield>maximum</structfield>.
In that case that particular menu item is not supported by this driver. Also note that
the <structfield>minimum</structfield> value is not necessarily 0.</para>

    <para>See also the examples in <xref linkend="control" />.</para>

    <table pgwide="1" frame="none" id="v4l2-queryctrl">
      <title>struct <structname>v4l2_queryctrl</structname></title>
      <tgroup cols="3">
	&cs-str;
	<tbody valign="top">
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>id</structfield></entry>
	    <entry>Identifies the control, set by the application. See
<xref linkend="control-id" /> for predefined IDs. When the ID is ORed
with V4L2_CTRL_FLAG_NEXT_CTRL the driver clears the flag and returns
the first control with a higher ID. Drivers which do not support this
flag yet always return an &EINVAL;.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>type</structfield></entry>
	    <entry>Type of control, see <xref
		linkend="v4l2-ctrl-type" />.</entry>
	  </row>
	  <row>
	    <entry>__u8</entry>
	    <entry><structfield>name</structfield>[32]</entry>
	    <entry>Name of the control, a NUL-terminated ASCII
string. This information is intended for the user.</entry>
	  </row>
	  <row>
	    <entry>__s32</entry>
	    <entry><structfield>minimum</structfield></entry>
	    <entry>Minimum value, inclusive. This field gives a lower
bound for <constant>V4L2_CTRL_TYPE_INTEGER</constant> controls and the
lowest valid index for <constant>V4L2_CTRL_TYPE_MENU</constant> controls.
For <constant>V4L2_CTRL_TYPE_STRING</constant> controls the minimum value
gives the minimum length of the string. This length <emphasis>does not include the terminating
zero</emphasis>. It may not be valid for any other type of control, including
<constant>V4L2_CTRL_TYPE_INTEGER64</constant> controls. Note that this is a
signed value.</entry>
	  </row>
	  <row>
	    <entry>__s32</entry>
	    <entry><structfield>maximum</structfield></entry>
	    <entry>Maximum value, inclusive. This field gives an upper
bound for <constant>V4L2_CTRL_TYPE_INTEGER</constant> controls and the
highest valid index for <constant>V4L2_CTRL_TYPE_MENU</constant>
controls. For <constant>V4L2_CTRL_TYPE_BITMASK</constant> controls it is the
set of usable bits.
For <constant>V4L2_CTRL_TYPE_STRING</constant> controls the maximum value
gives the maximum length of the string. This length <emphasis>does not include the terminating
zero</emphasis>. It may not be valid for any other type of control, including
<constant>V4L2_CTRL_TYPE_INTEGER64</constant> controls. Note that this is a
signed value.</entry>
	  </row>
	  <row>
	    <entry>__s32</entry>
	    <entry><structfield>step</structfield></entry>
	    <entry><para>This field gives a step size for
<constant>V4L2_CTRL_TYPE_INTEGER</constant> controls. For
<constant>V4L2_CTRL_TYPE_STRING</constant> controls this field refers to
the string length that has to be a multiple of this step size.
It may not be valid for any other type of control, including
<constant>V4L2_CTRL_TYPE_INTEGER64</constant>
controls.</para><para>Generally drivers should not scale hardware
control values. It may be necessary for example when the
<structfield>name</structfield> or <structfield>id</structfield> imply
a particular unit and the hardware actually accepts only multiples of
said unit. If so, drivers must take care values are properly rounded
when scaling, such that errors will not accumulate on repeated
read-write cycles.</para><para>This field gives the smallest change of
an integer control actually affecting hardware. Often the information
is needed when the user can change controls by keyboard or GUI
buttons, rather than a slider. When for example a hardware register
accepts values 0-511 and the driver reports 0-65535, step should be
128.</para><para>Note that although signed, the step value is supposed to
be always positive.</para></entry>
	  </row>
	  <row>
	    <entry>__s32</entry>
	    <entry><structfield>default_value</structfield></entry>
	    <entry>The default value of a
<constant>V4L2_CTRL_TYPE_INTEGER</constant>,
<constant>_BOOLEAN</constant> or <constant>_MENU</constant> control.
Not valid for other types of controls. Drivers reset controls only
when the driver is loaded, not later, in particular not when the
func-open; is called.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>flags</structfield></entry>
	    <entry>Control flags, see <xref
		linkend="control-flags" />.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>reserved</structfield>[2]</entry>
	    <entry>Reserved for future extensions. Drivers must set
the array to zero.</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>

    <table pgwide="1" frame="none" id="v4l2-querymenu">
      <title>struct <structname>v4l2_querymenu</structname></title>
      <tgroup cols="4">
	&cs-str;
	<tbody valign="top">
	  <row>
	    <entry>__u32</entry>
	    <entry></entry>
	    <entry><structfield>id</structfield></entry>
	    <entry>Identifies the control, set by the application
from the respective &v4l2-queryctrl;
<structfield>id</structfield>.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry></entry>
	    <entry><structfield>index</structfield></entry>
	    <entry>Index of the menu item, starting at zero, set by
	    the application.</entry>
	  </row>
	  <row>
	    <entry>union</entry>
	    <entry></entry>
	    <entry></entry>
	    <entry></entry>
	  </row>
	  <row>
	    <entry></entry>
	    <entry>__u8</entry>
	    <entry><structfield>name</structfield>[32]</entry>
	    <entry>Name of the menu item, a NUL-terminated ASCII
string. This information is intended for the user. This field is valid
for <constant>V4L2_CTRL_FLAG_MENU</constant> type controls.</entry>
	  </row>
	  <row>
	    <entry></entry>
	    <entry>__s64</entry>
	    <entry><structfield>value</structfield></entry>
	    <entry>
              Value of the integer menu item. This field is valid for
              <constant>V4L2_CTRL_FLAG_INTEGER_MENU</constant> type
              controls.
            </entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry></entry>
	    <entry><structfield>reserved</structfield></entry>
	    <entry>Reserved for future extensions. Drivers must set
the array to zero.</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>

    <table pgwide="1" frame="none" id="v4l2-ctrl-type">
      <title>enum v4l2_ctrl_type</title>
      <tgroup cols="5" align="left">
	<colspec colwidth="30*" />
	<colspec colwidth="5*" align="center" />
	<colspec colwidth="5*" align="center" />
	<colspec colwidth="5*" align="center" />
	<colspec colwidth="55*" />
	<thead>
	  <row>
	    <entry>Type</entry>
	    <entry><structfield>minimum</structfield></entry>
	    <entry><structfield>step</structfield></entry>
	    <entry><structfield>maximum</structfield></entry>
	    <entry>Description</entry>
	  </row>
	</thead>
	<tbody valign="top">
	  <row>
	    <entry><constant>V4L2_CTRL_TYPE_INTEGER</constant></entry>
	    <entry>any</entry>
	    <entry>any</entry>
	    <entry>any</entry>
	    <entry>An integer-valued control ranging from minimum to
maximum inclusive. The step value indicates the increment between
values which are actually different on the hardware.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_TYPE_BOOLEAN</constant></entry>
	    <entry>0</entry>
	    <entry>1</entry>
	    <entry>1</entry>
	    <entry>A boolean-valued control. Zero corresponds to
"disabled", and one means "enabled".</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_TYPE_MENU</constant></entry>
	    <entry>&ge; 0</entry>
	    <entry>1</entry>
	    <entry>N-1</entry>
	    <entry>The control has a menu of N choices. The names of
the menu items can be enumerated with the
<constant>VIDIOC_QUERYMENU</constant> ioctl.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_TYPE_INTEGER_MENU</constant></entry>
	    <entry>&ge; 0</entry>
	    <entry>1</entry>
	    <entry>N-1</entry>
	    <entry>
              The control has a menu of N choices. The values of the
              menu items can be enumerated with the
              <constant>VIDIOC_QUERYMENU</constant> ioctl. This is
              similar to <constant>V4L2_CTRL_TYPE_MENU</constant>
              except that instead of strings, the menu items are
              signed 64-bit integers.
            </entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_TYPE_BITMASK</constant></entry>
	    <entry>0</entry>
	    <entry>n/a</entry>
	    <entry>any</entry>
	    <entry>A bitmask field. The maximum value is the set of bits that can
be used, all other bits are to be 0. The maximum value is interpreted as a __u32,
allowing the use of bit 31 in the bitmask.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_TYPE_BUTTON</constant></entry>
	    <entry>0</entry>
	    <entry>0</entry>
	    <entry>0</entry>
	    <entry>A control which performs an action when set.
Drivers must ignore the value passed with
<constant>VIDIOC_S_CTRL</constant> and return an &EINVAL; on a
<constant>VIDIOC_G_CTRL</constant> attempt.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_TYPE_INTEGER64</constant></entry>
	    <entry>n/a</entry>
	    <entry>n/a</entry>
	    <entry>n/a</entry>
	    <entry>A 64-bit integer valued control. Minimum, maximum
and step size cannot be queried.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_TYPE_STRING</constant></entry>
	    <entry>&ge; 0</entry>
	    <entry>&ge; 1</entry>
	    <entry>&ge; 0</entry>
	    <entry>The minimum and maximum string lengths. The step size
means that the string must be (minimum + N * step) characters long for
N &ge; 0. These lengths do not include the terminating zero, so in order to
pass a string of length 8 to &VIDIOC-S-EXT-CTRLS; you need to set the
<structfield>size</structfield> field of &v4l2-ext-control; to 9. For &VIDIOC-G-EXT-CTRLS; you can
set the <structfield>size</structfield> field to <structfield>maximum</structfield> + 1.
Which character encoding is used will depend on the string control itself and
should be part of the control documentation.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_TYPE_CTRL_CLASS</constant></entry>
	    <entry>n/a</entry>
	    <entry>n/a</entry>
	    <entry>n/a</entry>
	    <entry>This is not a control. When
<constant>VIDIOC_QUERYCTRL</constant> is called with a control ID
equal to a control class code (see <xref linkend="ctrl-class" />) + 1, the
ioctl returns the name of the control class and this control type.
Older drivers which do not support this feature return an
&EINVAL;.</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>

    <table pgwide="1" frame="none" id="control-flags">
      <title>Control Flags</title>
      <tgroup cols="3">
	&cs-def;
	<tbody valign="top">
	  <row>
	    <entry><constant>V4L2_CTRL_FLAG_DISABLED</constant></entry>
	    <entry>0x0001</entry>
	    <entry>This control is permanently disabled and should be
ignored by the application. Any attempt to change the control will
result in an &EINVAL;.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_FLAG_GRABBED</constant></entry>
	    <entry>0x0002</entry>
	    <entry>This control is temporarily unchangeable, for
example because another application took over control of the
respective resource. Such controls may be displayed specially in a
user interface. Attempts to change the control may result in an
&EBUSY;.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_FLAG_READ_ONLY</constant></entry>
	    <entry>0x0004</entry>
	    <entry>This control is permanently readable only. Any
attempt to change the control will result in an &EINVAL;.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_FLAG_UPDATE</constant></entry>
	    <entry>0x0008</entry>
	    <entry>A hint that changing this control may affect the
value of other controls within the same control class. Applications
should update their user interface accordingly.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_FLAG_INACTIVE</constant></entry>
	    <entry>0x0010</entry>
	    <entry>This control is not applicable to the current
configuration and should be displayed accordingly in a user interface.
For example the flag may be set on a MPEG audio level 2 bitrate
control when MPEG audio encoding level 1 was selected with another
control.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_FLAG_SLIDER</constant></entry>
	    <entry>0x0020</entry>
	    <entry>A hint that this control is best represented as a
slider-like element in a user interface.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_FLAG_WRITE_ONLY</constant></entry>
	    <entry>0x0040</entry>
	    <entry>This control is permanently writable only. Any
attempt to read the control will result in an &EACCES; error code. This
flag is typically present for relative controls or action controls where
writing a value will cause the device to carry out a given action
(&eg; motor control) but no meaningful value can be returned.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_FLAG_VOLATILE</constant></entry>
	    <entry>0x0080</entry>
	    <entry>This control is volatile, which means that the value of the control
changes continuously. A typical example would be the current gain value if the device
is in auto-gain mode. In such a case the hardware calculates the gain value based on
the lighting conditions which can change over time. Note that setting a new value for
a volatile control will have no effect. The new value will just be ignored.</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>
  </refsect1>

  <refsect1>
    &return-value;

    <variablelist>
      <varlistentry>
	<term><errorcode>EINVAL</errorcode></term>
	<listitem>
	  <para>The &v4l2-queryctrl; <structfield>id</structfield>
is invalid. The &v4l2-querymenu; <structfield>id</structfield> is
invalid or <structfield>index</structfield> is out of range (less than
<structfield>minimum</structfield> or greater than <structfield>maximum</structfield>)
or this particular menu item is not supported by the driver.</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><errorcode>EACCES</errorcode></term>
	<listitem>
	  <para>An attempt was made to read a write-only control.</para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
</refentry>
