1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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=11"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libkate: high.c</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 id="projectrow">
<td id="projectalign">
<div id="projectname">libkate<span id="projectnumber"> 0.4.3</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
$(function() {
initMenu('',false,false,'search.php','Search');
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">high.c</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><span class="comment">/*</span></div>
<div class="line"><span class="comment"> This shows how to use the high level decoding API to easily decode</span></div>
<div class="line"><span class="comment"> a Kate stream.</span></div>
<div class="line"><span class="comment"> For clarity, error checking is omitted.</span></div>
<div class="line"><span class="comment"> For simplicity, the input is assumed to be a single Kate stream.</span></div>
<div class="line"><span class="comment"> Usually, Kate streams will be multiplexed with other streams (either</span></div>
<div class="line"><span class="comment"> other Kate streams, or audio, or video). In these cases, the Ogg</span></div>
<div class="line"><span class="comment"> part will have to be more complex, but the Kate specific code will</span></div>
<div class="line"><span class="comment"> be the same.</span></div>
<div class="line"><span class="comment"> */</span></div>
<div class="line"> </div>
<div class="line"><span class="preprocessor">#include <stdio.h></span></div>
<div class="line"><span class="preprocessor">#include <string.h></span></div>
<div class="line"><span class="preprocessor">#include <ogg/ogg.h></span></div>
<div class="line"><span class="preprocessor">#include "common.h"</span></div>
<div class="line"> </div>
<div class="line"><span class="comment">/* All the libkate API is available from the main kate header file: */</span></div>
<div class="line"> </div>
<div class="line"><span class="preprocessor">#include <<a class="code" href="kate_8h.html">kate/kate.h</a>></span></div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">int</span> main()</div>
<div class="line">{</div>
<div class="line"> ogg_sync_state oy;</div>
<div class="line"> ogg_stream_state os;</div>
<div class="line"> <span class="keywordtype">int</span> init=0;</div>
<div class="line"> ogg_packet op;</div>
<div class="line"> <a id="_a0" name="_a0"></a><a class="code hl_struct" href="structkate__state.html">kate_state</a> k;</div>
<div class="line"> <span class="keyword">const</span> <a id="_a1" name="_a1"></a><a class="code hl_struct" href="structkate__event.html">kate_event</a> *ev;</div>
<div class="line"> <a id="_a2" name="_a2"></a><a class="code hl_struct" href="structkate__packet.html">kate_packet</a> kp;</div>
<div class="line"> </div>
<div class="line"> <span class="comment">/* for the benefit of windows, which mangles data otherwise */</span></div>
<div class="line"> set_binary_file(stdin);</div>
<div class="line"> </div>
<div class="line"> <span class="comment">/* we initialize ogg and the kate state */</span></div>
<div class="line"> ogg_sync_init(&oy);</div>
<div class="line"> <span class="keywordtype">int</span> ret=<a id="a3" name="a3"></a><a class="code hl_function" href="group__high.html#ga810984fb4ec910632c250672d39feee4">kate_high_decode_init</a>(&k);</div>
<div class="line"> </div>
<div class="line"> <span class="comment">/*</span></div>
<div class="line"><span class="comment"> We then read packets and feed them to the libkate high level API. When</span></div>
<div class="line"><span class="comment"> kate_high_decode_packetin returns a positive number, this signals the</span></div>
<div class="line"><span class="comment"> end of the stream.</span></div>
<div class="line"><span class="comment"> */</span></div>
<div class="line"> <span class="keywordflow">while</span> (1) {</div>
<div class="line"> <span class="keywordflow">if</span> (get_packet(&oy,&os,&init,&op)) <span class="keywordflow">break</span>;</div>
<div class="line"> <a id="a4" name="a4"></a><a class="code hl_function" href="group__packet.html#ga7c0c2af28df8ea89f5f62e830dc916b1">kate_packet_wrap</a>(&kp,op.bytes,op.packet);</div>
<div class="line"> <span class="keywordflow">if</span> (<a id="a5" name="a5"></a><a class="code hl_function" href="group__high.html#ga4c9bac57e090c34e778b6f080cd4df82">kate_high_decode_packetin</a>(&k,&kp,&ev)>0) <span class="keywordflow">break</span>;</div>
<div class="line"> <span class="comment">/* if the event is non NULL, we have an event */</span></div>
<div class="line"> <span class="keywordflow">if</span> (ev) {</div>
<div class="line"> printf(<span class="stringliteral">"Kate stream has text: %s\n"</span>,ev-><a id="a6" name="a6"></a><a class="code hl_variable" href="structkate__event.html#ae10745a5078521816cc07a09654fbfd4">text</a>);</div>
<div class="line"> }</div>
<div class="line"> }</div>
<div class="line"> </div>
<div class="line"> <span class="comment">/* That's it, we can now cleanup */</span></div>
<div class="line"> ogg_stream_clear(&os);</div>
<div class="line"> ogg_sync_clear(&oy);</div>
<div class="line"> </div>
<div class="line"> <a id="a7" name="a7"></a><a class="code hl_function" href="group__high.html#ga8faebcd4839fb5a2bced259f8560f47f">kate_high_decode_clear</a>(&k);</div>
<div class="line"> </div>
<div class="line"> <span class="keywordflow">return</span> 0;</div>
<div class="line">}</div>
<div class="line"> </div>
<div class="ttc" id="agroup__high_html_ga4c9bac57e090c34e778b6f080cd4df82"><div class="ttname"><a href="group__high.html#ga4c9bac57e090c34e778b6f080cd4df82">kate_high_decode_packetin</a></div><div class="ttdeci">int kate_high_decode_packetin(kate_state *k, kate_packet *kp, kate_const kate_event **ev)</div><div class="ttdef"><b>Definition:</b> kate_high.c:85</div></div>
<div class="ttc" id="agroup__high_html_ga810984fb4ec910632c250672d39feee4"><div class="ttname"><a href="group__high.html#ga810984fb4ec910632c250672d39feee4">kate_high_decode_init</a></div><div class="ttdeci">int kate_high_decode_init(kate_state *k)</div><div class="ttdef"><b>Definition:</b> kate_high.c:27</div></div>
<div class="ttc" id="agroup__high_html_ga8faebcd4839fb5a2bced259f8560f47f"><div class="ttname"><a href="group__high.html#ga8faebcd4839fb5a2bced259f8560f47f">kate_high_decode_clear</a></div><div class="ttdeci">int kate_high_decode_clear(kate_state *k)</div><div class="ttdef"><b>Definition:</b> kate_high.c:123</div></div>
<div class="ttc" id="agroup__packet_html_ga7c0c2af28df8ea89f5f62e830dc916b1"><div class="ttname"><a href="group__packet.html#ga7c0c2af28df8ea89f5f62e830dc916b1">kate_packet_wrap</a></div><div class="ttdeci">int kate_packet_wrap(kate_packet *kp, size_t nbytes, const void *data)</div><div class="ttdef"><b>Definition:</b> kate_packet.c:30</div></div>
<div class="ttc" id="akate_8h_html"><div class="ttname"><a href="kate_8h.html">kate.h</a></div></div>
<div class="ttc" id="astructkate__event_html"><div class="ttname"><a href="structkate__event.html">kate_event</a></div><div class="ttdef"><b>Definition:</b> kate.h:358</div></div>
<div class="ttc" id="astructkate__event_html_ae10745a5078521816cc07a09654fbfd4"><div class="ttname"><a href="structkate__event.html#ae10745a5078521816cc07a09654fbfd4">kate_event::text</a></div><div class="ttdeci">kate_const char * text</div><div class="ttdef"><b>Definition:</b> kate.h:371</div></div>
<div class="ttc" id="astructkate__packet_html"><div class="ttname"><a href="structkate__packet.html">kate_packet</a></div><div class="ttdef"><b>Definition:</b> kate.h:526</div></div>
<div class="ttc" id="astructkate__state_html"><div class="ttname"><a href="structkate__state.html">kate_state</a></div><div class="ttdef"><b>Definition:</b> kate.h:336</div></div>
</div><!-- fragment --> </div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>
|