File: structmskwaj__compressor.html

package info (click to toggle)
libmspack 0.5-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 3,916 kB
  • sloc: sh: 11,332; ansic: 7,879; perl: 131; makefile: 97
file content (255 lines) | stat: -rw-r--r-- 18,138 bytes parent folder | download | duplicates (3)
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
<!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.6"/>
<title>libmspack: mskwaj_compressor Struct Reference</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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</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">libmspack
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Macros</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-attribs">Data Fields</a>  </div>
  <div class="headertitle">
<div class="title">mskwaj_compressor Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A compressor for the KWAJ file format.  
 <a href="structmskwaj__compressor.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="mspack_8h_source.html">mspack.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Data Fields</h2></td></tr>
<tr class="memitem:a6ca91769afc7b31e01613eb3a2acf437"><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmskwaj__compressor.html#a6ca91769afc7b31e01613eb3a2acf437">compress</a> )(struct <a class="el" href="structmskwaj__compressor.html">mskwaj_compressor</a> *self, const char *input, const char *output, off_t length)</td></tr>
<tr class="memdesc:a6ca91769afc7b31e01613eb3a2acf437"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads an input file and creates a compressed output file in the KWAJ compressed file format.  <a href="#a6ca91769afc7b31e01613eb3a2acf437">More...</a><br/></td></tr>
<tr class="separator:a6ca91769afc7b31e01613eb3a2acf437"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12c3d6e1e18d14cd880f336e5897d5a8"><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmskwaj__compressor.html#a12c3d6e1e18d14cd880f336e5897d5a8">set_param</a> )(struct <a class="el" href="structmskwaj__compressor.html">mskwaj_compressor</a> *self, int param, unsigned int value)</td></tr>
<tr class="memdesc:a12c3d6e1e18d14cd880f336e5897d5a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets an KWAJ compression engine parameter.  <a href="#a12c3d6e1e18d14cd880f336e5897d5a8">More...</a><br/></td></tr>
<tr class="separator:a12c3d6e1e18d14cd880f336e5897d5a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48afe3babb35fb8c1a0a32c309be6dc7"><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmskwaj__compressor.html#a48afe3babb35fb8c1a0a32c309be6dc7">set_filename</a> )(struct <a class="el" href="structmskwaj__compressor.html">mskwaj_compressor</a> *self, const char *filename)</td></tr>
<tr class="memdesc:a48afe3babb35fb8c1a0a32c309be6dc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the original filename of the file before compression, which will be stored in the header of the output file.  <a href="#a48afe3babb35fb8c1a0a32c309be6dc7">More...</a><br/></td></tr>
<tr class="separator:a48afe3babb35fb8c1a0a32c309be6dc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a955181e65ccab556da4eee4854b90867"><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmskwaj__compressor.html#a955181e65ccab556da4eee4854b90867">set_extra_data</a> )(struct <a class="el" href="structmskwaj__compressor.html">mskwaj_compressor</a> *self, void *data, size_t bytes)</td></tr>
<tr class="memdesc:a955181e65ccab556da4eee4854b90867"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets arbitrary data that will be stored in the header of the output file, uncompressed.  <a href="#a955181e65ccab556da4eee4854b90867">More...</a><br/></td></tr>
<tr class="separator:a955181e65ccab556da4eee4854b90867"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbe5ab5920c60d8468a6de6e8efa33a5"><td class="memItemLeft" align="right" valign="top">int(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmskwaj__compressor.html#acbe5ab5920c60d8468a6de6e8efa33a5">last_error</a> )(struct <a class="el" href="structmschm__decompressor.html">mschm_decompressor</a> *self)</td></tr>
<tr class="memdesc:acbe5ab5920c60d8468a6de6e8efa33a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the error code set by the most recently called method.  <a href="#acbe5ab5920c60d8468a6de6e8efa33a5">More...</a><br/></td></tr>
<tr class="separator:acbe5ab5920c60d8468a6de6e8efa33a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A compressor for the KWAJ file format. </p>
<p>All fields are READ ONLY.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="mspack_8h.html#aa214297f2f85b56b2a556bf560dba9d2" title="Creates a new KWAJ compressor. ">mspack_create_kwaj_compressor()</a>, <a class="el" href="mspack_8h.html#aca7c302fbca1abd91c6d00df191e221c" title="Destroys an existing KWAJ compressor. ">mspack_destroy_kwaj_compressor()</a> </dd></dl>
</div><h2 class="groupheader">Field Documentation</h2>
<a class="anchor" id="a6ca91769afc7b31e01613eb3a2acf437"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* mskwaj_compressor::compress)(struct <a class="el" href="structmskwaj__compressor.html">mskwaj_compressor</a> *self, const char *input, const char *output, off_t length)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reads an input file and creates a compressed output file in the KWAJ compressed file format. </p>
<p>The KWAJ compression format is quick but gives poor compression. It is possible for the compressed output file to be larger than the input file.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>a self-referential pointer to the <a class="el" href="structmskwaj__compressor.html" title="A compressor for the KWAJ file format. ">mskwaj_compressor</a> instance being called </td></tr>
    <tr><td class="paramname">input</td><td>the name of the file to compressed. This is passed passed directly to <a class="el" href="structmspack__system.html#a1a85cac5eeb55db6a432fe3824aa04a3" title="Opens a file for reading, writing, appending or updating. ">mspack_system::open()</a> </td></tr>
    <tr><td class="paramname">output</td><td>the name of the file to write compressed data to. This is passed directly to <a class="el" href="structmspack__system.html#a1a85cac5eeb55db6a432fe3824aa04a3" title="Opens a file for reading, writing, appending or updating. ">mspack_system::open()</a>. </td></tr>
    <tr><td class="paramname">length</td><td>the length of the uncompressed file, or -1 to indicate that this should be determined automatically by using <a class="el" href="structmspack__system.html#a86ceffde52284d3a57d5d555d7484a03" title="Seeks to a specific file offset within an open file. ">mspack_system::seek()</a> on the input file. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an error code, or MSPACK_ERR_OK if successful </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="structmskwaj__compressor.html#a12c3d6e1e18d14cd880f336e5897d5a8" title="Sets an KWAJ compression engine parameter. ">set_param()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="acbe5ab5920c60d8468a6de6e8efa33a5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* mskwaj_compressor::last_error)(struct <a class="el" href="structmschm__decompressor.html">mschm_decompressor</a> *self)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the error code set by the most recently called method. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>a self-referential pointer to the <a class="el" href="structmskwaj__compressor.html" title="A compressor for the KWAJ file format. ">mskwaj_compressor</a> instance being called </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the most recent error code </dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="structmskwaj__compressor.html#a6ca91769afc7b31e01613eb3a2acf437" title="Reads an input file and creates a compressed output file in the KWAJ compressed file format...">compress()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a955181e65ccab556da4eee4854b90867"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* mskwaj_compressor::set_extra_data)(struct <a class="el" href="structmskwaj__compressor.html">mskwaj_compressor</a> *self, void *data, size_t bytes)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets arbitrary data that will be stored in the header of the output file, uncompressed. </p>
