mine_sweeper_speaker.c 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "mine_sweeper_speaker.h"
  2. #include "../minesweeper.h"
  3. static const float volume = 0.8f;
  4. void mine_sweeper_play_ok_sound(void* context) {
  5. MineSweeperApp* app = context;
  6. if (!app->feedback_enabled) {
  7. return;
  8. }
  9. if(furi_hal_speaker_is_mine() || furi_hal_speaker_acquire(30)) {
  10. furi_hal_speaker_start(NOTE_LOSE, volume);
  11. }
  12. }
  13. void mine_sweeper_play_flag_sound(void* context) {
  14. MineSweeperApp* app = context;
  15. if (!app->feedback_enabled) {
  16. return;
  17. }
  18. if(furi_hal_speaker_is_mine() || furi_hal_speaker_acquire(30)) {
  19. furi_hal_speaker_start(NOTE_FLAG, volume);
  20. }
  21. }
  22. void mine_sweeper_play_oob_sound(void* context) {
  23. MineSweeperApp* app = context;
  24. if (!app->feedback_enabled) {
  25. return;
  26. }
  27. if(furi_hal_speaker_is_mine() || furi_hal_speaker_acquire(30)) {
  28. furi_hal_speaker_start(NOTE_OOB, volume);
  29. }
  30. }
  31. void mine_sweeper_play_win_sound(void* context) {
  32. MineSweeperApp* app = context;
  33. if (!app->feedback_enabled) {
  34. return;
  35. }
  36. if(furi_hal_speaker_is_mine() || furi_hal_speaker_acquire(30)) {
  37. furi_hal_speaker_start(NOTE_WIN, volume);
  38. }
  39. }
  40. void mine_sweeper_play_lose_sound(void* context) {
  41. MineSweeperApp* app = context;
  42. if (!app->feedback_enabled) {
  43. return;
  44. }
  45. if(furi_hal_speaker_is_mine() || furi_hal_speaker_acquire(30)) {
  46. furi_hal_speaker_start(NOTE_LOSE, volume);
  47. }
  48. }
  49. void mine_sweeper_stop_all_sound(void* context) {
  50. MineSweeperApp* app = context;
  51. if (!app->feedback_enabled) {
  52. return;
  53. }
  54. if(furi_hal_speaker_is_mine()) {
  55. furi_hal_speaker_stop();
  56. furi_hal_speaker_release();
  57. }
  58. }