Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > media > main-release > by-pkgid > 1af184c486f5d5f476d50602700ee0a0 > files > 35

lib64zvbi-devel-0.2.33-2mdv2010.0.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>ZVBI Library: Events</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Events<br>
<small>
[<a class="el" href="group__HiDec.html">High Level Decoding</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvbi__network.html">vbi_network</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Network description.  <a href="structvbi__network.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvbi__link.html">vbi_link</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvbi__aspect__ratio.html">vbi_aspect_ratio</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Information about the picture aspect ratio and open subtitles.  <a href="structvbi__aspect__ratio.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvbi__program__info.html">vbi_program_info</a></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvbi__event.html">vbi_event</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Event union.  <a href="structvbi__event.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gf7674e0718ecde1f3340325e34296b6a">vbi_nuid</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unique network id (a libzvbi thing).  <a href="#gf7674e0718ecde1f3340325e34296b6a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="gf6e85b7693387b0aea3123b5c190a998"></a><!-- doxytag: member="Event::vbi_event_handler" ref="gf6e85b7693387b0aea3123b5c190a998" args=")(vbi_event *event, void *user_data)" -->
typedef void(*&nbsp;</td><td class="memItemRight" valign="bottom"><b>vbi_event_handler</b> )(<a class="el" href="structvbi__event.html">vbi_event</a> *event, void *user_data)</td></tr>

<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#ga8fa9488512f585b82ddd303ae3fb55d">vbi_link_type</a> { <br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga8fa9488512f585b82ddd303ae3fb55d590ca0ff0b81eb9bb99cf42724292625">VBI_LINK_NONE</a> =  0, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga8fa9488512f585b82ddd303ae3fb55d2ba42402e239ab0916f73d22d49c538b">VBI_LINK_MESSAGE</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga8fa9488512f585b82ddd303ae3fb55db618e995b9abc62129d8f2b89d317bad">VBI_LINK_PAGE</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga8fa9488512f585b82ddd303ae3fb55d31ca92ea88401f87c90961ea28536760">VBI_LINK_SUBPAGE</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga8fa9488512f585b82ddd303ae3fb55d9ffc33e3764957226cf5490f3b9ab4ac">VBI_LINK_HTTP</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga8fa9488512f585b82ddd303ae3fb55d040486087f541515f4e0b1e188d5306e">VBI_LINK_FTP</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga8fa9488512f585b82ddd303ae3fb55d13ffd75a59dab85adf678b0701cba217">VBI_LINK_EMAIL</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga8fa9488512f585b82ddd303ae3fb55d35e6656df685a4d416cc03205edd0a19">VBI_LINK_LID</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga8fa9488512f585b82ddd303ae3fb55d1b1de917e77dee9746d9d09f954dccb9">VBI_LINK_TELEWEB</a>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Link type.  <a href="group__Event.html#ga8fa9488512f585b82ddd303ae3fb55d">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#g2276e95c9c29f0799c4bc1b2b9641bdb">vbi_itv_type</a> { <br>
&nbsp;&nbsp;<b>VBI_WEBLINK_UNKNOWN</b> =  0, 
<br>
&nbsp;&nbsp;<b>VBI_WEBLINK_PROGRAM_RELATED</b>, 
<br>
&nbsp;&nbsp;<b>VBI_WEBLINK_NETWORK_RELATED</b>, 
<br>
&nbsp;&nbsp;<b>VBI_WEBLINK_STATION_RELATED</b>, 
<br>
&nbsp;&nbsp;<b>VBI_WEBLINK_SPONSOR_MESSAGE</b>, 
<br>
&nbsp;&nbsp;<b>VBI_WEBLINK_OPERATOR</b>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">ITV link type.  <a href="group__Event.html#g2276e95c9c29f0799c4bc1b2b9641bdb">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gfc47bd05db9e7b3a7a40a6224674c608">vbi_subt</a> { <br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#ggfc47bd05db9e7b3a7a40a6224674c608b8ef304a359640d59057f629c16e9aed">VBI_SUBT_NONE</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#ggfc47bd05db9e7b3a7a40a6224674c608441aa29ef068a7865a7c15088d7af118">VBI_SUBT_ACTIVE</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#ggfc47bd05db9e7b3a7a40a6224674c608b1ee678c3d231db4bdcb28863a191d0f">VBI_SUBT_MATTE</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#ggfc47bd05db9e7b3a7a40a6224674c608b25d29710cb3e0e5e4dc7f944ff04374">VBI_SUBT_UNKNOWN</a>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Open subtitle information.  <a href="group__Event.html#gfc47bd05db9e7b3a7a40a6224674c608">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#g2161ae06b0573501ee4c312c872883c3">vbi_rating_auth</a> { <br>
&nbsp;&nbsp;<b>VBI_RATING_AUTH_NONE</b> =  0, 
<br>
&nbsp;&nbsp;<b>VBI_RATING_AUTH_MPAA</b>, 
<br>
&nbsp;&nbsp;<b>VBI_RATING_AUTH_TV_US</b>, 
<br>
&nbsp;&nbsp;<b>VBI_RATING_AUTH_TV_CA_EN</b>, 
<br>
&nbsp;&nbsp;<b>VBI_RATING_AUTH_TV_CA_FR</b>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Program rating source.  <a href="group__Event.html#g2161ae06b0573501ee4c312c872883c3">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#g1581b963ecd70492a82a4accf6cd1a28">vbi_prog_classf</a> { <br>
&nbsp;&nbsp;<b>VBI_PROG_CLASSF_NONE</b> =  0, 
<br>
&nbsp;&nbsp;<b>VBI_PROG_CLASSF_EIA_608</b>, 
<br>
&nbsp;&nbsp;<b>VBI_PROG_CLASSF_ETS_300231</b>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Program classification schemes.  <a href="group__Event.html#g1581b963ecd70492a82a4accf6cd1a28">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#ga86d01c7115b8fb1ee2d6234d9b76085">vbi_audio_mode</a> { <br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga86d01c7115b8fb1ee2d6234d9b76085427215ca3e697883fe77da1f79cff337">VBI_AUDIO_MODE_NONE</a> =  0, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga86d01c7115b8fb1ee2d6234d9b76085c7bd2b6bdf3fcc014219f627390fcc37">VBI_AUDIO_MODE_MONO</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga86d01c7115b8fb1ee2d6234d9b76085fcea578d3f2b46132eb06cef30ee3608">VBI_AUDIO_MODE_STEREO</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga86d01c7115b8fb1ee2d6234d9b760857eab76890f0cd55ab347e5843aced44e">VBI_AUDIO_MODE_STEREO_SURROUND</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga86d01c7115b8fb1ee2d6234d9b76085fad9a704feb568b758fd7e62442d56c9">VBI_AUDIO_MODE_SIMULATED_STEREO</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga86d01c7115b8fb1ee2d6234d9b760853bf5f8f084051d6fed32cbd9ac01118c">VBI_AUDIO_MODE_VIDEO_DESCRIPTIONS</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga86d01c7115b8fb1ee2d6234d9b76085d56a5ff529b5a6874464072f528ba857">VBI_AUDIO_MODE_NON_PROGRAM_AUDIO</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga86d01c7115b8fb1ee2d6234d9b760856b2eefaefd33bdc6ac41861694c0199e">VBI_AUDIO_MODE_SPECIAL_EFFECTS</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga86d01c7115b8fb1ee2d6234d9b76085c43981c29b691f8a7e15fd34f127f2f3">VBI_AUDIO_MODE_DATA_SERVICE</a>, 
<br>
&nbsp;&nbsp;<a class="el" href="group__Event.html#gga86d01c7115b8fb1ee2d6234d9b760853d6ef41acc5a5d2add6dbe2a4600b15d">VBI_AUDIO_MODE_UNKNOWN</a>
<br>
 }</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type of audio transmitted on one (mono or stereo) audio track.  <a href="group__Event.html#ga86d01c7115b8fb1ee2d6234d9b76085">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#g4fba17c7c5a541d2c280022cd90c5ca9">vbi_prog_type_string</a> (<a class="el" href="group__Event.html#g1581b963ecd70492a82a4accf6cd1a28">vbi_prog_classf</a> classf, int id)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gd875d1642007931ee27cb99563c29ec0">vbi_reset_prog_info</a> (<a class="el" href="structvbi__program__info.html">vbi_program_info</a> *pi)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">vbi_bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gcd13f9d8a2d47a4393541b7411fe426a">vbi_event_handler_add</a> (vbi_decoder *vbi, int event_mask, vbi_event_handler handler, void *user_data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gfe1402773aeb3b23243ba56949461ac6">vbi_event_handler_remove</a> (vbi_decoder *vbi, vbi_event_handler handler)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">vbi_bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#g6692bb41583ca67af5701360f321e3d7">vbi_event_handler_register</a> (vbi_decoder *vbi, int event_mask, vbi_event_handler handler, void *user_data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#g66482e26705f140e24781e35cc661a01">vbi_event_handler_unregister</a> (vbi_decoder *vbi, vbi_event_handler handler, void *user_data)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gb441e0708842b61fde1ae603ac225ac7">vbi_rating_string</a> (<a class="el" href="group__Event.html#g2161ae06b0573501ee4c312c872883c3">vbi_rating_auth</a> auth, int id)</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Typically the transmission of VBI data like a Teletext or Closed Caption page spans several VBI lines or even video frames. So internally the data service decoder maintains caches accumulating data. When a page or other object is complete it calls the respective event handler to notify the application.<p>