<p>It can be up to roughly 64 kilobytes, as the overall size of the header must not exceed 65535 bytes. The data can contain null bytes if desired.</p>
<p>If NULL is passed as the data pointer, or zero is passed as the length, no extra data is included in the header. This is the default.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>a self-referential pointer to the <a class="el" href="structmskwaj__compressor.html" title="A compressor for the KWAJ file format. ">mskwaj_compressor</a> instance being called </td></tr>
    <tr><td class="paramname">data</td><td>a pointer to the data to be stored in the header </td></tr>
    <tr><td class="paramname">bytes</td><td>the length of the data in bytes </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>MSPACK_ERR_OK if all is OK, or MSPACK_ERR_ARGS extra data is too long </dd></dl>

</div>
</div>
<a class="anchor" id="a48afe3babb35fb8c1a0a32c309be6dc7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* mskwaj_compressor::set_filename)(struct <a class="el" href="structmskwaj__compressor.html">mskwaj_compressor</a> *self, const char *filename)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets the original filename of the file before compression, which will be stored in the header of the output file. </p>
<p>The filename should be a null-terminated string, it must be an MS-DOS "8.3" type filename (up to 8 bytes for the filename, then optionally a "." and up to 3 bytes for a filename extension).</p>
<p>If NULL is passed as the filename, no filename is included in the header. This is the default.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>a self-referential pointer to the <a class="el" href="structmskwaj__compressor.html" title="A compressor for the KWAJ file format. ">mskwaj_compressor</a> instance being called </td></tr>
    <tr><td class="paramname">filename</td><td>the original filename to use </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>MSPACK_ERR_OK if all is OK, or MSPACK_ERR_ARGS if the filename is too long </dd></dl>

</div>
</div>
<a class="anchor" id="a12c3d6e1e18d14cd880f336e5897d5a8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int(* mskwaj_compressor::set_param)(struct <a class="el" href="structmskwaj__compressor.html">mskwaj_compressor</a> *self, int param, unsigned int value)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sets an KWAJ compression engine parameter. </p>
<p>The following parameters are defined:</p>
<ul>
<li><a class="el" href="mspack_8h.html#a9075a9264cc87f05e1d27e39982fe722" title="mskwaj_compressor::set_param() parameter: compression type ">MSKWAJC_PARAM_COMP_TYPE</a>: the compression method to use. Must be one of #MSKWAJC_COMP_NONE, #MSKWAJC_COMP_XOR, <a class="el" href="mspack_8h.html#a10b39d2b4edb12e70d92ede3b2290cf7" title="KWAJ compression type: LZSS (same method as SZDD) ">MSKWAJ_COMP_SZDD</a> or <a class="el" href="mspack_8h.html#af61a7a99713aab5cbb64bc0d58189e02" title="KWAJ compression type: LZ+Huffman compression. ">MSKWAJ_COMP_LZH</a>. The default is <a class="el" href="mspack_8h.html#af61a7a99713aab5cbb64bc0d58189e02" title="KWAJ compression type: LZ+Huffman compression. ">MSKWAJ_COMP_LZH</a>.</li>
<li><a class="el" href="mspack_8h.html#aa5b7b5364e70f3c3c134a6a7ec5847c7" title="mskwaj_compressor::set_param() parameter: include the length of the uncompressed file in the header...">MSKWAJC_PARAM_INCLUDE_LENGTH</a>: a boolean; should the compressed output file should include the uncompressed length of the input file in the header? This adds 4 bytes to the size of the output file. A value of zero says "no", non-zero says "yes". The default is "no".</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">self</td><td>a self-referential pointer to the <a class="el" href="structmskwaj__compressor.html" title="A compressor for the KWAJ file format. ">mskwaj_compressor</a> instance being called </td></tr>
    <tr><td class="paramname">param</td><td>the parameter to set </td></tr>
    <tr><td class="paramname">value</td><td>the value to set the parameter to </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>MSPACK_ERR_OK if all is OK, or MSPACK_ERR_ARGS if there is a problem with either parameter or value. </dd></dl>
<dl class="section see"><dt>See Also</dt><dd>generate() </dd></dl>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="mspack_8h_source.html">mspack.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>