📄 bstream.c.htm
字号:
<a class="l" name="181"> 181 </a><b>static</b> <b>int</b><a class="l" name="182"> 182 </a><a href="/source/s?defs=wav_write_stream_close">wav_write_stream_close</a>(<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h)<a class="l" name="183"> 183 </a>{<a class="l" name="184"> 184 </a> <a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=sz">sz</a>;<a class="l" name="185"> 185 </a> <a href="/source/s?defs=Wave_filehdr">Wave_filehdr</a> <a href="/source/s?defs=wav">wav</a>;<a class="l" name="186"> 186 </a><a class="l" name="187"> 187 </a> <a href="/source/s?defs=str_errno">str_errno</a> = <span class="n">0</span>;<a class="l" name="188"> 188 </a> (<b>void</b>) <a href="/source/s?defs=memset">memset</a>(&<a href="/source/s?defs=wav">wav</a>, <span class="n">0</span>, <b>sizeof</b> (<a href="/source/s?defs=wav">wav</a>));<a class="l" name="189"> 189 </a> <a href="/source/s?defs=sz">sz</a> = <a href="/source/s?defs=lseek">lseek</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>, <span class="n">0</span>L, <a href="/source/s?defs=SEEK_END">SEEK_END</a>);<a class="hl" name="190"> 190 </a> (<b>void</b>) <a href="/source/s?defs=lseek">lseek</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>, <span class="n">0</span>L, <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>);<a class="l" name="191"> 191 </a> <b>if</b> (<a href="/source/s?defs=read">read</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>, &<a href="/source/s?defs=wav">wav</a>, <b>sizeof</b> (<a href="/source/s?defs=wav">wav</a>)) != <b>sizeof</b> (<a href="/source/s?defs=wav">wav</a>)) {<a class="l" name="192"> 192 </a> <b>return</b> (<span class="n">1</span>);<a class="l" name="193"> 193 </a> }<a class="l" name="194"> 194 </a> <a href="/source/s?defs=wav">wav</a>.<a href="/source/s?defs=total_chunk_size">total_chunk_size</a> = <a href="/source/s?defs=CPU_TO_LE32">CPU_TO_LE32</a>(<a href="/source/s?defs=sz">sz</a> - <span class="n">8</span>);<a class="l" name="195"> 195 </a> <a href="/source/s?defs=wav">wav</a>.<a href="/source/s?defs=data_size">data_size</a> = <a href="/source/s?defs=CPU_TO_LE32">CPU_TO_LE32</a>(<a href="/source/s?defs=sz">sz</a> - <span class="n">44</span>);<a class="l" name="196"> 196 </a> (<b>void</b>) <a href="/source/s?defs=lseek">lseek</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>, <span class="n">0</span>L, <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>);<a class="l" name="197"> 197 </a> <b>if</b> (<a href="/source/s?defs=write">write</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>, &<a href="/source/s?defs=wav">wav</a>, <b>sizeof</b> (<a href="/source/s?defs=wav">wav</a>)) != <b>sizeof</b> (<a href="/source/s?defs=wav">wav</a>)) {<a class="l" name="198"> 198 </a> <b>return</b> (<span class="n">1</span>);<a class="l" name="199"> 199 </a> }<a class="hl" name="200"> 200 </a> (<b>void</b>) <a href="/source/s?defs=close">close</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>);<a class="l" name="201"> 201 </a> <a href="/source/s?defs=free">free</a>(h);<a class="l" name="202"> 202 </a> <b>return</b> (<span class="n">0</span>);<a class="l" name="203"> 203 </a>}<a class="l" name="204"> 204 </a><a class="l" name="205"> 205 </a><b>static</b> <b>int</b><a class="l" name="206"> 206 </a><a href="/source/s?defs=au_write_stream_close">au_write_stream_close</a>(<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h)<a class="l" name="207"> 207 </a>{<a class="l" name="208"> 208 </a> <a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=sz">sz</a>;<a class="l" name="209"> 209 </a><a class="hl" name="210"> 210 </a> <a href="/source/s?defs=str_errno">str_errno</a> = <span class="n">0</span>;<a class="l" name="211"> 211 </a> <a href="/source/s?defs=sz">sz</a> = <a href="/source/s?defs=lseek">lseek</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>, <span class="n">0</span>L, <a href="/source/s?defs=SEEK_END">SEEK_END</a>);<a class="l" name="212"> 212 </a> <a href="/source/s?defs=sz">sz</a> -= <a href="/source/s?defs=PRE_DEF_AU_HDR_LEN">PRE_DEF_AU_HDR_LEN</a>;<a class="l" name="213"> 213 </a> <a href="/source/s?defs=sz">sz</a> = <a href="/source/s?defs=CPU_TO_BE32">CPU_TO_BE32</a>(<a href="/source/s?defs=sz">sz</a>);<a class="l" name="214"> 214 </a> <b>if</b> (<a href="/source/s?defs=lseek">lseek</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>, <span class="n">8</span>L, <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>) < <span class="n">0</span>)<a class="l" name="215"> 215 </a> <b>return</b> (<span class="n">1</span>);<a class="l" name="216"> 216 </a><a class="l" name="217"> 217 </a> <b>if</b> (<a href="/source/s?defs=write">write</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>, &<a href="/source/s?defs=sz">sz</a>, <span class="n">4</span>) < <span class="n">0</span>)<a class="l" name="218"> 218 </a> <b>return</b> (<span class="n">1</span>);<a class="l" name="219"> 219 </a><a class="hl" name="220"> 220 </a> (<b>void</b>) <a href="/source/s?defs=close">close</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>);<a class="l" name="221"> 221 </a> <a href="/source/s?defs=free">free</a>(h);<a class="l" name="222"> 222 </a> <b>return</b> (<span class="n">0</span>);<a class="l" name="223"> 223 </a>}<a class="l" name="224"> 224 </a><a class="l" name="225"> 225 </a><span class="c">/* ARGSUSED */</span><a class="l" name="226"> 226 </a><b>static</b> <b>void</b><a class="l" name="227"> 227 </a><a href="/source/s?defs=stdin_stream_rewind">stdin_stream_rewind</a>(<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h)<a class="l" name="228"> 228 </a>{<a class="l" name="229"> 229 </a>}<a class="hl" name="230"> 230 </a><a class="l" name="231"> 231 </a><b>static</b> <b>void</b><a class="l" name="232"> 232 </a><a href="/source/s?defs=file_stream_rewind">file_stream_rewind</a>(<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h)<a class="l" name="233"> 233 </a>{<a class="l" name="234"> 234 </a> (<b>void</b>) <a href="/source/s?defs=lseek">lseek</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>, <span class="n">0</span>L, <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>);<a class="l" name="235"> 235 </a>}<a class="l" name="236"> 236 </a><a class="l" name="237"> 237 </a><b>static</b> <b>void</b><a class="l" name="238"> 238 </a><a href="/source/s?defs=au_stream_rewind">au_stream_rewind</a>(<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h)<a class="l" name="239"> 239 </a>{<a class="hl" name="240"> 240 </a> <a href="/source/s?defs=au_filehdr_t">au_filehdr_t</a> <a href="/source/s?defs=au">au</a>;<a class="l" name="241"> 241 </a><a class="l" name="242"> 242 </a> (<b>void</b>) <a href="/source/s?defs=lseek">lseek</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>, <span class="n">0</span>L, <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>);<a class="l" name="243"> 243 </a> <b>if</b> (<a href="/source/s?defs=read">read</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>, &<a href="/source/s?defs=au">au</a>, <b>sizeof</b> (<a href="/source/s?defs=au">au</a>)) != <b>sizeof</b> (<a href="/source/s?defs=au">au</a>)) {<a class="l" name="244"> 244 </a> <b>return</b>;<a class="l" name="245"> 245 </a> }<a class="l" name="246"> 246 </a><a class="l" name="247"> 247 </a> <b>if</b> (<a href="/source/s?defs=lseek">lseek</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>, (<b>long</b>)(<a href="/source/s?defs=BE32_TO_CPU">BE32_TO_CPU</a>(<a href="/source/s?defs=au">au</a>.<a href="/source/s?defs=au_offset">au_offset</a>)),<a class="l" name="248"> 248 </a> <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>) < <span class="n">0</span>) {<a class="l" name="249"> 249 </a> <b>return</b>;<a class="hl" name="250"> 250 </a> }<a class="l" name="251"> 251 </a>}<a class="l" name="252"> 252 </a><a class="l" name="253"> 253 </a><b>static</b> <b>void</b><a class="l" name="254"> 254 </a><a href="/source/s?defs=wav_stream_rewind">wav_stream_rewind</a>(<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h)<a class="l" name="255"> 255 </a>{<a class="l" name="256"> 256 </a> (<b>void</b>) <a href="/source/s?defs=lseek">lseek</a>(h-><a href="/source/s?defs=bstr_fd">bstr_fd</a>, (<b>long</b>)(<b>sizeof</b> (<a href="/source/s?defs=Wave_filehdr">Wave_filehdr</a>)), <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>);<a class="l" name="257"> 257 </a>}<a class="l" name="258"> 258 </a><a class="l" name="259"> 259 </a><a href="/source/s?defs=bstreamhandle">bstreamhandle</a><a class="hl" name="260"> 260 </a><a href="/source/s?defs=open_file_read_stream">open_file_read_stream</a>(<b>char</b> *<a href="/source/s?defs=file">file</a>)<a class="l" name="261"> 261 </a>{<a class="l" name="262"> 262 </a> <a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h;<a class="l" name="263"> 263 </a> <b>int</b> <a href="/source/s?defs=fd">fd</a>;<a class="l" name="264"> 264 </a> <b>struct</b> <a href="/source/s?defs=stat">stat</a> <a href="/source/s?defs=st">st</a>;<a class="l" name="265"> 265 </a><a class="l" name="266"> 266 </a> <a href="/source/s?defs=str_errno">str_errno</a> = <span class="n">0</span>;<a class="l" name="267"> 267 </a> <b>if</b> (<a href="/source/s?defs=stat">stat</a>(<a href="/source/s?defs=file">file</a>, &<a href="/source/s?defs=st">st</a>) < <span class="n">0</span>)<a class="l" name="268"> 268 </a> <b>return</b> (<a href="/source/s?defs=NULL">NULL</a>);<a class="l" name="269"> 269 </a> <b>if</b> ((<a href="/source/s?defs=st">st</a>.<a href="/source/s?defs=st_mode">st_mode</a> & <a href="/source/s?defs=S_IFMT">S_IFMT</a>) == <a href="/source/s?defs=S_IFDIR">S_IFDIR</a>) {<a class="hl" name="270"> 270 </a> <a href="/source/s?defs=str_errno">str_errno</a> = <a href="/source/s?defs=STR_ERR_NO_REG_FILE">STR_ERR_NO_REG_FILE</a>;<a class="l" name="271"> 271 </a> <b>return</b> (<a href="/source/s?defs=NULL">NULL</a>);<a class="l" name="272"> 272 </a> }<a class="l" name="273"> 273 </a> <a href="/source/s?defs=fd">fd</a> = <a href="/source/s?defs=open">open</a>(<a href="/source/s?defs=file">file</a>, <a href="/source/s?defs=O_RDONLY">O_RDONLY</a>);<a class="l" name="274"> 274 </a> <b>if</b> (<a href="/source/s?defs=fd">fd</a> < <span class="n">0</span>)<a class="l" name="275"> 275 </a> <b>return</b> (<a href="/source/s?defs=NULL">NULL</a>);<a class="l" name="276"> 276 </a> h = (<a href="/source/s?defs=bstreamhandle">bstreamhandle</a>)<a href="/source/s?defs=my_zalloc">my_zalloc</a>(<b>sizeof</b> (*h));<a class="l" name="277"> 277 </a> h-><a href="/source/s?defs=bstr_fd">bstr_fd</a> = <a href="/source/s?defs=fd">fd</a>;<a class="l" name="278"> 278 </a> h-><a href="/source/s?defs=bstr_read">bstr_read</a> = <a href="/source/s?defs=file_stream_read">file_stream_read</a>;<a class="l" name="279"> 279 </a> h-><a href="/source/s?defs=bstr_close">bstr_close</a> = <a href="/source/s?defs=file_stream_close">file_stream_close</a>;<a class="hl" name="280"> 280 </a> h-><a href="/source/s?defs=bstr_size">bstr_size</a> = <a href="/source/s?defs=file_stream_size">file_stream_size</a>;<a class="l" name="281"> 281 </a> h-><a href="/source/s?defs=bstr_rewind">bstr_rewind</a> = <a href="/source/s?defs=file_stream_rewind">file_stream_rewind</a>;<a class="l" name="282"> 282 </a><a class="l" name="283"> 283 </a> <b>return</b> (h);<a class="l" name="284"> 284 </a>}<a class="l" name="285"> 285 </a><a class="l" name="286"> 286 </a><a href="/source/s?defs=bstreamhandle">bstreamhandle</a><a class="l" name="287"> 287 </a><a href="/source/s?defs=open_iso_read_stream">open_iso_read_stream</a>(<b>char</b> *<a href="/source/s?defs=fname">fname</a>)<a class="l" name="288"> 288 </a>{<a class="l" name="289"> 289 </a> <a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h;<a class="hl" name="290"> 290 </a> <a href="/source/s?defs=off_t">off_t</a> <a href="/source/s?defs=iso_size">iso_size</a> = <span class="n">0</span>;<a class="l" name="291"> 291 </a> <b>char</b> <a href="/source/s?defs=iso_desc">iso_desc</a>[<a href="/source/s?defs=ISO9660_PRIMARY_DESC_SIZE">ISO9660_PRIMARY_DESC_SIZE</a>];<a class="l" name="292"> 292 </a><a class="l" name="293"> 293 </a> h = <a href="/source/s?defs=open_file_read_stream">open_file_read_stream</a>(<a href="/source/s?defs=fname">fname</a>);<a class="l" name="294"> 294 </a><a class="l" name="295"> 295 </a> <span class="c">/* If we don't have a valid handle immediately return NULL */</span><a class="l" name="296"> 296 </a> <b>if</b> (h == <a href="/source/s?defs=NULL">NULL</a>)<a class="l" name="297"> 297 </a> <b>return</b> (<a href="/source/s?defs=NULL">NULL</a>);<a class="l" name="298"> 298 </a><a class="l" name="299"> 299 </a> <b>if</b> (<a href="/source/s?defs=debug">debug</a>)<a class="hl" name="300"> 300 </a> (<b>void</b>) <a href="/source/s?defs=printf">printf</a>(<span class="s">"Checking the ISO 9660 file header\n"</span>);<a class="l" name="301"> 301 </a><a class="l" name="302"> 302 </a> <span class="c">/* Check to see if we have a valid sized ISO image */</span><a class="l" name="303"> 303 </a> h-><a href="/source/s?defs=bstr_size">bstr_size</a>(h, &<a href="/source/s?defs=iso_size">iso_size</a>);<a class="l" name="304"> 304 </a> <b>if</b> (<a href="/source/s?defs=iso_size">iso_size</a> < <a href="/source/s?defs=ISO9660_HEADER_SIZE">ISO9660_HEADER_SIZE</a>) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -