<!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.11"/> <title>ZVBI Library: Cache</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 id="projectalign" style="padding-left: 0.5em;"> <div id="projectname">ZVBI Library  <span id="projectnumber">0.2.35</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.11 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li class="current"><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data 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="#groups">Modules</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">Cache</div> </div> </div><!--header--> <div class="contents"> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a> Modules</h2></td></tr> <tr class="memitem:group__Search"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Search.html">Search</a></td></tr> <tr class="memdesc:group__Search"><td class="mdescLeft"> </td><td class="mdescRight">Search the Teletext page cache. <br /></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </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:gaf22bf32b5027d5c5d34d615bc22896a3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Cache.html#gaf22bf32b5027d5c5d34d615bc22896a3">vbi_unref_page</a> (<a class="el" href="structvbi__page.html">vbi_page</a> *pg)</td></tr> <tr class="separator:gaf22bf32b5027d5c5d34d615bc22896a3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6bef9040725203946cd78656319c3f23"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Cache.html#ga6bef9040725203946cd78656319c3f23">vbi_is_cached</a> (<a class="el" href="structvbi__decoder.html">vbi_decoder</a> *, int pgno, int subno)</td></tr> <tr class="separator:ga6bef9040725203946cd78656319c3f23"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4acead5ea36aa202d79c097f4cfa74eb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Cache.html#ga4acead5ea36aa202d79c097f4cfa74eb">vbi_cache_hi_subno</a> (<a class="el" href="structvbi__decoder.html">vbi_decoder</a> *vbi, int pgno)</td></tr> <tr class="separator:ga4acead5ea36aa202d79c097f4cfa74eb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7569e113defe7ccfdebd396691a696f6"><td class="memItemLeft" align="right" valign="top">vbi_bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__Cache.html#ga7569e113defe7ccfdebd396691a696f6">vbi_fetch_cc_page</a> (<a class="el" href="structvbi__decoder.html">vbi_decoder</a> *vbi, <a class="el" href="structvbi__page.html">vbi_page</a> *pg, <a class="el" href="group__HiDec.html#ga8711c9b42b61d518b7f79e941fe94eb1">vbi_pgno</a> pgno, vbi_bool reset)</td></tr> <tr class="separator:ga7569e113defe7ccfdebd396691a696f6"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="gaf22bf32b5027d5c5d34d615bc22896a3"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void vbi_unref_page </td> <td>(</td> <td class="paramtype"><a class="el" href="structvbi__page.html">vbi_page</a> * </td> <td class="paramname"><em>pg</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">pg</td><td>Previously fetched <a class="el" href="structvbi__page.html" title="Formatted Teletext or Closed Caption page. ">vbi_page</a>.</td></tr> </table> </dd> </dl> <p>A <a class="el" href="structvbi__page.html" title="Formatted Teletext or Closed Caption page. ">vbi_page</a> fetched from cache with vbi_fetch_vt_page() or <a class="el" href="group__Cache.html#ga7569e113defe7ccfdebd396691a696f6">vbi_fetch_cc_page()</a> may reference other resource in cache which are locked after fetching. When done processing the page, you must call this function to unlock all the resources associated with this <a class="el" href="structvbi__page.html" title="Formatted Teletext or Closed Caption page. ">vbi_page</a>. </p> <p>References <a class="el" href="structttx__page__stat.html#af64edd9e6fdf2808345a37d0371a2720">ttx_page_stat::n_subpages</a>, <a class="el" href="structttx__page__stat.html#a1331996279ff4a8689845e890cda1720">ttx_page_stat::page_type</a>, <a class="el" href="structttx__page__stat.html#acb4f26316a088af27580ef49b3c26a5f">ttx_page_stat::subno_min</a>, <a class="el" href="group__BCD.html#ga23963822415da5f4516a5a61113106d1">vbi_bcd_digits_greater()</a>, <a class="el" href="group__BCD.html#ga557e0e23dd907e1aa77e8b2112b43d5c">vbi_is_bcd()</a>, and <a class="el" href="group__Basic.html#ga892c64da1c60919512f0c4db6641a708">vbi_log_on_stderr()</a>.</p> </div> </div> <a class="anchor" id="ga6bef9040725203946cd78656319c3f23"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int vbi_is_cached </td> <td>(</td> <td class="paramtype"><a class="el" href="structvbi__decoder.html">vbi_decoder</a> * </td> <td class="paramname"><em>vbi</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>pgno</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>subno</em> </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></td></tr> <tr><td class="paramname">pgno</td><td></td></tr> <tr><td class="paramname">subno</td><td></td></tr> </table> </dd> </dl> <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000008">Deprecated:</a></b></dt><dd>At the moment pages can only be added to the cache but not removed unless the decoder is reset. That will change, making the result volatile in a multithreaded environment.</dd></dl> <dl class="section return"><dt>Returns</dt><dd><code>TRUE</code> if the given page is cached. </dd></dl> </div> </div> <a class="anchor" id="ga4acead5ea36aa202d79c097f4cfa74eb"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int vbi_cache_hi_subno </td> <td>(</td> <td class="paramtype"><a class="el" href="structvbi__decoder.html">vbi_decoder</a> * </td> <td class="paramname"><em>vbi</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>pgno</em> </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></td></tr> <tr><td class="paramname">pgno</td><td></td></tr> </table> </dd> </dl> <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000009">Deprecated:</a></b></dt><dd>Rationale same as <a class="el" href="group__Cache.html#ga6bef9040725203946cd78656319c3f23">vbi_is_cached()</a>.</dd></dl> <dl class="section return"><dt>Returns</dt><dd>Highest cached subpage of this page. </dd></dl> </div> </div> <a class="anchor" id="ga7569e113defe7ccfdebd396691a696f6"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">vbi_bool vbi_fetch_cc_page </td> <td>(</td> <td class="paramtype"><a class="el" href="structvbi__decoder.html">vbi_decoder</a> * </td> <td class="paramname"><em>vbi</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structvbi__page.html">vbi_page</a> * </td> <td class="paramname"><em>pg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__HiDec.html#ga8711c9b42b61d518b7f79e941fe94eb1">vbi_pgno</a> </td> <td class="paramname"><em>pgno</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">vbi_bool </td> <td class="paramname"><em>reset</em> </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">pg</td><td>Place to store the formatted page. </td></tr> <tr><td class="paramname">pgno</td><td>Page number 1 ... 8 of the page to fetch, see vbi_pgno. </td></tr> <tr><td class="paramname">reset</td><td><code>TRUE</code> resets the <a class="el" href="structvbi__page.html" title="Formatted Teletext or Closed Caption page. ">vbi_page</a> dirty fields in cache after fetching. Pass <code>FALSE</code> only if you plan to call this function again to update other displays.</td></tr> </table> </dd> </dl> <p>Fetches a Closed Caption page designated by <em>pgno</em> from the cache, formats and stores it in <em>pg</em>. CC pages are transmitted basically in two modes: at once and character by character ("roll-up" mode). Either way you get a snapshot of the page as it should appear on screen at present. With <a class="el" href="group__Event.html#gacd13f9d8a2d47a4393541b7411fe426a">vbi_event_handler_add()</a> you can request a <code>VBI_EVENT_CAPTION</code> event to be notified about pending changes (in case of "roll-up" mode that is with each new word received) and the vbi_page->dirty fields will mark the lines actually in need of updates, to speed up rendering.</p> <p>Although safe to do, this function is not supposed to be called from an event handler, since rendering may block decoding for extended periods of time.</p> <dl class="section return"><dt>Returns</dt><dd><code>FALSE</code> if some error occured. </dd></dl> <p>References <a class="el" href="structvbi__page.html#a1179adb0490c7f177db981f546db00b2">vbi_page::dirty</a>.</p> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.11 </small></address> </body> </html>