Просмотр исходного кода

Merge metronome from https://github.com/xMasterX/all-the-plugins

Willy-JL 2 лет назад
Родитель
Сommit
28196b4333
5 измененных файлов с 12 добавлено и 4 удалено
  1. 6 1
      metronome/application.fam
  2. BIN
      metronome/img/1.png
  3. BIN
      metronome/img/2.png
  4. BIN
      metronome/img/screenshot.png
  5. 6 3
      metronome/metronome.c

+ 6 - 1
metronome/application.fam

@@ -3,10 +3,15 @@ App(
     name="Metronome",
     apptype=FlipperAppType.EXTERNAL,
     entry_point="metronome_app",
-    requires=["gui"],
+    requires=[
+        "gui",
+    ],
     fap_icon="metronome_10x.png",
     fap_icon_assets="icons",
     fap_category="Media",
     stack_size=2 * 1024,
     order=20,
+    fap_author="@panki27 & @xMasterX",
+    fap_version="1.1",
+    fap_description="Metronome app",
 )

BIN
metronome/img/1.png


BIN
metronome/img/2.png


BIN
metronome/img/screenshot.png


+ 6 - 3
metronome/metronome.c

@@ -54,7 +54,8 @@ typedef struct {
 } MetronomeState;
 
 static void render_callback(Canvas* const canvas, void* ctx) {
-    const MetronomeState* metronome_state = (MetronomeState*)ctx;
+    furi_assert(ctx);
+    const MetronomeState* metronome_state = ctx;
     furi_mutex_acquire(metronome_state->mutex, FuriWaitForever);
 
     FuriString* tempStr = furi_string_alloc();
@@ -140,8 +141,10 @@ static void input_callback(InputEvent* input_event, FuriMessageQueue* event_queu
 
 static void timer_callback(void* ctx) {
     // this is where we go BEEP!
-    MetronomeState* metronome_state = (MetronomeState*)ctx;
+    furi_assert(ctx);
+    MetronomeState* metronome_state = ctx;
     furi_mutex_acquire(metronome_state->mutex, FuriWaitForever);
+
     metronome_state->current_beat++;
     if(metronome_state->current_beat > metronome_state->beats_per_bar) {
         metronome_state->current_beat = 1;
@@ -378,8 +381,8 @@ int32_t metronome_app() {
             }
         }
 
-        view_port_update(view_port);
         furi_mutex_release(metronome_state->mutex);
+        view_port_update(view_port);
     }
 
     view_port_enabled_set(view_port, false);