Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > b87535c165133127a8d07aeb2413ddb2 > files > 51

libzvbi-devel-0.2.35-4.mga5.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>ZVBI Library: Events</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">ZVBI Library
   &#160;<span id="projectnumber">0.2.35</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Events<div class="ingroups"><a class="el" href="group__HiDec.html">High Level Decoding</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvbi__network.html">vbi_network</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Network description.  <a href="structvbi__network.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvbi__link.html">vbi_link</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvbi__aspect__ratio.html">vbi_aspect_ratio</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</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 class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvbi__program__info.html">vbi_program_info</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvbi__event.html">vbi_event</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Event union.  <a href="structvbi__event.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaf7674e0718ecde1f3340325e34296b6a"><td class="memItemLeft" align="right" valign="top">typedef unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gaf7674e0718ecde1f3340325e34296b6a">vbi_nuid</a></td></tr>
<tr class="memdesc:gaf7674e0718ecde1f3340325e34296b6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unique network id (a libzvbi thing).  <a href="#gaf7674e0718ecde1f3340325e34296b6a">More...</a><br /></td></tr>
<tr class="separator:gaf7674e0718ecde1f3340325e34296b6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace07dc30e1d3857ed5a136e26691010d"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structvbi__link.html">vbi_link</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gace07dc30e1d3857ed5a136e26691010d">vbi_link</a></td></tr>
<tr class="separator:gace07dc30e1d3857ed5a136e26691010d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga550ea847b1a9d006d5f5fc74507721d7"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structvbi__program__info.html">vbi_program_info</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#ga550ea847b1a9d006d5f5fc74507721d7">vbi_program_info</a></td></tr>
<tr class="separator:ga550ea847b1a9d006d5f5fc74507721d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d55a0524f2152620f79a6cb49ccf62e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8d55a0524f2152620f79a6cb49ccf62e"></a>
typedef struct <a class="el" href="structvbi__event.html">vbi_event</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#ga8d55a0524f2152620f79a6cb49ccf62e">vbi_event</a></td></tr>
<tr class="memdesc:ga8d55a0524f2152620f79a6cb49ccf62e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Event union. <br /></td></tr>
<tr class="separator:ga8d55a0524f2152620f79a6cb49ccf62e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf6e85b7693387b0aea3123b5c190a998"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf6e85b7693387b0aea3123b5c190a998"></a>
typedef void(*&#160;</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 class="separator:gaf6e85b7693387b0aea3123b5c190a998"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gaa8fa9488512f585b82ddd303ae3fb55d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gaa8fa9488512f585b82ddd303ae3fb55d">vbi_link_type</a> { <br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa8fa9488512f585b82ddd303ae3fb55da590ca0ff0b81eb9bb99cf42724292625">VBI_LINK_NONE</a> = 0, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa8fa9488512f585b82ddd303ae3fb55da2ba42402e239ab0916f73d22d49c538b">VBI_LINK_MESSAGE</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa8fa9488512f585b82ddd303ae3fb55dab618e995b9abc62129d8f2b89d317bad">VBI_LINK_PAGE</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa8fa9488512f585b82ddd303ae3fb55da31ca92ea88401f87c90961ea28536760">VBI_LINK_SUBPAGE</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa8fa9488512f585b82ddd303ae3fb55da9ffc33e3764957226cf5490f3b9ab4ac">VBI_LINK_HTTP</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa8fa9488512f585b82ddd303ae3fb55da040486087f541515f4e0b1e188d5306e">VBI_LINK_FTP</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa8fa9488512f585b82ddd303ae3fb55da13ffd75a59dab85adf678b0701cba217">VBI_LINK_EMAIL</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa8fa9488512f585b82ddd303ae3fb55da35e6656df685a4d416cc03205edd0a19">VBI_LINK_LID</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa8fa9488512f585b82ddd303ae3fb55da1b1de917e77dee9746d9d09f954dccb9">VBI_LINK_TELEWEB</a>
<br />
 }</td></tr>
