~ubuntu-branches/ubuntu/precise/liboggz/precise

« back to all changes in this revision

Viewing changes to doc/liboggz/html/oggz__io_8h.html

  • Committer: Bazaar Package Importer
  • Author(s): Jamie Wilkinson
  • Date: 2005-04-16 01:19:44 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 hoary)
  • Revision ID: james.westby@ubuntu.com-20050416011944-5ipwrrc260ihkpp8
Tags: 0.9.1-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
<title>liboggz: oggz_io.h File Reference</title>
4
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
5
</head><body>
6
 
<!-- Generated by Doxygen 1.3.5 -->
7
 
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="globals.html">Globals</a></div>
 
6
<!-- Generated by Doxygen 1.4.0 -->
 
7
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="globals.html">Globals</a></div>
 
8
<div class="nav">
 
9
<a class="el" href="dir_000000.html">include</a>&nbsp;/&nbsp;<a class="el" href="dir_000001.html">oggz</a></div>
8
10
<h1>oggz_io.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
9
11
Overriding the functions used for input and output of raw data. 
10
12
<p>
11
13
OggzIO provides a way of overriding the functions Oggz uses to access its raw input or output data. This is required in many situations where the raw stream cannot be accessed via stdio, but can be accessed by other means. This is typically useful within media frameworks, where accessing and moving around in the data is possible only using methods provided by the framework.<p>
12
 
The functions you provide for overriding IO will be used by Oggz whenever you call <a class="el" href="group__read__api.html#ga2">oggz_read()</a> or <a class="el" href="group__write__api.html#ga4">oggz_write()</a>. They will also be used repeatedly by Oggz when you call <a class="el" href="group__seek__api.html#ga8">oggz_seek()</a>.<p>
13
 
<dl compact><dt><b>Note:</b></dt><dd>Opening a file with <a class="el" href="oggz_8h.html#a5">oggz_open()</a> or <a class="el" href="oggz_8h.html#a6">oggz_open_stdio()</a> is equivalent to calling <a class="el" href="oggz_8h.html#a4">oggz_new()</a> and setting stdio based functions for data IO.</dd></dl>
14
 
 
15
 
<p>
16
 
 
17
 
<p>
18
 
<a href="oggz__io_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
 
14
The functions you provide for overriding IO will be used by Oggz whenever you call <a class="el" href="group__read__api.html#ga4">oggz_read()</a> or <a class="el" href="group__write__api.html#ga4">oggz_write()</a>. They will also be used repeatedly by Oggz when you call <a class="el" href="group__seek__api.html#ga3">oggz_seek()</a>.<p>
 
15
<dl compact><dt><b>Note:</b></dt><dd>Opening a file with <a class="el" href="oggz_8h.html#a2">oggz_open()</a> or <a class="el" href="oggz_8h.html#a3">oggz_open_stdio()</a> is equivalent to calling <a class="el" href="oggz_8h.html#a1">oggz_new()</a> and setting stdio based functions for data IO.</dd></dl>
 
16
 
 
17
<p>
 
18
 
 
19
<p>
 
20
<a href="oggz__io_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
19
21
<tr><td></td></tr>
20
 
<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
21
 
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef size_t(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a0">OggzIORead</a> )(void *user_handle, void *buf, size_t n)</td></tr>
22
 
 
23
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to acquire raw input data.  <a href="#a0"></a><br><br></td></tr>
24
 
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef size_t(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a1">OggzIOWrite</a> )(void *user_handle, void *buf, size_t n)</td></tr>
25
 
 
26
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to output raw data.  <a href="#a1"></a><br><br></td></tr>
27
 
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef int(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a2">OggzIOSeek</a> )(void *user_handle, long offset, int whence)</td></tr>
28
 
 
29
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to seek on the raw input or output data.  <a href="#a2"></a><br><br></td></tr>
30
 
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef long(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a3">OggzIOTell</a> )(void *user_handle)</td></tr>
31
 
 
32
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to determine the current offset of the raw input or output data.  <a href="#a3"></a><br><br></td></tr>
33
 
<tr><td class="memItemLeft" nowrap align=right valign=top>typedef int(*&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a4">OggzIOFlush</a> )(void *user_handle)</td></tr>
34
 
 
35
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to flush the output data.  <a href="#a4"></a><br><br></td></tr>
36
 
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
37
 
<tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a5">oggz_io_set_read</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#a0">OggzIORead</a> read, void *user_handle)</td></tr>
38
 
 
39
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to read input data.  <a href="#a5"></a><br><br></td></tr>
40
 
<tr><td class="memItemLeft" nowrap align=right valign=top>void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a6">oggz_io_get_read_user_handle</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz)</td></tr>
41
 
 
42
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for reading input data.  <a href="#a6"></a><br><br></td></tr>
43
 
<tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a7">oggz_io_set_write</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#a1">OggzIOWrite</a> write, void *user_handle)</td></tr>
44
 
 
45
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to write output data.  <a href="#a7"></a><br><br></td></tr>
46
 
<tr><td class="memItemLeft" nowrap align=right valign=top>void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a8">oggz_io_get_write_user_handle</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz)</td></tr>
47
 
 
48
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for writing output data.  <a href="#a8"></a><br><br></td></tr>
49
 
<tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a9">oggz_io_set_seek</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#a2">OggzIOSeek</a> seek, void *user_handle)</td></tr>
50
 
 
51
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to seek on its raw data.  <a href="#a9"></a><br><br></td></tr>
52
 
<tr><td class="memItemLeft" nowrap align=right valign=top>void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a10">oggz_io_get_seek_user_handle</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz)</td></tr>
53
 
 
54
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for seeking on input or output data.  <a href="#a10"></a><br><br></td></tr>
55
 
<tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a11">oggz_io_set_tell</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#a3">OggzIOTell</a> tell, void *user_handle)</td></tr>
56
 
 
57
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to determine the offset within its input data (if OGGZ_READ) or output data (if OGGZ_WRITE).  <a href="#a11"></a><br><br></td></tr>
58
 
<tr><td class="memItemLeft" nowrap align=right valign=top>void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a12">oggz_io_get_tell_user_handle</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz)</td></tr>
59
 
 
60
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for determining the current offset in input or output data.  <a href="#a12"></a><br><br></td></tr>
61
 
<tr><td class="memItemLeft" nowrap align=right valign=top>int&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a13">oggz_io_set_flush</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#a4">OggzIOFlush</a> flush, void *user_handle)</td></tr>
62
 
 
63
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to flush its output.  <a href="#a13"></a><br><br></td></tr>
64
 