Clients can register any number of handlers needed, also different handlers for the same event. They will be called in the order registered from the <a class="el" href="group__Service.html#g2e2201e3b2bab9b7fb1bb66ade716772" title="Main function of the data service decoder.">vbi_decode()</a> function. Since they block decoding, they should return as soon as possible. The event structure and all data pointed to from there must be read only. The data is only valid until the handler returns. <hr><h2>Typedef Documentation</h2>
<a class="anchor" name="gf7674e0718ecde1f3340325e34296b6a"></a><!-- doxytag: member="event.h::vbi_nuid" ref="gf7674e0718ecde1f3340325e34296b6a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef unsigned int <a class="el" href="group__Event.html#gf7674e0718ecde1f3340325e34296b6a">vbi_nuid</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Unique network id (a libzvbi thing). 
<p>
0 = unknown network, bit 31 reserved for preliminary nuids. Other network codes are arbitrary. 
</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="ga8fa9488512f585b82ddd303ae3fb55d"></a><!-- doxytag: member="event.h::vbi_link_type" ref="ga8fa9488512f585b82ddd303ae3fb55d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__Event.html#ga8fa9488512f585b82ddd303ae3fb55d">vbi_link_type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Link type. 
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="gga8fa9488512f585b82ddd303ae3fb55d590ca0ff0b81eb9bb99cf42724292625"></a><!-- doxytag: member="VBI_LINK_NONE" ref="gga8fa9488512f585b82ddd303ae3fb55d590ca0ff0b81eb9bb99cf42724292625" args="" -->VBI_LINK_NONE</em>&nbsp;</td><td>
vbi_resolve_link() may return a link of this type on failure. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga8fa9488512f585b82ddd303ae3fb55d2ba42402e239ab0916f73d22d49c538b"></a><!-- doxytag: member="VBI_LINK_MESSAGE" ref="gga8fa9488512f585b82ddd303ae3fb55d2ba42402e239ab0916f73d22d49c538b" args="" -->VBI_LINK_MESSAGE</em>&nbsp;</td><td>
Not really a link, only vbi_link-&gt;name will be set. (Probably something like "Help! Help! The station is on fire!") </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga8fa9488512f585b82ddd303ae3fb55db618e995b9abc62129d8f2b89d317bad"></a><!-- doxytag: member="VBI_LINK_PAGE" ref="gga8fa9488512f585b82ddd303ae3fb55db618e995b9abc62129d8f2b89d317bad" args="" -->VBI_LINK_PAGE</em>&nbsp;</td><td>
Points to a Teletext page, vbi_link-&gt;pgno and vbi_link-&gt;subno, eventually vbi_link-&gt;nuid and a descriptive text in vbi_link-&gt;name. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga8fa9488512f585b82ddd303ae3fb55d31ca92ea88401f87c90961ea28536760"></a><!-- doxytag: member="VBI_LINK_SUBPAGE" ref="gga8fa9488512f585b82ddd303ae3fb55d31ca92ea88401f87c90961ea28536760" args="" -->VBI_LINK_SUBPAGE</em>&nbsp;</td><td>
Also a Teletext page link, but this one is used exclusively to link subpages of the page containing the link. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga8fa9488512f585b82ddd303ae3fb55d9ffc33e3764957226cf5490f3b9ab4ac"></a><!-- doxytag: member="VBI_LINK_HTTP" ref="gga8fa9488512f585b82ddd303ae3fb55d9ffc33e3764957226cf5490f3b9ab4ac" args="" -->VBI_LINK_HTTP</em>&nbsp;</td><td>
vbi_link-&gt;url is a HTTP URL (like "http://zapping.sf.net"), eventually accompanied by a descriptive text vbi_link-&gt;name. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga8fa9488512f585b82ddd303ae3fb55d040486087f541515f4e0b1e188d5306e"></a><!-- doxytag: member="VBI_LINK_FTP" ref="gga8fa9488512f585b82ddd303ae3fb55d040486087f541515f4e0b1e188d5306e" args="" -->VBI_LINK_FTP</em>&nbsp;</td><td>
vbi_link-&gt;url is a FTP URL (like "ftp://foo.bar.com/baz"), eventually accompanied by a descriptive text vbi_link-&gt;name. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga8fa9488512f585b82ddd303ae3fb55d13ffd75a59dab85adf678b0701cba217"></a><!-- doxytag: member="VBI_LINK_EMAIL" ref="gga8fa9488512f585b82ddd303ae3fb55d13ffd75a59dab85adf678b0701cba217" args="" -->VBI_LINK_EMAIL</em>&nbsp;</td><td>
vbi_link-&gt;url is an e-mail address (like "mailto:foo@bar"), eventually accompanied by a descriptive text vbi_link-&gt;name. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga8fa9488512f585b82ddd303ae3fb55d35e6656df685a4d416cc03205edd0a19"></a><!-- doxytag: member="VBI_LINK_LID" ref="gga8fa9488512f585b82ddd303ae3fb55d35e6656df685a4d416cc03205edd0a19" args="" -->VBI_LINK_LID</em>&nbsp;</td><td>
Is a trigger link id. Not useful, just ignore. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga8fa9488512f585b82ddd303ae3fb55d1b1de917e77dee9746d9d09f954dccb9"></a><!-- doxytag: member="VBI_LINK_TELEWEB" ref="gga8fa9488512f585b82ddd303ae3fb55d1b1de917e77dee9746d9d09f954dccb9" args="" -->VBI_LINK_TELEWEB</em>&nbsp;</td><td>
Is a SuperTeletext link, ignore. </td></tr>
</table>
</dl>