<tr class="memdesc:gaa8fa9488512f585b82ddd303ae3fb55d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Link type.  <a href="group__Event.html#gaa8fa9488512f585b82ddd303ae3fb55d">More...</a><br /></td></tr>
<tr class="separator:gaa8fa9488512f585b82ddd303ae3fb55d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2276e95c9c29f0799c4bc1b2b9641bdb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#ga2276e95c9c29f0799c4bc1b2b9641bdb">vbi_itv_type</a> { <br />
&#160;&#160;<b>VBI_WEBLINK_UNKNOWN</b> = 0, 
<br />
&#160;&#160;<b>VBI_WEBLINK_PROGRAM_RELATED</b>, 
<br />
&#160;&#160;<b>VBI_WEBLINK_NETWORK_RELATED</b>, 
<br />
&#160;&#160;<b>VBI_WEBLINK_STATION_RELATED</b>, 
<br />
&#160;&#160;<b>VBI_WEBLINK_SPONSOR_MESSAGE</b>, 
<br />
&#160;&#160;<b>VBI_WEBLINK_OPERATOR</b>
<br />
 }</td></tr>
<tr class="memdesc:ga2276e95c9c29f0799c4bc1b2b9641bdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">ITV link type.  <a href="group__Event.html#ga2276e95c9c29f0799c4bc1b2b9641bdb">More...</a><br /></td></tr>
<tr class="separator:ga2276e95c9c29f0799c4bc1b2b9641bdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafc47bd05db9e7b3a7a40a6224674c608"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gafc47bd05db9e7b3a7a40a6224674c608">vbi_subt</a> { <br />
&#160;&#160;<a class="el" href="group__Event.html#ggafc47bd05db9e7b3a7a40a6224674c608ab8ef304a359640d59057f629c16e9aed">VBI_SUBT_NONE</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggafc47bd05db9e7b3a7a40a6224674c608a441aa29ef068a7865a7c15088d7af118">VBI_SUBT_ACTIVE</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggafc47bd05db9e7b3a7a40a6224674c608ab1ee678c3d231db4bdcb28863a191d0f">VBI_SUBT_MATTE</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggafc47bd05db9e7b3a7a40a6224674c608ab25d29710cb3e0e5e4dc7f944ff04374">VBI_SUBT_UNKNOWN</a>
<br />
 }</td></tr>
<tr class="memdesc:gafc47bd05db9e7b3a7a40a6224674c608"><td class="mdescLeft">&#160;</td><td class="mdescRight">Open subtitle information.  <a href="group__Event.html#gafc47bd05db9e7b3a7a40a6224674c608">More...</a><br /></td></tr>
<tr class="separator:gafc47bd05db9e7b3a7a40a6224674c608"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2161ae06b0573501ee4c312c872883c3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#ga2161ae06b0573501ee4c312c872883c3">vbi_rating_auth</a> { <br />
&#160;&#160;<b>VBI_RATING_AUTH_NONE</b> = 0, 
<br />
&#160;&#160;<b>VBI_RATING_AUTH_MPAA</b>, 
<br />
&#160;&#160;<b>VBI_RATING_AUTH_TV_US</b>, 
<br />
&#160;&#160;<b>VBI_RATING_AUTH_TV_CA_EN</b>, 
<br />
&#160;&#160;<b>VBI_RATING_AUTH_TV_CA_FR</b>
<br />
 }</td></tr>
<tr class="memdesc:ga2161ae06b0573501ee4c312c872883c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Program rating source.  <a href="group__Event.html#ga2161ae06b0573501ee4c312c872883c3">More...</a><br /></td></tr>
<tr class="separator:ga2161ae06b0573501ee4c312c872883c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1581b963ecd70492a82a4accf6cd1a28"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#ga1581b963ecd70492a82a4accf6cd1a28">vbi_prog_classf</a> { <br />
&#160;&#160;<b>VBI_PROG_CLASSF_NONE</b> = 0, 
<br />
&#160;&#160;<b>VBI_PROG_CLASSF_EIA_608</b>, 
<br />
&#160;&#160;<b>VBI_PROG_CLASSF_ETS_300231</b>
<br />
 }</td></tr>
