mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-06-14 19:53:35 -07:00
faster badkb starting: bt init using thread
This commit is contained in:
@@ -151,7 +151,8 @@ BadKbApp* bad_kb_app_alloc(char* arg) {
|
||||
app->error = BadKbAppErrorCloseRpc;
|
||||
scene_manager_next_scene(app->scene_manager, BadKbSceneError);
|
||||
} else {
|
||||
bad_kb_connection_init(app);
|
||||
app->bt_init_thread = furi_thread_alloc_ex("BadKbBtInit", 512, (FuriThreadCallback)bad_kb_connection_init, app);
|
||||
furi_thread_start(app->bt_init_thread);
|
||||
if(!furi_string_empty(app->file_path)) {
|
||||
app->bad_kb_script = bad_kb_script_open(app->file_path, app->is_bt ? app->bt : NULL);
|
||||
bad_kb_script_set_keyboard_layout(app->bad_kb_script, app->keyboard_layout);
|
||||
@@ -173,6 +174,7 @@ void bad_kb_app_free(BadKbApp* app) {
|
||||
app->bad_kb_script = NULL;
|
||||
}
|
||||
|
||||
furi_thread_join(app->bt_init_thread);
|
||||
bad_kb_connection_deinit(app);
|
||||
|
||||
// Views
|
||||
|
||||
@@ -79,6 +79,8 @@ struct BadKbApp {
|
||||
bool connection_init;
|
||||
FuriHalUsbInterface* usb_prev_mode;
|
||||
GapPairing bt_prev_mode;
|
||||
|
||||
FuriThread *bt_init_thread;
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
|
||||
@@ -646,7 +646,7 @@ void bad_kb_config_switch_bonding_mode(BadKbApp *app) {
|
||||
}
|
||||
}
|
||||
|
||||
void bad_kb_connection_init(BadKbApp* app) {
|
||||
int32_t bad_kb_connection_init(BadKbApp* app) {
|
||||
app->usb_prev_mode = furi_hal_usb_get_config();
|
||||
furi_hal_usb_set_config(NULL, NULL);
|
||||
|
||||
@@ -674,6 +674,8 @@ void bad_kb_connection_init(BadKbApp* app) {
|
||||
}
|
||||
|
||||
app->connection_init = true;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void bad_kb_connection_deinit(BadKbApp* app) {
|
||||
|
||||
@@ -38,7 +38,7 @@ void bad_kb_config_switch_mode(BadKbApp* app);
|
||||
|
||||
void bad_kb_config_switch_bonding_mode(BadKbApp *app);
|
||||
|
||||
void bad_kb_connection_init(BadKbApp* app);
|
||||
int32_t bad_kb_connection_init(BadKbApp* app);
|
||||
|
||||
void bad_kb_connection_deinit(BadKbApp* app);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user