</div>
</div><p>
<a class="anchor" name="g2276e95c9c29f0799c4bc1b2b9641bdb"></a><!-- doxytag: member="event.h::vbi_itv_type" ref="g2276e95c9c29f0799c4bc1b2b9641bdb" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__Event.html#g2276e95c9c29f0799c4bc1b2b9641bdb">vbi_itv_type</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
ITV link type. 
<p>
Some ITV (WebTV, ATVEF) triggers include a type id intended to filter relevant information. The names should speak for themselves. EACEM triggers always have type <code>VBI_WEBLINK_UNKNOWN</code>. 
</div>
</div><p>
<a class="anchor" name="gfc47bd05db9e7b3a7a40a6224674c608"></a><!-- doxytag: member="event.h::vbi_subt" ref="gfc47bd05db9e7b3a7a40a6224674c608" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__Event.html#gfc47bd05db9e7b3a7a40a6224674c608">vbi_subt</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Open subtitle information. 
<p>
Open because they have been inserted into the picture, as opposed to closed subtitles (closed caption) encoded in the vbi. <dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="ggfc47bd05db9e7b3a7a40a6224674c608b8ef304a359640d59057f629c16e9aed"></a><!-- doxytag: member="VBI_SUBT_NONE" ref="ggfc47bd05db9e7b3a7a40a6224674c608b8ef304a359640d59057f629c16e9aed" args="" -->VBI_SUBT_NONE</em>&nbsp;</td><td>
No open subtitles. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggfc47bd05db9e7b3a7a40a6224674c608441aa29ef068a7865a7c15088d7af118"></a><!-- doxytag: member="VBI_SUBT_ACTIVE" ref="ggfc47bd05db9e7b3a7a40a6224674c608441aa29ef068a7865a7c15088d7af118" args="" -->VBI_SUBT_ACTIVE</em>&nbsp;</td><td>
Inserted in active picture. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggfc47bd05db9e7b3a7a40a6224674c608b1ee678c3d231db4bdcb28863a191d0f"></a><!-- doxytag: member="VBI_SUBT_MATTE" ref="ggfc47bd05db9e7b3a7a40a6224674c608b1ee678c3d231db4bdcb28863a191d0f" args="" -->VBI_SUBT_MATTE</em>&nbsp;</td><td>
Inserted in upper or lower letterbox bar. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="ggfc47bd05db9e7b3a7a40a6224674c608b25d29710cb3e0e5e4dc7f944ff04374"></a><!-- doxytag: member="VBI_SUBT_UNKNOWN" ref="ggfc47bd05db9e7b3a7a40a6224674c608b25d29710cb3e0e5e4dc7f944ff04374" args="" -->VBI_SUBT_UNKNOWN</em>&nbsp;</td><td>
Presence of open subtitles unknown. </td></tr>
</table>
</dl>

