fix speaker issues due to api change, fix switch statement, add icon in external folder

master
Felix Pankratz 2 years ago
parent dbbf149344
commit 3003355eb7

@ -8,6 +8,7 @@ App(
"gui", "gui",
], ],
fap_icon="metronome_icon.png", fap_icon="metronome_icon.png",
fap_icon_assets="icons",
fap_category="Music", fap_category="Music",
stack_size=2 * 1024, stack_size=2 * 1024,
order=20, order=20,

@ -1,5 +1,6 @@
#include <gui/canvas.h> #include <gui/canvas.h>
#include <gui/icon_i.h> #include <gui/icon_i.h>
#include "metronome_icons.h"
//lib can only do bottom left/right //lib can only do bottom left/right
void elements_button_top_left(Canvas* canvas, const char* str) { void elements_button_top_left(Canvas* canvas, const char* str) {

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 B

@ -135,7 +135,9 @@ static void timer_callback(void* ctx) {
notification_message(metronome_state->notifications, &sequence_set_only_red_255); notification_message(metronome_state->notifications, &sequence_set_only_red_255);
switch(metronome_state->output_mode) { switch(metronome_state->output_mode) {
case Loud: case Loud:
furi_hal_speaker_start(440.0f, 1.0f); if (furi_hal_speaker_acquire(1000)) {
furi_hal_speaker_start(440.0f, 1.0f);
}
break; break;
case Vibro: case Vibro:
notification_message(metronome_state->notifications, &sequence_set_vibro_on); notification_message(metronome_state->notifications, &sequence_set_vibro_on);
@ -148,7 +150,9 @@ static void timer_callback(void* ctx) {
notification_message(metronome_state->notifications, &sequence_set_only_green_255); notification_message(metronome_state->notifications, &sequence_set_only_green_255);
switch(metronome_state->output_mode) { switch(metronome_state->output_mode) {
case Loud: case Loud:
furi_hal_speaker_start(220.0f, 1.0f); if (furi_hal_speaker_acquire(1000)) {
furi_hal_speaker_start(220.0f, 1.0f);
}
break; break;
case Vibro: case Vibro:
notification_message(metronome_state->notifications, &sequence_set_vibro_on); notification_message(metronome_state->notifications, &sequence_set_vibro_on);
@ -162,7 +166,10 @@ static void timer_callback(void* ctx) {
switch(metronome_state->output_mode) { switch(metronome_state->output_mode) {
case Loud: case Loud:
furi_delay_ms(BEEP_DELAY_MS); furi_delay_ms(BEEP_DELAY_MS);
furi_hal_speaker_stop(); if (furi_hal_speaker_is_mine()) {
furi_hal_speaker_stop();
furi_hal_speaker_release();
}
break; break;
case Vibro: case Vibro:
if (metronome_state->current_beat == 1) { if (metronome_state->current_beat == 1) {
@ -269,6 +276,7 @@ int32_t metronome_app() {
metronome_state->timer = furi_timer_alloc(timer_callback, FuriTimerTypePeriodic, &state_mutex); metronome_state->timer = furi_timer_alloc(timer_callback, FuriTimerTypePeriodic, &state_mutex);
// Open GUI and register view_port // Open GUI and register view_port
//
Gui* gui = furi_record_open("gui"); Gui* gui = furi_record_open("gui");
gui_add_view_port(gui, view_port, GuiLayerFullscreen); gui_add_view_port(gui, view_port, GuiLayerFullscreen);
@ -306,6 +314,8 @@ int32_t metronome_app() {
case InputKeyBack: case InputKeyBack:
processing = false; processing = false;
break; break;
case InputKeyMAX:
break;
} }
} else if (event.input.type == InputTypeLong) { } else if (event.input.type == InputTypeLong) {
// hold events // hold events
@ -326,6 +336,8 @@ int32_t metronome_app() {
case InputKeyBack: case InputKeyBack:
processing = false; processing = false;
break; break;
case InputKeyMAX:
break;
} }
} else if (event.input.type == InputTypeRepeat) { } else if (event.input.type == InputTypeRepeat) {
// repeat events // repeat events
@ -345,6 +357,8 @@ int32_t metronome_app() {
case InputKeyBack: case InputKeyBack:
processing = false; processing = false;
break; break;
case InputKeyMAX:
break;
} }
} }
} }

Loading…
Cancel
Save