mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-13 09:28:36 -07:00
Fix USB/BT Remote Mouse Clicker merge
This commit is contained in:
@@ -8,6 +8,8 @@
|
|||||||
- OFW: JS: Added `math.is_equal()` and `math.EPSILON` (by @skotopes)
|
- OFW: JS: Added `math.is_equal()` and `math.EPSILON` (by @skotopes)
|
||||||
|
|
||||||
### Updated:
|
### Updated:
|
||||||
|
- Apps:
|
||||||
|
- USB/BT Remote: Added back new UI for Mouse Clicker from OFW (by @gsurkov)
|
||||||
- OFW: JS: Refactored and fixed `math` and `textbox` modules (by @nminaylov & @skotopes)
|
- OFW: JS: Refactored and fixed `math` and `textbox` modules (by @nminaylov & @skotopes)
|
||||||
|
|
||||||
### Fixed:
|
### Fixed:
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ static uint32_t hid_ptt_menu_view(void* context) {
|
|||||||
return HidViewPushToTalkMenu;
|
return HidViewPushToTalkMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
Hid* hid_alloc(void) {
|
Hid* hid_alloc() {
|
||||||
Hid* app = malloc(sizeof(Hid));
|
Hid* app = malloc(sizeof(Hid));
|
||||||
|
|
||||||
// Gui
|
// Gui
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
ADD_SCENE(hid, start, Start)
|
ADD_SCENE(hid, start, Start)
|
||||||
ADD_SCENE(hid, main, Main)
|
ADD_SCENE(hid, main, Main)
|
||||||
ADD_SCENE(hid, unpair, Unpair)
|
ADD_SCENE(hid, unpair, Unpair)
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
void hid_scene_main_on_enter(void* context) {
|
void hid_scene_main_on_enter(void* context) {
|
||||||
Hid* app = context;
|
Hid* app = context;
|
||||||
|
|
||||||
view_dispatcher_switch_to_view(
|
view_dispatcher_switch_to_view(
|
||||||
app->view_dispatcher, scene_manager_get_scene_state(app->scene_manager, HidSceneMain));
|
app->view_dispatcher, scene_manager_get_scene_state(app->scene_manager, HidSceneMain));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,9 @@ void hid_scene_unpair_on_enter(void* context) {
|
|||||||
dialog_ex_reset(app->dialog);
|
dialog_ex_reset(app->dialog);
|
||||||
dialog_ex_set_result_callback(app->dialog, hid_scene_unpair_dialog_callback);
|
dialog_ex_set_result_callback(app->dialog, hid_scene_unpair_dialog_callback);
|
||||||
dialog_ex_set_context(app->dialog, app);
|
dialog_ex_set_context(app->dialog, app);
|
||||||
dialog_ex_set_header(app->dialog, "Unpair the Device?", 64, 3, AlignCenter, AlignTop);
|
dialog_ex_set_header(app->dialog, "Unpair All Devices?", 64, 3, AlignCenter, AlignTop);
|
||||||
|
dialog_ex_set_text(
|
||||||
|
app->dialog, "All previous pairings\nwill be lost!", 64, 22, AlignCenter, AlignTop);
|
||||||
dialog_ex_set_left_button_text(app->dialog, "Back");
|
dialog_ex_set_left_button_text(app->dialog, "Back");
|
||||||
dialog_ex_set_right_button_text(app->dialog, "Unpair");
|
dialog_ex_set_right_button_text(app->dialog, "Unpair");
|
||||||
|
|
||||||
|
|||||||
@@ -228,7 +228,7 @@ static void hid_keyboard_draw_callback(Canvas* canvas, void* context) {
|
|||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
HidKeyboardModel* model = context;
|
HidKeyboardModel* model = context;
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
#ifdef HID_TRANSPORT_BLE
|
#ifdef HID_TRANSPORT_BLE
|
||||||
if(!model->connected) {
|
if(!model->connected) {
|
||||||
canvas_draw_icon(canvas, 0, 0, &I_Ble_disconnected_15x15);
|
canvas_draw_icon(canvas, 0, 0, &I_Ble_disconnected_15x15);
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ static void hid_keynote_draw_callback(Canvas* canvas, void* context) {
|
|||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
HidKeynoteModel* model = context;
|
HidKeynoteModel* model = context;
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
#ifdef HID_TRANSPORT_BLE
|
#ifdef HID_TRANSPORT_BLE
|
||||||
if(model->connected) {
|
if(model->connected) {
|
||||||
canvas_draw_icon(canvas, 0, 0, &I_Ble_connected_15x15);
|
canvas_draw_icon(canvas, 0, 0, &I_Ble_connected_15x15);
|
||||||
@@ -114,7 +114,7 @@ static void hid_keynote_draw_vertical_callback(Canvas* canvas, void* context) {
|
|||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
HidKeynoteModel* model = context;
|
HidKeynoteModel* model = context;
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
#ifdef HID_TRANSPORT_BLE
|
#ifdef HID_TRANSPORT_BLE
|
||||||
if(model->connected) {
|
if(model->connected) {
|
||||||
canvas_draw_icon(canvas, 0, 0, &I_Ble_connected_15x15);
|
canvas_draw_icon(canvas, 0, 0, &I_Ble_connected_15x15);
|
||||||
@@ -273,7 +273,6 @@ HidKeynote* hid_keynote_alloc(Hid* hid) {
|
|||||||
view_allocate_model(hid_keynote->view, ViewModelTypeLocking, sizeof(HidKeynoteModel));
|
view_allocate_model(hid_keynote->view, ViewModelTypeLocking, sizeof(HidKeynoteModel));
|
||||||
view_set_draw_callback(hid_keynote->view, hid_keynote_draw_callback);
|
view_set_draw_callback(hid_keynote->view, hid_keynote_draw_callback);
|
||||||
view_set_input_callback(hid_keynote->view, hid_keynote_input_callback);
|
view_set_input_callback(hid_keynote->view, hid_keynote_input_callback);
|
||||||
|
|
||||||
return hid_keynote;
|
return hid_keynote;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ static void hid_media_draw_callback(Canvas* canvas, void* context) {
|
|||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
HidMediaModel* model = context;
|
HidMediaModel* model = context;
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
#ifdef HID_TRANSPORT_BLE
|
#ifdef HID_TRANSPORT_BLE
|
||||||
if(model->connected) {
|
if(model->connected) {
|
||||||
canvas_draw_icon(canvas, 0, 0, &I_Ble_connected_15x15);
|
canvas_draw_icon(canvas, 0, 0, &I_Ble_connected_15x15);
|
||||||
@@ -197,6 +197,7 @@ static bool hid_media_input_callback(InputEvent* event, void* context) {
|
|||||||
hid_media_process_release(hid_media, event);
|
hid_media_process_release(hid_media, event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return consumed;
|
return consumed;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,7 +209,6 @@ HidMedia* hid_media_alloc(Hid* hid) {
|
|||||||
view_allocate_model(hid_media->view, ViewModelTypeLocking, sizeof(HidMediaModel));
|
view_allocate_model(hid_media->view, ViewModelTypeLocking, sizeof(HidMediaModel));
|
||||||
view_set_draw_callback(hid_media->view, hid_media_draw_callback);
|
view_set_draw_callback(hid_media->view, hid_media_draw_callback);
|
||||||
view_set_input_callback(hid_media->view, hid_media_input_callback);
|
view_set_input_callback(hid_media->view, hid_media_input_callback);
|
||||||
|
|
||||||
return hid_media;
|
return hid_media;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ static void hid_mouse_draw_callback(Canvas* canvas, void* context) {
|
|||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
HidMouseModel* model = context;
|
HidMouseModel* model = context;
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
#ifdef HID_TRANSPORT_BLE
|
#ifdef HID_TRANSPORT_BLE
|
||||||
if(model->connected) {
|
if(model->connected) {
|
||||||
canvas_draw_icon(canvas, 0, 0, &I_Ble_connected_15x15);
|
canvas_draw_icon(canvas, 0, 0, &I_Ble_connected_15x15);
|
||||||
@@ -226,7 +226,6 @@ HidMouse* hid_mouse_alloc(Hid* hid) {
|
|||||||
view_allocate_model(hid_mouse->view, ViewModelTypeLocking, sizeof(HidMouseModel));
|
view_allocate_model(hid_mouse->view, ViewModelTypeLocking, sizeof(HidMouseModel));
|
||||||
view_set_draw_callback(hid_mouse->view, hid_mouse_draw_callback);
|
view_set_draw_callback(hid_mouse->view, hid_mouse_draw_callback);
|
||||||
view_set_input_callback(hid_mouse->view, hid_mouse_input_callback);
|
view_set_input_callback(hid_mouse->view, hid_mouse_input_callback);
|
||||||
|
|
||||||
return hid_mouse;
|
return hid_mouse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ static void hid_mouse_clicker_draw_callback(Canvas* canvas, void* context) {
|
|||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
HidMouseClickerModel* model = context;
|
HidMouseClickerModel* model = context;
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
#ifdef HID_TRANSPORT_BLE
|
#ifdef HID_TRANSPORT_BLE
|
||||||
if(model->connected) {
|
if(model->connected) {
|
||||||
canvas_draw_icon(canvas, 0, 0, &I_Ble_connected_15x15);
|
canvas_draw_icon(canvas, 0, 0, &I_Ble_connected_15x15);
|
||||||
@@ -52,37 +52,37 @@ static void hid_mouse_clicker_draw_callback(Canvas* canvas, void* context) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
canvas_set_font(canvas, FontPrimary);
|
canvas_set_font(canvas, FontPrimary);
|
||||||
elements_multiline_text_aligned(canvas, 27, 3, AlignLeft, AlignTop, "Mouse Clicker");
|
elements_multiline_text_aligned(canvas, 17, 3, AlignLeft, AlignTop, "Mouse Clicker");
|
||||||
|
canvas_set_font(canvas, FontSecondary);
|
||||||
|
|
||||||
// Ok
|
// Ok
|
||||||
canvas_draw_icon(canvas, 63, 25, &I_Space_65x18);
|
canvas_draw_icon(canvas, 58, 25, &I_Space_65x18);
|
||||||
|
|
||||||
if(model->running) {
|
if(model->running) {
|
||||||
canvas_set_font(canvas, FontPrimary);
|
elements_slightly_rounded_box(canvas, 61, 27, 60, 13);
|
||||||
|
|
||||||
FuriString* rate_label = furi_string_alloc();
|
|
||||||
furi_string_printf(rate_label, "%d clicks/s\n\nUp / Down", model->rate);
|
|
||||||
elements_multiline_text(canvas, AlignLeft, 35, furi_string_get_cstr(rate_label));
|
|
||||||
canvas_set_font(canvas, FontSecondary);
|
|
||||||
furi_string_free(rate_label);
|
|
||||||
|
|
||||||
elements_slightly_rounded_box(canvas, 66, 27, 60, 13);
|
|
||||||
canvas_set_color(canvas, ColorWhite);
|
canvas_set_color(canvas, ColorWhite);
|
||||||
} else {
|
|
||||||
canvas_set_font(canvas, FontPrimary);
|
|
||||||
elements_multiline_text(canvas, AlignLeft, 35, "Press Start\nto start\nclicking");
|
|
||||||
canvas_set_font(canvas, FontSecondary);
|
|
||||||
}
|
}
|
||||||
canvas_draw_icon(canvas, 74, 29, &I_Ok_btn_9x9);
|
|
||||||
|
canvas_draw_icon(canvas, 69, 29, &I_Ok_btn_9x9);
|
||||||
|
|
||||||
if(model->running) {
|
if(model->running) {
|
||||||
elements_multiline_text_aligned(canvas, 91, 36, AlignLeft, AlignBottom, "Stop");
|
elements_multiline_text_aligned(canvas, 86, 37, AlignLeft, AlignBottom, "Stop");
|
||||||
} else {
|
} else {
|
||||||
elements_multiline_text_aligned(canvas, 91, 36, AlignLeft, AlignBottom, "Start");
|
elements_multiline_text_aligned(canvas, 86, 37, AlignLeft, AlignBottom, "Start");
|
||||||
}
|
}
|
||||||
canvas_set_color(canvas, ColorBlack);
|
canvas_set_color(canvas, ColorBlack);
|
||||||
|
|
||||||
|
// Clicks/s
|
||||||
|
char label[20];
|
||||||
|
snprintf(label, sizeof(label), "%d clicks/s", model->rate);
|
||||||
|
elements_multiline_text_aligned(canvas, 28, 37, AlignCenter, AlignBottom, label);
|
||||||
|
|
||||||
|
canvas_draw_icon(canvas, 25, 20, &I_ButtonUp_7x4);
|
||||||
|
canvas_draw_icon(canvas, 25, 44, &I_ButtonDown_7x4);
|
||||||
|
|
||||||
// Back
|
// Back
|
||||||
canvas_draw_icon(canvas, 74, 49, &I_Pin_back_arrow_10x8);
|
canvas_draw_icon(canvas, 0, 54, &I_Pin_back_arrow_10x8);
|
||||||
elements_multiline_text_aligned(canvas, 91, 57, AlignLeft, AlignBottom, "Quit");
|
elements_multiline_text_aligned(canvas, 13, 62, AlignLeft, AlignBottom, "Exit");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void hid_mouse_clicker_timer_callback(void* context) {
|
static void hid_mouse_clicker_timer_callback(void* context) {
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ static void hid_mouse_jiggler_draw_callback(Canvas* canvas, void* context) {
|
|||||||
furi_assert(context);
|
furi_assert(context);
|
||||||
HidMouseJigglerModel* model = context;
|
HidMouseJigglerModel* model = context;
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
#ifdef HID_TRANSPORT_BLE
|
#ifdef HID_TRANSPORT_BLE
|
||||||
if(model->connected) {
|
if(model->connected) {
|
||||||
canvas_draw_icon(canvas, 0, 0, &I_Ble_connected_15x15);
|
canvas_draw_icon(canvas, 0, 0, &I_Ble_connected_15x15);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
entry,status,name,type,params
|
entry,status,name,type,params
|
||||||
Version,+,62.0,,
|
Version,+,61.2,,
|
||||||
Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,,
|
Header,+,applications/drivers/subghz/cc1101_ext/cc1101_ext_interconnect.h,,
|
||||||
Header,+,applications/main/archive/helpers/archive_helpers_ext.h,,
|
Header,+,applications/main/archive/helpers/archive_helpers_ext.h,,
|
||||||
Header,+,applications/main/subghz/subghz_fap.h,,
|
Header,+,applications/main/subghz/subghz_fap.h,,
|
||||||
|
|||||||
|
Reference in New Issue
Block a user