<refentry id="vidioc-dqevent">
  <refmeta>
    <refentrytitle>ioctl VIDIOC_DQEVENT</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>VIDIOC_DQEVENT</refname>
    <refpurpose>Dequeue event</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_event
*<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_DQEVENT</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>argp</parameter></term>
	<listitem>
	  <para></para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Description</title>

    <para>Dequeue an event from a video device. No input is required
    for this ioctl. All the fields of the &v4l2-event; structure are
    filled by the driver. The file handle will also receive exceptions
    which the application may get by e.g. using the select system
    call.</para>

    <table frame="none" pgwide="1" id="v4l2-event">
      <title>struct <structname>v4l2_event</structname></title>
      <tgroup cols="4">
	&cs-str;
	<tbody valign="top">
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>type</structfield></entry>
            <entry></entry>
	    <entry>Type of the event.</entry>
	  </row>
	  <row>
	    <entry>union</entry>
	    <entry><structfield>u</structfield></entry>
            <entry></entry>
	    <entry></entry>
	  </row>
	  <row>
	    <entry></entry>
	    <entry>&v4l2-event-vsync;</entry>
            <entry><structfield>vsync</structfield></entry>
	    <entry>Event data for event V4L2_EVENT_VSYNC.
            </entry>
	  </row>
	  <row>
	    <entry></entry>
	    <entry>&v4l2-event-ctrl;</entry>
            <entry><structfield>ctrl</structfield></entry>
	    <entry>Event data for event V4L2_EVENT_CTRL.
            </entry>
	  </row>
	  <row>
	    <entry></entry>
	    <entry>__u8</entry>
            <entry><structfield>data</structfield>[64]</entry>
	    <entry>Event data. Defined by the event type. The union
            should be used to define easily accessible type for
            events.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>pending</structfield></entry>
            <entry></entry>
	    <entry>Number of pending events excluding this one.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>sequence</structfield></entry>
            <entry></entry>
	    <entry>Event sequence number. The sequence number is
	    incremented for every subscribed event that takes place.
	    If sequence numbers are not contiguous it means that
	    events have been lost.
	    </entry>
	  </row>
	  <row>
	    <entry>struct timespec</entry>
	    <entry><structfield>timestamp</structfield></entry>
            <entry></entry>
	    <entry>Event timestamp.</entry>
	  </row>
	  <row>
	    <entry>u32</entry>
	    <entry><structfield>id</structfield></entry>
            <entry></entry>
	    <entry>The ID associated with the event source. If the event does not
		have an associated ID (this depends on the event type), then this
		is 0.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>reserved</structfield>[8]</entry>
            <entry></entry>
	    <entry>Reserved for future extensions. Drivers must set
	    the array to zero.</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>

  </refsect1>
  <refsect1>
    &return-value;
  </refsect1>
</refentry>
