mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-14 19:08:35 -07:00
added sfw_mode support for badusb
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
#include "../bad_usb_app_i.h"
|
#include "../bad_usb_app_i.h"
|
||||||
|
#include "../../../settings/desktop_settings/desktop_settings_app.h"
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
BadUsbCustomEventErrorBack,
|
BadUsbCustomEventErrorBack,
|
||||||
@@ -16,6 +17,8 @@ static void
|
|||||||
|
|
||||||
void bad_usb_scene_error_on_enter(void* context) {
|
void bad_usb_scene_error_on_enter(void* context) {
|
||||||
BadUsbApp* app = context;
|
BadUsbApp* app = context;
|
||||||
|
DesktopSettings* settings = malloc(sizeof(DesktopSettings));
|
||||||
|
DESKTOP_SETTINGS_LOAD(settings);
|
||||||
|
|
||||||
if(app->error == BadUsbAppErrorNoFiles) {
|
if(app->error == BadUsbAppErrorNoFiles) {
|
||||||
widget_add_icon_element(app->widget, 0, 0, &I_SDQuestion_35x43);
|
widget_add_icon_element(app->widget, 0, 0, &I_SDQuestion_35x43);
|
||||||
@@ -31,6 +34,19 @@ void bad_usb_scene_error_on_enter(void* context) {
|
|||||||
app->widget, GuiButtonTypeLeft, "Back", bad_usb_scene_error_event_callback, app);
|
app->widget, GuiButtonTypeLeft, "Back", bad_usb_scene_error_event_callback, app);
|
||||||
} else if(app->error == BadUsbAppErrorCloseRpc) {
|
} else if(app->error == BadUsbAppErrorCloseRpc) {
|
||||||
widget_add_icon_element(app->widget, 78, 0, &I_ActiveConnection_50x64);
|
widget_add_icon_element(app->widget, 78, 0, &I_ActiveConnection_50x64);
|
||||||
|
if (settings->sfw_mode) {
|
||||||
|
widget_add_string_multiline_element(
|
||||||
|
app->widget, 3, 2, AlignLeft, AlignTop, FontPrimary, "Connection\nis active!");
|
||||||
|
widget_add_string_multiline_element(
|
||||||
|
app->widget,
|
||||||
|
3,
|
||||||
|
30,
|
||||||
|
AlignLeft,
|
||||||
|
AlignTop,
|
||||||
|
FontSecondary,
|
||||||
|
"Disconnect from\nPC or phone to\nuse this function.");
|
||||||
|
}
|
||||||
|
else {
|
||||||
widget_add_string_multiline_element(
|
widget_add_string_multiline_element(
|
||||||
app->widget, 3, 2, AlignLeft, AlignTop, FontPrimary, "I am not\na whore!");
|
app->widget, 3, 2, AlignLeft, AlignTop, FontPrimary, "I am not\na whore!");
|
||||||
widget_add_string_multiline_element(
|
widget_add_string_multiline_element(
|
||||||
@@ -42,8 +58,10 @@ void bad_usb_scene_error_on_enter(void* context) {
|
|||||||
FontSecondary,
|
FontSecondary,
|
||||||
"Pull out from\nPC or phone to\nuse me like this.");
|
"Pull out from\nPC or phone to\nuse me like this.");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
view_dispatcher_switch_to_view(app->view_dispatcher, BadUsbAppViewError);
|
view_dispatcher_switch_to_view(app->view_dispatcher, BadUsbAppViewError);
|
||||||
|
free(settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool bad_usb_scene_error_on_event(void* context, SceneManagerEvent event) {
|
bool bad_usb_scene_error_on_event(void* context, SceneManagerEvent event) {
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
#include <toolbox/path.h>
|
#include <toolbox/path.h>
|
||||||
#include <gui/elements.h>
|
#include <gui/elements.h>
|
||||||
#include <bad_usb_icons.h>
|
#include <bad_usb_icons.h>
|
||||||
|
#include "../../../settings/desktop_settings/desktop_settings_app.h"
|
||||||
|
|
||||||
#define MAX_NAME_LEN 64
|
#define MAX_NAME_LEN 64
|
||||||
|
|
||||||
@@ -27,6 +28,8 @@ static void bad_usb_draw_callback(Canvas* canvas, void* _model) {
|
|||||||
elements_string_fit_width(canvas, disp_str, 128 - 2);
|
elements_string_fit_width(canvas, disp_str, 128 - 2);
|
||||||
canvas_set_font(canvas, FontSecondary);
|
canvas_set_font(canvas, FontSecondary);
|
||||||
canvas_draw_str(canvas, 2, 8, furi_string_get_cstr(disp_str));
|
canvas_draw_str(canvas, 2, 8, furi_string_get_cstr(disp_str));
|
||||||
|
DesktopSettings* settings = malloc(sizeof(DesktopSettings));
|
||||||
|
DESKTOP_SETTINGS_LOAD(settings);
|
||||||
|
|
||||||
if(strlen(model->layout) == 0) {
|
if(strlen(model->layout) == 0) {
|
||||||
furi_string_set(disp_str, "(default)");
|
furi_string_set(disp_str, "(default)");
|
||||||
@@ -47,7 +50,12 @@ static void bad_usb_draw_callback(Canvas* canvas, void* _model) {
|
|||||||
|
|
||||||
if((model->state.state == BadUsbStateIdle) || (model->state.state == BadUsbStateDone) ||
|
if((model->state.state == BadUsbStateIdle) || (model->state.state == BadUsbStateDone) ||
|
||||||
(model->state.state == BadUsbStateNotConnected)) {
|
(model->state.state == BadUsbStateNotConnected)) {
|
||||||
|
if (settings->sfw_mode) {
|
||||||
|
elements_button_center(canvas, "Start");
|
||||||
|
}
|
||||||
|
else {
|
||||||
elements_button_center(canvas, "Cum");
|
elements_button_center(canvas, "Cum");
|
||||||
|
}
|
||||||
} else if((model->state.state == BadUsbStateRunning) || (model->state.state == BadUsbStateDelay)) {
|
} else if((model->state.state == BadUsbStateRunning) || (model->state.state == BadUsbStateDelay)) {
|
||||||
elements_button_center(canvas, "Stop");
|
elements_button_center(canvas, "Stop");
|
||||||
} else if(model->state.state == BadUsbStateWillRun) {
|
} else if(model->state.state == BadUsbStateWillRun) {
|
||||||
@@ -62,12 +70,23 @@ static void bad_usb_draw_callback(Canvas* canvas, void* _model) {
|
|||||||
if(model->state.state == BadUsbStateNotConnected) {
|
if(model->state.state == BadUsbStateNotConnected) {
|
||||||
canvas_draw_icon(canvas, 4, 26, &I_Clock_18x18);
|
canvas_draw_icon(canvas, 4, 26, &I_Clock_18x18);
|
||||||
canvas_set_font(canvas, FontPrimary);
|
canvas_set_font(canvas, FontPrimary);
|
||||||
|
if (settings->sfw_mode) {
|
||||||
|
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Connect me");
|
||||||
|
canvas_draw_str_aligned(canvas, 127, 43, AlignRight, AlignBottom, "to a computer");
|
||||||
|
}
|
||||||
|
else {
|
||||||
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Plug me");
|
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Plug me");
|
||||||
canvas_draw_str_aligned(canvas, 127, 43, AlignRight, AlignBottom, "in, Daddy");
|
canvas_draw_str_aligned(canvas, 127, 43, AlignRight, AlignBottom, "in, Daddy");
|
||||||
|
}
|
||||||
} else if(model->state.state == BadUsbStateWillRun) {
|
} else if(model->state.state == BadUsbStateWillRun) {
|
||||||
canvas_draw_icon(canvas, 4, 26, &I_Clock_18x18);
|
canvas_draw_icon(canvas, 4, 26, &I_Clock_18x18);
|
||||||
canvas_set_font(canvas, FontPrimary);
|
canvas_set_font(canvas, FontPrimary);
|
||||||
|
if (settings->sfw_mode) {
|
||||||
|
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Will run");
|
||||||
|
}
|
||||||
|
else {
|
||||||
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Will cum");
|
canvas_draw_str_aligned(canvas, 127, 31, AlignRight, AlignBottom, "Will cum");
|
||||||
|
}
|
||||||
canvas_draw_str_aligned(canvas, 127, 43, AlignRight, AlignBottom, "on connect");
|
canvas_draw_str_aligned(canvas, 127, 43, AlignRight, AlignBottom, "on connect");
|
||||||
} else if(model->state.state == BadUsbStateFileError) {
|
} else if(model->state.state == BadUsbStateFileError) {
|
||||||
canvas_draw_icon(canvas, 4, 26, &I_Error_18x18);
|
canvas_draw_icon(canvas, 4, 26, &I_Error_18x18);
|
||||||
@@ -131,6 +150,7 @@ static void bad_usb_draw_callback(Canvas* canvas, void* _model) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
furi_string_free(disp_str);
|
furi_string_free(disp_str);
|
||||||
|
free(settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool bad_usb_input_callback(InputEvent* event, void* context) {
|
static bool bad_usb_input_callback(InputEvent* event, void* context) {
|
||||||
|
|||||||
Reference in New Issue
Block a user