diff options
Diffstat (limited to 'Documentation/DocBook/v4l/vidioc-g-ext-ctrls.xml')
-rw-r--r-- | Documentation/DocBook/v4l/vidioc-g-ext-ctrls.xml | 307 |
1 files changed, 0 insertions, 307 deletions
diff --git a/Documentation/DocBook/v4l/vidioc-g-ext-ctrls.xml b/Documentation/DocBook/v4l/vidioc-g-ext-ctrls.xml deleted file mode 100644 index 3aa7f8f9ff0c..000000000000 --- a/Documentation/DocBook/v4l/vidioc-g-ext-ctrls.xml +++ /dev/null @@ -1,307 +0,0 @@ -<refentry id="vidioc-g-ext-ctrls"> - <refmeta> - <refentrytitle>ioctl VIDIOC_G_EXT_CTRLS, VIDIOC_S_EXT_CTRLS, -VIDIOC_TRY_EXT_CTRLS</refentrytitle> - &manvol; - </refmeta> - - <refnamediv> - <refname>VIDIOC_G_EXT_CTRLS</refname> - <refname>VIDIOC_S_EXT_CTRLS</refname> - <refname>VIDIOC_TRY_EXT_CTRLS</refname> - <refpurpose>Get or set the value of several controls, try control -values</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_ext_controls -*<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_G_EXT_CTRLS, VIDIOC_S_EXT_CTRLS, -VIDIOC_TRY_EXT_CTRLS</para> - </listitem> - </varlistentry> - <varlistentry> - <term><parameter>argp</parameter></term> - <listitem> - <para></para> - </listitem> - </varlistentry> - </variablelist> - </refsect1> - - <refsect1> - <title>Description</title> - - <para>These ioctls allow the caller to get or set multiple -controls atomically. Control IDs are grouped into control classes (see -<xref linkend="ctrl-class" />) and all controls in the control array -must belong to the same control class.</para> - - <para>Applications must always fill in the -<structfield>count</structfield>, -<structfield>ctrl_class</structfield>, -<structfield>controls</structfield> and -<structfield>reserved</structfield> fields of &v4l2-ext-controls;, and -initialize the &v4l2-ext-control; array pointed to by the -<structfield>controls</structfield> fields.</para> - - <para>To get the current value of a set of controls applications -initialize the <structfield>id</structfield>, -<structfield>size</structfield> and <structfield>reserved2</structfield> fields -of each &v4l2-ext-control; and call the -<constant>VIDIOC_G_EXT_CTRLS</constant> ioctl. String controls controls -must also set the <structfield>string</structfield> field.</para> - - <para>If the <structfield>size</structfield> is too small to -receive the control result (only relevant for pointer-type controls -like strings), then the driver will set <structfield>size</structfield> -to a valid value and return an &ENOSPC;. You should re-allocate the -string memory to this new size and try again. It is possible that the -same issue occurs again if the string has grown in the meantime. It is -recommended to call &VIDIOC-QUERYCTRL; first and use -<structfield>maximum</structfield>+1 as the new <structfield>size</structfield> -value. It is guaranteed that that is sufficient memory. -</para> - - <para>To change the value of a set of controls applications -initialize the <structfield>id</structfield>, <structfield>size</structfield>, -<structfield>reserved2</structfield> and -<structfield>value/string</structfield> fields of each &v4l2-ext-control; and -call the <constant>VIDIOC_S_EXT_CTRLS</constant> ioctl. The controls -will only be set if <emphasis>all</emphasis> control values are -valid.</para> - - <para>To check if a set of controls have correct values applications -initialize the <structfield>id</structfield>, <structfield>size</structfield>, -<structfield>reserved2</structfield> and -<structfield>value/string</structfield> fields of each &v4l2-ext-control; and -call the <constant>VIDIOC_TRY_EXT_CTRLS</constant> ioctl. It is up to -the driver whether wrong values are automatically adjusted to a valid -value or if an error is returned.</para> - - <para>When the <structfield>id</structfield> or -<structfield>ctrl_class</structfield> 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. In the first case the new value is set in -&v4l2-ext-control;.</para> - - <para>The driver will only set/get these controls if all control -values are correct. This prevents the situation where only some of the -controls were set/get. Only low-level errors (⪚ a failed i2c -command) can still cause this situation.</para> - - <table pgwide="1" frame="none" id="v4l2-ext-control"> - <title>struct <structname>v4l2_ext_control</structname></title> - <tgroup cols="4"> - &cs-ustr; - <tbody valign="top"> - <row> - <entry>__u32</entry> - <entry><structfield>id</structfield></entry> - <entry></entry> - <entry>Identifies the control, set by the -application.</entry> - </row> - <row> - <entry>__u32</entry> - <entry><structfield>size</structfield></entry> - <entry></entry> - <entry>The total size in bytes of the payload of this -control. This is normally 0, but for pointer controls this should be -set to the size of the memory containing the payload, or that will -receive the payload. If <constant>VIDIOC_G_EXT_CTRLS</constant> finds -that this value is less than is required to store -the payload result, then it is set to a value large enough to store the -payload result and ENOSPC is returned. Note that for string controls -this <structfield>size</structfield> field should not be confused with the length of the string. -This field refers to the size of the memory that contains the string. -The actual <emphasis>length</emphasis> of the string may well be much smaller. -</entry> - </row> - <row> - <entry>__u32</entry> - <entry><structfield>reserved2</structfield>[1]</entry> - <entry></entry> - <entry>Reserved for future extensions. Drivers and -applications must set the array to zero.</entry> - </row> - <row> - <entry>union</entry> - <entry>(anonymous)</entry> - </row> - <row> - <entry></entry> - <entry>__s32</entry> - <entry><structfield>value</structfield></entry> - <entry>New value or current value.</entry> - </row> - <row> - <entry></entry> - <entry>__s64</entry> - <entry><structfield>value64</structfield></entry> - <entry>New value or current value.</entry> - </row> - <row> - <entry></entry> - <entry>char *</entry> - <entry><structfield>string</structfield></entry> - <entry>A pointer to a string.</entry> - </row> - </tbody> - </tgroup> - </table> - - <table pgwide="1" frame="none" id="v4l2-ext-controls"> - <title>struct <structname>v4l2_ext_controls</structname></title> - <tgroup cols="3"> - &cs-str; - <tbody valign="top"> - <row> - <entry>__u32</entry> - <entry><structfield>ctrl_class</structfield></entry> - <entry>The control class to which all controls belong, see -<xref linkend="ctrl-class" />.</entry> - </row> - <row> - <entry>__u32</entry> - <entry><structfield>count</structfield></entry> - <entry>The number of controls in the controls array. May -also be zero.</entry> - </row> - <row> - <entry>__u32</entry> - <entry><structfield>error_idx</structfield></entry> - <entry>Set by the driver in case of an error. It is the -index of the control causing the error or equal to 'count' when the -error is not associated with a particular control. Undefined when the -ioctl returns 0 (success).</entry> - </row> - <row> - <entry>__u32</entry> - <entry><structfield>reserved</structfield>[2]</entry> - <entry>Reserved for future extensions. Drivers and -applications must set the array to zero.</entry> - </row> - <row> - <entry>&v4l2-ext-control; *</entry> - <entry><structfield>controls</structfield></entry> - <entry>Pointer to an array of -<structfield>count</structfield> v4l2_ext_control structures. Ignored -if <structfield>count</structfield> equals zero.</entry> - </row> - </tbody> - </tgroup> - </table> - - <table pgwide="1" frame="none" id="ctrl-class"> - <title>Control classes</title> - <tgroup cols="3"> - &cs-def; - <tbody valign="top"> - <row> - <entry><constant>V4L2_CTRL_CLASS_USER</constant></entry> - <entry>0x980000</entry> - <entry>The class containing user controls. These controls -are described in <xref linkend="control" />. All controls that can be set -using the &VIDIOC-S-CTRL; and &VIDIOC-G-CTRL; ioctl belong to this -class.</entry> - </row> - <row> - <entry><constant>V4L2_CTRL_CLASS_MPEG</constant></entry> - <entry>0x990000</entry> - <entry>The class containing MPEG compression controls. -These controls are described in <xref - linkend="mpeg-controls" />.</entry> - </row> - <row> - <entry><constant>V4L2_CTRL_CLASS_CAMERA</constant></entry> - <entry>0x9a0000</entry> - <entry>The class containing camera controls. -These controls are described in <xref - linkend="camera-controls" />.</entry> - </row> - <row> - <entry><constant>V4L2_CTRL_CLASS_FM_TX</constant></entry> - <entry>0x9b0000</entry> - <entry>The class containing FM Transmitter (FM TX) controls. -These controls are described in <xref - linkend="fm-tx-controls" />.</entry> - </row> - </tbody> - </tgroup> - </table> - - </refsect1> - - <refsect1> - &return-value; - - <variablelist> - <varlistentry> - <term><errorcode>EINVAL</errorcode></term> - <listitem> - <para>The &v4l2-ext-control; <structfield>id</structfield> -is invalid or the &v4l2-ext-controls; -<structfield>ctrl_class</structfield> is invalid. This error code is -also returned by the <constant>VIDIOC_S_EXT_CTRLS</constant> and -<constant>VIDIOC_TRY_EXT_CTRLS</constant> ioctls if two or more -control values are in conflict.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><errorcode>ERANGE</errorcode></term> - <listitem> - <para>The &v4l2-ext-control; <structfield>value</structfield> -is out of bounds.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><errorcode>EBUSY</errorcode></term> - <listitem> - <para>The control is temporarily not changeable, possibly -because another applications took over control of the device function -this control belongs to.</para> - </listitem> - </varlistentry> - <varlistentry> - <term><errorcode>ENOSPC</errorcode></term> - <listitem> - <para>The space reserved for the control's payload is insufficient. -The field <structfield>size</structfield> is set to a value that is enough -to store the payload and this error code is returned.</para> - </listitem> - </varlistentry> - </variablelist> - </refsect1> -</refentry> - -<!-- -Local Variables: -mode: sgml -sgml-parent-document: "v4l2.sgml" -indent-tabs-mode: nil -End: ---> |