mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-16 04:24:45 -07:00
Fix some sound issues
This commit is contained in:
@@ -40,12 +40,15 @@ void tracker_speaker_stop() {
|
||||
}
|
||||
|
||||
void tracker_speaker_init() {
|
||||
furi_hal_speaker_start(200.0f, 0.01f);
|
||||
if(furi_hal_speaker_acquire(30)) {
|
||||
furi_hal_speaker_start(200.0f, 0.01f);
|
||||
}
|
||||
tracker_speaker_stop();
|
||||
}
|
||||
|
||||
void tracker_speaker_deinit() {
|
||||
furi_hal_speaker_stop();
|
||||
furi_hal_speaker_release();
|
||||
}
|
||||
|
||||
static FuriHalInterruptISR tracker_isr;
|
||||
|
||||
@@ -85,19 +85,29 @@ int32_t ocarina_app(void* p) {
|
||||
if(event.type == InputTypePress) {
|
||||
switch(event.key) {
|
||||
case InputKeyUp:
|
||||
furi_hal_speaker_start(NOTE_UP, volume);
|
||||
if(furi_hal_speaker_acquire(30)) {
|
||||
furi_hal_speaker_start(NOTE_UP, volume);
|
||||
}
|
||||
break;
|
||||
case InputKeyDown:
|
||||
furi_hal_speaker_start(NOTE_DOWN, volume);
|
||||
if(furi_hal_speaker_acquire(30)) {
|
||||
furi_hal_speaker_start(NOTE_DOWN, volume);
|
||||
}
|
||||
break;
|
||||
case InputKeyLeft:
|
||||
furi_hal_speaker_start(NOTE_LEFT, volume);
|
||||
if(furi_hal_speaker_acquire(30)) {
|
||||
furi_hal_speaker_start(NOTE_LEFT, volume);
|
||||
}
|
||||
break;
|
||||
case InputKeyRight:
|
||||
furi_hal_speaker_start(NOTE_RIGHT, volume);
|
||||
if(furi_hal_speaker_acquire(30)) {
|
||||
furi_hal_speaker_start(NOTE_RIGHT, volume);
|
||||
}
|
||||
break;
|
||||
case InputKeyOk:
|
||||
furi_hal_speaker_start(NOTE_OK, volume);
|
||||
if(furi_hal_speaker_acquire(30)) {
|
||||
furi_hal_speaker_start(NOTE_OK, volume);
|
||||
}
|
||||
break;
|
||||
case InputKeyBack:
|
||||
processing = false;
|
||||
@@ -107,6 +117,7 @@ int32_t ocarina_app(void* p) {
|
||||
}
|
||||
} else if(event.type == InputTypeRelease) {
|
||||
furi_hal_speaker_stop();
|
||||
furi_hal_speaker_release();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -102,11 +102,16 @@ static void tama_p1_hal_set_lcd_icon(u8_t icon, bool_t val) {
|
||||
}
|
||||
|
||||
static void tama_p1_hal_play_frequency(bool_t en) {
|
||||
if(en)
|
||||
furi_hal_speaker_start(g_ctx->frequency, 0.5f);
|
||||
else
|
||||
furi_hal_speaker_stop();
|
||||
|
||||
if(en) {
|
||||
if(furi_hal_speaker_acquire(30)) {
|
||||
furi_hal_speaker_start(g_ctx->frequency, 0.5f);
|
||||
}
|
||||
} else {
|
||||
if(furi_hal_speaker_is_mine()) {
|
||||
furi_hal_speaker_stop();
|
||||
furi_hal_speaker_release();
|
||||
}
|
||||
}
|
||||
g_ctx->buzzer_on = en;
|
||||
}
|
||||
|
||||
|
||||
@@ -114,11 +114,14 @@ static void decrease_volume(TuningForkState* tuning_fork_state) {
|
||||
}
|
||||
|
||||
static void play(TuningForkState* tuning_fork_state) {
|
||||
furi_hal_speaker_start(current_tuning_note_freq(tuning_fork_state), tuning_fork_state->volume);
|
||||
if(furi_hal_speaker_acquire(30)) {
|
||||
furi_hal_speaker_start(current_tuning_note_freq(tuning_fork_state), tuning_fork_state->volume);
|
||||
}
|
||||
}
|
||||
|
||||
static void stop() {
|
||||
furi_hal_speaker_stop();
|
||||
furi_hal_speaker_release();
|
||||
}
|
||||
|
||||
static void replay(TuningForkState* tuning_fork_state) {
|
||||
|
||||
@@ -57,12 +57,15 @@ int32_t usb_midi_app(void* p) {
|
||||
if(event->type == NoteOn) {
|
||||
NoteOnEvent note_on = AsNoteOn(event);
|
||||
current_note = note_on.note;
|
||||
furi_hal_speaker_start(
|
||||
note_to_frequency(note_on.note), note_on.velocity / 127.0f);
|
||||
if(furi_hal_speaker_acquire(30)) {
|
||||
furi_hal_speaker_start(
|
||||
note_to_frequency(note_on.note), note_on.velocity / 127.0f);
|
||||
}
|
||||
} else if(event->type == NoteOff) {
|
||||
NoteOffEvent note_off = AsNoteOff(event);
|
||||
if(note_off.note == current_note) {
|
||||
furi_hal_speaker_stop();
|
||||
furi_hal_speaker_release();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user