From 411855ce81cf4cc83dbc5c8214e79c5e869c9f77 Mon Sep 17 00:00:00 2001 From: Emanuele Conti Date: Thu, 26 Jan 2023 14:31:54 +0000 Subject: [PATCH 1/6] Added movement interval in mouse_jiggler USB & BLE --- .../plugins/hid_app/views/hid_mouse_jiggler.c | 79 +++++++++++++------ .../usbkeyboard/views/usb_hid_mouse_jiggler.c | 77 ++++++++++++------ 2 files changed, 105 insertions(+), 51 deletions(-) diff --git a/applications/plugins/hid_app/views/hid_mouse_jiggler.c b/applications/plugins/hid_app/views/hid_mouse_jiggler.c index d8f1f8928..56b0eca1f 100644 --- a/applications/plugins/hid_app/views/hid_mouse_jiggler.c +++ b/applications/plugins/hid_app/views/hid_mouse_jiggler.c @@ -1,11 +1,14 @@ #include "hid_mouse_jiggler.h" #include +#include #include "../hid.h" #include "hid_icons.h" #define TAG "HidMouseJiggler" +#define LENGTH(x) (int)(sizeof(x) / sizeof((x)[0])) + struct HidMouseJiggler { View* view; Hid* hid; @@ -15,10 +18,13 @@ struct HidMouseJiggler { typedef struct { bool connected; bool running; + int interval_idx; uint8_t counter; HidTransport transport; } HidMouseJigglerModel; +const int intervals[6] = {500, 2000, 5000, 10000, 30000, 60000}; + static void hid_mouse_jiggler_draw_callback(Canvas* canvas, void* context) { furi_assert(context); HidMouseJigglerModel* model = context; @@ -33,29 +39,39 @@ static void hid_mouse_jiggler_draw_callback(Canvas* canvas, void* context) { } canvas_set_font(canvas, FontPrimary); - elements_multiline_text_aligned(canvas, 17, 3, AlignLeft, AlignTop, "Mouse Jiggler"); + elements_multiline_text_aligned(canvas, 17, 2, AlignLeft, AlignTop, "Mouse Jiggler"); + + // Timeout + string_t interval_str; + string_init(interval_str); + string_printf(interval_str, "%d", intervals[model->interval_idx]); + elements_multiline_text(canvas, AlignLeft, 26, "Interval (ms):"); + canvas_set_font(canvas, FontSecondary); + if(model->interval_idx != 0) canvas_draw_icon(canvas, 74, 19, &I_ButtonLeft_4x7); + if(model->interval_idx != 5) canvas_draw_icon(canvas, 80, 19, &I_ButtonRight_4x7); + elements_multiline_text(canvas, 91, 26, string_get_cstr(interval_str)); canvas_set_font(canvas, FontPrimary); - elements_multiline_text(canvas, AlignLeft, 35, "Press Start\nto jiggle"); + elements_multiline_text(canvas, AlignLeft, 40, "Press Start\nto jiggle"); canvas_set_font(canvas, FontSecondary); // Ok - canvas_draw_icon(canvas, 63, 25, &I_Space_65x18); + canvas_draw_icon(canvas, 63, 30, &I_Space_65x18); if(model->running) { - elements_slightly_rounded_box(canvas, 66, 27, 60, 13); + elements_slightly_rounded_box(canvas, 66, 32, 60, 13); canvas_set_color(canvas, ColorWhite); } - canvas_draw_icon(canvas, 74, 29, &I_Ok_btn_9x9); + canvas_draw_icon(canvas, 74, 34, &I_Ok_btn_9x9); if(model->running) { - elements_multiline_text_aligned(canvas, 91, 36, AlignLeft, AlignBottom, "Stop"); + elements_multiline_text_aligned(canvas, 91, 41, AlignLeft, AlignBottom, "Stop"); } else { - elements_multiline_text_aligned(canvas, 91, 36, AlignLeft, AlignBottom, "Start"); + elements_multiline_text_aligned(canvas, 91, 41, AlignLeft, AlignBottom, "Start"); } canvas_set_color(canvas, ColorBlack); // Back - canvas_draw_icon(canvas, 74, 49, &I_Pin_back_arrow_10x8); - elements_multiline_text_aligned(canvas, 91, 57, AlignLeft, AlignBottom, "Quit"); + canvas_draw_icon(canvas, 74, 54, &I_Pin_back_arrow_10x8); + elements_multiline_text_aligned(canvas, 91, 62, AlignLeft, AlignBottom, "Quit"); } static void hid_mouse_jiggler_timer_callback(void* context) { @@ -76,13 +92,6 @@ static void hid_mouse_jiggler_timer_callback(void* context) { false); } -static void hid_mouse_jiggler_enter_callback(void* context) { - furi_assert(context); - HidMouseJiggler* hid_mouse_jiggler = context; - - furi_timer_start(hid_mouse_jiggler->timer, 500); -} - static void hid_mouse_jiggler_exit_callback(void* context) { furi_assert(context); HidMouseJiggler* hid_mouse_jiggler = context; @@ -95,14 +104,30 @@ static bool hid_mouse_jiggler_input_callback(InputEvent* event, void* context) { bool consumed = false; - if(event->key == InputKeyOk) { - with_view_model( - hid_mouse_jiggler->view, - HidMouseJigglerModel * model, - { model->running = !model->running; }, - true); - consumed = true; - } + with_view_model( + hid_mouse_jiggler->view, + HidMouseJigglerModel * model, + { + if(event->type == InputTypePress && event->key == InputKeyOk) { + model->running = !model->running; + if(model->running) { + furi_timer_stop(hid_mouse_jiggler->timer); + furi_timer_start(hid_mouse_jiggler->timer, intervals[model->interval_idx]); + }; + consumed = true; + } + if(event->type == InputTypePress && event->key == InputKeyRight && !model->running && + model->interval_idx < LENGTH(intervals)) { + model->interval_idx++; + consumed = true; + } + if(event->type == InputTypePress && event->key == InputKeyLeft && !model->running && + model->interval_idx > 0) { + model->interval_idx--; + consumed = true; + } + }, + true); return consumed; } @@ -116,7 +141,6 @@ HidMouseJiggler* hid_mouse_jiggler_alloc(Hid* hid) { hid_mouse_jiggler->view, ViewModelTypeLocking, sizeof(HidMouseJigglerModel)); view_set_draw_callback(hid_mouse_jiggler->view, hid_mouse_jiggler_draw_callback); view_set_input_callback(hid_mouse_jiggler->view, hid_mouse_jiggler_input_callback); - view_set_enter_callback(hid_mouse_jiggler->view, hid_mouse_jiggler_enter_callback); view_set_exit_callback(hid_mouse_jiggler->view, hid_mouse_jiggler_exit_callback); hid_mouse_jiggler->hid = hid; @@ -127,7 +151,10 @@ HidMouseJiggler* hid_mouse_jiggler_alloc(Hid* hid) { with_view_model( hid_mouse_jiggler->view, HidMouseJigglerModel * model, - { model->transport = hid->transport; }, + { + model->transport = hid->transport; + model->interval_idx = 2; + }, true); return hid_mouse_jiggler; diff --git a/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c b/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c index fe0c618d2..0728eea4b 100644 --- a/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c +++ b/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c @@ -1,12 +1,15 @@ #include "usb_hid_mouse_jiggler.h" #include #include +#include #include #include #define TAG "HidMouseJiggler" +#define LENGTH(x) (int)(sizeof(x) / sizeof((x)[0])) + struct HidMouseJiggler { View* view; FuriTimer* timer; @@ -14,38 +17,51 @@ struct HidMouseJiggler { typedef struct { bool running; + int interval_idx; uint8_t counter; } HidMouseJigglerModel; +const int intervals[6] = {500, 2000, 5000, 10000, 30000, 60000}; + static void hid_mouse_jiggler_draw_callback(Canvas* canvas, void* context) { furi_assert(context); HidMouseJigglerModel* model = context; // Header canvas_set_font(canvas, FontPrimary); - elements_multiline_text_aligned(canvas, 17, 3, AlignLeft, AlignTop, "Mouse Jiggler"); + elements_multiline_text_aligned(canvas, 17, 2, AlignLeft, AlignTop, "Mouse Jiggler"); + + // Timeout + string_t interval_str; + string_init(interval_str); + string_printf(interval_str, "%d", intervals[model->interval_idx]); + elements_multiline_text(canvas, AlignLeft, 26, "Interval (ms):"); + canvas_set_font(canvas, FontSecondary); + if(model->interval_idx != 0) canvas_draw_icon(canvas, 74, 19, &I_ButtonLeft_4x7); + if(model->interval_idx != 5) canvas_draw_icon(canvas, 80, 19, &I_ButtonRight_4x7); + elements_multiline_text(canvas, 91, 26, string_get_cstr(interval_str)); canvas_set_font(canvas, FontPrimary); - elements_multiline_text(canvas, AlignLeft, 35, "Press Start\nto jiggle"); + elements_multiline_text(canvas, AlignLeft, 40, "Press Start\nto jiggle"); canvas_set_font(canvas, FontSecondary); // Ok - canvas_draw_icon(canvas, 63, 25, &I_Space_65x18); + canvas_draw_icon(canvas, 63, 30, &I_Space_65x18); if(model->running) { - elements_slightly_rounded_box(canvas, 66, 27, 60, 13); + elements_slightly_rounded_box(canvas, 66, 32, 60, 13); canvas_set_color(canvas, ColorWhite); } - canvas_draw_icon(canvas, 74, 29, &I_Ok_btn_9x9); + canvas_draw_icon(canvas, 74, 34, &I_Ok_btn_9x9); if(model->running) { - elements_multiline_text_aligned(canvas, 91, 36, AlignLeft, AlignBottom, "Stop"); + elements_multiline_text_aligned(canvas, 91, 41, AlignLeft, AlignBottom, "Stop"); } else { - elements_multiline_text_aligned(canvas, 91, 36, AlignLeft, AlignBottom, "Start"); + elements_multiline_text_aligned(canvas, 91, 41, AlignLeft, AlignBottom, "Start"); } canvas_set_color(canvas, ColorBlack); // Back - canvas_draw_icon(canvas, 74, 49, &I_Pin_back_arrow_10x8); - elements_multiline_text_aligned(canvas, 91, 57, AlignLeft, AlignBottom, "Quit"); + canvas_draw_icon(canvas, 74, 54, &I_Pin_back_arrow_10x8); + elements_multiline_text_aligned(canvas, 91, 62, AlignLeft, AlignBottom, "Quit"); } static void hid_mouse_jiggler_timer_callback(void* context) { @@ -64,13 +80,6 @@ static void hid_mouse_jiggler_timer_callback(void* context) { false); } -static void hid_mouse_jiggler_enter_callback(void* context) { - furi_assert(context); - HidMouseJiggler* hid_mouse_jiggler = context; - - furi_timer_start(hid_mouse_jiggler->timer, 500); -} - static void hid_mouse_jiggler_exit_callback(void* context) { furi_assert(context); HidMouseJiggler* hid_mouse_jiggler = context; @@ -83,14 +92,30 @@ static bool hid_mouse_jiggler_input_callback(InputEvent* event, void* context) { bool consumed = false; - if(event->key == InputKeyOk) { - with_view_model( - hid_mouse_jiggler->view, - HidMouseJigglerModel * model, - { model->running = !model->running; }, - true); - consumed = true; - } + with_view_model( + hid_mouse_jiggler->view, + HidMouseJigglerModel * model, + { + if(event->type == InputTypePress && event->key == InputKeyOk) { + model->running = !model->running; + if(model->running) { + furi_timer_stop(hid_mouse_jiggler->timer); + furi_timer_start(hid_mouse_jiggler->timer, intervals[model->interval_idx]); + }; + consumed = true; + } + if(event->type == InputTypePress && event->key == InputKeyRight && !model->running && + model->interval_idx < LENGTH(intervals)) { + model->interval_idx++; + consumed = true; + } + if(event->type == InputTypePress && event->key == InputKeyLeft && !model->running && + model->interval_idx > 0) { + model->interval_idx--; + consumed = true; + } + }, + true); return consumed; } @@ -104,12 +129,14 @@ HidMouseJiggler* hid_mouse_jiggler_alloc() { hid_mouse_jiggler->view, ViewModelTypeLocking, sizeof(HidMouseJigglerModel)); view_set_draw_callback(hid_mouse_jiggler->view, hid_mouse_jiggler_draw_callback); view_set_input_callback(hid_mouse_jiggler->view, hid_mouse_jiggler_input_callback); - view_set_enter_callback(hid_mouse_jiggler->view, hid_mouse_jiggler_enter_callback); view_set_exit_callback(hid_mouse_jiggler->view, hid_mouse_jiggler_exit_callback); hid_mouse_jiggler->timer = furi_timer_alloc( hid_mouse_jiggler_timer_callback, FuriTimerTypePeriodic, hid_mouse_jiggler); + with_view_model( + hid_mouse_jiggler->view, HidMouseJigglerModel * model, { model->interval_idx = 2; }, true); + return hid_mouse_jiggler; } From 884a751ae774af5f80948d29faaeed176a2e0478 Mon Sep 17 00:00:00 2001 From: Emanuele Conti Date: Thu, 26 Jan 2023 14:55:15 +0000 Subject: [PATCH 2/6] Fixed max array size check --- applications/plugins/hid_app/views/hid_mouse_jiggler.c | 2 +- applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/applications/plugins/hid_app/views/hid_mouse_jiggler.c b/applications/plugins/hid_app/views/hid_mouse_jiggler.c index 56b0eca1f..92b9c619b 100644 --- a/applications/plugins/hid_app/views/hid_mouse_jiggler.c +++ b/applications/plugins/hid_app/views/hid_mouse_jiggler.c @@ -117,7 +117,7 @@ static bool hid_mouse_jiggler_input_callback(InputEvent* event, void* context) { consumed = true; } if(event->type == InputTypePress && event->key == InputKeyRight && !model->running && - model->interval_idx < LENGTH(intervals)) { + model->interval_idx < LENGTH(intervals) - 1) { model->interval_idx++; consumed = true; } diff --git a/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c b/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c index 0728eea4b..dafb70e21 100644 --- a/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c +++ b/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c @@ -105,7 +105,7 @@ static bool hid_mouse_jiggler_input_callback(InputEvent* event, void* context) { consumed = true; } if(event->type == InputTypePress && event->key == InputKeyRight && !model->running && - model->interval_idx < LENGTH(intervals)) { + model->interval_idx < LENGTH(intervals) - 1) { model->interval_idx++; consumed = true; } From a5d92d7a087c72282afe62f4946ec29c92bf2f3b Mon Sep 17 00:00:00 2001 From: Emanuele Conti Date: Thu, 26 Jan 2023 15:00:34 +0000 Subject: [PATCH 3/6] Used array lenght to hide right arrow --- applications/plugins/hid_app/views/hid_mouse_jiggler.c | 3 ++- applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/applications/plugins/hid_app/views/hid_mouse_jiggler.c b/applications/plugins/hid_app/views/hid_mouse_jiggler.c index 92b9c619b..9ea8607bc 100644 --- a/applications/plugins/hid_app/views/hid_mouse_jiggler.c +++ b/applications/plugins/hid_app/views/hid_mouse_jiggler.c @@ -48,7 +48,8 @@ static void hid_mouse_jiggler_draw_callback(Canvas* canvas, void* context) { elements_multiline_text(canvas, AlignLeft, 26, "Interval (ms):"); canvas_set_font(canvas, FontSecondary); if(model->interval_idx != 0) canvas_draw_icon(canvas, 74, 19, &I_ButtonLeft_4x7); - if(model->interval_idx != 5) canvas_draw_icon(canvas, 80, 19, &I_ButtonRight_4x7); + if(model->interval_idx != LENGTH(intervals) - 1) + canvas_draw_icon(canvas, 80, 19, &I_ButtonRight_4x7); elements_multiline_text(canvas, 91, 26, string_get_cstr(interval_str)); canvas_set_font(canvas, FontPrimary); diff --git a/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c b/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c index dafb70e21..0b938ea59 100644 --- a/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c +++ b/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c @@ -38,7 +38,8 @@ static void hid_mouse_jiggler_draw_callback(Canvas* canvas, void* context) { elements_multiline_text(canvas, AlignLeft, 26, "Interval (ms):"); canvas_set_font(canvas, FontSecondary); if(model->interval_idx != 0) canvas_draw_icon(canvas, 74, 19, &I_ButtonLeft_4x7); - if(model->interval_idx != 5) canvas_draw_icon(canvas, 80, 19, &I_ButtonRight_4x7); + if(model->interval_idx != LENGTH(intervals) - 1) + canvas_draw_icon(canvas, 80, 19, &I_ButtonRight_4x7); elements_multiline_text(canvas, 91, 26, string_get_cstr(interval_str)); canvas_set_font(canvas, FontPrimary); From fbe720981777fd71fa3fa7567c5ae2394bfc4250 Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Thu, 2 Feb 2023 13:16:00 +0300 Subject: [PATCH 4/6] Use FuriString instead of string_t --- applications/plugins/hid_app/views/hid_mouse_jiggler.c | 7 ++----- .../plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c | 8 +++----- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/applications/plugins/hid_app/views/hid_mouse_jiggler.c b/applications/plugins/hid_app/views/hid_mouse_jiggler.c index 9ea8607bc..1e967e192 100644 --- a/applications/plugins/hid_app/views/hid_mouse_jiggler.c +++ b/applications/plugins/hid_app/views/hid_mouse_jiggler.c @@ -1,6 +1,5 @@ #include "hid_mouse_jiggler.h" #include -#include #include "../hid.h" #include "hid_icons.h" @@ -42,15 +41,13 @@ static void hid_mouse_jiggler_draw_callback(Canvas* canvas, void* context) { elements_multiline_text_aligned(canvas, 17, 2, AlignLeft, AlignTop, "Mouse Jiggler"); // Timeout - string_t interval_str; - string_init(interval_str); - string_printf(interval_str, "%d", intervals[model->interval_idx]); + FuriString* interval_str = furi_string_alloc_printf("%d", intervals[model->interval_idx]); elements_multiline_text(canvas, AlignLeft, 26, "Interval (ms):"); canvas_set_font(canvas, FontSecondary); if(model->interval_idx != 0) canvas_draw_icon(canvas, 74, 19, &I_ButtonLeft_4x7); if(model->interval_idx != LENGTH(intervals) - 1) canvas_draw_icon(canvas, 80, 19, &I_ButtonRight_4x7); - elements_multiline_text(canvas, 91, 26, string_get_cstr(interval_str)); + elements_multiline_text(canvas, 91, 26, furi_string_get_cstr(interval_str)); canvas_set_font(canvas, FontPrimary); elements_multiline_text(canvas, AlignLeft, 40, "Press Start\nto jiggle"); diff --git a/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c b/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c index 0b938ea59..683111f81 100644 --- a/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c +++ b/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c @@ -1,7 +1,6 @@ #include "usb_hid_mouse_jiggler.h" #include #include -#include #include #include @@ -32,15 +31,14 @@ static void hid_mouse_jiggler_draw_callback(Canvas* canvas, void* context) { elements_multiline_text_aligned(canvas, 17, 2, AlignLeft, AlignTop, "Mouse Jiggler"); // Timeout - string_t interval_str; - string_init(interval_str); - string_printf(interval_str, "%d", intervals[model->interval_idx]); + FuriString* interval_str = furi_string_alloc_printf("%d", intervals[model->interval_idx]); + elements_multiline_text(canvas, AlignLeft, 26, "Interval (ms):"); elements_multiline_text(canvas, AlignLeft, 26, "Interval (ms):"); canvas_set_font(canvas, FontSecondary); if(model->interval_idx != 0) canvas_draw_icon(canvas, 74, 19, &I_ButtonLeft_4x7); if(model->interval_idx != LENGTH(intervals) - 1) canvas_draw_icon(canvas, 80, 19, &I_ButtonRight_4x7); - elements_multiline_text(canvas, 91, 26, string_get_cstr(interval_str)); + elements_multiline_text(canvas, 91, 26, furi_string_get_cstr(interval_str)); canvas_set_font(canvas, FontPrimary); elements_multiline_text(canvas, AlignLeft, 40, "Press Start\nto jiggle"); From 05641378d95863521825d0811045c3397fc2842c Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Thu, 2 Feb 2023 13:20:58 +0300 Subject: [PATCH 5/6] Fixed --- applications/plugins/hid_app/views/hid_mouse_jiggler.c | 2 ++ applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/applications/plugins/hid_app/views/hid_mouse_jiggler.c b/applications/plugins/hid_app/views/hid_mouse_jiggler.c index 1e967e192..9da72fa15 100644 --- a/applications/plugins/hid_app/views/hid_mouse_jiggler.c +++ b/applications/plugins/hid_app/views/hid_mouse_jiggler.c @@ -49,6 +49,8 @@ static void hid_mouse_jiggler_draw_callback(Canvas* canvas, void* context) { canvas_draw_icon(canvas, 80, 19, &I_ButtonRight_4x7); elements_multiline_text(canvas, 91, 26, furi_string_get_cstr(interval_str)); + furi_string_free(interval_str); + canvas_set_font(canvas, FontPrimary); elements_multiline_text(canvas, AlignLeft, 40, "Press Start\nto jiggle"); canvas_set_font(canvas, FontSecondary); diff --git a/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c b/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c index 683111f81..aeb8d715d 100644 --- a/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c +++ b/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c @@ -33,13 +33,14 @@ static void hid_mouse_jiggler_draw_callback(Canvas* canvas, void* context) { // Timeout FuriString* interval_str = furi_string_alloc_printf("%d", intervals[model->interval_idx]); elements_multiline_text(canvas, AlignLeft, 26, "Interval (ms):"); - elements_multiline_text(canvas, AlignLeft, 26, "Interval (ms):"); canvas_set_font(canvas, FontSecondary); if(model->interval_idx != 0) canvas_draw_icon(canvas, 74, 19, &I_ButtonLeft_4x7); if(model->interval_idx != LENGTH(intervals) - 1) canvas_draw_icon(canvas, 80, 19, &I_ButtonRight_4x7); elements_multiline_text(canvas, 91, 26, furi_string_get_cstr(interval_str)); + furi_string_free(interval_str); + canvas_set_font(canvas, FontPrimary); elements_multiline_text(canvas, AlignLeft, 40, "Press Start\nto jiggle"); canvas_set_font(canvas, FontSecondary); From a617ce1813ee99ebaf9cd79f10be0f9ce5b48416 Mon Sep 17 00:00:00 2001 From: Emanuele Conti Date: Thu, 2 Feb 2023 10:32:07 +0000 Subject: [PATCH 6/6] used FuriString instead of string_t --- applications/plugins/hid_app/views/hid_mouse_jiggler.c | 7 ++----- .../plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c | 7 ++----- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/applications/plugins/hid_app/views/hid_mouse_jiggler.c b/applications/plugins/hid_app/views/hid_mouse_jiggler.c index 9ea8607bc..50e5debbc 100644 --- a/applications/plugins/hid_app/views/hid_mouse_jiggler.c +++ b/applications/plugins/hid_app/views/hid_mouse_jiggler.c @@ -1,6 +1,5 @@ #include "hid_mouse_jiggler.h" #include -#include #include "../hid.h" #include "hid_icons.h" @@ -42,15 +41,13 @@ static void hid_mouse_jiggler_draw_callback(Canvas* canvas, void* context) { elements_multiline_text_aligned(canvas, 17, 2, AlignLeft, AlignTop, "Mouse Jiggler"); // Timeout - string_t interval_str; - string_init(interval_str); - string_printf(interval_str, "%d", intervals[model->interval_idx]); elements_multiline_text(canvas, AlignLeft, 26, "Interval (ms):"); canvas_set_font(canvas, FontSecondary); if(model->interval_idx != 0) canvas_draw_icon(canvas, 74, 19, &I_ButtonLeft_4x7); if(model->interval_idx != LENGTH(intervals) - 1) canvas_draw_icon(canvas, 80, 19, &I_ButtonRight_4x7); - elements_multiline_text(canvas, 91, 26, string_get_cstr(interval_str)); + FuriString* interval_str = furi_string_alloc_printf("%d", intervals[model->interval_idx]); + elements_multiline_text(canvas, 91, 26, furi_string_get_cstr(interval_str)); canvas_set_font(canvas, FontPrimary); elements_multiline_text(canvas, AlignLeft, 40, "Press Start\nto jiggle"); diff --git a/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c b/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c index 0b938ea59..2a1a81035 100644 --- a/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c +++ b/applications/plugins/usbkeyboard/views/usb_hid_mouse_jiggler.c @@ -1,7 +1,6 @@ #include "usb_hid_mouse_jiggler.h" #include #include -#include #include #include @@ -32,15 +31,13 @@ static void hid_mouse_jiggler_draw_callback(Canvas* canvas, void* context) { elements_multiline_text_aligned(canvas, 17, 2, AlignLeft, AlignTop, "Mouse Jiggler"); // Timeout - string_t interval_str; - string_init(interval_str); - string_printf(interval_str, "%d", intervals[model->interval_idx]); elements_multiline_text(canvas, AlignLeft, 26, "Interval (ms):"); canvas_set_font(canvas, FontSecondary); if(model->interval_idx != 0) canvas_draw_icon(canvas, 74, 19, &I_ButtonLeft_4x7); if(model->interval_idx != LENGTH(intervals) - 1) canvas_draw_icon(canvas, 80, 19, &I_ButtonRight_4x7); - elements_multiline_text(canvas, 91, 26, string_get_cstr(interval_str)); + FuriString* interval_str = furi_string_alloc_printf("%d", intervals[model->interval_idx]); + elements_multiline_text(canvas, 91, 26, furi_string_get_cstr(interval_str)); canvas_set_font(canvas, FontPrimary); elements_multiline_text(canvas, AlignLeft, 40, "Press Start\nto jiggle");