<tr><td class="memItemLeft" nowrap align=right valign=top>void *&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="oggz__io_8h.html#a14">oggz_io_get_flush_user_handle</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz)</td></tr>
65
 
 
66
 
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for flushing output.  <a href="#a14"></a><br><br></td></tr>
 
22
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
 
23
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef size_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a0">OggzIORead</a> )(void *user_handle, void *buf, size_t n)</td></tr>
 
24
 
 
25
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to acquire raw input data.  <a href="#a0"></a><br></td></tr>
 
26
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef size_t(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a1">OggzIOWrite</a> )(void *user_handle, void *buf, size_t n)</td></tr>
 
27
 
 
28
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to output raw data.  <a href="#a1"></a><br></td></tr>
 
29
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a2">OggzIOSeek</a> )(void *user_handle, long offset, int whence)</td></tr>
 
30
 
 
31
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to seek on the raw input or output data.  <a href="#a2"></a><br></td></tr>
 
32
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef long(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a3">OggzIOTell</a> )(void *user_handle)</td></tr>
 
33
 
 
34
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to determine the current offset of the raw input or output data.  <a href="#a3"></a><br></td></tr>
 
35
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef int(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a4">OggzIOFlush</a> )(void *user_handle)</td></tr>
 
36
 
 
37
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This is the signature of a function which you provide for Oggz to call when it needs to flush the output data.  <a href="#a4"></a><br></td></tr>
 
38
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
 
39
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a5">oggz_io_set_read</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#a0">OggzIORead</a> read, void *user_handle)</td></tr>
 
40
 
 
41
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to read input data.  <a href="#a5"></a><br></td></tr>
 
42
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a6">oggz_io_get_read_user_handle</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz)</td></tr>
 
43
 
 
44
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for reading input data.  <a href="#a6"></a><br></td></tr>
 
45
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a7">oggz_io_set_write</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#a1">OggzIOWrite</a> write, void *user_handle)</td></tr>
 
46
 
 
47
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to write output data.  <a href="#a7"></a><br></td></tr>
 
48
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a8">oggz_io_get_write_user_handle</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz)</td></tr>
 
49
 
 
50
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for writing output data.  <a href="#a8"></a><br></td></tr>
 
51
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a9">oggz_io_set_seek</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#a2">OggzIOSeek</a> seek, void *user_handle)</td></tr>
 
52
 
 
53
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to seek on its raw data.  <a href="#a9"></a><br></td></tr>
 
54
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a10">oggz_io_get_seek_user_handle</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz)</td></tr>
 
55
 
 
56
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for seeking on input or output data.  <a href="#a10"></a><br></td></tr>
 
57
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a11">oggz_io_set_tell</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#a3">OggzIOTell</a> tell, void *user_handle)</td></tr>
 
58
 
 
59
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to determine the offset within its input data (if OGGZ_READ) or output data (if OGGZ_WRITE).  <a href="#a11"></a><br></td></tr>
 
60
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a12">oggz_io_get_tell_user_handle</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz)</td></tr>
 
61
 
 
62
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for determining the current offset in input or output data.  <a href="#a12"></a><br></td></tr>
 
63
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a13">oggz_io_set_flush</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz, <a class="el" href="oggz__io_8h.html#a4">OggzIOFlush</a> flush, void *user_handle)</td></tr>
 
64
 
 
65
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set a function for Oggz to call when it needs to flush its output.  <a href="#a13"></a><br></td></tr>
 
66
<tr><td class="memItemLeft" nowrap align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="oggz__io_8h.html#a14">oggz_io_get_flush_user_handle</a> (<a class="el" href="oggz_8h.html#a0">OGGZ</a> *oggz)</td></tr>
 
67
 
 
68
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the user_handle associated with the function you have provided for flushing output.  <a href="#a14"></a><br></td></tr>
67
69
</table>
68
70
<hr><h2>Typedef Documentation</h2>
69
 
<a class="anchor" name="a4" doxytag="oggz_io.h::OggzIOFlush" ></a><p>
70
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
71
<a class="anchor" name="a4" doxytag="oggz_io.h::OggzIOFlush"></a><p>
 
72
<table class="mdTable" cellpadding="2" cellspacing="0">
71
73
  <tr>
72
74
    <td class="mdRow">
73
75
      <table cellpadding="0" cellspacing="0" border="0">
74
76
        <tr>
75
 
          <td class="md" nowrap valign="top"> typedef int(* <a class="el" href="oggz__io_8h.html#a4">OggzIOFlush</a>)(void * user_handle)
 
77
          <td class="md" nowrap valign="top">typedef int(* <a class="el" href="oggz__io_8h.html#a4">OggzIOFlush</a>)(void *user_handle)          </td>
 
78
        </tr>
76
79
      </table>
77
80
    </td>
78
81
  </tr>
79
82
</table>
80
 
<table cellspacing=5 cellpadding=0 border=0>
 
83
<table cellspacing="5" cellpadding="0" border="0">
81
84
  <tr>
82
85
    <td>
83
86
      &nbsp;
90
93
The behaviour of this function is similar to that of fflush() in stdio.<p>
91
94
<dl compact><dt><b>Parameters:</b></dt><dd>
92
95
  <table border="0" cellspacing="2" cellpadding="0">
93
 
    <tr><td valign=top><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
 
96
    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
94
97
  </table>
95
98
</dl>
96
99
<dl compact><dt><b>Return values:</b></dt><dd>
97
100
  <table border="0" cellspacing="2" cellpadding="0">
98
 
    <tr><td valign=top><em>0</em>&nbsp;</td><td>Success </td></tr>
99
 
    <tr><td valign=top><em>&lt;  0</em>&nbsp;</td><td>An error condition </td></tr>
 
101
    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
 
102
    <tr><td valign="top"></td><td valign="top"><em>&lt;  0</em>&nbsp;</td><td>An error condition </td></tr>
100
103
  </table>
101
104
</dl>
102
105
    </td>
103
106
  </tr>
104
107
</table>
105
 
<a class="anchor" name="a0" doxytag="oggz_io.h::OggzIORead" ></a><p>
106
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
108
<a class="anchor" name="a0" doxytag="oggz_io.h::OggzIORead"></a><p>
 
109
<table class="mdTable" cellpadding="2" cellspacing="0">
107
110
  <tr>
