📄 song_task.lst
字号:
233 5 }
234 4 }
235 3 else
236 3 {
237 4 if (gl_key_press) /* stop key is pressed? */
238 4 {
239 5 if (gl_key == KEY_MODE)
C51 COMPILER V7.02a SONG_TASK 09/13/2007 11:53:04 PAGE 5
240 5 {
241 6 mode_set_init(); /* exit from song task */
242 6 song_state = SONG_START;
243 6 }
244 5 gl_key_press = FALSE; /* ack key usage */
245 5 }
246 4 }
247 3 break;
248 3 }
249 2
250 2
251 2 case SONG_IDLE: /* no file openned */
252 2 {
253 3 if (gl_key_press) /* a key is pressed? */
254 3 {
255 4 switch (gl_key)
256 4 {
257 5 case KEY_PLAY:
258 5 if (File_type() == FILE_DIR)
259 5 {
260 6 file_entry_dir(FILE_MP3 | FILE_DIR); /* goto sub-directory */
261 6 print_file_name(); /* display directory name */
262 6 }
263 5 else
264 5 { /* file_type is MP3 */
265 6 song_state = SONG_INIT;
266 6 }
267 5 break;
268 5
269 5 case KEY_NEXT:
270 5 file_seek_next(FILE_MP3 | FILE_DIR, TRUE); /* select next song with loop */
271 5 print_file_name(); /* display file name */
272 5 break;
273 5
274 5 case KEY_PREV:
275 5 file_seek_prev(FILE_MP3 | FILE_DIR, TRUE); /* select previous song */
276 5 print_file_name(); /* display file name */
277 5 break;
278 5
279 5 case KEY_INC:
280 5 song_snd_inc(); /* increment selected control */
281 5 print_sound_level(); /* display new level */
282 5 break;
283 5
284 5 case KEY_DEC:
285 5 song_snd_dec(); /* decrement selected control */
286 5 print_sound_level(); /* display new level */
287 5 break;
288 5
289 5 case KEY_SOUND:
290 5 song_snd_select(); /* select next sound control */
291 5 print_sound(); /* display selected sound icon */
292 5 print_sound_level(); /* display new level */
293 5 break;
294 5
295 5 case KEY_PARENT:
296 5 File_goto_parent(FILE_MP3 | FILE_DIR); /* goto parent directory */
297 5 print_file_name(); /* display first file name */
298 5 break;
299 5
300 5 case KEY_MODE:
301 5 mode_set_init(); /* exit from song task */
C51 COMPILER V7.02a SONG_TASK 09/13/2007 11:53:04 PAGE 6
302 5 disp_name_stop();
303 5 song_state = SONG_START;
304 5 break;
305 5
306 5 case KEY_MEM:
307 5 mem_select_next(); /* select next memory */
308 5 disp_name_stop();
309 5 song_state = SONG_START;
310 5 break;
311 5
312 5 default:
313 5 break;
314 5 }
315 4 gl_key_press = FALSE; /* ack key usage */
316 4 }
317 3 else
318 3 { /* check card presence */
319 4 if (mem_check_card() == KO)
320 4 {
321 5 disp_name_stop();
322 5 mem_select_next();
323 5 song_state = SONG_START; /* card has been unplugged */
324 5 }
325 4 }
326 3 break;
327 3 }
328 2
329 2
330 2 case SONG_INIT:
331 2 {
332 3 disp_clock_reset(); /* reset clock timer */
333 3 if (Fopen(READ) == OK)
334 3 {
335 4 if (song_init() != SONG_NO_ERR) /* init song playing */
336 4 {
337 5 song_stop(); /* stop playing song */
338 5 Fclose();
339 5 loop = song_loop;
340 5 song_state = SONG_NEXT;
341 5 }
342 4 else
343 4 {
344 5 song_state = SONG_PLL;
345 5 }
346 4 }
347 3 else
348 3 {
349 4 song_state = SONG_ERROR;
350 4 }
351 3 break;
352 3 }
353 2
354 2
355 2 case SONG_PLL:
356 2 {
357 3 if (Pll_get_lock()) /* pll locked? */
358 3 {
359 4 song_start(); /* start playing song */
360 4 disp_clock_start(); /* start clock timer */
361 4 print_state_play(); /* display play icon */
362 4 song_state = SONG_PLAY;
363 4 }
C51 COMPILER V7.02a SONG_TASK 09/13/2007 11:53:04 PAGE 7
364 3 break;
365 3 }
366 2
367 2
368 2 case SONG_PLAY:
369 2 {
370 3 if (Feof() == TRUE)
371 3 { /* end of file reached */
372 4 song_stop(); /* stop playing song */
373 4 Fclose();
374 4 loop = song_loop;
375 4 song_state = SONG_NEXT;
376 4 gl_key_press = FALSE; /* no key usage */
377 4 }
378 3
379 3 if (gl_key_press) /* a key is pressed? */
380 3 {
381 4 switch (gl_key)
382 4 {
383 5 case KEY_PAUSE:
384 5 Aud_song_pause(); /* suspend sample request */
385 5 disp_clock_stop(); /* suspend clock timer */
386 5 print_state_pause(); /* display pause icon */
387 5 song_state = SONG_PAUSE;
388 5 break;
389 5
390 5 case KEY_NEXT:
391 5 song_pause(); /* pause playing song */
392 5 disp_clock_stop(); /* suspend clock timer */
393 5 Fclose();
394 5 loop = TRUE; /* keypad action so loop */
395 5 song_state = SONG_NEXT;
396 5 break;
397 5
398 5 case KEY_PREV:
399 5 song_pause(); /* pause playing song */
400 5 disp_clock_stop(); /* suspend clock timer */
401 5 Fclose();
402 5 loop = TRUE;
403 5 song_state = SONG_PREV;
404 5 break;
405 5
406 5 case KEY_INC:
407 5 song_snd_inc(); /* increment selected control */
408 5 print_sound_level(); /* display new level */
409 5 break;
410 5
411 5 case KEY_DEC:
412 5 song_snd_dec(); /* decrement selected control */
413 5 print_sound_level(); /* display new level */
414 5 break;
415 5
416 5 case KEY_SOUND:
417 5 song_snd_select(); /* select next sound control */
418 5 print_sound(); /* display selected sound icon */
419 5 print_sound_level(); /* display new level */
420 5 break;
421 5
422 5 case KEY_REPEAT:
423 5 song_loop = ~song_loop; /* display repeat or not */
424 5 print_repeat(song_loop);
425 5 break;
C51 COMPILER V7.02a SONG_TASK 09/13/2007 11:53:04 PAGE 8
426 5
427 5 case KEY_STOP:
428 5 song_stop(); /* stop playing song */
429 5 Fclose();
430 5 song_state = SONG_STOP;
431 5 break;
432 5
433 5 default:
434 5 break;
435 5 }
436 4 gl_key_press = FALSE; /* ack key usage */
437 4 }
438 3 break;
439 3 }
440 2
441 2
442 2 case SONG_PAUSE: /* one file openned */
443 2 {
444 3 if (gl_key_press) /* a key is pressed? */
445 3 {
446 4 switch (gl_key)
447 4 {
448 5 case KEY_PLAY:
449 5 disp_clock_start(); /* restart clock timer */
450 5 Aud_song_play(); /* restart sample request */
451 5 print_state_play(); /* display play icon */
452 5 song_state = SONG_PLAY;
453 5 break;
454 5
455 5 case KEY_NEXT:
456 5 song_pause(); /* pause playing song */
457 5 Fclose();
458 5 loop = TRUE; /* keypad action so loop */
459 5 song_state = SONG_NEXT;
460 5 break;
461 5
462 5 case KEY_PREV:
463 5 song_pause(); /* pause playing song */
464 5 Fclose();
465 5 loop = TRUE; /* keypad action so loop */
466 5 song_state = SONG_PREV;
467 5 break;
468 5
469 5 case KEY_INC:
470 5 song_snd_inc(); /* increment selected control */
471 5 print_sound_level(); /* display new level */
472 5 break;
473 5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -