func_speaker.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include "include.h"
  2. #include "func.h"
  3. #include "func_speaker.h"
  4. #if FUNC_SPEAKER_EN
  5. AT(.com_text.speaker)
  6. void speaker_sdadc_process(u8 *ptr,u32 samples,int ch_mode)
  7. {
  8. sdadc_pcm_2_dac(ptr, samples, ch_mode);
  9. }
  10. AT(.text.bsp.speaker)
  11. void func_speaker_start(void)
  12. {
  13. dac_fade_wait(); //等待淡出完成
  14. audio_path_init(AUDIO_PATH_SPEAKER);
  15. audio_path_start(AUDIO_PATH_SPEAKER);
  16. dac_fade_in();
  17. }
  18. AT(.text.bsp.speaker)
  19. static void func_speaker_enter(void)
  20. {
  21. func_speaker_start();
  22. }
  23. AT(.text.bsp.speaker)
  24. void func_speaker_stop(void)
  25. {
  26. dac_fade_out();
  27. dac_fade_wait(); //等待淡出完成
  28. audio_path_exit(AUDIO_PATH_SPEAKER);
  29. }
  30. static void func_speaker_exit(void)
  31. {
  32. func_speaker_stop();
  33. func_cb.last = FUNC_SPEAKER;
  34. }
  35. AT(.text.func.speaker)
  36. void func_speaker_process(void)
  37. {
  38. qtest_other_usage_process();
  39. func_process();
  40. }
  41. AT(.text.func.speaker)
  42. void func_speaker(void)
  43. {
  44. printf("%s\n", __func__);
  45. func_speaker_enter();
  46. while (func_cb.sta == FUNC_SPEAKER) {
  47. func_speaker_process();
  48. func_speaker_message(msg_dequeue());
  49. }
  50. func_speaker_exit();
  51. }
  52. #endif