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

📄 player_8c-source.html

📁 MP3 Player Source Code
💻 HTML
📖 第 1 页 / 共 4 页
字号:
00364       <a class="code" href="player_8c.html#a6">uiMode</a> = <a class="code" href="ui_8h.html#a24a2">UI_TITLE</a>;00365     <span class="keywordflow">else</span>{00366     }00367   }<span class="keywordflow">else</span>{00368     uiReturnDelay--;00369   }00370   00371 <span class="preprocessor">#ifndef VS1003</span>00372 <span class="preprocessor"></span>  <span class="keywordflow">if</span> (<a class="code" href="player_8c.html#a6">uiMode</a>==<a class="code" href="ui_8h.html#a24a3">UI_SPEC</a>) <span class="comment">//Only VS1003 has spectrum analyzer</span>00373     <a class="code" href="player_8c.html#a6">uiMode</a>++;00374   <span class="keywordflow">if</span> (<a class="code" href="player_8c.html#a6">uiMode</a>==<a class="code" href="ui_8h.html#a24a8">UI_RECLEVEL</a>) <span class="comment">//Only record in VS1003 chips</span>00375     <a class="code" href="player_8c.html#a6">uiMode</a>++;00376 <span class="preprocessor">#endif</span>00377 <span class="preprocessor"></span>00378   <span class="keywordflow">if</span> (<a class="code" href="player_8c.html#a6">uiMode</a>==<a class="code" href="ui_8h.html#a24a9">UI_INFO</a>)00379     <a class="code" href="player_8c.html#a6">uiMode</a>++; <span class="comment">//Nothing interesting currently in screen UI_INFO.</span>00380   <span class="keywordflow">if</span> (<a class="code" href="player_8c.html#a6">uiMode</a>==<a class="code" href="ui_8h.html#a24a10">UI_STOP</a>)00381     <a class="code" href="player_8c.html#a6">uiMode</a>++; <span class="comment">//Nothing interesting currently in screen UI_STOP.</span>00382 00383   <span class="comment">/* Screen updates */</span>00384   <span class="keywordflow">switch</span>(<a class="code" href="player_8c.html#a6">uiMode</a>){00385     00386   <span class="keywordflow">case</span> <a class="code" href="ui_8h.html#a24a2">UI_TITLE</a>:  <span class="comment">//Playing time, song title</span>00387 00388     <a class="code" href="display_8c.html#a4">displayStyle</a> = <a class="code" href="display_8h.html#a1">DS_TEXT</a>;00389     <a class="code" href="player_8c.html#a11">ScreenSetPlayTime</a>();00390     00391     <span class="keywordflow">if</span> (<a class="code" href="player_8c.html#a3">playingState</a>==<a class="code" href="ui_8h.html#a25a23">PS_RECORDING</a>){      00392       <a class="code" href="display_8c.html#a4">displayStyle</a> = <a class="code" href="display_8h.html#a3">DS_PERCENTAGE</a>;00393     }     00394     00395     <span class="keywordflow">break</span>;00396     00397   <span class="keywordflow">case</span> <a class="code" href="ui_8h.html#a24a10">UI_STOP</a>: <span class="comment">//Ask if the user wants to stop</span>00398     <a class="code" href="display_8c.html#a4">displayStyle</a> = <a class="code" href="display_8h.html#a4">DS_NO_YES</a>;00399     strcpy (<a class="code" href="display_8c.html#a1">displayTitle</a>, <span class="stringliteral">"Stop?   "</span>);00400     <span class="keywordflow">break</span>;00401 00402   <span class="keywordflow">case</span> <a class="code" href="ui_8h.html#a24a7">UI_CUE</a>: <span class="comment">//Ask if the user wants to fast forward or rewind</span>00403     <a class="code" href="display_8c.html#a4">displayStyle</a> = <a class="code" href="display_8h.html#a6">DS_RAWTEXT</a>;00404     strcpy (<a class="code" href="display_8c.html#a1">displayTitle</a>, <span class="stringliteral">"REW/CUE  &lt;-   -&gt;"</span>);00405 00406     <span class="comment">//i = Mp3ReadRegister(SPI_HDAT1);</span>00407     <span class="comment">//displayTitle[5] = lcd_hexchars[i&gt;&gt;12];</span>00408     <span class="comment">//displayTitle[6] = lcd_hexchars[(i&gt;&gt;8)&amp;0x0f];</span>00409     <span class="comment">//displayTitle[7] = lcd_hexchars[(i&gt;&gt;4)&amp;0x0f];</span>00410     <span class="comment">//displayTitle[8] = lcd_hexchars[i&amp;0x0f];</span>00411 00412     <span class="keywordflow">break</span>;00413     00414   <span class="keywordflow">case</span> <a class="code" href="ui_8h.html#a24a4">UI_VOLUME</a>: <span class="comment">//Show volume bar</span>00415     <a class="code" href="lcd_8h.html#a5">LcdSelectFont</a>(<a class="code" href="lcdfonts_8c.html#a0">lcdFont_barchars</a>);00416     <a class="code" href="display_8c.html#a4">displayStyle</a> = <a class="code" href="display_8h.html#a3">DS_PERCENTAGE</a>;00417     strcpy(<a class="code" href="display_8c.html#a1">displayTitle</a>,<span class="stringliteral">"Volume: "</span>);00418     <a class="code" href="display_8c.html#a5">displayValue</a> = (100-(volume&gt;&gt;1));00419     <span class="keywordflow">if</span> (<a class="code" href="display_8c.html#a5">displayValue</a>&lt;0) <a class="code" href="display_8c.html#a5">displayValue</a> = 0;00420     <span class="keywordflow">break</span>;00421 00422   <span class="keywordflow">case</span> <a class="code" href="ui_8h.html#a24a5">UI_BASS</a>: <span class="comment">//Show bass bar</span>00423     <a class="code" href="lcd_8h.html#a5">LcdSelectFont</a>(<a class="code" href="lcdfonts_8c.html#a0">lcdFont_barchars</a>);00424     <a class="code" href="display_8c.html#a4">displayStyle</a> = <a class="code" href="display_8h.html#a3">DS_PERCENTAGE</a>;00425     strcpy(<a class="code" href="display_8c.html#a1">displayTitle</a>,<span class="stringliteral">"Bass:   "</span>);00426     <a class="code" href="display_8c.html#a5">displayValue</a> = (bass/5)*4;00427     <span class="keywordflow">if</span> (<a class="code" href="display_8c.html#a5">displayValue</a>&lt;1) <a class="code" href="display_8c.html#a5">displayValue</a> = 1;00428     <span class="keywordflow">break</span>;00429 00430   <span class="keywordflow">case</span> <a class="code" href="ui_8h.html#a24a6">UI_TREBLE</a>: <span class="comment">//Show treble bar</span>00431     <a class="code" href="lcd_8h.html#a5">LcdSelectFont</a>(<a class="code" href="lcdfonts_8c.html#a0">lcdFont_barchars</a>);00432     <a class="code" href="display_8c.html#a4">displayStyle</a> = <a class="code" href="display_8h.html#a3">DS_PERCENTAGE</a>;00433     strcpy(<a class="code" href="display_8c.html#a1">displayTitle</a>,<span class="stringliteral">"Treble: "</span>);00434     <a class="code" href="display_8c.html#a5">displayValue</a> = (treble/5)*4;00435     <span class="keywordflow">if</span> (<a class="code" href="display_8c.html#a5">displayValue</a>&lt;1) <a class="code" href="display_8c.html#a5">displayValue</a> = 1;00436     <span class="keywordflow">break</span>;00437 00438   <span class="keywordflow">case</span> <a class="code" href="ui_8h.html#a24a8">UI_RECLEVEL</a>: <span class="comment">//Show recording level</span>00439 00440     <span class="keywordflow">if</span> (<a class="code" href="player_8c.html#a3">playingState</a>==<a class="code" href="ui_8h.html#a25a23">PS_RECORDING</a>){00441       <a class="code" href="lcd_8h.html#a5">LcdSelectFont</a>(<a class="code" href="lcdfonts_8c.html#a0">lcdFont_barchars</a>);00442       <a class="code" href="display_8c.html#a4">displayStyle</a> = <a class="code" href="display_8h.html#a3">DS_PERCENTAGE</a>;00443       strcpy(<a class="code" href="display_8c.html#a1">displayTitle</a>,<span class="stringliteral">"RecLevel"</span>);00444       <a class="code" href="display_8c.html#a5">displayValue</a> = (reclevel);00445       <span class="keywordflow">if</span> (reclevel==0){00446         strcpy(<a class="code" href="display_8c.html#a1">displayTitle</a>,<span class="stringliteral">"RecLevel &lt;Auto&gt; "</span>);00447         <a class="code" href="display_8c.html#a4">displayStyle</a> = <a class="code" href="display_8h.html#a6">DS_RAWTEXT</a>; <span class="comment">//Reveal the "auto" text</span>00448       }00449     }<span class="keywordflow">else</span>{00450       <span class="comment">//Not in recording</span>00451       <a class="code" href="display_8c.html#a4">displayStyle</a> = <a class="code" href="display_8h.html#a4">DS_NO_YES</a>;00452       strcpy (<a class="code" href="display_8c.html#a1">displayTitle</a>, <span class="stringliteral">"Record? "</span>);00453     }00454     <span class="keywordflow">break</span>;00455 00456 00457   <span class="keywordflow">case</span> <a class="code" href="ui_8h.html#a24a3">UI_SPEC</a>: <span class="comment">// Spectrum analyzer</span>00458 00459     <span class="keywordflow">if</span> (<a class="code" href="player_8c.html#a3">playingState</a> == <a class="code" href="ui_8h.html#a25a23">PS_RECORDING</a>){00460       <a class="code" href="player_8c.html#a6">uiMode</a>++; <span class="comment">//Don't show specana when recording</span>00461     }00462 00463     <a class="code" href="lcd_8h.html#a5">LcdSelectFont</a>(<a class="code" href="lcdfonts_8c.html#a2">lcdFont_vertical_barchars</a>);00464     <a class="code" href="display_8c.html#a4">displayStyle</a> = <a class="code" href="display_8h.html#a6">DS_RAWTEXT</a>;00465     <a class="code" href="player_8c.html#a11">ScreenSetPlayTime</a>();00466 00467     <span class="comment">// Request to read Spectrum Analyzer register</span>00468     <a class="code" href="vs10xx_8h.html#a32">Mp3WriteRegister</a>(7, 0x18, 0x04);00469 00470     <span class="comment">// Read Spectrum Analyzer registers</span>00471     {00472       <span class="keywordflow">for</span> (i=0;i&lt;8;i++) { <span class="comment">//for each band i in [0..7]</span>00473         <span class="keywordtype">signed</span> <span class="keywordtype">char</span> thisband = <a class="code" href="vs10xx_8h.html#a38">Mp3ReadRegister</a>(6);00474         00475         <span class="comment">/* thisband now has spectrum value 0..63. We adjust it a little</span>00476 <span class="comment">           for best image on the evakit LCD. You also get peak values</span>00477 <span class="comment">           etc from the chip but we don't use them in the evakit screen.</span>00478 <span class="comment">           we use 8 bands, but up to 23 are obtainable from the chip. */</span>00479 00480         thisband &amp;= 63;                <span class="comment">/* mask all but level info */</span>00481         thisband &gt;&gt;= 1;                <span class="comment">/* LCD resolution is not high */</span>00482         thisband -= 3;                 <span class="comment">/* base offset */</span> 00483         <span class="keywordflow">if</span> (i==0) thisband -= 2;       <span class="comment">/* decrease bass bar level */</span>00484         <span class="keywordflow">if</span> (i==6) thisband += 1;       <span class="comment">/* increase treble bar level */</span>00485         <span class="keywordflow">if</span> (i==7) thisband += 1;       <span class="comment">/* increase treble bar level */</span>00486         <span class="keywordflow">if</span> (thisband&gt;7) thisband = 7;  <span class="comment">/* high limit */</span>00487         <span class="keywordflow">if</span> (thisband&lt;0) thisband =<span class="charliteral">' '</span>; <span class="comment">/* low limit */</span>00488 00489         <a class="code" href="display_8c.html#a1">displayTitle</a>[i+8] = thisband; <span class="comment">//Store to display mem</span>00490         00491       }<span class="comment">//for each band</span>00492     }00493     <span class="keywordflow">break</span>;00494     00495   } <span class="comment">//switch(uiMode)    </span>00496 00497   <span class="comment">// Buttons handler</span>00498   <span class="comment">// Perform mode-dependent button handling</span>00499 00500   <span class="keywordflow">if</span> ((<a class="code" href="board_8h.html#a14">KEY_BUTTON</a>) &amp;&amp; (uiReturnDelay &lt; <a class="code" href="player_8c.html#a2">UI_RETURN_DELAY</a>-20)){00501     <a class="code" href="lcd_8c.html#a4">LcdReset</a>();00502     <a class="code" href="player_8c.html#a6">uiMode</a>++;00503     uiReturnDelay = <a class="code" href="player_8c.html#a2">UI_RETURN_DELAY</a>;00504   }00505 00506   <span class="keywordflow">switch</span>(<a class="code" href="player_8c.html#a6">uiMode</a>){00507 00508   <span class="keywordflow">case</span> <a class="code" href="ui_8h.html#a24a2">UI_TITLE</a>:00509   <span class="keywordflow">case</span> <a class="code" href="ui_8h.html#a24a3">UI_SPEC</a>:00510 00511     <span class="keywordflow">if</span> (<a class="code" href="board_8h.html#a15">KEY_FARRIGHT</a>){00512       <a class="code" href="player_8c.html#a3">playingState</a> = <a class="code" href="ui_8h.html#a25a14">PS_NEXT_SONG</a>; <span class="comment">/* Request */</span>00513     }      00514     <span class="keywordflow">if</span> (<a class="code" href="board_8h.html#a18">KEY_FARLEFT</a>){00515       <a class="code" href="player_8c.html#a3">playingState</a> = <a class="code" href="ui_8h.html#a25a15">PS_PREVIOUS_SONG</a>; <span class="comment">/* Request */</span>00516     }      00517     <span class="keywordflow">break</span>;00518 00519 00520   <span class="keywordflow">case</span> <a class="code" href="ui_8h.html#a24a4">UI_VOLUME</a>:00521     00522     <span class="keywordflow">if</span> (<a class="code" href="board_8h.html#a18">KEY_FARLEFT</a>){00523       uiReturnDelay = <a class="code" href="player_8c.html#a2">UI_RETURN_DELAY</a>;

⌨️ 快捷键说明

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