<tr class="memdesc:ga1581b963ecd70492a82a4accf6cd1a28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Program classification schemes.  <a href="group__Event.html#ga1581b963ecd70492a82a4accf6cd1a28">More...</a><br /></td></tr>
<tr class="separator:ga1581b963ecd70492a82a4accf6cd1a28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa86d01c7115b8fb1ee2d6234d9b76085"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gaa86d01c7115b8fb1ee2d6234d9b76085">vbi_audio_mode</a> { <br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa86d01c7115b8fb1ee2d6234d9b76085a427215ca3e697883fe77da1f79cff337">VBI_AUDIO_MODE_NONE</a> = 0, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa86d01c7115b8fb1ee2d6234d9b76085ac7bd2b6bdf3fcc014219f627390fcc37">VBI_AUDIO_MODE_MONO</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa86d01c7115b8fb1ee2d6234d9b76085afcea578d3f2b46132eb06cef30ee3608">VBI_AUDIO_MODE_STEREO</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa86d01c7115b8fb1ee2d6234d9b76085a7eab76890f0cd55ab347e5843aced44e">VBI_AUDIO_MODE_STEREO_SURROUND</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa86d01c7115b8fb1ee2d6234d9b76085afad9a704feb568b758fd7e62442d56c9">VBI_AUDIO_MODE_SIMULATED_STEREO</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa86d01c7115b8fb1ee2d6234d9b76085a3bf5f8f084051d6fed32cbd9ac01118c">VBI_AUDIO_MODE_VIDEO_DESCRIPTIONS</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa86d01c7115b8fb1ee2d6234d9b76085ad56a5ff529b5a6874464072f528ba857">VBI_AUDIO_MODE_NON_PROGRAM_AUDIO</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa86d01c7115b8fb1ee2d6234d9b76085a6b2eefaefd33bdc6ac41861694c0199e">VBI_AUDIO_MODE_SPECIAL_EFFECTS</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa86d01c7115b8fb1ee2d6234d9b76085ac43981c29b691f8a7e15fd34f127f2f3">VBI_AUDIO_MODE_DATA_SERVICE</a>, 
<br />
&#160;&#160;<a class="el" href="group__Event.html#ggaa86d01c7115b8fb1ee2d6234d9b76085a3d6ef41acc5a5d2add6dbe2a4600b15d">VBI_AUDIO_MODE_UNKNOWN</a>
<br />
 }</td></tr>
<tr class="memdesc:gaa86d01c7115b8fb1ee2d6234d9b76085"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of audio transmitted on one (mono or stereo) audio track.  <a href="group__Event.html#gaa86d01c7115b8fb1ee2d6234d9b76085">More...</a><br /></td></tr>
<tr class="separator:gaa86d01c7115b8fb1ee2d6234d9b76085"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga4fba17c7c5a541d2c280022cd90c5ca9"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#ga4fba17c7c5a541d2c280022cd90c5ca9">vbi_prog_type_string</a> (<a class="el" href="group__Event.html#ga1581b963ecd70492a82a4accf6cd1a28">vbi_prog_classf</a> classf, int id)</td></tr>
<tr class="separator:ga4fba17c7c5a541d2c280022cd90c5ca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad875d1642007931ee27cb99563c29ec0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gad875d1642007931ee27cb99563c29ec0">vbi_reset_prog_info</a> (<a class="el" href="structvbi__program__info.html">vbi_program_info</a> *pi)</td></tr>
<tr class="separator:gad875d1642007931ee27cb99563c29ec0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd13f9d8a2d47a4393541b7411fe426a"><td class="memItemLeft" align="right" valign="top">vbi_bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gacd13f9d8a2d47a4393541b7411fe426a">vbi_event_handler_add</a> (<a class="el" href="structvbi__decoder.html">vbi_decoder</a> *vbi, int event_mask, vbi_event_handler handler, void *user_data)</td></tr>
<tr class="separator:gacd13f9d8a2d47a4393541b7411fe426a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafe1402773aeb3b23243ba56949461ac6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gafe1402773aeb3b23243ba56949461ac6">vbi_event_handler_remove</a> (<a class="el" href="structvbi__decoder.html">vbi_decoder</a> *vbi, vbi_event_handler handler)</td></tr>
<tr class="separator:gafe1402773aeb3b23243ba56949461ac6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6692bb41583ca67af5701360f321e3d7"><td class="memItemLeft" align="right" valign="top">vbi_bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#ga6692bb41583ca67af5701360f321e3d7">vbi_event_handler_register</a> (<a class="el" href="structvbi__decoder.html">vbi_decoder</a> *vbi, int event_mask, vbi_event_handler handler, void *user_data)</td></tr>
<tr class="separator:ga6692bb41583ca67af5701360f321e3d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga66482e26705f140e24781e35cc661a01"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#ga66482e26705f140e24781e35cc661a01">vbi_event_handler_unregister</a> (<a class="el" href="structvbi__decoder.html">vbi_decoder</a> *vbi, vbi_event_handler handler, void *user_data)</td></tr>
<tr class="separator:ga66482e26705f140e24781e35cc661a01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab441e0708842b61fde1ae603ac225ac7"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__Event.html#gab441e0708842b61fde1ae603ac225ac7">vbi_rating_string</a> (<a class="el" href="group__Event.html#ga2161ae06b0573501ee4c312c872883c3">vbi_rating_auth</a> auth, int id)</td></tr>
<tr class="separator:gab441e0708842b61fde1ae603ac225ac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>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>
<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#ga2e2201e3b2bab9b7fb1bb66ade716772" 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. </p>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gaf7674e0718ecde1f3340325e34296b6a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef unsigned int <a class="el" href="group__Event.html#gaf7674e0718ecde1f3340325e34296b6a">vbi_nuid</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unique network id (a libzvbi thing). </p>
<p>0 = unknown network, bit 31 reserved for preliminary nuids. Other network codes are arbitrary. </p>