</div>
</div><p>
<a class="anchor" name="g2161ae06b0573501ee4c312c872883c3"></a><!-- doxytag: member="event.h::vbi_rating_auth" ref="g2161ae06b0573501ee4c312c872883c3" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__Event.html#g2161ae06b0573501ee4c312c872883c3">vbi_rating_auth</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Program rating source. 
<p>
If program rating information is available (also known in the U. S. as V-Chip data), this describes which rating scheme is being used: U. S. film, U. S. TV, Canadian English or French TV. You can convert the rating code to a string with <a class="el" href="group__Event.html#gb441e0708842b61fde1ae603ac225ac7">vbi_rating_string()</a>.<p>
When the scheme is <code>VBI_RATING_TV_US</code>, additionally the DLSV rating flags will be set. 
</div>
</div><p>
<a class="anchor" name="g1581b963ecd70492a82a4accf6cd1a28"></a><!-- doxytag: member="event.h::vbi_prog_classf" ref="g1581b963ecd70492a82a4accf6cd1a28" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__Event.html#g1581b963ecd70492a82a4accf6cd1a28">vbi_prog_classf</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Program classification schemes. 
<p>
libzvbi understands two different program classification schemes, the EIA-608 based in the United States and the ETS 300 231 based one in Europe. You can convert the program type code into a string with <a class="el" href="group__Event.html#g4fba17c7c5a541d2c280022cd90c5ca9">vbi_prog_type_string()</a>. 
</div>
</div><p>
<a class="anchor" name="ga86d01c7115b8fb1ee2d6234d9b76085"></a><!-- doxytag: member="event.h::vbi_audio_mode" ref="ga86d01c7115b8fb1ee2d6234d9b76085" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__Event.html#ga86d01c7115b8fb1ee2d6234d9b76085">vbi_audio_mode</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Type of audio transmitted on one (mono or stereo) audio track. 
<p>
<dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="gga86d01c7115b8fb1ee2d6234d9b76085427215ca3e697883fe77da1f79cff337"></a><!-- doxytag: member="VBI_AUDIO_MODE_NONE" ref="gga86d01c7115b8fb1ee2d6234d9b76085427215ca3e697883fe77da1f79cff337" args="" -->VBI_AUDIO_MODE_NONE</em>&nbsp;</td><td>
No sound. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga86d01c7115b8fb1ee2d6234d9b76085c7bd2b6bdf3fcc014219f627390fcc37"></a><!-- doxytag: member="VBI_AUDIO_MODE_MONO" ref="gga86d01c7115b8fb1ee2d6234d9b76085c7bd2b6bdf3fcc014219f627390fcc37" args="" -->VBI_AUDIO_MODE_MONO</em>&nbsp;</td><td>
Mono audio. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga86d01c7115b8fb1ee2d6234d9b76085fcea578d3f2b46132eb06cef30ee3608"></a><!-- doxytag: member="VBI_AUDIO_MODE_STEREO" ref="gga86d01c7115b8fb1ee2d6234d9b76085fcea578d3f2b46132eb06cef30ee3608" args="" -->VBI_AUDIO_MODE_STEREO</em>&nbsp;</td><td>
Stereo audio. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga86d01c7115b8fb1ee2d6234d9b760857eab76890f0cd55ab347e5843aced44e"></a><!-- doxytag: member="VBI_AUDIO_MODE_STEREO_SURROUND" ref="gga86d01c7115b8fb1ee2d6234d9b760857eab76890f0cd55ab347e5843aced44e" args="" -->VBI_AUDIO_MODE_STEREO_SURROUND</em>&nbsp;</td><td>
Surround. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga86d01c7115b8fb1ee2d6234d9b76085fad9a704feb568b758fd7e62442d56c9"></a><!-- doxytag: member="VBI_AUDIO_MODE_SIMULATED_STEREO" ref="gga86d01c7115b8fb1ee2d6234d9b76085fad9a704feb568b758fd7e62442d56c9" args="" -->VBI_AUDIO_MODE_SIMULATED_STEREO</em>&nbsp;</td><td>
? </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga86d01c7115b8fb1ee2d6234d9b760853bf5f8f084051d6fed32cbd9ac01118c"></a><!-- doxytag: member="VBI_AUDIO_MODE_VIDEO_DESCRIPTIONS" ref="gga86d01c7115b8fb1ee2d6234d9b760853bf5f8f084051d6fed32cbd9ac01118c" args="" -->VBI_AUDIO_MODE_VIDEO_DESCRIPTIONS</em>&nbsp;</td><td>
Spoken descriptions of the program for the blind, on a secondary audio track. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga86d01c7115b8fb1ee2d6234d9b76085d56a5ff529b5a6874464072f528ba857"></a><!-- doxytag: member="VBI_AUDIO_MODE_NON_PROGRAM_AUDIO" ref="gga86d01c7115b8fb1ee2d6234d9b76085d56a5ff529b5a6874464072f528ba857" args="" -->VBI_AUDIO_MODE_NON_PROGRAM_AUDIO</em>&nbsp;</td><td>
Unrelated to the current program. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga86d01c7115b8fb1ee2d6234d9b760856b2eefaefd33bdc6ac41861694c0199e"></a><!-- doxytag: member="VBI_AUDIO_MODE_SPECIAL_EFFECTS" ref="gga86d01c7115b8fb1ee2d6234d9b760856b2eefaefd33bdc6ac41861694c0199e" args="" -->VBI_AUDIO_MODE_SPECIAL_EFFECTS</em>&nbsp;</td><td>
? </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga86d01c7115b8fb1ee2d6234d9b76085c43981c29b691f8a7e15fd34f127f2f3"></a><!-- doxytag: member="VBI_AUDIO_MODE_DATA_SERVICE" ref="gga86d01c7115b8fb1ee2d6234d9b76085c43981c29b691f8a7e15fd34f127f2f3" args="" -->VBI_AUDIO_MODE_DATA_SERVICE</em>&nbsp;</td><td>
? </td></tr>
<tr><td valign="top"><em><a class="anchor" name="gga86d01c7115b8fb1ee2d6234d9b760853d6ef41acc5a5d2add6dbe2a4600b15d"></a><!-- doxytag: member="VBI_AUDIO_MODE_UNKNOWN" ref="gga86d01c7115b8fb1ee2d6234d9b760853d6ef41acc5a5d2add6dbe2a4600b15d" args="" -->VBI_AUDIO_MODE_UNKNOWN</em>&nbsp;</td><td>
We have no information what is transmitted. </td></tr>
</table>
</dl>

