2009-09-13 22:16:04 -03:00
<refentry id= "vidioc-g-audioout" >
<refmeta >
<refentrytitle > ioctl VIDIOC_G_AUDOUT, VIDIOC_S_AUDOUT</refentrytitle>
&manvol;
</refmeta>
<refnamediv >
<refname > VIDIOC_G_AUDOUT</refname>
<refname > VIDIOC_S_AUDOUT</refname>
<refpurpose > Query or select the current audio output</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_audioout *<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 > const struct v4l2_audioout *<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_AUDOUT, VIDIOC_S_AUDOUT</para>
</listitem>
</varlistentry>
<varlistentry >
<term > <parameter > argp</parameter> </term>
<listitem >
<para > </para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 >
<title > Description</title>
<para > To query the current audio output applications zero out the
<structfield > reserved</structfield> array of a &v4l2-audioout; and
call the <constant > VIDIOC_G_AUDOUT</constant> ioctl with a pointer
to this structure. Drivers fill the rest of the structure or return an
&EINVAL; when the device has no audio inputs, or none which combine
with the current video output.</para>
<para > Audio outputs have no writable properties. Nevertheless, to
select the current audio output applications can initialize the
<structfield > index</structfield> field and
<structfield > reserved</structfield> array (which in the future may
contain writable properties) of a
<structname > v4l2_audioout</structname> structure and call the
<constant > VIDIOC_S_AUDOUT</constant> ioctl. Drivers switch to the
requested output or return the &EINVAL; when the index is out of
bounds. This is a write-only ioctl, it does not return the current
audio output attributes as <constant > VIDIOC_G_AUDOUT</constant>
does.</para>
<para > Note connectors on a TV card to loop back the received audio
signal to a sound card are not audio outputs in this sense.</para>
<table pgwide= "1" frame= "none" id= "v4l2-audioout" >
<title > struct <structname > v4l2_audioout</structname> </title>
<tgroup cols= "3" >
&cs-str;
<tbody valign= "top" >
<row >
<entry > __u32</entry>
<entry > <structfield > index</structfield> </entry>
<entry > Identifies the audio output, set by the
driver or application.</entry>
</row>
<row >
<entry > __u8</entry>
<entry > <structfield > name</structfield> [32]</entry>
<entry > Name of the audio output, a NUL-terminated ASCII
string, for example: "Line Out". This information is intended for the
user, preferably the connector label on the device itself.</entry>
</row>
<row >
<entry > __u32</entry>
<entry > <structfield > capability</structfield> </entry>
<entry > Audio capability flags, none defined yet. Drivers
must set this field to zero.</entry>
</row>
<row >
<entry > __u32</entry>
<entry > <structfield > mode</structfield> </entry>
<entry > Audio mode, none defined yet. Drivers and
applications (on <constant > VIDIOC_S_AUDOUT</constant> ) must set this
field to zero.</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>
</tbody>
</tgroup>
</table>
</refsect1>
<refsect1 >
&return-value;
<variablelist >
<varlistentry >
<term > <errorcode > EINVAL</errorcode> </term>
<listitem >
<para > No audio outputs combine with the current video
output, or the number of the selected audio output is out of bounds or
2011-07-05 11:22:28 -03:00
it does not combine.</para>
2009-09-13 22:16:04 -03:00
</listitem>
</varlistentry>
</variablelist>
</refsect1>
</refentry>