</div>
</div>
<a class="anchor" id="gace07dc30e1d3857ed5a136e26691010d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structvbi__link.html">vbi_link</a>  <a class="el" href="structvbi__link.html">vbi_link</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>General purpose link description for ATVEF (ITV, WebTV in the United States) and EACEM (SuperTeletext et al in Europe) triggers, Teletext TOP and FLOF navigation, and for links "guessed" by libzvbi from the text (e. g. page numbers and URLs). Usually not all fields will be used. </p>

</div>
</div>
<a class="anchor" id="ga550ea847b1a9d006d5f5fc74507721d7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structvbi__program__info.html">vbi_program_info</a>  <a class="el" href="structvbi__program__info.html">vbi_program_info</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Information about the current program, preliminary. </p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="gaa8fa9488512f585b82ddd303ae3fb55d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__Event.html#gaa8fa9488512f585b82ddd303ae3fb55d">vbi_link_type</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Link type. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ggaa8fa9488512f585b82ddd303ae3fb55da590ca0ff0b81eb9bb99cf42724292625"></a>VBI_LINK_NONE&#160;</td><td class="fielddoc">
<p>vbi_resolve_link() may return a link of this type on failure. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa8fa9488512f585b82ddd303ae3fb55da2ba42402e239ab0916f73d22d49c538b"></a>VBI_LINK_MESSAGE&#160;</td><td class="fielddoc">
<p>Not really a link, only vbi_link-&gt;name will be set. (Probably something like "Help! Help! The station is on fire!") </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa8fa9488512f585b82ddd303ae3fb55dab618e995b9abc62129d8f2b89d317bad"></a>VBI_LINK_PAGE&#160;</td><td class="fielddoc">
<p>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. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa8fa9488512f585b82ddd303ae3fb55da31ca92ea88401f87c90961ea28536760"></a>VBI_LINK_SUBPAGE&#160;</td><td class="fielddoc">
<p>Also a Teletext page link, but this one is used exclusively to link subpages of the page containing the link. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa8fa9488512f585b82ddd303ae3fb55da9ffc33e3764957226cf5490f3b9ab4ac"></a>VBI_LINK_HTTP&#160;</td><td class="fielddoc">
<p>vbi_link-&gt;url is a HTTP URL (like "http://zapping.sf.net"), eventually accompanied by a descriptive text vbi_link-&gt;name. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa8fa9488512f585b82ddd303ae3fb55da040486087f541515f4e0b1e188d5306e"></a>VBI_LINK_FTP&#160;</td><td class="fielddoc">
<p>vbi_link-&gt;url is a FTP URL (like "ftp://foo.bar.com/baz"), eventually accompanied by a descriptive text vbi_link-&gt;name. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa8fa9488512f585b82ddd303ae3fb55da13ffd75a59dab85adf678b0701cba217"></a>VBI_LINK_EMAIL&#160;</td><td class="fielddoc">
<p>vbi_link-&gt;url is an e-mail address (like "mailto:foo@bar"), eventually accompanied by a descriptive text vbi_link-&gt;name. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa8fa9488512f585b82ddd303ae3fb55da35e6656df685a4d416cc03205edd0a19"></a>VBI_LINK_LID&#160;</td><td class="fielddoc">
<p>Is a trigger link id. Not useful, just ignore. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa8fa9488512f585b82ddd303ae3fb55da1b1de917e77dee9746d9d09f954dccb9"></a>VBI_LINK_TELEWEB&#160;</td><td class="fielddoc">
<p>Is a SuperTeletext link, ignore. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga2276e95c9c29f0799c4bc1b2b9641bdb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__Event.html#ga2276e95c9c29f0799c4bc1b2b9641bdb">vbi_itv_type</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>ITV link type. </p>
<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>. </p>

