📄 player_8c-source.html
字号:
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 <- ->"</span>);00405 00406 <span class="comment">//i = Mp3ReadRegister(SPI_HDAT1);</span>00407 <span class="comment">//displayTitle[5] = lcd_hexchars[i>>12];</span>00408 <span class="comment">//displayTitle[6] = lcd_hexchars[(i>>8)&0x0f];</span>00409 <span class="comment">//displayTitle[7] = lcd_hexchars[(i>>4)&0x0f];</span>00410 <span class="comment">//displayTitle[8] = lcd_hexchars[i&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>>1));00419 <span class="keywordflow">if</span> (<a class="code" href="display_8c.html#a5">displayValue</a><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><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><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 <Auto> "</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<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 &= 63; <span class="comment">/* mask all but level info */</span>00481 thisband >>= 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>7) thisband = 7; <span class="comment">/* high limit */</span>00487 <span class="keywordflow">if</span> (thisband<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>) && (uiReturnDelay < <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 + -