108
111
    <td class="mdRow">
109
112
      <table cellpadding="0" cellspacing="0" border="0">
110
113
        <tr>
111
 
          <td class="md" nowrap valign="top"> typedef size_t(* <a class="el" href="oggz__io_8h.html#a0">OggzIORead</a>)(void * user_handle, void * buf, size_t n)
 
114
          <td class="md" nowrap valign="top">typedef size_t(* <a class="el" href="oggz__io_8h.html#a0">OggzIORead</a>)(void *user_handle, void *buf, size_t n)          </td>
 
115
        </tr>
112
116
      </table>
113
117
    </td>
114
118
  </tr>
115
119
</table>
116
 
<table cellspacing=5 cellpadding=0 border=0>
 
120
<table cellspacing="5" cellpadding="0" border="0">
117
121
  <tr>
118
122
    <td>
119
123
      &nbsp;
125
129
<p>
126
130
<dl compact><dt><b>Parameters:</b></dt><dd>
127
131
  <table border="0" cellspacing="2" cellpadding="0">
128
 
    <tr><td valign=top><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
129
 
    <tr><td valign=top><em>n</em>&nbsp;</td><td>The length in bytes that Oggz wants to read </td></tr>
130
 
    <tr><td valign=top><em>buf</em>&nbsp;</td><td>The buffer that you read data into </td></tr>
 
132
    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
 
133
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>The length in bytes that Oggz wants to read </td></tr>
 
134
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>The buffer that you read data into </td></tr>
131
135
  </table>
132
136
</dl>
133
137
<dl compact><dt><b>Return values:</b></dt><dd>
134
138
  <table border="0" cellspacing="2" cellpadding="0">
135
 
    <tr><td valign=top><em>&gt;  0</em>&nbsp;</td><td>The number of bytes successfully read into the buffer </td></tr>
136
 
    <tr><td valign=top><em>0</em>&nbsp;</td><td>to indicate that there is no more data to read (End of file) </td></tr>
137
 
    <tr><td valign=top><em>&lt;  0</em>&nbsp;</td><td>An error condition </td></tr>
 
139
    <tr><td valign="top"></td><td valign="top"><em>&gt;  0</em>&nbsp;</td><td>The number of bytes successfully read into the buffer </td></tr>
 
140
    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>to indicate that there is no more data to read (End of file) </td></tr>
 
141
    <tr><td valign="top"></td><td valign="top"><em>&lt;  0</em>&nbsp;</td><td>An error condition </td></tr>
138
142
  </table>
139
143
</dl>
140
144
    </td>
141
145
  </tr>
142
146
</table>
143
 
<a class="anchor" name="a2" doxytag="oggz_io.h::OggzIOSeek" ></a><p>
144
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
147
<a class="anchor" name="a2" doxytag="oggz_io.h::OggzIOSeek"></a><p>
 
148
<table class="mdTable" cellpadding="2" cellspacing="0">
145
149
  <tr>
146
150
    <td class="mdRow">
147
151
      <table cellpadding="0" cellspacing="0" border="0">
148
152
        <tr>
149
 
          <td class="md" nowrap valign="top"> typedef int(* <a class="el" href="oggz__io_8h.html#a2">OggzIOSeek</a>)(void * user_handle, long offset, int whence)
 
153
          <td class="md" nowrap valign="top">typedef int(* <a class="el" href="oggz__io_8h.html#a2">OggzIOSeek</a>)(void *user_handle, long offset, int whence)          </td>
 
154
        </tr>
150
155
      </table>
151
156
    </td>
152
157
  </tr>
153
158
</table>
154
 
<table cellspacing=5 cellpadding=0 border=0>
 
159
<table cellspacing="5" cellpadding="0" border="0">
155
160
  <tr>
156
161
    <td>
157
162
      &nbsp;
163
168
<p>
164
169
<dl compact><dt><b>Parameters:</b></dt><dd>
165
170
  <table border="0" cellspacing="2" cellpadding="0">
166
 
    <tr><td valign=top><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
167
 
    <tr><td valign=top><em>offset</em>&nbsp;</td><td>The offset in bytes to seek to </td></tr>
168
 
    <tr><td valign=top><em>whence</em>&nbsp;</td><td>SEEK_SET, SEEK_CUR or SEEK_END (as for stdio.h) </td></tr>
 
171
    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
 
172
    <tr><td valign="top"></td><td valign="top"><em>offset</em>&nbsp;</td><td>The offset in bytes to seek to </td></tr>
 
173
    <tr><td valign="top"></td><td valign="top"><em>whence</em>&nbsp;</td><td>SEEK_SET, SEEK_CUR or SEEK_END (as for stdio.h) </td></tr>
169
174
  </table>
170
175
</dl>
171
176
<dl compact><dt><b>Return values:</b></dt><dd>
172
177
  <table border="0" cellspacing="2" cellpadding="0">
173
 
    <tr><td valign=top><em>&gt;= 0</em>&nbsp;</td><td>The offset seeked to </td></tr>
174
 
    <tr><td valign=top><em>&lt;  0</em>&nbsp;</td><td>An error condition</td></tr>
 
178
    <tr><td valign="top"></td><td valign="top"><em>&gt;= 0</em>&nbsp;</td><td>The offset seeked to </td></tr>
 
179
    <tr><td valign="top"></td><td valign="top"><em>&lt;  0</em>&nbsp;</td><td>An error condition</td></tr>
175
180
  </table>
176
181
</dl>
177
182
<dl compact><dt><b>Note:</b></dt><dd>If you provide an OggzIOSeek function, you MUST also provide an OggzIOTell function, or else all your seeks will fail. </dd></dl>
178
183
    </td>
179
184
  </tr>
180
185
</table>
181
 
<a class="anchor" name="a3" doxytag="oggz_io.h::OggzIOTell" ></a><p>
182
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
186
<a class="anchor" name="a3" doxytag="oggz_io.h::OggzIOTell"></a><p>
 
187
<table class="mdTable" cellpadding="2" cellspacing="0">
183
188
  <tr>
184
189
    <td class="mdRow">
185
190
      <table cellpadding="0" cellspacing="0" border="0">
186
191
        <tr>
187
 
          <td class="md" nowrap valign="top"> typedef long(* <a class="el" href="oggz__io_8h.html#a3">OggzIOTell</a>)(void * user_handle)
 
192
          <td class="md" nowrap valign="top">typedef long(* <a class="el" href="oggz__io_8h.html#a3">OggzIOTell</a>)(void *user_handle)          </td>
 