</div>
</div>
<a class="anchor" id="gafc47bd05db9e7b3a7a40a6224674c608"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__Event.html#gafc47bd05db9e7b3a7a40a6224674c608">vbi_subt</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Open subtitle information. </p>
<p>Open because they have been inserted into the picture, as opposed to closed subtitles (closed caption) encoded in the vbi. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ggafc47bd05db9e7b3a7a40a6224674c608ab8ef304a359640d59057f629c16e9aed"></a>VBI_SUBT_NONE&#160;</td><td class="fielddoc">
<p>No open subtitles. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggafc47bd05db9e7b3a7a40a6224674c608a441aa29ef068a7865a7c15088d7af118"></a>VBI_SUBT_ACTIVE&#160;</td><td class="fielddoc">
<p>Inserted in active picture. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggafc47bd05db9e7b3a7a40a6224674c608ab1ee678c3d231db4bdcb28863a191d0f"></a>VBI_SUBT_MATTE&#160;</td><td class="fielddoc">
<p>Inserted in upper or lower letterbox bar. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggafc47bd05db9e7b3a7a40a6224674c608ab25d29710cb3e0e5e4dc7f944ff04374"></a>VBI_SUBT_UNKNOWN&#160;</td><td class="fielddoc">
<p>Presence of open subtitles unknown. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga2161ae06b0573501ee4c312c872883c3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__Event.html#ga2161ae06b0573501ee4c312c872883c3">vbi_rating_auth</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Program rating source. </p>
<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#gab441e0708842b61fde1ae603ac225ac7">vbi_rating_string()</a>.</p>
<p>When the scheme is <code>VBI_RATING_TV_US</code>, additionally the DLSV rating flags will be set. </p>

</div>
</div>
<a class="anchor" id="ga1581b963ecd70492a82a4accf6cd1a28"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__Event.html#ga1581b963ecd70492a82a4accf6cd1a28">vbi_prog_classf</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Program classification schemes. </p>
<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#ga4fba17c7c5a541d2c280022cd90c5ca9">vbi_prog_type_string()</a>. </p>

