⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bstream.c.htm

📁 光驱cdrom读写源代码,scsi命令解析
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<a class="l" name="429">    429 </a>			<b>goto</b> <a href="/source/s?defs=au_open_failed">au_open_failed</a>;<a class="hl" name="430">    430 </a>		}<a class="l" name="431">    431 </a>		<a href="/source/s?defs=data_size">data_size</a> = <a href="/source/s?defs=au">au</a>-&gt;<a href="/source/s?defs=au_data_size">au_data_size</a>;<a class="l" name="432">    432 </a>	} <b>else</b> {<a class="l" name="433">    433 </a>		<a href="/source/s?defs=data_size">data_size</a> = <a href="/source/s?defs=st">st</a>.<a href="/source/s?defs=st_size">st_size</a> - <a href="/source/s?defs=au">au</a>-&gt;<a href="/source/s?defs=au_offset">au_offset</a>;<a class="l" name="434">    434 </a>	}<a class="l" name="435">    435 </a>	<b>if</b> (<a href="/source/s?defs=data_size">data_size</a> == <span class="n">0</span>) {<a class="l" name="436">    436 </a>		<a href="/source/s?defs=str_errno">str_errno</a> = <a href="/source/s?defs=STR_ERR_AU_UNSUPPORTED_FORMAT">STR_ERR_AU_UNSUPPORTED_FORMAT</a>;<a class="l" name="437">    437 </a>		<b>goto</b> <a href="/source/s?defs=au_open_failed">au_open_failed</a>;<a class="l" name="438">    438 </a>	}<a class="l" name="439">    439 </a>	<b>if</b> (<a href="/source/s?defs=lseek">lseek</a>(<a href="/source/s?defs=fd">fd</a>, <a href="/source/s?defs=au">au</a>-&gt;<a href="/source/s?defs=au_offset">au_offset</a>, <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>) &lt; <span class="n">0</span>) {<a class="hl" name="440">    440 </a>		<b>goto</b> <a href="/source/s?defs=au_open_failed">au_open_failed</a>;<a class="l" name="441">    441 </a>	}<a class="l" name="442">    442 </a><a class="l" name="443">    443 </a>	<a href="/source/s?defs=free">free</a>(<a href="/source/s?defs=au">au</a>);<a class="l" name="444">    444 </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="445">    445 </a>	h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a> = <a href="/source/s?defs=fd">fd</a>;<a class="l" name="446">    446 </a>	h-&gt;<a href="/source/s?defs=bstr_read">bstr_read</a> = <a href="/source/s?defs=file_stream_read_wrbo">file_stream_read_wrbo</a>;<a class="l" name="447">    447 </a>	h-&gt;<a href="/source/s?defs=bstr_close">bstr_close</a> = <a href="/source/s?defs=file_stream_close">file_stream_close</a>;<a class="l" name="448">    448 </a>	h-&gt;<a href="/source/s?defs=bstr_size">bstr_size</a> = <a href="/source/s?defs=audio_stream_size">audio_stream_size</a>;<a class="l" name="449">    449 </a>	h-&gt;<a href="/source/s?defs=bstr_rewind">bstr_rewind</a> = <a href="/source/s?defs=au_stream_rewind">au_stream_rewind</a>;<a class="hl" name="450">    450 </a>	h-&gt;<a href="/source/s?defs=bstr_private">bstr_private</a> = (<b>void</b> *)<a href="/source/s?defs=data_size">data_size</a>;<a class="l" name="451">    451 </a><a class="l" name="452">    452 </a>	<b>return</b> (h);<a class="l" name="453">    453 </a><a class="l" name="454">    454 </a><a href="/source/s?defs=au_open_failed">au_open_failed</a>:<a class="l" name="455">    455 </a>	<a href="/source/s?defs=sav">sav</a> = <a href="/source/s?defs=errno">errno</a>;<a class="l" name="456">    456 </a>	(<b>void</b>) <a href="/source/s?defs=close">close</a>(<a href="/source/s?defs=fd">fd</a>);<a class="l" name="457">    457 </a>	<b>if</b> (<a href="/source/s?defs=au">au</a> != <a href="/source/s?defs=NULL">NULL</a>)<a class="l" name="458">    458 </a>		<a href="/source/s?defs=free">free</a>(<a href="/source/s?defs=au">au</a>);<a class="l" name="459">    459 </a>	<a href="/source/s?defs=errno">errno</a> = <a href="/source/s?defs=sav">sav</a>;<a class="hl" name="460">    460 </a>	<b>return</b> (<a href="/source/s?defs=NULL">NULL</a>);<a class="l" name="461">    461 </a>}<a class="l" name="462">    462 </a><a class="l" name="463">    463 </a><a href="/source/s?defs=bstreamhandle">bstreamhandle</a><a class="l" name="464">    464 </a><a href="/source/s?defs=open_wav_read_stream">open_wav_read_stream</a>(<b>char</b> *<a href="/source/s?defs=fname">fname</a>)<a class="l" name="465">    465 </a>{<a class="l" name="466">    466 </a>	<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h;<a class="l" name="467">    467 </a>	<b>int</b> <a href="/source/s?defs=fd">fd</a>, <a href="/source/s?defs=sav">sav</a>;<a class="l" name="468">    468 </a>	<a href="/source/s?defs=Wave_filehdr">Wave_filehdr</a> *<a href="/source/s?defs=wav">wav</a>;<a class="l" name="469">    469 </a>	<b>struct</b> <a href="/source/s?defs=stat">stat</a> <a href="/source/s?defs=st">st</a>;<a class="hl" name="470">    470 </a>	<a href="/source/s?defs=uint32_t">uint32_t</a> <a href="/source/s?defs=data_size">data_size</a>;<a class="l" name="471">    471 </a><a class="l" name="472">    472 </a>	<a href="/source/s?defs=wav">wav</a> = <a href="/source/s?defs=NULL">NULL</a>;<a class="l" name="473">    473 </a>	<a href="/source/s?defs=str_errno">str_errno</a> = <span class="n">0</span>;<a class="l" name="474">    474 </a>	<a href="/source/s?defs=fd">fd</a> = <a href="/source/s?defs=open">open</a>(<a href="/source/s?defs=fname">fname</a>, <a href="/source/s?defs=O_RDONLY">O_RDONLY</a>);<a class="l" name="475">    475 </a>	<b>if</b> (<a href="/source/s?defs=fd">fd</a> &lt; <span class="n">0</span>)<a class="l" name="476">    476 </a>		<b>return</b> (<a href="/source/s?defs=NULL">NULL</a>);<a class="l" name="477">    477 </a><a class="l" name="478">    478 </a>	<b>if</b> (<a href="/source/s?defs=fstat">fstat</a>(<a href="/source/s?defs=fd">fd</a>, &amp;<a href="/source/s?defs=st">st</a>) &lt; <span class="n">0</span>) {<a class="l" name="479">    479 </a>		<b>goto</b> <a href="/source/s?defs=wav_open_failed">wav_open_failed</a>;<a class="hl" name="480">    480 </a>	}<a class="l" name="481">    481 </a>	<b>if</b> ((<a href="/source/s?defs=st">st</a>.<a href="/source/s?defs=st_mode">st_mode</a> &amp; <a href="/source/s?defs=S_IFMT">S_IFMT</a>) != <a href="/source/s?defs=S_IFREG">S_IFREG</a>) {<a class="l" name="482">    482 </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="483">    483 </a>		<b>goto</b> <a href="/source/s?defs=wav_open_failed">wav_open_failed</a>;<a class="l" name="484">    484 </a>	}<a class="l" name="485">    485 </a>	<a href="/source/s?defs=wav">wav</a> = (<a href="/source/s?defs=Wave_filehdr">Wave_filehdr</a> *)<a href="/source/s?defs=my_zalloc">my_zalloc</a>(<b>sizeof</b> (*<a href="/source/s?defs=wav">wav</a>));<a class="l" name="486">    486 </a>	<b>if</b> (<a href="/source/s?defs=read">read</a>(<a href="/source/s?defs=fd">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="487">    487 </a>		<a href="/source/s?defs=str_errno">str_errno</a> = <a href="/source/s?defs=STR_ERR_WAV_READ_ERR">STR_ERR_WAV_READ_ERR</a>;<a class="l" name="488">    488 </a>		<b>goto</b> <a href="/source/s?defs=wav_open_failed">wav_open_failed</a>;<a class="l" name="489">    489 </a>	}<a class="hl" name="490">    490 </a>	<b>if</b> ((<a href="/source/s?defs=strncmp">strncmp</a>(<a href="/source/s?defs=wav">wav</a>-&gt;<a href="/source/s?defs=riff">riff</a>, <span class="s">"RIFF"</span>, <span class="n">4</span>) != <span class="n">0</span>) ||<a class="l" name="491">    491 </a>		(<a href="/source/s?defs=strncmp">strncmp</a>(<a href="/source/s?defs=wav">wav</a>-&gt;<a href="/source/s?defs=wave">wave</a>, <span class="s">"WAVE"</span>, <span class="n">4</span>) != <span class="n">0</span>)) {<a class="l" name="492">    492 </a>		<a href="/source/s?defs=str_errno">str_errno</a> = <a href="/source/s?defs=STR_ERR_WAV_BAD_HEADER">STR_ERR_WAV_BAD_HEADER</a>;<a class="l" name="493">    493 </a>		<b>goto</b> <a href="/source/s?defs=wav_open_failed">wav_open_failed</a>;<a class="l" name="494">    494 </a>	}<a class="l" name="495">    495 </a>	<b>if</b> (((<a href="/source/s?defs=CPU_TO_LE32">CPU_TO_LE32</a>(<a href="/source/s?defs=wav">wav</a>-&gt;<a href="/source/s?defs=total_chunk_size">total_chunk_size</a>) + <span class="n">8</span>) != <a href="/source/s?defs=st">st</a>.<a href="/source/s?defs=st_size">st_size</a>) ||<a class="l" name="496">    496 </a>	    (<a href="/source/s?defs=strncmp">strncmp</a>(<a href="/source/s?defs=wav">wav</a>-&gt;<a href="/source/s?defs=fmt">fmt</a>, <span class="s">"fmt "</span>, <span class="n">4</span>) != <span class="n">0</span>) ||<a class="l" name="497">    497 </a>	    (<a href="/source/s?defs=CPU_TO_LE16">CPU_TO_LE16</a>(<a href="/source/s?defs=wav">wav</a>-&gt;<a href="/source/s?defs=fmt_tag">fmt_tag</a>) != <span class="n">1</span>) ||<a class="l" name="498">    498 </a>	    (<a href="/source/s?defs=CPU_TO_LE16">CPU_TO_LE16</a>(<a href="/source/s?defs=wav">wav</a>-&gt;<a href="/source/s?defs=n_channels">n_channels</a>) != <span class="n">2</span>) ||<a class="l" name="499">    499 </a>	    (<a href="/source/s?defs=CPU_TO_LE32">CPU_TO_LE32</a>(<a href="/source/s?defs=wav">wav</a>-&gt;<a href="/source/s?defs=sample_rate">sample_rate</a>) != <span class="n">44100</span>) ||<a class="hl" name="500">    500 </a>	    (<a href="/source/s?defs=CPU_TO_LE16">CPU_TO_LE16</a>(<a href="/source/s?defs=wav">wav</a>-&gt;<a href="/source/s?defs=bits_per_sample">bits_per_sample</a>) != <span class="n">16</span>) ||<a class="l" name="501">    501 </a>	    (<a href="/source/s?defs=strncmp">strncmp</a>(<a href="/source/s?defs=wav">wav</a>-&gt;<a href="/source/s?defs=data">data</a>, <span class="s">"data"</span>, <span class="n">4</span>) != <span class="n">0</span>) ||<a class="l" name="502">    502 </a>	    ((<a href="/source/s?defs=CPU_TO_LE32">CPU_TO_LE32</a>(<a href="/source/s?defs=wav">wav</a>-&gt;<a href="/source/s?defs=data_size">data_size</a>) + <span class="n">44</span>) != <a href="/source/s?defs=st">st</a>.<a href="/source/s?defs=st_size">st_size</a>)) {<a class="l" name="503">    503 </a><a class="l" name="504">    504 </a>		<a href="/source/s?defs=str_errno">str_errno</a> = <a href="/source/s?defs=STR_ERR_WAV_UNSUPPORTED_FORMAT">STR_ERR_WAV_UNSUPPORTED_FORMAT</a>;<a class="l" name="505">    505 </a>		<b>goto</b> <a href="/source/s?defs=wav_open_failed">wav_open_failed</a>;<a class="l" name="506">    506 </a>	}<a class="l" name="507">    507 </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=wav">wav</a>-&gt;<a href="/source/s?defs=data_size">data_size</a>);<a class="l" name="508">    508 </a>	<b>if</b> (<a href="/source/s?defs=lseek">lseek</a>(<a href="/source/s?defs=fd">fd</a>, <b>sizeof</b> (*<a href="/source/s?defs=wav">wav</a>), <a href="/source/s?defs=SEEK_SET">SEEK_SET</a>) &lt; <span class="n">0</span>) {<a class="l" name="509">    509 </a>		<b>goto</b> <a href="/source/s?defs=wav_open_failed">wav_open_failed</a>;<a class="hl" name="510">    510 </a>	}<a class="l" name="511">    511 </a><a class="l" name="512">    512 </a>	<a href="/source/s?defs=free">free</a>(<a href="/source/s?defs=wav">wav</a>);<a class="l" name="513">    513 </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="514">    514 </a>	h-&gt;<a href="/source/s?defs=bstr_fd">bstr_fd</a> = <a href="/source/s?defs=fd">fd</a>;<a class="l" name="515">    515 </a>	h-&gt;<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="516">    516 </a>	h-&gt;<a href="/source/s?defs=bstr_close">bstr_close</a> = <a href="/source/s?defs=file_stream_close">file_stream_close</a>;<a class="l" name="517">    517 </a>	h-&gt;<a href="/source/s?defs=bstr_size">bstr_size</a> = <a href="/source/s?defs=audio_stream_size">audio_stream_size</a>;<a class="l" name="518">    518 </a>	h-&gt;<a href="/source/s?defs=bstr_rewind">bstr_rewind</a> = <a href="/source/s?defs=wav_stream_rewind">wav_stream_rewind</a>;<a class="l" name="519">    519 </a>	h-&gt;<a href="/source/s?defs=bstr_private">bstr_private</a> = (<b>void</b> *)<a href="/source/s?defs=data_size">data_size</a>;<a class="hl" name="520">    520 </a><a class="l" name="521">    521 </a>	<b>return</b> (h);<a class="l" name="522">    522 </a><a class="l" name="523">    523 </a><a href="/source/s?defs=wav_open_failed">wav_open_failed</a>:<a class="l" name="524">    524 </a>	<a href="/source/s?defs=sav">sav</a> = <a href="/source/s?defs=errno">errno</a>;<a class="l" name="525">    525 </a>	(<b>void</b>) <a href="/source/s?defs=close">close</a>(<a href="/source/s?defs=fd">fd</a>);<a class="l" name="526">    526 </a>	<b>if</b> (<a href="/source/s?defs=wav">wav</a> != <a href="/source/s?defs=NULL">NULL</a>)<a class="l" name="527">    527 </a>		<a href="/source/s?defs=free">free</a>(<a href="/source/s?defs=wav">wav</a>);<a class="l" name="528">    528 </a>	<a href="/source/s?defs=errno">errno</a> = <a href="/source/s?defs=sav">sav</a>;<a class="l" name="529">    529 </a>	<b>return</b> (<a href="/source/s?defs=NULL">NULL</a>);<a class="hl" name="530">    530 </a>}<a class="l" name="531">    531 </a><a class="l" name="532">    532 </a><a href="/source/s?defs=bstreamhandle">bstreamhandle</a><a class="l" name="533">    533 </a><a href="/source/s?defs=open_aur_read_stream">open_aur_read_stream</a>(<b>char</b> *<a href="/source/s?defs=fname">fname</a>)<a class="l" name="534">    534 </a>{<a class="l" name="535">    535 </a>	<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h;<a class="l" name="536">    536 </a><a class="l" name="537">    537 </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="538">    538 </a>	<b>if</b> (h != <a href="/source/s?defs=NULL">NULL</a>) {<a class="l" name="539">    539 </a>		h-&gt;<a href="/source/s?defs=bstr_read">bstr_read</a> = <a href="/source/s?defs=file_stream_read_wrbo">file_stream_read_wrbo</a>;<a class="hl" name="540">    540 </a>	}<a class="l" name="541">    541 </a>	<b>return</b> (h);<a class="l" name="542">    542 </a>}<a class="l" name="543">    543 </a><a class="l" name="544">    544 </a><a href="/source/s?defs=bstreamhandle">bstreamhandle</a><a class="l" name="545">    545 </a><a href="/source/s?defs=open_au_write_stream">open_au_write_stream</a>(<b>char</b> *<a href="/source/s?defs=fname">fname</a>)<a class="l" name="546">    546 </a>{<a class="l" name="547">    547 </a>	<a href="/source/s?defs=bstreamhandle">bstreamhandle</a> h;<a class="l" name="548">    548 </a>	<b>int</b> <a href="/source/s?defs=esav">esav</a>, <a href="/source/s?defs=fd">fd</a>;<a class="l" name="549">    549 </a>	<a href="/source/s?defs=uchar_t">uchar_t</a> <a href="/source/s?defs=head">head</a>[] = <a href="/source/s?defs=PRE_DEF_AU_HDR">PRE_DEF_AU_HDR</a>;<a class="hl" name="550">    550 </a><a class="l" name="551">    551 </

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -