mine_sweeper_speaker.c 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. }