193
        </tr>
188
194
      </table>
189
195
    </td>
190
196
  </tr>
191
197
</table>
192
 
<table cellspacing=5 cellpadding=0 border=0>
 
198
<table cellspacing="5" cellpadding="0" border="0">
193
199
  <tr>
194
200
    <td>
195
201
      &nbsp;
201
207
<p>
202
208
<dl compact><dt><b>Parameters:</b></dt><dd>
203
209
  <table border="0" cellspacing="2" cellpadding="0">
204
 
    <tr><td valign=top><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
 
210
    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
205
211
  </table>
206
212
</dl>
207
213
<dl compact><dt><b>Return values:</b></dt><dd>
208
214
  <table border="0" cellspacing="2" cellpadding="0">
209
 
    <tr><td valign=top><em>&gt;= 0</em>&nbsp;</td><td>The offset </td></tr>
210
 
    <tr><td valign=top><em>&lt;  0</em>&nbsp;</td><td>An error condition </td></tr>
 
215
    <tr><td valign="top"></td><td valign="top"><em>&gt;= 0</em>&nbsp;</td><td>The offset </td></tr>
 
216
    <tr><td valign="top"></td><td valign="top"><em>&lt;  0</em>&nbsp;</td><td>An error condition </td></tr>
211
217
  </table>
212
218
</dl>
213
219
    </td>
214
220
  </tr>
215
221
</table>
216
 
<a class="anchor" name="a1" doxytag="oggz_io.h::OggzIOWrite" ></a><p>
217
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
222
<a class="anchor" name="a1" doxytag="oggz_io.h::OggzIOWrite"></a><p>
 
223
<table class="mdTable" cellpadding="2" cellspacing="0">
218
224
  <tr>
219
225
    <td class="mdRow">
220
226
      <table cellpadding="0" cellspacing="0" border="0">
221
227
        <tr>
222
 
          <td class="md" nowrap valign="top"> typedef size_t(* <a class="el" href="oggz__io_8h.html#a1">OggzIOWrite</a>)(void * user_handle, void * buf, size_t n)
 
228
          <td class="md" nowrap valign="top">typedef size_t(* <a class="el" href="oggz__io_8h.html#a1">OggzIOWrite</a>)(void *user_handle, void *buf, size_t n)          </td>
 
229
        </tr>
223
230
      </table>
224
231
    </td>
225
232
  </tr>
226
233
</table>
227
 
<table cellspacing=5 cellpadding=0 border=0>
 
234
<table cellspacing="5" cellpadding="0" border="0">
228
235
  <tr>
229
236
    <td>
230
237
      &nbsp;
236
243
<p>
237
244
<dl compact><dt><b>Parameters:</b></dt><dd>
238
245
  <table border="0" cellspacing="2" cellpadding="0">
239
 
    <tr><td valign=top><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
240
 
    <tr><td valign=top><em>n</em>&nbsp;</td><td>The length in bytes of the data </td></tr>
241
 
    <tr><td valign=top><em>buf</em>&nbsp;</td><td>A buffer containing data to write </td></tr>
 
246
    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>A generic pointer you have provided earlier </td></tr>
 
247
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>The length in bytes of the data </td></tr>
 
248
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>A buffer containing data to write </td></tr>
242
249
  </table>
243
250
</dl>
244
251
<dl compact><dt><b>Return values:</b></dt><dd>
245
252
  <table border="0" cellspacing="2" cellpadding="0">
246
 
    <tr><td valign=top><em>&gt;= 0</em>&nbsp;</td><td>The number of bytes successfully written (may be less than <em>n</em> if a write error has occurred) </td></tr>
247
 
    <tr><td valign=top><em>&lt;  0</em>&nbsp;</td><td>An error condition </td></tr>
 
253
    <tr><td valign="top"></td><td valign="top"><em>&gt;= 0</em>&nbsp;</td><td>The number of bytes successfully written (may be less than <em>n</em> if a write error has occurred) </td></tr>
 
254
    <tr><td valign="top"></td><td valign="top"><em>&lt;  0</em>&nbsp;</td><td>An error condition </td></tr>
248
255
  </table>
249
256
</dl>
250
257
    </td>
251
258
  </tr>
252
259
</table>
253
260
<hr><h2>Function Documentation</h2>
254
 
<a class="anchor" name="a14" doxytag="oggz_io.h::oggz_io_get_flush_user_handle" ></a><p>
255
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
261
<a class="anchor" name="a14" doxytag="oggz_io.h::oggz_io_get_flush_user_handle"></a><p>
 
262
<table class="mdTable" cellpadding="2" cellspacing="0">
256
263
  <tr>
257
264
    <td class="mdRow">
258
265
      <table cellpadding="0" cellspacing="0" border="0">
259
266
        <tr>
260
 
          <td class="md" nowrap valign="top"> void* oggz_io_get_flush_user_handle </td>
 
267
          <td class="md" nowrap valign="top">void* oggz_io_get_flush_user_handle           </td>
