Преглед на файлове

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

Willy-JL преди 1 година
родител
ревизия
17112829cf
променени са 3 файла, в които са добавени 11 реда и са изтрити 10 реда
  1. 1 1
      metronome/application.fam
  2. 4 5
      metronome/gui_extensions.c
  3. 6 4
      metronome/metronome.c

+ 1 - 1
metronome/application.fam

@@ -12,6 +12,6 @@ App(
     stack_size=2 * 1024,
     order=20,
     fap_author="@panki27 & @xMasterX",
-    fap_version="1.1",
+    fap_version="1.2",
     fap_description="Metronome app",
 )

+ 4 - 5
metronome/gui_extensions.c

@@ -9,7 +9,7 @@ void elements_button_top_left(Canvas* canvas, const char* str) {
     const uint8_t button_height = 12;
     const uint8_t vertical_offset = 3;
     const uint8_t horizontal_offset = 3;
-    const uint8_t string_width = canvas_string_width(canvas, str);
+    uint16_t string_width = canvas_string_width(canvas, str);
     const Icon* icon = &I_ButtonUp_7x4;
     const uint8_t icon_h_offset = 3;
     const uint8_t icon_width_with_offset = icon->width + icon_h_offset;
@@ -25,7 +25,7 @@ void elements_button_top_left(Canvas* canvas, const char* str) {
     canvas_draw_line(canvas, x + button_width + 2, y - button_height, x + button_width + 2, y - 3);
 
     canvas_invert_color(canvas);
-    canvas_draw_icon(canvas, x + horizontal_offset, y - icon_v_offset, &I_ButtonUp_7x4);
+    canvas_draw_icon(canvas, x + horizontal_offset, y - icon_v_offset, icon);
     canvas_draw_str(
         canvas, x + horizontal_offset + icon_width_with_offset, y - vertical_offset, str);
     canvas_invert_color(canvas);
@@ -35,7 +35,7 @@ void elements_button_top_right(Canvas* canvas, const char* str) {
     const uint8_t button_height = 12;
     const uint8_t vertical_offset = 3;
     const uint8_t horizontal_offset = 3;
-    const uint8_t string_width = canvas_string_width(canvas, str);
+    uint16_t string_width = canvas_string_width(canvas, str);
     const Icon* icon = &I_ButtonUp_7x4;
     const uint8_t icon_h_offset = 3;
     const uint8_t icon_width_with_offset = icon->width + icon_h_offset;
@@ -52,7 +52,6 @@ void elements_button_top_right(Canvas* canvas, const char* str) {
 
     canvas_invert_color(canvas);
     canvas_draw_str(canvas, x - button_width + horizontal_offset, y - vertical_offset, str);
-    canvas_draw_icon(
-        canvas, x - horizontal_offset - icon->width, y - icon_v_offset, &I_ButtonUp_7x4);
+    canvas_draw_icon(canvas, x - horizontal_offset - icon->width, y - icon_v_offset, icon);
     canvas_invert_color(canvas);
 }

+ 6 - 4
metronome/metronome.c

@@ -124,8 +124,12 @@ static void render_callback(Canvas* const canvas, void* ctx) {
     elements_button_top_right(canvas, "Hold");
 
     // draw progress bar
-    elements_progress_bar(
-        canvas, 8, 36, 112, (float)metronome_state->current_beat / metronome_state->beats_per_bar);
+    float current_progress = (float)metronome_state->current_beat / metronome_state->beats_per_bar;
+    if(!((current_progress >= 0.0f) && (current_progress <= 1.0f))) {
+        current_progress = 0.1f;
+    }
+
+    elements_progress_bar(canvas, 8, 36, 112, current_progress);
 
     // cleanup
     furi_string_free(tempStr);
@@ -301,7 +305,6 @@ int32_t metronome_app() {
         FuriStatus event_status = furi_message_queue_get(event_queue, &event, 100);
 
         furi_mutex_acquire(metronome_state->mutex, FuriWaitForever);
-
         if(event_status == FuriStatusOk) {
             if(event.type == EventTypeKey) {
                 if(event.input.type == InputTypeShort) {
@@ -380,7 +383,6 @@ int32_t metronome_app() {
                 }
             }
         }
-
         furi_mutex_release(metronome_state->mutex);
         view_port_update(view_port);
     }