mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-04-24 03:29:57 -07:00
BadKB update interface and inputs
This commit is contained in:
@@ -725,7 +725,7 @@ static uint32_t bad_kb_flags_get(uint32_t flags_mask, uint32_t timeout) {
|
||||
furi_check((flags & FuriFlagError) == 0);
|
||||
if(flags == 0) {
|
||||
flags = furi_thread_flags_wait(flags_mask, FuriFlagWaitAny, timeout);
|
||||
furi_check(((flags & FuriFlagError) == 0) || (flags == FuriFlagErrorTimeout));
|
||||
furi_check(((flags & FuriFlagError) == 0) || (flags == (unsigned)FuriFlagErrorTimeout));
|
||||
} else {
|
||||
uint32_t state = furi_thread_flags_clear(flags);
|
||||
furi_check((state & FuriFlagError) == 0);
|
||||
@@ -834,7 +834,7 @@ static int32_t bad_kb_worker(void* context) {
|
||||
WorkerEvtEnd | WorkerEvtDisconnect | WorkerEvtToggle,
|
||||
FuriFlagWaitAny | FuriFlagNoClear,
|
||||
1500);
|
||||
if(flags == FuriFlagErrorTimeout) {
|
||||
if(flags == (unsigned)FuriFlagErrorTimeout) {
|
||||
// If nothing happened - start script execution
|
||||
worker_state = BadKbStateRunning;
|
||||
} else if(flags & WorkerEvtToggle) {
|
||||
|
||||
@@ -16,10 +16,12 @@ bool bad_kb_scene_work_on_event(void* context, SceneManagerEvent event) {
|
||||
|
||||
if(event.type == SceneManagerEventTypeCustom) {
|
||||
if(event.event == InputKeyLeft) {
|
||||
if(app->is_bt) {
|
||||
scene_manager_next_scene(app->scene_manager, BadKbSceneConfigBt);
|
||||
} else {
|
||||
scene_manager_next_scene(app->scene_manager, BadKbSceneConfigUsb);
|
||||
if(bad_kb_is_idle_state(app->bad_kb_view)) {
|
||||
if(app->is_bt) {
|
||||
scene_manager_next_scene(app->scene_manager, BadKbSceneConfigBt);
|
||||
} else {
|
||||
scene_manager_next_scene(app->scene_manager, BadKbSceneConfigUsb);
|
||||
}
|
||||
}
|
||||
consumed = true;
|
||||
} else if(event.event == InputKeyOk) {
|
||||
|
||||
@@ -56,19 +56,15 @@ static void bad_kb_draw_callback(Canvas* canvas, void* _model) {
|
||||
if(XTREME_ASSETS()->is_nsfw) {
|
||||
elements_button_center(canvas, "Cum");
|
||||
} else {
|
||||
elements_button_center(canvas, "Start");
|
||||
elements_button_center(canvas, "Run");
|
||||
}
|
||||
elements_button_left(canvas, "Config");
|
||||
} else if((model->state.state == BadKbStateRunning) || (model->state.state == BadKbStateDelay)) {
|
||||
elements_button_center(canvas, "Stop");
|
||||
} else if(model->state.state == BadKbStateWillRun) {
|
||||
elements_button_center(canvas, "Cancel");
|
||||
}
|
||||
|
||||
if((model->state.state == BadKbStateNotConnected) || (model->state.state == BadKbStateIdle) ||
|
||||
(model->state.state == BadKbStateDone)) {
|
||||
elements_button_left(canvas, "Config");
|
||||
}
|
||||
|
||||
if(model->state.state == BadKbStateNotConnected) {
|
||||
canvas_draw_icon(canvas, 4, 26, &I_Clock_18x18);
|
||||
canvas_set_font(canvas, FontPrimary);
|
||||
@@ -236,3 +232,19 @@ void bad_kb_set_state(BadKb* bad_kb, BadKbState* st) {
|
||||
},
|
||||
true);
|
||||
}
|
||||
|
||||
bool bad_kb_is_idle_state(BadKb* bad_kb) {
|
||||
bool is_idle = false;
|
||||
with_view_model(
|
||||
bad_kb->view,
|
||||
BadKbModel * model,
|
||||
{
|
||||
if((model->state.state == BadKbStateIdle) ||
|
||||
(model->state.state == BadKbStateDone) ||
|
||||
(model->state.state == BadKbStateNotConnected)) {
|
||||
is_idle = true;
|
||||
}
|
||||
},
|
||||
false);
|
||||
return is_idle;
|
||||
}
|
||||
|
||||
@@ -19,3 +19,5 @@ void bad_kb_set_file_name(BadKb* bad_kb, const char* name);
|
||||
void bad_kb_set_layout(BadKb* bad_kb, const char* layout);
|
||||
|
||||
void bad_kb_set_state(BadKb* bad_kb, BadKbState* st);
|
||||
|
||||
bool bad_kb_is_idle_state(BadKb* bad_kb);
|
||||
|
||||
Reference in New Issue
Block a user