-
Notifications
You must be signed in to change notification settings - Fork 79
Expand file tree
/
Copy pathdecoder_8h_source.html
More file actions
184 lines (182 loc) · 20.1 KB
/
decoder_8h_source.html
File metadata and controls
184 lines (182 loc) · 20.1 KB
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
<!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>jabcode: decoder.h Source File</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="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</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">jabcode
</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 Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><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="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>File Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('decoder_8h_source.html','');});
</script>
<div id="doc-content">
<!-- 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"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </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 class="header">
<div class="headertitle">
<div class="title">decoder.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="decoder_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#ifndef JABCODE_DECODER_H</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor"></span><span class="preprocessor">#define JABCODE_DECODER_H</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#define DECODE_METADATA_FAILED -1</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor"></span><span class="preprocessor">#define FATAL_ERROR -2 //e.g. out of memory</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define MASTER_METADATA_X 6</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor"></span><span class="preprocessor">#define MASTER_METADATA_Y 1</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#define MASTER_METADATA_PART1_LENGTH 6 //master metadata part 1 encoded length</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor"></span><span class="preprocessor">#define MASTER_METADATA_PART2_LENGTH 12 //master metadata part 2 encoded length</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span><span class="preprocessor">#define MASTER_METADATA_PART3_MAX_LENGTH 32 //master metadata part 3 maximal encoded length</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"></span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="structjab__vector2d.html">jab_vector2d</a> slave_palette_position[32] =</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  { {4, 5}, {4, 6}, {4, 7}, {4, 8}, {4, 9}, {4, 10}, {4, 11}, {4, 12},</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  {5, 12}, {5, 11}, {5, 10}, {5, 9}, {5, 8}, {5, 7}, {5, 6}, {5, 5},</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  {6, 5}, {6, 6}, {6, 7}, {6, 8}, {6, 9}, {6, 10}, {6, 11}, {6, 12},</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  {7, 12}, {7, 11}, {7, 10}, {7, 9}, {7, 8}, {7, 7}, {7, 6}, {7, 5}</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  };</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">static</span> <span class="keyword">const</span> jab_byte jab_decoding_table_upper[27] = {32, 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};</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">static</span> <span class="keyword">const</span> jab_byte jab_decoding_table_lower[27] = {32, 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};</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">static</span> <span class="keyword">const</span> jab_byte jab_decoding_table_numeric[13] = {32, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 44, 46};</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">static</span> <span class="keyword">const</span> jab_byte jab_decoding_table_punct[16] = {33, 34, 36, 37, 38, 39, 40, 41, 44, 45, 46, 47, 58, 59, 63, 64};</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">static</span> <span class="keyword">const</span> jab_byte jab_decoding_table_mixed[32] = {35, 42, 43, 60, 61, 62, 91, 92, 93, 94, 95, 96, 123, 124, 125, 126, 9, 10, 13, 0, 0, 0, 0, 164, 167, 196, 214, 220, 223, 228, 246, 252};</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">static</span> <span class="keyword">const</span> jab_byte jab_decoding_table_alphanumeric[63] = {32, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  86, 87, 88, 89, 90, 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};</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="decoder_8h.html#ad2087fa1d31ef255ec1c7c7b794677a9"> 51</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  None = -1,</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  Upper = 0,</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  Lower,</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  Numeric,</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  Punct,</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  Mixed,</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  Alphanumeric,</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  Byte,</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  ECI,</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  FNC1</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> }<a class="code" href="decoder_8h.html#ad2087fa1d31ef255ec1c7c7b794677a9">jab_encode_mode</a>;</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">extern</span> jab_int32 <a class="code" href="decoder_8h.html#a71ad13d78b380cfb686640cb440eab0b">decodeMaster</a>(<a class="code" href="structjab__bitmap.html">jab_bitmap</a>* matrix, <a class="code" href="structjab__decoded__symbol.html">jab_decoded_symbol</a>* symbol);</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">extern</span> jab_int32 <a class="code" href="decoder_8h.html#a163a843dec7ba0e57bb4d0dd9d14f704">decodeSlave</a>(<a class="code" href="structjab__bitmap.html">jab_bitmap</a>* matrix, <a class="code" href="structjab__decoded__symbol.html">jab_decoded_symbol</a>* symbol);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">extern</span> <a class="code" href="structjab__data.html">jab_data</a>* <a class="code" href="decoder_8h.html#a7d14658d7bf2ab2f717680222515c094">decodeData</a>(<a class="code" href="structjab__data.html">jab_data</a>* bits);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="decoder_8h.html#af4f14edd9f31375a15ae2ff9efdb2f29">deinterleaveData</a>(<a class="code" href="structjab__data.html">jab_data</a>* data, jab_float* p);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="decoder_8h.html#a62edb43fc31903ebea79bf4c39ed2edd">getNextMetadataModuleInMaster</a>(jab_int32 matrix_height, jab_int32 matrix_width, jab_int32 next_module_count, jab_int32* x, jab_int32* y);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="decoder_8h.html#a9050a56e2a718710e24a6abd258a29b0">demaskSymbol</a>(<a class="code" href="structjab__data.html">jab_data</a>* data, jab_byte* data_map, <a class="code" href="structjab__vector2d.html">jab_vector2d</a> symbol_size, jab_int32 mask_type, jab_int32 color_number);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword">extern</span> jab_int32 <a class="code" href="decoder_8h.html#afb68b61dc813e719103deeabb019f81c">readColorPaletteInMaster</a>(<a class="code" href="structjab__bitmap.html">jab_bitmap</a>* matrix, <a class="code" href="structjab__decoded__symbol.html">jab_decoded_symbol</a>* symbol, jab_byte* data_map, jab_int32* module_count, jab_int32* x, jab_int32* y);</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">extern</span> jab_int32 <a class="code" href="decoder_8h.html#a3a5388d194d0e536124b666c7cdca1ba">readColorPaletteInSlave</a>(<a class="code" href="structjab__bitmap.html">jab_bitmap</a>* matrix, <a class="code" href="structjab__decoded__symbol.html">jab_decoded_symbol</a>* symbol, jab_byte* data_map);</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span> <span class="preprocessor">#endif</span></div>
<div class="ttc" id="decoder_8h_html_af4f14edd9f31375a15ae2ff9efdb2f29"><div class="ttname"><a href="decoder_8h.html#af4f14edd9f31375a15ae2ff9efdb2f29">deinterleaveData</a></div><div class="ttdeci">void deinterleaveData(jab_data *data, jab_float *p)</div><div class="ttdoc">In-place deinterleaving. </div><div class="ttdef"><b>Definition:</b> interleave.c:43</div></div>
<div class="ttc" id="structjab__decoded__symbol_html"><div class="ttname"><a href="structjab__decoded__symbol.html">jab_decoded_symbol</a></div><div class="ttdoc">Decoded symbol. </div><div class="ttdef"><b>Definition:</b> jabcode.h:151</div></div>
<div class="ttc" id="decoder_8h_html_a7d14658d7bf2ab2f717680222515c094"><div class="ttname"><a href="decoder_8h.html#a7d14658d7bf2ab2f717680222515c094">decodeData</a></div><div class="ttdeci">jab_data * decodeData(jab_data *bits)</div><div class="ttdoc">Interpret decoded bits. </div><div class="ttdef"><b>Definition:</b> decoder.c:1771</div></div>
<div class="ttc" id="decoder_8h_html_a3a5388d194d0e536124b666c7cdca1ba"><div class="ttname"><a href="decoder_8h.html#a3a5388d194d0e536124b666c7cdca1ba">readColorPaletteInSlave</a></div><div class="ttdeci">jab_int32 readColorPaletteInSlave(jab_bitmap *matrix, jab_decoded_symbol *symbol, jab_byte *data_map)</div><div class="ttdoc">Read the color palettes in master symbol. </div><div class="ttdef"><b>Definition:</b> decoder.c:226</div></div>
<div class="ttc" id="structjab__bitmap_html"><div class="ttname"><a href="structjab__bitmap.html">jab_bitmap</a></div><div class="ttdoc">Code bitmap. </div><div class="ttdef"><b>Definition:</b> jabcode.h:95</div></div>
<div class="ttc" id="decoder_8h_html_a9050a56e2a718710e24a6abd258a29b0"><div class="ttname"><a href="decoder_8h.html#a9050a56e2a718710e24a6abd258a29b0">demaskSymbol</a></div><div class="ttdeci">void demaskSymbol(jab_data *data, jab_byte *data_map, jab_vector2d symbol_size, jab_int32 mask_type, jab_int32 color_number)</div><div class="ttdoc">Demask modules. </div><div class="ttdef"><b>Definition:</b> mask.c:410</div></div>
<div class="ttc" id="decoder_8h_html_a71ad13d78b380cfb686640cb440eab0b"><div class="ttname"><a href="decoder_8h.html#a71ad13d78b380cfb686640cb440eab0b">decodeMaster</a></div><div class="ttdeci">jab_int32 decodeMaster(jab_bitmap *matrix, jab_decoded_symbol *symbol)</div><div class="ttdoc">Decode master symbol. </div><div class="ttdef"><b>Definition:</b> decoder.c:1677</div></div>
<div class="ttc" id="decoder_8h_html_a163a843dec7ba0e57bb4d0dd9d14f704"><div class="ttname"><a href="decoder_8h.html#a163a843dec7ba0e57bb4d0dd9d14f704">decodeSlave</a></div><div class="ttdeci">jab_int32 decodeSlave(jab_bitmap *matrix, jab_decoded_symbol *symbol)</div><div class="ttdoc">Decode slave symbol. </div><div class="ttdef"><b>Definition:</b> decoder.c:1718</div></div>
<div class="ttc" id="structjab__data_html"><div class="ttname"><a href="structjab__data.html">jab_data</a></div><div class="ttdoc">Data structure. </div><div class="ttdef"><b>Definition:</b> jabcode.h:87</div></div>
<div class="ttc" id="structjab__vector2d_html"><div class="ttname"><a href="structjab__vector2d.html">jab_vector2d</a></div><div class="ttdoc">2-dimensional integer vector </div><div class="ttdef"><b>Definition:</b> jabcode.h:71</div></div>
<div class="ttc" id="decoder_8h_html_a62edb43fc31903ebea79bf4c39ed2edd"><div class="ttname"><a href="decoder_8h.html#a62edb43fc31903ebea79bf4c39ed2edd">getNextMetadataModuleInMaster</a></div><div class="ttdeci">void getNextMetadataModuleInMaster(jab_int32 matrix_height, jab_int32 matrix_width, jab_int32 next_module_count, jab_int32 *x, jab_int32 *y)</div><div class="ttdoc">Get the coordinate of the next metadata module in master symbol. </div><div class="ttdef"><b>Definition:</b> decoder.c:755</div></div>
<div class="ttc" id="decoder_8h_html_afb68b61dc813e719103deeabb019f81c"><div class="ttname"><a href="decoder_8h.html#afb68b61dc813e719103deeabb019f81c">readColorPaletteInMaster</a></div><div class="ttdeci">jab_int32 readColorPaletteInMaster(jab_bitmap *matrix, jab_decoded_symbol *symbol, jab_byte *data_map, jab_int32 *module_count, jab_int32 *x, jab_int32 *y)</div><div class="ttdoc">Read the color palettes in master symbol. </div><div class="ttdef"><b>Definition:</b> decoder.c:141</div></div>
<div class="ttc" id="decoder_8h_html_ad2087fa1d31ef255ec1c7c7b794677a9"><div class="ttname"><a href="decoder_8h.html#ad2087fa1d31ef255ec1c7c7b794677a9">jab_encode_mode</a></div><div class="ttdeci">jab_encode_mode</div><div class="ttdoc">Encoding mode. </div><div class="ttdef"><b>Definition:</b> decoder.h:51</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="decoder_8h.html">decoder.h</a></li>
<li class="footer">Generated on Wed Mar 20 2019 09:38:22 for jabcode by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
</ul>
</div>
</body>
</html>