<refentry id="vidioc-subscribe-event">
  <refmeta>
    <refentrytitle>ioctl VIDIOC_SUBSCRIBE_EVENT, VIDIOC_UNSUBSCRIBE_EVENT</refentrytitle>
    &manvol;
  </refmeta>

  <refnamediv>
    <refname>VIDIOC_SUBSCRIBE_EVENT, VIDIOC_UNSUBSCRIBE_EVENT</refname>
    <refpurpose>Subscribe or unsubscribe 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_subscription
*<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_SUBSCRIBE_EVENT, VIDIOC_UNSUBSCRIBE_EVENT</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><parameter>argp</parameter></term>
	<listitem>
	  <para></para>
	</listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>Description</title>

    <para>Subscribe or unsubscribe V4L2 event. Subscribed events are
    dequeued by using the &VIDIOC-DQEVENT; ioctl.</para>

    <table frame="none" pgwide="1" id="v4l2-event-subscription">
      <title>struct <structname>v4l2_event_subscription</structname></title>
      <tgroup cols="3">
	&cs-str;
	<tbody valign="top">
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>type</structfield></entry>
	    <entry>Type of the event, see <xref linkend="event-type" />. Note that
<constant>V4L2_EVENT_ALL</constant> can be used with VIDIOC_UNSUBSCRIBE_EVENT
for unsubscribing all events at once.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>id</structfield></entry>
	    <entry>ID of the event source. If there is no ID associated with
		the event source, then set this to 0. Whether or not an event
		needs an ID depends on the event type.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>flags</structfield></entry>
	    <entry>Event flags, see <xref linkend="event-flags" />.</entry>
	  </row>
	  <row>
	    <entry>__u32</entry>
	    <entry><structfield>reserved</structfield>[5]</entry>
	    <entry>Reserved for future extensions. Drivers and applications
	    must set the array to zero.</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>

    <table pgwide="1" frame="none" id="event-flags">
      <title>Event Flags</title>
      <tgroup cols="3">
	&cs-def;
	<tbody valign="top">
	  <row>
	    <entry><constant>V4L2_EVENT_SUB_FL_SEND_INITIAL</constant></entry>
	    <entry>0x0001</entry>
	    <entry>When this event is subscribed an initial event will be sent
		containing the current status. This only makes sense for events
		that are triggered by a status change such as <constant>V4L2_EVENT_CTRL</constant>.
		Other events will ignore this flag.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_EVENT_SUB_FL_ALLOW_FEEDBACK</constant></entry>
	    <entry>0x0002</entry>
	    <entry><para>If set, then events directly caused by an ioctl will also be sent to
		the filehandle that called that ioctl. For example, changing a control using
		&VIDIOC-S-CTRL; will cause a V4L2_EVENT_CTRL to be sent back to that same
		filehandle. Normally such events are suppressed to prevent feedback loops
		where an application changes a control to a one value and then another, and
		then receives an event telling it that that control has changed to the first
		value.</para>

		<para>Since it can't tell whether that event was caused by another application
		or by the &VIDIOC-S-CTRL; call it is hard to decide whether to set the
		control to the value in the event, or ignore it.</para>

		<para>Think carefully when you set this flag so you won't get into situations
		like that.</para>
	    </entry>
	  </row>
	</tbody>
      </tgroup>
    </table>

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