</div>
</div>
<a class="anchor" id="gaa86d01c7115b8fb1ee2d6234d9b76085"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__Event.html#gaa86d01c7115b8fb1ee2d6234d9b76085">vbi_audio_mode</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Type of audio transmitted on one (mono or stereo) audio track. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ggaa86d01c7115b8fb1ee2d6234d9b76085a427215ca3e697883fe77da1f79cff337"></a>VBI_AUDIO_MODE_NONE&#160;</td><td class="fielddoc">
<p>No sound. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa86d01c7115b8fb1ee2d6234d9b76085ac7bd2b6bdf3fcc014219f627390fcc37"></a>VBI_AUDIO_MODE_MONO&#160;</td><td class="fielddoc">
<p>Mono audio. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa86d01c7115b8fb1ee2d6234d9b76085afcea578d3f2b46132eb06cef30ee3608"></a>VBI_AUDIO_MODE_STEREO&#160;</td><td class="fielddoc">
<p>Stereo audio. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa86d01c7115b8fb1ee2d6234d9b76085a7eab76890f0cd55ab347e5843aced44e"></a>VBI_AUDIO_MODE_STEREO_SURROUND&#160;</td><td class="fielddoc">
<p>Surround. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa86d01c7115b8fb1ee2d6234d9b76085afad9a704feb568b758fd7e62442d56c9"></a>VBI_AUDIO_MODE_SIMULATED_STEREO&#160;</td><td class="fielddoc">
<p>? </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa86d01c7115b8fb1ee2d6234d9b76085a3bf5f8f084051d6fed32cbd9ac01118c"></a>VBI_AUDIO_MODE_VIDEO_DESCRIPTIONS&#160;</td><td class="fielddoc">
<p>Spoken descriptions of the program for the blind, on a secondary audio track. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa86d01c7115b8fb1ee2d6234d9b76085ad56a5ff529b5a6874464072f528ba857"></a>VBI_AUDIO_MODE_NON_PROGRAM_AUDIO&#160;</td><td class="fielddoc">
<p>Unrelated to the current program. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa86d01c7115b8fb1ee2d6234d9b76085a6b2eefaefd33bdc6ac41861694c0199e"></a>VBI_AUDIO_MODE_SPECIAL_EFFECTS&#160;</td><td class="fielddoc">
<p>? </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa86d01c7115b8fb1ee2d6234d9b76085ac43981c29b691f8a7e15fd34f127f2f3"></a>VBI_AUDIO_MODE_DATA_SERVICE&#160;</td><td class="fielddoc">
<p>? </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggaa86d01c7115b8fb1ee2d6234d9b76085a3d6ef41acc5a5d2add6dbe2a4600b15d"></a>VBI_AUDIO_MODE_UNKNOWN&#160;</td><td class="fielddoc">
<p>We have no information what is transmitted. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga4fba17c7c5a541d2c280022cd90c5ca9"></a>
<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#ga1581b963ecd70492a82a4accf6cd1a28">vbi_prog_classf</a>&#160;</td>
          <td class="paramname"><em>classf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>id</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">classf</td><td>From vbi_program_info.type_classf. </td></tr>
    <tr><td class="paramname">id</td><td>From vbi_program_info.type_id.</td></tr>
  </table>
  </dd>
