📄 voice_task.lst
字号:
228 3 else
229 3 { /* check card presence */
230 4 if (mem_check_card() == KO)
231 4 {
232 5 mem_select_next();
233 5 voice_state = VOICE_START; /* card has been unplugged */
234 5 }
235 4 }
236 3 break;
237 3 }
238 2
239 2
240 2 case VOICE_PLAY_INIT:
C51 COMPILER V7.06 VOICE_TASK 05/05/2005 12:12:04 PAGE 5
241 2 {
242 3 disp_clock_reset(); /* reset clock timer */
243 3 if (Fopen(READ) != OK)
244 3 {
245 4 voice_state = VOICE_ERROR;
246 4 }
247 3 else
248 3 {
249 4 Fseek(WAV_HEADER_SIZE);
250 4 voc_play_init(); /* init voice playing */
251 4 voice_state = VOICE_PLL;
252 4 }
253 3 break;
254 3 }
255 2
256 2
257 2 case VOICE_PLL:
258 2 {
259 3 if (Pll_get_lock()) /* pll locked? */
260 3 {
261 4 voc_play_start(); /* start playing voice */
262 4 disp_clock_start(); /* start clock timer */
263 4 print_state_play(); /* display play icon */
264 4 voc_cpt = 0;
265 4 voice_state = VOICE_PLAY;
266 4 }
267 3 break;
268 3 }
269 2
270 2
271 2 case VOICE_PLAY: /* one file openned */
272 2 {
273 3 while ((Byte)voc_cpt != gl_pointer)
274 3 {
275 4 voice_buffer[(Byte)voc_cpt] = Fgetc();
276 4 voc_cpt++;
277 4 }
278 3 if (gl_mem_failure)
279 3 { /* hardware failure */
280 4 voc_play_stop(); /* stop playing */
281 4 Fclose();
282 4 voice_state = VOICE_PLAY_STOP;
283 4 gl_key_press = FALSE; /* no key usage */
284 4 break;
285 4 }
286 3 if (Feof())
287 3 { /* end of file reached */
288 4 voc_play_stop(); /* stop playing */
289 4 Fclose();
290 4 voice_state = VOICE_PLAY_STOP;
291 4 gl_key_press = FALSE; /* no key usage */
292 4 break;
293 4 }
294 3 if (gl_key_press) /* a key is pressed? */
295 3 {
296 4 switch (gl_key)
297 4 {
298 5 case KEY_PAUSE:
299 5 Voc_play_pause(); /* suspend playing */
300 5 disp_clock_stop(); /* suspend clock timer */
301 5 print_state_pause(); /* display pause icon */
302 5 voice_state = VOICE_PLAY_PAUSE;
C51 COMPILER V7.06 VOICE_TASK 05/05/2005 12:12:04 PAGE 6
303 5 break;
304 5
305 5 case KEY_NEXT:
306 5 voc_play_stop(); /* stop playing */
307 5 disp_clock_stop(); /* suspend clock timer */
308 5 Fclose();
309 5 file_seek_next(FILE_WAV, TRUE); /* select next message & loop */
310 5 voice_state = VOICE_PLAY_NEW;
311 5 break;
312 5
313 5 case KEY_PREV:
314 5 voc_play_stop(); /* stop playing */
315 5 disp_clock_stop(); /* suspend clock timer */
316 5 Fclose();
317 5 file_seek_prev(FILE_WAV, TRUE); /* select previous message */
318 5 voice_state = VOICE_PLAY_NEW;
319 5 break;
320 5
321 5 case KEY_INC:
322 5 voc_inc_volume(); /* increment volume */
323 5 print_voice_vol(Voc_get_volume()); /* display new level */
324 5 break;
325 5
326 5 case KEY_DEC:
327 5 voc_dec_volume(); /* decrement volume */
328 5 print_voice_vol(Voc_get_volume()); /* display new level */
329 5 break;
330 5
331 5 case KEY_REC:
332 5 voc_play_stop(); /* stop playing */
333 5 Fclose();
334 5 voice_state = VOICE_DELETE; /* remove file from FAT */
335 5 break;
336 5
337 5 case KEY_STOP:
338 5 voc_play_stop(); /* stop playing */
339 5 Fclose();
340 5 voice_state = VOICE_PLAY_STOP;
341 5 break;
342 5
343 5 default:
344 5 break;
345 5 }
346 4 gl_key_press = FALSE; /* ack key usage */
347 4 }
348 3 break;
349 3 }
350 2
351 2
352 2 case VOICE_PLAY_PAUSE: /* one file openned */
353 2 {
354 3 if (gl_key_press) /* a key is pressed? */
355 3 {
356 4 switch (gl_key)
357 4 {
358 5 case KEY_PLAY:
359 5 disp_clock_start(); /* restart clock timer */
360 5 voc_play_start(); /* restart sample request */
361 5 print_state_play(); /* display play icon */
362 5 voice_state = VOICE_PLAY;
363 5 break;
364 5
C51 COMPILER V7.06 VOICE_TASK 05/05/2005 12:12:04 PAGE 7
365 5 case KEY_NEXT:
366 5 voc_play_stop();
367 5 Fclose();
368 5 file_seek_next(FILE_WAV, TRUE); /* select next message with loop */
369 5 print_file_name(); /* display file name */
370 5 voice_state = VOICE_IDLE;
371 5 break;
372 5
373 5 case KEY_PREV:
374 5 voc_play_stop();
375 5 Fclose();
376 5 file_seek_prev(FILE_WAV, TRUE); /* select previous message */
377 5 print_file_name(); /* display file name */
378 5 voice_state = VOICE_IDLE;
379 5 break;
380 5
381 5 case KEY_INC:
382 5 voc_inc_volume(); /* increment volume */
383 5 print_voice_vol(Voc_get_volume()); /* display new level */
384 5 break;
385 5
386 5 case KEY_DEC:
387 5 voc_dec_volume(); /* decrement volume */
388 5 print_voice_vol(Voc_get_volume()); /* display new level */
389 5 break;
390 5
391 5 case KEY_STOP:
392 5 voc_play_stop(); /* stop playing */
393 5 Fclose();
394 5 voice_state = VOICE_PLAY_STOP;
395 5 break;
396 5
397 5 default:
398 5 break;
399 5 }
400 4 gl_key_press = FALSE; /* ack key usage */
401 4 }
402 3 break;
403 3 }
404 2
405 2
406 2 case VOICE_PLAY_NEW:
407 2 {
408 3 voice_state = VOICE_PLAY_INIT; /* new message */
409 3 print_file_name(); /* display file name */
410 3 break;
411 3 }
412 2
413 2
414 2 case VOICE_PLAY_STOP:
415 2 {
416 3 disp_clock_reset(); /* reset clock timer */
417 3 print_file_type(); /* display wav icon */
418 3 disp_end_of_play();
419 3 voice_state = VOICE_IDLE;
420 3 break;
421 3 }
422 2
423 2 case VOICE_NO_MSG:
424 2 {
425 3 if (gl_key_press) /* a key is pressed? */
426 3 {
C51 COMPILER V7.06 VOICE_TASK 05/05/2005 12:12:04 PAGE 8
427 4 switch (gl_key)
428 4 {
429 5 case KEY_MEM:
430 5 mem_select_next(); /* select next memory */
431 5 voice_state = VOICE_START;
432 5 break;
433 5
434 5 case KEY_PLAY:
435 5 print_state_play();
436 5 voice_state = VOICE_PLAY_STOP;
437 5 break;
438 5
439 5 case KEY_REC:
440 5 voice_state = VOICE_REC_INIT;
441 5 break;
442 5
443 5 case KEY_MODE:
444 5 mode_set_init(); /* exit from voice task */
445 5 voice_state = VOICE_START;
446 5 break;
447 5 }
448 4 gl_key_press = FALSE; /* ack key usage */
449 4 }
450 3 else
451 3 { /* check card presence */
452 4 if (mem_check_card() == KO)
453 4 {
454 5 mem_select_next();
455 5 voice_state = VOICE_START; /* card has been unplugged */
456 5 }
457 4 }
458 3 break;
459 3 }
460 2
461 2
462 2 case VOICE_REC_INIT:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -