diff --git a/applications/plugins/musictracker/tracker_engine/speaker_hal.c b/applications/plugins/musictracker/tracker_engine/speaker_hal.c index 9c831aaef..aa79e5395 100644 --- a/applications/plugins/musictracker/tracker_engine/speaker_hal.c +++ b/applications/plugins/musictracker/tracker_engine/speaker_hal.c @@ -47,8 +47,10 @@ void tracker_speaker_init() { } void tracker_speaker_deinit() { - furi_hal_speaker_stop(); - furi_hal_speaker_release(); + if(furi_hal_speaker_is_mine()) { + furi_hal_speaker_stop(); + furi_hal_speaker_release(); + } } static FuriHalInterruptISR tracker_isr; diff --git a/applications/plugins/ocarina/ocarina.c b/applications/plugins/ocarina/ocarina.c index 3ee8f8afc..96640ebdb 100644 --- a/applications/plugins/ocarina/ocarina.c +++ b/applications/plugins/ocarina/ocarina.c @@ -116,8 +116,10 @@ int32_t ocarina_app(void* p) { break; } } else if(event.type == InputTypeRelease) { - furi_hal_speaker_stop(); - furi_hal_speaker_release(); + if(furi_hal_speaker_is_mine()) { + furi_hal_speaker_stop(); + furi_hal_speaker_release(); + } } } diff --git a/applications/plugins/tuning_fork/tuning_fork.c b/applications/plugins/tuning_fork/tuning_fork.c index faf734193..c846060b3 100644 --- a/applications/plugins/tuning_fork/tuning_fork.c +++ b/applications/plugins/tuning_fork/tuning_fork.c @@ -120,8 +120,10 @@ static void play(TuningForkState* tuning_fork_state) { } static void stop() { - furi_hal_speaker_stop(); - furi_hal_speaker_release(); + if(furi_hal_speaker_is_mine()) { + furi_hal_speaker_stop(); + furi_hal_speaker_release(); + } } static void replay(TuningForkState* tuning_fork_state) { diff --git a/applications/plugins/usb_midi/usb_midi.c b/applications/plugins/usb_midi/usb_midi.c index 42927e961..d64a836e1 100644 --- a/applications/plugins/usb_midi/usb_midi.c +++ b/applications/plugins/usb_midi/usb_midi.c @@ -63,7 +63,7 @@ int32_t usb_midi_app(void* p) { } } else if(event->type == NoteOff) { NoteOffEvent note_off = AsNoteOff(event); - if(note_off.note == current_note) { + if(furi_hal_speaker_is_mine() && note_off.note == current_note) { furi_hal_speaker_stop(); furi_hal_speaker_release(); }