File: high_8c-example.html

package info (click to toggle)
libkate 0.4.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 5,680 kB
  • sloc: ansic: 11,059; sh: 4,930; yacc: 2,358; python: 767; javascript: 407; lex: 363; makefile: 263
file content (121 lines) | stat: -rw-r--r-- 9,407 bytes parent folder | download
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">&#160;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&amp;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 &lt;stdio.h&gt;</span></div>
<div class="line"><span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><span class="preprocessor">#include &lt;ogg/ogg.h&gt;</span></div>
<div class="line"><span class="preprocessor">#include &quot;common.h&quot;</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 &lt;<a class="code" href="kate_8h.html">kate/kate.h</a>&gt;</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(&amp;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>(&amp;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(&amp;oy,&amp;os,&amp;init,&amp;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>(&amp;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>(&amp;k,&amp;kp,&amp;ev)&gt;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">&quot;Kate stream has text: %s\n&quot;</span>,ev-&gt;<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&#39;s it, we can now cleanup */</span></div>
<div class="line">  ogg_stream_clear(&amp;os);</div>
<div class="line">  ogg_sync_clear(&amp;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>(&amp;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&#160;<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>