</dl>
<p>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="section return"><dt>Returns</dt><dd>Static pointer to the string (don't free()), or <code>NULL</code> if this code is undefined. </dd></dl>

</div>
</div>
<a class="anchor" id="gad875d1642007931ee27cb99563c29ec0"></a>
<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> *&#160;</td>
          <td class="paramname"><em>pi</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pi</td><td></td></tr>
  </table>
  </dd>
</dl>
<p>Convenience function to set a <a class="el" href="structvbi__program__info.html">vbi_program_info</a> structure to defaults. </p>

<p>References <a class="el" href="structvbi__aspect__ratio.html#a197262e5744b7a479c6f73b248d97f9b">vbi_aspect_ratio::film_mode</a>, <a class="el" href="structvbi__aspect__ratio.html#a267a0d6766bef01c441335cfc1123100">vbi_aspect_ratio::first_line</a>, <a class="el" href="structvbi__aspect__ratio.html#a4083e63f4561a8ce1192bd9ebf479ca3">vbi_aspect_ratio::open_subtitles</a>, <a class="el" href="structvbi__aspect__ratio.html#a80d437bf520678ca5e79767168fe7622">vbi_aspect_ratio::ratio</a>, <a class="el" href="group__Event.html#ggaa86d01c7115b8fb1ee2d6234d9b76085a3d6ef41acc5a5d2add6dbe2a4600b15d">VBI_AUDIO_MODE_UNKNOWN</a>, and <a class="el" href="group__Event.html#ggafc47bd05db9e7b3a7a40a6224674c608ab25d29710cb3e0e5e4dc7f944ff04374">VBI_SUBT_UNKNOWN</a>.</p>

</div>
</div>
<a class="anchor" id="gacd13f9d8a2d47a4393541b7411fe426a"></a>
<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"><a class="el" href="structvbi__decoder.html">vbi_decoder</a> *&#160;</td>
          <td class="paramname"><em>vbi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>event_mask</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vbi_event_handler&#160;</td>
          <td class="paramname"><em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vbi</td><td>Initialized vbi decoding context. </td></tr>
    <tr><td class="paramname">event_mask</td><td>Events the handler is waiting for. </td></tr>
    <tr><td class="paramname">handler</td><td>Event handler function. </td></tr>
    <tr><td class="paramname">user_data</td><td>Pointer passed to the handler.</td></tr>
  </table>
  </dd>
</dl>
<dl class="deprecated"><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#ga6692bb41583ca67af5701360f321e3d7">vbi_event_handler_register()</a> in new code.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>FALSE on failure. </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="examples_2network_8c-example.html#a19">examples/network.c</a>, and <a class="el" href="examples_2pdc1_8c-example.html#a28">examples/pdc1.c</a>.</dd>
</dl>
<p>Referenced by <a class="el" href="group__Event.html#gafe1402773aeb3b23243ba56949461ac6">vbi_event_handler_remove()</a>.</p>

</div>
</div>
<a class="anchor" id="gafe1402773aeb3b23243ba56949461ac6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vbi_event_handler_remove </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structvbi__decoder.html">vbi_decoder</a> *&#160;</td>
          <td class="paramname"><em>vbi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vbi_event_handler&#160;</td>
          <td class="paramname"><em>handler</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vbi</td><td>Initialized vbi decoding context. </td></tr>
    <tr><td class="paramname">handler</td><td>Event handler function.</td></tr>
  </table>
  </dd>
</dl>
<dl class="deprecated"><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#ga6692bb41583ca67af5701360f321e3d7">vbi_event_handler_register()</a> in new code. </dd></dl>

<p>References <a class="el" href="group__Event.html#gacd13f9d8a2d47a4393541b7411fe426a">vbi_event_handler_add()</a>.</p>

</div>
</div>
<a class="anchor" id="ga6692bb41583ca67af5701360f321e3d7"></a>
<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"><a class="el" href="structvbi__decoder.html">vbi_decoder</a> *&#160;</td>
          <td class="paramname"><em>vbi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>event_mask</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vbi_event_handler&#160;</td>
          <td class="paramname"><em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vbi</td><td>Initialized vbi decoding context. </td></tr>
    <tr><td class="paramname">event_mask</td><td>Events the handler is waiting for. </td></tr>
    <tr><td class="paramname">handler</td><td>Event handler function. </td></tr>
    <tr><td class="paramname">user_data</td><td>Pointer passed to the handler.</td></tr>
  </table>
  </dd>
</dl>
<p>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>
<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>
<p>This function can be safely called at any time, even from a handler.</p>
<dl class="section return"><dt>Returns</dt><dd><code>FALSE</code> on failure. </dd></dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="examples_2pdc2_8c-example.html#a41">examples/pdc2.c</a>.</dd>
</dl>
<p>Referenced by <a class="el" href="group__Event.html#ga66482e26705f140e24781e35cc661a01">vbi_event_handler_unregister()</a>.</p>

</div>
</div>
<a class="anchor" id="ga66482e26705f140e24781e35cc661a01"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vbi_event_handler_unregister </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structvbi__decoder.html">vbi_decoder</a> *&#160;</td>
          <td class="paramname"><em>vbi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">vbi_event_handler&#160;</td>
          <td class="paramname"><em>handler</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vbi</td><td>Initialized vbi decoding context. </td></tr>
    <tr><td class="paramname">handler</td><td>Event handler function. </td></tr>
    <tr><td class="paramname">user_data</td><td>Pointer passed to the handler.</td></tr>
  </table>
  </dd>
</dl>
<p>Unregisters an event handler.</p>
<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>
<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. </p>

<p>References <a class="el" href="group__Event.html#ga6692bb41583ca67af5701360f321e3d7">vbi_event_handler_register()</a>.</p>

<p>Referenced by <a class="el" href="group__Service.html#gab3f52f0b71746c9081c053a33cad7bce">vbi_decoder_delete()</a>.</p>

</div>
</div>
<a class="anchor" id="gab441e0708842b61fde1ae603ac225ac7"></a>
<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#ga2161ae06b0573501ee4c312c872883c3">vbi_rating_auth</a>&#160;</td>
          <td class="paramname"><em>auth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>id</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">auth</td><td>From vbi_program_info.rating_auth. </td></tr>
    <tr><td class="paramname">id</td><td>From vbi_program_info.rating_id.</td></tr>
  </table>
  </dd>
</dl>
<p>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>
<p><em>return</em> Static pointer to the string (don't free()), or <code>NULL</code> if this code is undefined. </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Oct 16 2014 08:52:23 for ZVBI Library by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>