261
268
          <td class="md" valign="top">(&nbsp;</td>
262
269
          <td class="md" nowrap valign="top"><a class="el" href="oggz_8h.html#a0">OGGZ</a> *&nbsp;</td>
263
270
          <td class="mdname1" valign="top" nowrap> <em>oggz</em>          </td>
264
271
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
265
272
          <td class="md" nowrap></td>
266
273
        </tr>
267
 
 
268
274
      </table>
269
275
    </td>
270
276
  </tr>
271
277
</table>
272
 
<table cellspacing=5 cellpadding=0 border=0>
 
278
<table cellspacing="5" cellpadding="0" border="0">
273
279
  <tr>
274
280
    <td>
275
281
      &nbsp;
281
287
<p>
282
288
<dl compact><dt><b>Parameters:</b></dt><dd>
283
289
  <table border="0" cellspacing="2" cellpadding="0">
284
 
    <tr><td valign=top><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
 
290
    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
285
291
  </table>
286
292
</dl>
287
293
<dl compact><dt><b>Returns:</b></dt><dd>the associated user_handle </dd></dl>
288
294
    </td>
289
295
  </tr>
290
296
</table>
291
 
<a class="anchor" name="a6" doxytag="oggz_io.h::oggz_io_get_read_user_handle" ></a><p>
292
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
297
<a class="anchor" name="a6" doxytag="oggz_io.h::oggz_io_get_read_user_handle"></a><p>
 
298
<table class="mdTable" cellpadding="2" cellspacing="0">
293
299
  <tr>
294
300
    <td class="mdRow">
295
301
      <table cellpadding="0" cellspacing="0" border="0">
296
302
        <tr>
297
 
          <td class="md" nowrap valign="top"> void* oggz_io_get_read_user_handle </td>
 
303
          <td class="md" nowrap valign="top">void* oggz_io_get_read_user_handle           </td>
298
304
          <td class="md" valign="top">(&nbsp;</td>
299
305
          <td class="md" nowrap valign="top"><a class="el" href="oggz_8h.html#a0">OGGZ</a> *&nbsp;</td>
300
306
          <td class="mdname1" valign="top" nowrap> <em>oggz</em>          </td>
301
307
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
302
308
          <td class="md" nowrap></td>
303
309
        </tr>
304
 
 
305
310
      </table>
306
311
    </td>
307
312
  </tr>
308
313
</table>
309
 
<table cellspacing=5 cellpadding=0 border=0>
 
314
<table cellspacing="5" cellpadding="0" border="0">
310
315
  <tr>
311
316
    <td>
312
317
      &nbsp;
318
323
<p>
319
324
<dl compact><dt><b>Parameters:</b></dt><dd>
320
325
  <table border="0" cellspacing="2" cellpadding="0">
321
 
    <tr><td valign=top><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
 
326
    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
322
327
  </table>
323
328
</dl>
324
329
<dl compact><dt><b>Returns:</b></dt><dd>the associated user_handle </dd></dl>
325
330
    </td>
326
331
  </tr>
327
332
</table>
328
 
<a class="anchor" name="a10" doxytag="oggz_io.h::oggz_io_get_seek_user_handle" ></a><p>
329
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
333
<a class="anchor" name="a10" doxytag="oggz_io.h::oggz_io_get_seek_user_handle"></a><p>
 
334
<table class="mdTable" cellpadding="2" cellspacing="0">
330
335
  <tr>
331
336
    <td class="mdRow">
332
337
      <table cellpadding="0" cellspacing="0" border="0">
333
338
        <tr>
334
 
          <td class="md" nowrap valign="top"> void* oggz_io_get_seek_user_handle </td>
 
339
          <td class="md" nowrap valign="top">void* oggz_io_get_seek_user_handle           </td>
335
340
          <td class="md" valign="top">(&nbsp;</td>
336
341
          <td class="md" nowrap valign="top"><a class="el" href="oggz_8h.html#a0">OGGZ</a> *&nbsp;</td>
337
342
          <td class="mdname1" valign="top" nowrap> <em>oggz</em>          </td>
338
343
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
339
344
          <td class="md" nowrap></td>
340
345
        </tr>
341
 
 
342
346
      </table>
343
347
    </td>
344
348
  </tr>
345
349
</table>
346
 
<table cellspacing=5 cellpadding=0 border=0>
 
350
<table cellspacing="5" cellpadding="0" border="0">
347
351
  <tr>
348
352
    <td>
349
353
      &nbsp;
355
359
<p>
356
360
<dl compact><dt><b>Parameters:</b></dt><dd>
357
361
  <table border="0" cellspacing="2" cellpadding="0">
358
 
    <tr><td valign=top><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
 
362
    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
359
363
  </table>
360
364
</dl>
361
365
<dl compact><dt><b>Returns:</b></dt><dd>the associated user_handle </dd></dl>
362
366
    </td>
363
367
  </tr>
364
368
</table>
365
 
<a class="anchor" name="a12" doxytag="oggz_io.h::oggz_io_get_tell_user_handle" ></a><p>
366
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
369
<a class="anchor" name="a12" doxytag="oggz_io.h::oggz_io_get_tell_user_handle"></a><p>
 
370
<table class="mdTable" cellpadding="2" cellspacing="0">
367
371
  <tr>
368
372
    <td class="mdRow">
369
373
      <table cellpadding="0" cellspacing="0" border="0">
370
374
        <tr>
371
 
          <td class="md" nowrap valign="top"> void* oggz_io_get_tell_user_handle </td>
 
375
          <td class="md" nowrap valign="top">void* oggz_io_get_tell_user_handle           </td>
372
376
          <td class="md" valign="top">(&nbsp;</td>
373
377
          <td class="md" nowrap valign="top"><a class="el" href="oggz_8h.html#a0">OGGZ</a> *&nbsp;</td>
374
378
          <td class="mdname1" valign="top" nowrap> <em>oggz</em>          </td>
375
379
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
376
380
          <td class="md" nowrap></td>
377
381
        </tr>
378
 
 
379
382
      </table>
380
383
    </td>
381
384
  </tr>
382
385
</table>
383
 
<table cellspacing=5 cellpadding=0 border=0>
 
386
<table cellspacing="5" cellpadding="0" border="0">
384
387
  <tr>
385
388
    <td>
386
389
      &nbsp;
392
395
<p>
393
396
<dl compact><dt><b>Parameters:</b></dt><dd>
394
397
  <table border="0" cellspacing="2" cellpadding="0">
395
 
    <tr><td valign=top><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
 
398
    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
396
399
  </table>
397
400
</dl>
398
401
<dl compact><dt><b>Returns:</b></dt><dd>the associated user_handle </dd></dl>
399
402
    </td>
400
403
  </tr>
401
404
</table>
402
 
<a class="anchor" name="a8" doxytag="oggz_io.h::oggz_io_get_write_user_handle" ></a><p>
403
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
405
<a class="anchor" name="a8" doxytag="oggz_io.h::oggz_io_get_write_user_handle"></a><p>
 
406
<table class="mdTable" cellpadding="2" cellspacing="0">
404
407
  <tr>
405
408
    <td class="mdRow">
406
409
      <table cellpadding="0" cellspacing="0" border="0">
407
410
        <tr>
408
 
          <td class="md" nowrap valign="top"> void* oggz_io_get_write_user_handle </td>
 
411
          <td class="md" nowrap valign="top">void* oggz_io_get_write_user_handle           </td>
409
412
          <td class="md" valign="top">(&nbsp;</td>
410
413
          <td class="md" nowrap valign="top"><a class="el" href="oggz_8h.html#a0">OGGZ</a> *&nbsp;</td>
411
414
          <td class="mdname1" valign="top" nowrap> <em>oggz</em>          </td>
412
415
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
413
416
          <td class="md" nowrap></td>
414
417
        </tr>
415
 
 
416
418
      </table>
417
419
    </td>
418
420
  </tr>
419
421
</table>
420
 
<table cellspacing=5 cellpadding=0 border=0>
 
422
<table cellspacing="5" cellpadding="0" border="0">
421
423
  <tr>
422
424
    <td>
423
425
      &nbsp;
429
431
<p>
430
432
<dl compact><dt><b>Parameters:</b></dt><dd>
431
433
  <table border="0" cellspacing="2" cellpadding="0">
432
 
    <tr><td valign=top><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
 
434
    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
433
435
  </table>
434
436
</dl>
435
437
<dl compact><dt><b>Returns:</b></dt><dd>the associated user_handle </dd></dl>
436
438
    </td>
437
439
  </tr>
438
440
</table>
439
 
<a class="anchor" name="a13" doxytag="oggz_io.h::oggz_io_set_flush" ></a><p>
440
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
441
<a class="anchor" name="a13" doxytag="oggz_io.h::oggz_io_set_flush"></a><p>
 
442
<table class="mdTable" cellpadding="2" cellspacing="0">
441
443
  <tr>
442
444
    <td class="mdRow">
443
445
      <table cellpadding="0" cellspacing="0" border="0">
444
446
        <tr>
445
 
          <td class="md" nowrap valign="top"> int oggz_io_set_flush </td>
 
447
          <td class="md" nowrap valign="top">int oggz_io_set_flush           </td>
446
448
          <td class="md" valign="top">(&nbsp;</td>
447
449
          <td class="md" nowrap valign="top"><a class="el" href="oggz_8h.html#a0">OGGZ</a> *&nbsp;</td>
448
450
          <td class="mdname" nowrap> <em>oggz</em>, </td>
449
451
        </tr>
450
452
        <tr>
451
 
          <td></td>
452
 
          <td></td>
 
453
          <td class="md" nowrap align="right"></td>
 
454
          <td class="md"></td>
453
455
          <td class="md" nowrap><a class="el" href="oggz__io_8h.html#a4">OggzIOFlush</a>&nbsp;</td>
454
456
          <td class="mdname" nowrap> <em>flush</em>, </td>
455
457
        </tr>
456
458
        <tr>
457
 
          <td></td>
458
 
          <td></td>
 
459
          <td class="md" nowrap align="right"></td>
 
460
          <td class="md"></td>
459
461
          <td class="md" nowrap>void *&nbsp;</td>
460
462
          <td class="mdname" nowrap> <em>user_handle</em></td>
461
463
        </tr>
462
464
        <tr>
463
 
          <td></td>
 
465
          <td class="md"></td>
464
466
          <td class="md">)&nbsp;</td>
465
467
          <td class="md" colspan="2"></td>
466
468
        </tr>
467
 
 
468
469
      </table>
469
470
    </td>
470
471
  </tr>
471
472
</table>
472
 
<table cellspacing=5 cellpadding=0 border=0>
 
473
<table cellspacing="5" cellpadding="0" border="0">
473
474
  <tr>
474
475
    <td>
475
476
      &nbsp;
482
483
The meaning of this is similar to that of fflush() in stdio.<p>
483
484
<dl compact><dt><b>Parameters:</b></dt><dd>
484
485
  <table border="0" cellspacing="2" cellpadding="0">
485
 
    <tr><td valign=top><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
486
 
    <tr><td valign=top><em>flush</em>&nbsp;</td><td>Your flushing function </td></tr>
487
 
    <tr><td valign=top><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
 
486
    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
 
487
    <tr><td valign="top"></td><td valign="top"><em>flush</em>&nbsp;</td><td>Your flushing function </td></tr>
 
488
    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
488
489
  </table>
489
490
</dl>
490
491
<dl compact><dt><b>Return values:</b></dt><dd>
491
492
  <table border="0" cellspacing="2" cellpadding="0">
492
 
    <tr><td valign=top><em>0</em>&nbsp;</td><td>Success </td></tr>
493
 
    <tr><td valign=top><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
494
 
    <tr><td valign=top><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ; <em>oggz</em> not open for writing. </td></tr>
 
493
    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
 
494
    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
 
495
    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ; <em>oggz</em> not open for writing. </td></tr>
495
496
  </table>
496
497
</dl>
497
498
    </td>
498
499
  </tr>
499
500
</table>
500
 
<a class="anchor" name="a5" doxytag="oggz_io.h::oggz_io_set_read" ></a><p>
501
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
501
<a class="anchor" name="a5" doxytag="oggz_io.h::oggz_io_set_read"></a><p>
 
502
<table class="mdTable" cellpadding="2" cellspacing="0">
502
503
  <tr>
503
504
    <td class="mdRow">
504
505
      <table cellpadding="0" cellspacing="0" border="0">
505
506
        <tr>
506
 
          <td class="md" nowrap valign="top"> int oggz_io_set_read </td>
 
507
          <td class="md" nowrap valign="top">int oggz_io_set_read           </td>
507
508
          <td class="md" valign="top">(&nbsp;</td>
508
509
          <td class="md" nowrap valign="top"><a class="el" href="oggz_8h.html#a0">OGGZ</a> *&nbsp;</td>
509
510
          <td class="mdname" nowrap> <em>oggz</em>, </td>
510
511
        </tr>
511
512
        <tr>
512
 
          <td></td>
513
 
          <td></td>
 
513
          <td class="md" nowrap align="right"></td>
 
514
          <td class="md"></td>
514
515
          <td class="md" nowrap><a class="el" href="oggz__io_8h.html#a0">OggzIORead</a>&nbsp;</td>
515
516
          <td class="mdname" nowrap> <em>read</em>, </td>
516
517
        </tr>
517
518
        <tr>
518
 
          <td></td>
519
 
          <td></td>
 
519
          <td class="md" nowrap align="right"></td>
 
520
          <td class="md"></td>
520
521
          <td class="md" nowrap>void *&nbsp;</td>
521
522
          <td class="mdname" nowrap> <em>user_handle</em></td>
522
523
        </tr>
523
524
        <tr>
524
 
          <td></td>
 
525
          <td class="md"></td>
525
526
          <td class="md">)&nbsp;</td>
526
527
          <td class="md" colspan="2"></td>
527
528
        </tr>
528
 
 
529
529
      </table>
530
530
    </td>
531
531
  </tr>
532
532
</table>
533
 
<table cellspacing=5 cellpadding=0 border=0>
 
533
<table cellspacing="5" cellpadding="0" border="0">
534
534
  <tr>
535
535
    <td>
536
536
      &nbsp;
542
542
<p>
543
543
<dl compact><dt><b>Parameters:</b></dt><dd>
544
544
  <table border="0" cellspacing="2" cellpadding="0">
545
 
    <tr><td valign=top><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
546
 
    <tr><td valign=top><em>read</em>&nbsp;</td><td>Your reading function </td></tr>
547
 
    <tr><td valign=top><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
 
545
    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
 
546
    <tr><td valign="top"></td><td valign="top"><em>read</em>&nbsp;</td><td>Your reading function </td></tr>
 
547
    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
548
548
  </table>
549
549
</dl>
550
550
<dl compact><dt><b>Return values:</b></dt><dd>
551
551
  <table border="0" cellspacing="2" cellpadding="0">
552
 
    <tr><td valign=top><em>0</em>&nbsp;</td><td>Success </td></tr>
553
 
    <tr><td valign=top><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
554
 
    <tr><td valign=top><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ; <em>oggz</em> not open for reading. </td></tr>
 
552
    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
 
553
    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
 
554
    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ; <em>oggz</em> not open for reading. </td></tr>
555
555
  </table>
556
556
</dl>
557
557
    </td>
558
558
  </tr>
559
559
</table>
560
 
<a class="anchor" name="a9" doxytag="oggz_io.h::oggz_io_set_seek" ></a><p>
561
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
560
<a class="anchor" name="a9" doxytag="oggz_io.h::oggz_io_set_seek"></a><p>
 
561
<table class="mdTable" cellpadding="2" cellspacing="0">
562
562
  <tr>
563
563
    <td class="mdRow">
564
564
      <table cellpadding="0" cellspacing="0" border="0">
565
565
        <tr>
566
 
          <td class="md" nowrap valign="top"> int oggz_io_set_seek </td>
 
566
          <td class="md" nowrap valign="top">int oggz_io_set_seek           </td>
567
567
          <td class="md" valign="top">(&nbsp;</td>
568
568
          <td class="md" nowrap valign="top"><a class="el" href="oggz_8h.html#a0">OGGZ</a> *&nbsp;</td>
569
569
          <td class="mdname" nowrap> <em>oggz</em>, </td>
570
570
        </tr>
571
571
        <tr>
572
 
          <td></td>
573
 
          <td></td>
 
572
          <td class="md" nowrap align="right"></td>
 
573
          <td class="md"></td>
574
574
          <td class="md" nowrap><a class="el" href="oggz__io_8h.html#a2">OggzIOSeek</a>&nbsp;</td>
575
575
          <td class="mdname" nowrap> <em>seek</em>, </td>
576
576
        </tr>
577
577
        <tr>
578
 
          <td></td>
579
 
          <td></td>
 
578
          <td class="md" nowrap align="right"></td>
 
579
          <td class="md"></td>
580
580
          <td class="md" nowrap>void *&nbsp;</td>
581
581
          <td class="mdname" nowrap> <em>user_handle</em></td>
582
582
        </tr>
583
583
        <tr>
584
 
          <td></td>
 
584
          <td class="md"></td>
585
585
          <td class="md">)&nbsp;</td>
586
586
          <td class="md" colspan="2"></td>
587
587
        </tr>
588
 
 
589
588
      </table>
590
589
    </td>
591
590
  </tr>
592
591
</table>
593
 
<table cellspacing=5 cellpadding=0 border=0>
 
592
<table cellspacing="5" cellpadding="0" border="0">
594
593
  <tr>
595
594
    <td>
596
595
      &nbsp;
602
601
<p>
603
602
<dl compact><dt><b>Parameters:</b></dt><dd>
604
603
  <table border="0" cellspacing="2" cellpadding="0">
605
 
    <tr><td valign=top><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
606
 
    <tr><td valign=top><em>seek</em>&nbsp;</td><td>Your seeking function </td></tr>
607
 
    <tr><td valign=top><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
 
604
    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
 
605
    <tr><td valign="top"></td><td valign="top"><em>seek</em>&nbsp;</td><td>Your seeking function </td></tr>
 
606
    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
608
607
  </table>
609
608
</dl>
610
609
<dl compact><dt><b>Return values:</b></dt><dd>
611
610
  <table border="0" cellspacing="2" cellpadding="0">
612
 
    <tr><td valign=top><em>0</em>&nbsp;</td><td>Success </td></tr>
613
 
    <tr><td valign=top><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
614
 
    <tr><td valign=top><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ</td></tr>
 
611
    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
 
612
    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
 
613
    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ</td></tr>
615
614
  </table>
616
615
</dl>
617
616
<dl compact><dt><b>Note:</b></dt><dd>If you provide an OggzIOSeek function, you MUST also provide an OggzIOTell function, or else all your seeks will fail. </dd></dl>
618
617
    </td>
619
618
  </tr>
620
619
</table>
621
 
<a class="anchor" name="a11" doxytag="oggz_io.h::oggz_io_set_tell" ></a><p>
622
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
620
<a class="anchor" name="a11" doxytag="oggz_io.h::oggz_io_set_tell"></a><p>
 
621
<table class="mdTable" cellpadding="2" cellspacing="0">
623
622
  <tr>
624
623
    <td class="mdRow">
625
624
      <table cellpadding="0" cellspacing="0" border="0">
626
625
        <tr>
627
 
          <td class="md" nowrap valign="top"> int oggz_io_set_tell </td>
 
626
          <td class="md" nowrap valign="top">int oggz_io_set_tell           </td>
628
627
          <td class="md" valign="top">(&nbsp;</td>
629
628
          <td class="md" nowrap valign="top"><a class="el" href="oggz_8h.html#a0">OGGZ</a> *&nbsp;</td>
630
629
          <td class="mdname" nowrap> <em>oggz</em>, </td>
631
630
        </tr>
632
631
        <tr>
633
 
          <td></td>
634
 
          <td></td>
 
632
          <td class="md" nowrap align="right"></td>
 
633
          <td class="md"></td>
635
634
          <td class="md" nowrap><a class="el" href="oggz__io_8h.html#a3">OggzIOTell</a>&nbsp;</td>
636
635
          <td class="mdname" nowrap> <em>tell</em>, </td>
637
636
        </tr>
638
637
        <tr>
639
 
          <td></td>
640
 
          <td></td>
 
638
          <td class="md" nowrap align="right"></td>
 
639
          <td class="md"></td>
641
640
          <td class="md" nowrap>void *&nbsp;</td>
642
641
          <td class="mdname" nowrap> <em>user_handle</em></td>
643
642
        </tr>
644
643
        <tr>
645
 
          <td></td>
 
644
          <td class="md"></td>
646
645
          <td class="md">)&nbsp;</td>
647
646
          <td class="md" colspan="2"></td>
648
647
        </tr>
649
 
 
650
648
      </table>
651
649
    </td>
652
650
  </tr>
653
651
</table>
654
 
<table cellspacing=5 cellpadding=0 border=0>
 
652
<table cellspacing="5" cellpadding="0" border="0">
655
653
  <tr>
656
654
    <td>
657
655
      &nbsp;
663
661
<p>
664
662
<dl compact><dt><b>Parameters:</b></dt><dd>
665
663
  <table border="0" cellspacing="2" cellpadding="0">
666
 
    <tr><td valign=top><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
667
 
    <tr><td valign=top><em>tell</em>&nbsp;</td><td>Your tell function </td></tr>
668
 
    <tr><td valign=top><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
 
664
    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
 
665
    <tr><td valign="top"></td><td valign="top"><em>tell</em>&nbsp;</td><td>Your tell function </td></tr>
 
666
    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
669
667
  </table>
670
668
</dl>
671
669
<dl compact><dt><b>Return values:</b></dt><dd>
672
670
  <table border="0" cellspacing="2" cellpadding="0">
673
 
    <tr><td valign=top><em>0</em>&nbsp;</td><td>Success </td></tr>
674
 
    <tr><td valign=top><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
675
 
    <tr><td valign=top><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
 
671
    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
 
672
    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
 
673
    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ </td></tr>
676
674
  </table>
677
675
</dl>
678
676
    </td>
679
677
  </tr>
680
678
</table>
681
 
<a class="anchor" name="a7" doxytag="oggz_io.h::oggz_io_set_write" ></a><p>
682
 
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
 
679
<a class="anchor" name="a7" doxytag="oggz_io.h::oggz_io_set_write"></a><p>
 
680
<table class="mdTable" cellpadding="2" cellspacing="0">
683
681
  <tr>
684
682
    <td class="mdRow">
685
683
      <table cellpadding="0" cellspacing="0" border="0">
686
684
        <tr>
687
 
          <td class="md" nowrap valign="top"> int oggz_io_set_write </td>
 
685
          <td class="md" nowrap valign="top">int oggz_io_set_write           </td>
688
686
          <td class="md" valign="top">(&nbsp;</td>
689
687
          <td class="md" nowrap valign="top"><a class="el" href="oggz_8h.html#a0">OGGZ</a> *&nbsp;</td>
690
688
          <td class="mdname" nowrap> <em>oggz</em>, </td>
691
689
        </tr>
692
690
        <tr>
693
 
          <td></td>
694
 
          <td></td>
 
691
          <td class="md" nowrap align="right"></td>
 
692
          <td class="md"></td>
695
693
          <td class="md" nowrap><a class="el" href="oggz__io_8h.html#a1">OggzIOWrite</a>&nbsp;</td>
696
694
          <td class="mdname" nowrap> <em>write</em>, </td>
697
695
        </tr>
698
696
        <tr>
699
 
          <td></td>
700
 
          <td></td>
 
697
          <td class="md" nowrap align="right"></td>
 
698
          <td class="md"></td>
701
699
          <td class="md" nowrap>void *&nbsp;</td>
702
700
          <td class="mdname" nowrap> <em>user_handle</em></td>
703
701
        </tr>
704
702
        <tr>
705
 
          <td></td>
 
703
          <td class="md"></td>
706
704
          <td class="md">)&nbsp;</td>
707
705
          <td class="md" colspan="2"></td>
708
706
        </tr>
709
 
 
710
707
      </table>
711
708
    </td>
712
709
  </tr>
713
710
</table>
714
 
<table cellspacing=5 cellpadding=0 border=0>
 
711
<table cellspacing="5" cellpadding="0" border="0">
715
712
  <tr>
716
713
    <td>
717
714
      &nbsp;
723
720
<p>
724
721
<dl compact><dt><b>Parameters:</b></dt><dd>
725
722
  <table border="0" cellspacing="2" cellpadding="0">
726
 
    <tr><td valign=top><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
727
 
    <tr><td valign=top><em>write</em>&nbsp;</td><td>Your writing function </td></tr>
728
 
    <tr><td valign=top><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
 
723
    <tr><td valign="top"></td><td valign="top"><em>oggz</em>&nbsp;</td><td>An OGGZ handle </td></tr>
 
724
    <tr><td valign="top"></td><td valign="top"><em>write</em>&nbsp;</td><td>Your writing function </td></tr>
 
725
    <tr><td valign="top"></td><td valign="top"><em>user_handle</em>&nbsp;</td><td>Any arbitrary data you wish to pass to the function </td></tr>
729
726
  </table>
730
727
</dl>
731
728
<dl compact><dt><b>Return values:</b></dt><dd>
732
729
  <table border="0" cellspacing="2" cellpadding="0">
733
 
    <tr><td valign=top><em>0</em>&nbsp;</td><td>Success </td></tr>
734
 
    <tr><td valign=top><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
735
 
    <tr><td valign=top><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ; <em>oggz</em> not open for writing. </td></tr>
 
730
    <tr><td valign="top"></td><td valign="top"><em>0</em>&nbsp;</td><td>Success </td></tr>
 
731
    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_BAD_OGGZ</em>&nbsp;</td><td><em>oggz</em> does not refer to an existing OGGZ </td></tr>
 
732
    <tr><td valign="top"></td><td valign="top"><em>OGGZ_ERR_INVALID</em>&nbsp;</td><td>Operation not suitable for this OGGZ; <em>oggz</em> not open for writing. </td></tr>
736
733
  </table>
737
734
</dl>
738
735
    </td>
739
736
  </tr>
740
737
</table>
741
 
<hr size="1"><address style="align: right;"><small>Generated on Thu Mar 11 13:02:14 2004 for liboggz by
 
738
<hr size="1"><address style="align: right;"><small>Generated on Fri Apr 8 23:36:17 2005 for liboggz by&nbsp;
742
739
<a href="http://www.doxygen.org/index.html">
743
 
<img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
744
 
</a>1.3.5 </small></address>
 
740
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.0 </small></address>
745
741
</body>
746
742
</html>