</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="g4fba17c7c5a541d2c280022cd90c5ca9"></a><!-- doxytag: member="event.h::vbi_prog_type_string" ref="g4fba17c7c5a541d2c280022cd90c5ca9" args="(vbi_prog_classf classf, int id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char * vbi_prog_type_string           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__Event.html#g1581b963ecd70492a82a4accf6cd1a28">vbi_prog_classf</a>&nbsp;</td>
          <td class="paramname"> <em>classf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>classf</em>&nbsp;</td><td>From vbi_program_info.type_classf. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>From vbi_program_info.type_id.</td></tr>
  </table>
</dl>
Translate a <a class="el" href="structvbi__program__info.html">vbi_program_info</a> program type code into a Latin-1 string, currently English only.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>Static pointer to the string (don't free()), or <code>NULL</code> if this code is undefined. </dd></dl>

</div>
</div><p>
<a class="anchor" name="gd875d1642007931ee27cb99563c29ec0"></a><!-- doxytag: member="event.h::vbi_reset_prog_info" ref="gd875d1642007931ee27cb99563c29ec0" args="(vbi_program_info *pi)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vbi_reset_prog_info           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structvbi__program__info.html">vbi_program_info</a> *&nbsp;</td>
          <td class="paramname"> <em>pi</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pi</em>&nbsp;</td><td></td></tr>
  </table>
</dl>
Convenience function to set a <a class="el" href="structvbi__program__info.html">vbi_program_info</a> structure to defaults. 
</div>
</div><p>
<a class="anchor" name="gcd13f9d8a2d47a4393541b7411fe426a"></a><!-- doxytag: member="event.h::vbi_event_handler_add" ref="gcd13f9d8a2d47a4393541b7411fe426a" args="(vbi_decoder *vbi, int event_mask, vbi_event_handler handler, void *user_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vbi_bool vbi_event_handler_add           </td>
          <td>(</td>
          <td class="paramtype">vbi_decoder *&nbsp;</td>
          <td class="paramname"> <em>vbi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>event_mask</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vbi_event_handler&nbsp;</td>
          <td class="paramname"> <em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>user_data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>vbi</em>&nbsp;</td><td>Initialized vbi decoding context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>event_mask</em>&nbsp;</td><td>Events the handler is waiting for. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>Event handler function. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>user_data</em>&nbsp;</td><td>Pointer passed to the handler.</td></tr>
  </table>
</dl>
<dl class="deprecated" compact><dt><b><a class="el" href="deprecated.html#_deprecated000006">Deprecated:</a></b></dt><dd>Replaces all existing handlers with this <em>handler</em> function, ignoring <em>user_data</em>. Use <a class="el" href="group__Event.html#g6692bb41583ca67af5701360f321e3d7">vbi_event_handler_register()</a> in new code.</dd></dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>FALSE on failure. </dd></dl>
<dl compact><dt><b>Examples: </b></dt><dd>
<a class="el" href="examples_2network_8c-example.html#a17">examples/network.c</a>.</dl>
</div>
</div><p>
<a class="anchor" name="gfe1402773aeb3b23243ba56949461ac6"></a><!-- doxytag: member="event.h::vbi_event_handler_remove" ref="gfe1402773aeb3b23243ba56949461ac6" args="(vbi_decoder *vbi, vbi_event_handler handler)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vbi_event_handler_remove           </td>
          <td>(</td>
          <td class="paramtype">vbi_decoder *&nbsp;</td>
          <td class="paramname"> <em>vbi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vbi_event_handler&nbsp;</td>
          <td class="paramname"> <em>handler</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>vbi</em>&nbsp;</td><td>Initialized vbi decoding context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>Event handler function.</td></tr>
  </table>
</dl>
<dl class="deprecated" compact><dt><b><a class="el" href="deprecated.html#_deprecated000007">Deprecated:</a></b></dt><dd>This functions lacks a user_data parameter. Use <a class="el" href="group__Event.html#g6692bb41583ca67af5701360f321e3d7">vbi_event_handler_register()</a> in new code. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g6692bb41583ca67af5701360f321e3d7"></a><!-- doxytag: member="event.h::vbi_event_handler_register" ref="g6692bb41583ca67af5701360f321e3d7" args="(vbi_decoder *vbi, int event_mask, vbi_event_handler handler, void *user_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vbi_bool vbi_event_handler_register           </td>
          <td>(</td>
          <td class="paramtype">vbi_decoder *&nbsp;</td>
          <td class="paramname"> <em>vbi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>event_mask</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vbi_event_handler&nbsp;</td>
          <td class="paramname"> <em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>user_data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>vbi</em>&nbsp;</td><td>Initialized vbi decoding context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>event_mask</em>&nbsp;</td><td>Events the handler is waiting for. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>Event handler function. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>user_data</em>&nbsp;</td><td>Pointer passed to the handler.</td></tr>
  </table>
</dl>
Registers a new event handler. <em>event_mask</em> can be any 'or' of VBI_EVENT_ symbols, -1 for all events and 0 for none. When the <em>handler</em> with <em>user_data</em> is already registered, its event_mask will be changed. Any number of handlers can be registered, also different handlers for the same event which will be called in registration order.<p>
Apart of adding handlers this function also enables and disables decoding of data services depending on the presence of at least one handler for the respective data. A <code>VBI_EVENT_TTX_PAGE</code> handler for example enables Teletext decoding.<p>
This function can be safely called at any time, even from a handler.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd><code>FALSE</code> on failure. </dd></dl>

</div>
</div><p>
<a class="anchor" name="g66482e26705f140e24781e35cc661a01"></a><!-- doxytag: member="event.h::vbi_event_handler_unregister" ref="g66482e26705f140e24781e35cc661a01" args="(vbi_decoder *vbi, vbi_event_handler handler, void *user_data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vbi_event_handler_unregister           </td>
          <td>(</td>
          <td class="paramtype">vbi_decoder *&nbsp;</td>
          <td class="paramname"> <em>vbi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vbi_event_handler&nbsp;</td>
          <td class="paramname"> <em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>user_data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>vbi</em>&nbsp;</td><td>Initialized vbi decoding context. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handler</em>&nbsp;</td><td>Event handler function. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>user_data</em>&nbsp;</td><td>Pointer passed to the handler.</td></tr>
  </table>
</dl>
Unregisters an event handler.<p>
Apart of removing a handler this function also disables decoding of data services when no handler is registered to consume the respective data. Removing the last <code>VBI_EVENT_TTX_PAGE</code> handler for example disables Teletext decoding.<p>
This function can be safely called at any time, even from a handler removing itself or another handler, and regardless if the <em>handler</em> has been successfully registered. 
</div>
</div><p>
<a class="anchor" name="gb441e0708842b61fde1ae603ac225ac7"></a><!-- doxytag: member="tables.h::vbi_rating_string" ref="gb441e0708842b61fde1ae603ac225ac7" args="(vbi_rating_auth auth, int id)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* vbi_rating_string           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__Event.html#g2161ae06b0573501ee4c312c872883c3">vbi_rating_auth</a>&nbsp;</td>
          <td class="paramname"> <em>auth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>auth</em>&nbsp;</td><td>From vbi_program_info.rating_auth. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>From vbi_program_info.rating_id.</td></tr>
  </table>
</dl>
Translate a <a class="el" href="structvbi__program__info.html">vbi_program_info</a> program rating code into a Latin-1 string, native language.<p>
<em>return</em> Static pointer to the string (don't free()), or <code>NULL</code> if this code is undefined. 
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed May 27 04:47:58 2009 for ZVBI Library by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>