Explorar o código

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

Willy-JL %!s(int64=2) %!d(string=hai) anos
pai
achega
28196b4333
Modificáronse 5 ficheiros con 12 adicións e 4 borrados
  1. 6 1
      metronome/application.fam
  2. BIN=BIN
      metronome/img/1.png
  3. BIN=BIN
      metronome/img/2.png
  4. BIN=BIN
      metronome/img/screenshot.png
  5. 6 3
      metronome/metronome.c

+ 6 - 1
metronome/application.fam

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

BIN=BIN
metronome/img/1.png


BIN=BIN
metronome/img/2.png


BIN=BIN
metronome/img/screenshot.png


+ 6 - 3
metronome/metronome.c

@@ -54,7 +54,8 @@ typedef struct {
 } MetronomeState;
 } MetronomeState;
 
 
 static void render_callback(Canvas* const canvas, void* ctx) {
 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);
     furi_mutex_acquire(metronome_state->mutex, FuriWaitForever);
 
 
     FuriString* tempStr = furi_string_alloc();
     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) {
 static void timer_callback(void* ctx) {
     // this is where we go BEEP!
     // 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);
     furi_mutex_acquire(metronome_state->mutex, FuriWaitForever);
+
     metronome_state->current_beat++;
     metronome_state->current_beat++;
     if(metronome_state->current_beat > metronome_state->beats_per_bar) {
     if(metronome_state->current_beat > metronome_state->beats_per_bar) {
         metronome_state->current_beat = 1;
         metronome_state->current_beat = 1;
@@ -378,8 +381,8 @@ int32_t metronome_app() {
             }
             }
         }
         }
 
 
-        view_port_update(view_port);
         furi_mutex_release(metronome_state->mutex);
         furi_mutex_release(metronome_state->mutex);
+        view_port_update(view_port);
     }
     }
 
 
     view_port_enabled_set(view_port, false);
     view_port_enabled_set(view_port, false);