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

This commit is contained in:
Felix Pankratz 2022-12-23 15:47:59 +01:00
parent dbbf149344
commit 3003355eb7
4 changed files with 19 additions and 3 deletions

View File

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

View File

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

BIN
icons/ButtonUp_7x4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 B

View File

@ -135,7 +135,9 @@ static void timer_callback(void* ctx) {
notification_message(metronome_state->notifications, &sequence_set_only_red_255);
switch(metronome_state->output_mode) {
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;
case Vibro:
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);
switch(metronome_state->output_mode) {
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;
case Vibro:
notification_message(metronome_state->notifications, &sequence_set_vibro_on);
@ -162,7 +166,10 @@ static void timer_callback(void* ctx) {
switch(metronome_state->output_mode) {
case Loud:
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;
case Vibro:
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);
// Open GUI and register view_port
//
Gui* gui = furi_record_open("gui");
gui_add_view_port(gui, view_port, GuiLayerFullscreen);
@ -306,6 +314,8 @@ int32_t metronome_app() {
case InputKeyBack:
processing = false;
break;
case InputKeyMAX:
break;
}
} else if (event.input.type == InputTypeLong) {
// hold events
@ -326,6 +336,8 @@ int32_t metronome_app() {
case InputKeyBack:
processing = false;
break;
case InputKeyMAX:
break;
}
} else if (event.input.type == InputTypeRepeat) {
// repeat events
@ -345,6 +357,8 @@ int32_t metronome_app() {
case InputKeyBack:
processing = false;
break;
case InputKeyMAX:
break;
}
}
}