mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-05-16 04:24:45 -07:00
fix 5 plugins ui update
This commit is contained in:
256
applications/external/flipper_i2ctools/i2ctools.c
vendored
256
applications/external/flipper_i2ctools/i2ctools.c
vendored
@@ -73,143 +73,145 @@ int32_t i2ctools_app(void* p) {
|
||||
// Share scanner with sender
|
||||
i2ctools->sender->scanner = i2ctools->scanner;
|
||||
|
||||
while(furi_message_queue_get(event_queue, &event, FuriWaitForever) == FuriStatusOk) {
|
||||
// Back
|
||||
if(event.key == InputKeyBack && event.type == InputTypeRelease) {
|
||||
if(i2ctools->main_view->current_view == MAIN_VIEW) {
|
||||
break;
|
||||
} else {
|
||||
if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
stop_interrupts();
|
||||
i2ctools->sniffer->started = false;
|
||||
i2ctools->sniffer->state = I2C_BUS_FREE;
|
||||
}
|
||||
i2ctools->main_view->current_view = MAIN_VIEW;
|
||||
}
|
||||
}
|
||||
// Up
|
||||
else if(event.key == InputKeyUp && event.type == InputTypeRelease) {
|
||||
if(i2ctools->main_view->current_view == MAIN_VIEW) {
|
||||
if((i2ctools->main_view->menu_index > SCAN_VIEW)) {
|
||||
i2ctools->main_view->menu_index--;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SCAN_VIEW) {
|
||||
if(i2ctools->scanner->menu_index > 0) {
|
||||
i2ctools->scanner->menu_index--;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
if(i2ctools->sniffer->row_index > 0) {
|
||||
i2ctools->sniffer->row_index--;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SEND_VIEW) {
|
||||
if(i2ctools->sender->value < 0xFF) {
|
||||
i2ctools->sender->value++;
|
||||
i2ctools->sender->sended = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Long Up
|
||||
else if(
|
||||
event.key == InputKeyUp &&
|
||||
(event.type == InputTypeLong || event.type == InputTypeRepeat)) {
|
||||
if(i2ctools->main_view->current_view == SCAN_VIEW) {
|
||||
if(i2ctools->scanner->menu_index > 5) {
|
||||
i2ctools->scanner->menu_index -= 5;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SEND_VIEW) {
|
||||
if(i2ctools->sender->value < 0xF9) {
|
||||
i2ctools->sender->value += 5;
|
||||
i2ctools->sender->sended = false;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
if(i2ctools->sniffer->row_index > 5) {
|
||||
i2ctools->sniffer->row_index -= 5;
|
||||
while(1) {
|
||||
if(furi_message_queue_get(event_queue, &event, 100) == FuriStatusOk) {
|
||||
// Back
|
||||
if(event.key == InputKeyBack && event.type == InputTypeRelease) {
|
||||
if(i2ctools->main_view->current_view == MAIN_VIEW) {
|
||||
break;
|
||||
} else {
|
||||
i2ctools->sniffer->row_index = 0;
|
||||
if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
stop_interrupts();
|
||||
i2ctools->sniffer->started = false;
|
||||
i2ctools->sniffer->state = I2C_BUS_FREE;
|
||||
}
|
||||
i2ctools->main_view->current_view = MAIN_VIEW;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Down
|
||||
else if(event.key == InputKeyDown && event.type == InputTypeRelease) {
|
||||
if(i2ctools->main_view->current_view == MAIN_VIEW) {
|
||||
if(i2ctools->main_view->menu_index < MENU_SIZE - 1) {
|
||||
i2ctools->main_view->menu_index++;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SCAN_VIEW) {
|
||||
if(i2ctools->scanner->menu_index < ((int)i2ctools->scanner->nb_found / 3)) {
|
||||
i2ctools->scanner->menu_index++;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
if((i2ctools->sniffer->row_index + 3) <
|
||||
(int)i2ctools->sniffer->frames[i2ctools->sniffer->menu_index].data_index) {
|
||||
i2ctools->sniffer->row_index++;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SEND_VIEW) {
|
||||
if(i2ctools->sender->value > 0x00) {
|
||||
i2ctools->sender->value--;
|
||||
i2ctools->sender->sended = false;
|
||||
// Up
|
||||
else if(event.key == InputKeyUp && event.type == InputTypeRelease) {
|
||||
if(i2ctools->main_view->current_view == MAIN_VIEW) {
|
||||
if((i2ctools->main_view->menu_index > SCAN_VIEW)) {
|
||||
i2ctools->main_view->menu_index--;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SCAN_VIEW) {
|
||||
if(i2ctools->scanner->menu_index > 0) {
|
||||
i2ctools->scanner->menu_index--;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
if(i2ctools->sniffer->row_index > 0) {
|
||||
i2ctools->sniffer->row_index--;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SEND_VIEW) {
|
||||
if(i2ctools->sender->value < 0xFF) {
|
||||
i2ctools->sender->value++;
|
||||
i2ctools->sender->sended = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Long Down
|
||||
else if(
|
||||
event.key == InputKeyDown &&
|
||||
(event.type == InputTypeLong || event.type == InputTypeRepeat)) {
|
||||
if(i2ctools->main_view->current_view == SEND_VIEW) {
|
||||
if(i2ctools->sender->value > 0x05) {
|
||||
i2ctools->sender->value -= 5;
|
||||
i2ctools->sender->sended = false;
|
||||
} else {
|
||||
i2ctools->sender->value = 0;
|
||||
i2ctools->sender->sended = false;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
if((i2ctools->sniffer->row_index + 8) <
|
||||
(int)i2ctools->sniffer->frames[i2ctools->sniffer->menu_index].data_index) {
|
||||
i2ctools->sniffer->row_index += 5;
|
||||
// Long Up
|
||||
else if(
|
||||
event.key == InputKeyUp &&
|
||||
(event.type == InputTypeLong || event.type == InputTypeRepeat)) {
|
||||
if(i2ctools->main_view->current_view == SCAN_VIEW) {
|
||||
if(i2ctools->scanner->menu_index > 5) {
|
||||
i2ctools->scanner->menu_index -= 5;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SEND_VIEW) {
|
||||
if(i2ctools->sender->value < 0xF9) {
|
||||
i2ctools->sender->value += 5;
|
||||
i2ctools->sender->sended = false;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
if(i2ctools->sniffer->row_index > 5) {
|
||||
i2ctools->sniffer->row_index -= 5;
|
||||
} else {
|
||||
i2ctools->sniffer->row_index = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Down
|
||||
else if(event.key == InputKeyDown && event.type == InputTypeRelease) {
|
||||
if(i2ctools->main_view->current_view == MAIN_VIEW) {
|
||||
if(i2ctools->main_view->menu_index < MENU_SIZE - 1) {
|
||||
i2ctools->main_view->menu_index++;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SCAN_VIEW) {
|
||||
if(i2ctools->scanner->menu_index < ((int)i2ctools->scanner->nb_found / 3)) {
|
||||
i2ctools->scanner->menu_index++;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
if((i2ctools->sniffer->row_index + 3) <
|
||||
(int)i2ctools->sniffer->frames[i2ctools->sniffer->menu_index].data_index) {
|
||||
i2ctools->sniffer->row_index++;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SEND_VIEW) {
|
||||
if(i2ctools->sender->value > 0x00) {
|
||||
i2ctools->sender->value--;
|
||||
i2ctools->sender->sended = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Long Down
|
||||
else if(
|
||||
event.key == InputKeyDown &&
|
||||
(event.type == InputTypeLong || event.type == InputTypeRepeat)) {
|
||||
if(i2ctools->main_view->current_view == SEND_VIEW) {
|
||||
if(i2ctools->sender->value > 0x05) {
|
||||
i2ctools->sender->value -= 5;
|
||||
i2ctools->sender->sended = false;
|
||||
} else {
|
||||
i2ctools->sender->value = 0;
|
||||
i2ctools->sender->sended = false;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
if((i2ctools->sniffer->row_index + 8) <
|
||||
(int)i2ctools->sniffer->frames[i2ctools->sniffer->menu_index].data_index) {
|
||||
i2ctools->sniffer->row_index += 5;
|
||||
}
|
||||
}
|
||||
|
||||
} else if(event.key == InputKeyOk && event.type == InputTypeRelease) {
|
||||
if(i2ctools->main_view->current_view == MAIN_VIEW) {
|
||||
i2ctools->main_view->current_view = i2ctools->main_view->menu_index;
|
||||
} else if(i2ctools->main_view->current_view == SCAN_VIEW) {
|
||||
scan_i2c_bus(i2ctools->scanner);
|
||||
} else if(i2ctools->main_view->current_view == SEND_VIEW) {
|
||||
i2ctools->sender->must_send = true;
|
||||
} else if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
if(i2ctools->sniffer->started) {
|
||||
stop_interrupts();
|
||||
i2ctools->sniffer->started = false;
|
||||
i2ctools->sniffer->state = I2C_BUS_FREE;
|
||||
} else {
|
||||
start_interrupts(i2ctools->sniffer);
|
||||
i2ctools->sniffer->started = true;
|
||||
i2ctools->sniffer->state = I2C_BUS_FREE;
|
||||
} else if(event.key == InputKeyOk && event.type == InputTypeRelease) {
|
||||
if(i2ctools->main_view->current_view == MAIN_VIEW) {
|
||||
i2ctools->main_view->current_view = i2ctools->main_view->menu_index;
|
||||
} else if(i2ctools->main_view->current_view == SCAN_VIEW) {
|
||||
scan_i2c_bus(i2ctools->scanner);
|
||||
} else if(i2ctools->main_view->current_view == SEND_VIEW) {
|
||||
i2ctools->sender->must_send = true;
|
||||
} else if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
if(i2ctools->sniffer->started) {
|
||||
stop_interrupts();
|
||||
i2ctools->sniffer->started = false;
|
||||
i2ctools->sniffer->state = I2C_BUS_FREE;
|
||||
} else {
|
||||
start_interrupts(i2ctools->sniffer);
|
||||
i2ctools->sniffer->started = true;
|
||||
i2ctools->sniffer->state = I2C_BUS_FREE;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if(event.key == InputKeyRight && event.type == InputTypeRelease) {
|
||||
if(i2ctools->main_view->current_view == SEND_VIEW) {
|
||||
if(i2ctools->sender->address_idx < (i2ctools->scanner->nb_found - 1)) {
|
||||
i2ctools->sender->address_idx++;
|
||||
i2ctools->sender->sended = false;
|
||||
} else if(event.key == InputKeyRight && event.type == InputTypeRelease) {
|
||||
if(i2ctools->main_view->current_view == SEND_VIEW) {
|
||||
if(i2ctools->sender->address_idx < (i2ctools->scanner->nb_found - 1)) {
|
||||
i2ctools->sender->address_idx++;
|
||||
i2ctools->sender->sended = false;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
if(i2ctools->sniffer->menu_index < i2ctools->sniffer->frame_index) {
|
||||
i2ctools->sniffer->menu_index++;
|
||||
i2ctools->sniffer->row_index = 0;
|
||||
}
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
if(i2ctools->sniffer->menu_index < i2ctools->sniffer->frame_index) {
|
||||
i2ctools->sniffer->menu_index++;
|
||||
i2ctools->sniffer->row_index = 0;
|
||||
}
|
||||
}
|
||||
} else if(event.key == InputKeyLeft && event.type == InputTypeRelease) {
|
||||
if(i2ctools->main_view->current_view == SEND_VIEW) {
|
||||
if(i2ctools->sender->address_idx > 0) {
|
||||
i2ctools->sender->address_idx--;
|
||||
i2ctools->sender->sended = false;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
if(i2ctools->sniffer->menu_index > 0) {
|
||||
i2ctools->sniffer->menu_index--;
|
||||
i2ctools->sniffer->row_index = 0;
|
||||
} else if(event.key == InputKeyLeft && event.type == InputTypeRelease) {
|
||||
if(i2ctools->main_view->current_view == SEND_VIEW) {
|
||||
if(i2ctools->sender->address_idx > 0) {
|
||||
i2ctools->sender->address_idx--;
|
||||
i2ctools->sender->sended = false;
|
||||
}
|
||||
} else if(i2ctools->main_view->current_view == SNIFF_VIEW) {
|
||||
if(i2ctools->sniffer->menu_index > 0) {
|
||||
i2ctools->sniffer->menu_index--;
|
||||
i2ctools->sniffer->row_index = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
97
applications/external/hex_viewer/hex_viewer.c
vendored
97
applications/external/hex_viewer/hex_viewer.c
vendored
@@ -229,53 +229,58 @@ int32_t hex_viewer_app(void* p) {
|
||||
hex_viewer_read_file(hex_viewer);
|
||||
|
||||
InputEvent input;
|
||||
while(furi_message_queue_get(hex_viewer->input_queue, &input, FuriWaitForever) ==
|
||||
FuriStatusOk) {
|
||||
if(input.key == InputKeyBack) {
|
||||
break;
|
||||
} else if(input.key == InputKeyUp) {
|
||||
furi_check(furi_mutex_acquire(hex_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
if(hex_viewer->model->file_offset > 0) {
|
||||
hex_viewer->model->file_offset -= HEX_VIEWER_BYTES_PER_LINE;
|
||||
if(!hex_viewer_read_file(hex_viewer)) break;
|
||||
while(1) {
|
||||
if(furi_message_queue_get(hex_viewer->input_queue, &input, 100) == FuriStatusOk) {
|
||||
if(input.key == InputKeyBack) {
|
||||
break;
|
||||
} else if(input.key == InputKeyUp) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(hex_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
if(hex_viewer->model->file_offset > 0) {
|
||||
hex_viewer->model->file_offset -= HEX_VIEWER_BYTES_PER_LINE;
|
||||
if(!hex_viewer_read_file(hex_viewer)) break;
|
||||
}
|
||||
furi_mutex_release(hex_viewer->mutex);
|
||||
} else if(input.key == InputKeyDown) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(hex_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
uint32_t last_byte_on_screen =
|
||||
hex_viewer->model->file_offset + hex_viewer->model->file_read_bytes;
|
||||
|
||||
if(hex_viewer->model->file_size > last_byte_on_screen) {
|
||||
hex_viewer->model->file_offset += HEX_VIEWER_BYTES_PER_LINE;
|
||||
if(!hex_viewer_read_file(hex_viewer)) break;
|
||||
}
|
||||
furi_mutex_release(hex_viewer->mutex);
|
||||
} else if(input.key == InputKeyLeft) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(hex_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
hex_viewer->model->mode = !hex_viewer->model->mode;
|
||||
furi_mutex_release(hex_viewer->mutex);
|
||||
} else if(input.key == InputKeyRight) {
|
||||
FuriString* buffer;
|
||||
buffer = furi_string_alloc();
|
||||
furi_string_printf(
|
||||
buffer,
|
||||
"File path: %s\nFile size: %lu (0x%lX)",
|
||||
furi_string_get_cstr(file_path),
|
||||
hex_viewer->model->file_size,
|
||||
hex_viewer->model->file_size);
|
||||
|
||||
DialogsApp* dialogs = furi_record_open(RECORD_DIALOGS);
|
||||
DialogMessage* message = dialog_message_alloc();
|
||||
dialog_message_set_header(
|
||||
message, "Hex Viewer v1.1", 16, 2, AlignLeft, AlignTop);
|
||||
dialog_message_set_icon(message, &I_hex_10px, 3, 2);
|
||||
dialog_message_set_text(
|
||||
message, furi_string_get_cstr(buffer), 3, 16, AlignLeft, AlignTop);
|
||||
dialog_message_set_buttons(message, NULL, NULL, "Back");
|
||||
dialog_message_show(dialogs, message);
|
||||
|
||||
furi_string_free(buffer);
|
||||
dialog_message_free(message);
|
||||
furi_record_close(RECORD_DIALOGS);
|
||||
}
|
||||
furi_mutex_release(hex_viewer->mutex);
|
||||
} else if(input.key == InputKeyDown) {
|
||||
furi_check(furi_mutex_acquire(hex_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
uint32_t last_byte_on_screen =
|
||||
hex_viewer->model->file_offset + hex_viewer->model->file_read_bytes;
|
||||
|
||||
if(hex_viewer->model->file_size > last_byte_on_screen) {
|
||||
hex_viewer->model->file_offset += HEX_VIEWER_BYTES_PER_LINE;
|
||||
if(!hex_viewer_read_file(hex_viewer)) break;
|
||||
}
|
||||
furi_mutex_release(hex_viewer->mutex);
|
||||
} else if(input.key == InputKeyLeft) {
|
||||
furi_check(furi_mutex_acquire(hex_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
hex_viewer->model->mode = !hex_viewer->model->mode;
|
||||
furi_mutex_release(hex_viewer->mutex);
|
||||
} else if(input.key == InputKeyRight) {
|
||||
FuriString* buffer;
|
||||
buffer = furi_string_alloc();
|
||||
furi_string_printf(
|
||||
buffer,
|
||||
"File path: %s\nFile size: %lu (0x%lX)",
|
||||
furi_string_get_cstr(file_path),
|
||||
hex_viewer->model->file_size,
|
||||
hex_viewer->model->file_size);
|
||||
|
||||
DialogsApp* dialogs = furi_record_open(RECORD_DIALOGS);
|
||||
DialogMessage* message = dialog_message_alloc();
|
||||
dialog_message_set_header(message, "Hex Viewer v1.1", 16, 2, AlignLeft, AlignTop);
|
||||
dialog_message_set_icon(message, &I_hex_10px, 3, 2);
|
||||
dialog_message_set_text(
|
||||
message, furi_string_get_cstr(buffer), 3, 16, AlignLeft, AlignTop);
|
||||
dialog_message_set_buttons(message, NULL, NULL, "Back");
|
||||
dialog_message_show(dialogs, message);
|
||||
|
||||
furi_string_free(buffer);
|
||||
dialog_message_free(message);
|
||||
furi_record_close(RECORD_DIALOGS);
|
||||
}
|
||||
|
||||
view_port_update(hex_viewer->view_port);
|
||||
|
||||
43
applications/external/ir_scope/ir_scope.c
vendored
43
applications/external/ir_scope/ir_scope.c
vendored
@@ -140,30 +140,31 @@ int32_t ir_scope_app(void* p) {
|
||||
|
||||
InputEvent event;
|
||||
bool processing = true;
|
||||
while(processing &&
|
||||
furi_message_queue_get(event_queue, &event, FuriWaitForever) == FuriStatusOk) {
|
||||
if(event.type == InputTypeRelease) {
|
||||
furi_mutex_acquire(state.mutex, FuriWaitForever);
|
||||
while(processing) {
|
||||
if(furi_message_queue_get(event_queue, &event, 100) == FuriStatusOk) {
|
||||
if(event.type == InputTypeRelease) {
|
||||
furi_mutex_acquire(state.mutex, FuriWaitForever);
|
||||
|
||||
if(event.key == InputKeyBack) {
|
||||
processing = false;
|
||||
} else if(event.key == InputKeyUp) {
|
||||
state.us_per_sample = MIN(1000, state.us_per_sample + 25);
|
||||
state.autoscale = false;
|
||||
} else if(event.key == InputKeyDown) {
|
||||
state.us_per_sample = MAX(25, state.us_per_sample - 25);
|
||||
state.autoscale = false;
|
||||
} else if(event.key == InputKeyOk) {
|
||||
state.autoscale = !state.autoscale;
|
||||
if(state.autoscale)
|
||||
state_set_autoscale(&state);
|
||||
else
|
||||
state.us_per_sample = 200;
|
||||
if(event.key == InputKeyBack) {
|
||||
processing = false;
|
||||
} else if(event.key == InputKeyUp) {
|
||||
state.us_per_sample = MIN(1000, state.us_per_sample + 25);
|
||||
state.autoscale = false;
|
||||
} else if(event.key == InputKeyDown) {
|
||||
state.us_per_sample = MAX(25, state.us_per_sample - 25);
|
||||
state.autoscale = false;
|
||||
} else if(event.key == InputKeyOk) {
|
||||
state.autoscale = !state.autoscale;
|
||||
if(state.autoscale)
|
||||
state_set_autoscale(&state);
|
||||
else
|
||||
state.us_per_sample = 200;
|
||||
}
|
||||
|
||||
furi_mutex_release(state.mutex);
|
||||
}
|
||||
|
||||
view_port_update(view_port);
|
||||
furi_mutex_release(state.mutex);
|
||||
}
|
||||
view_port_update(view_port);
|
||||
}
|
||||
|
||||
// Clean up.
|
||||
|
||||
100
applications/external/text_viewer/text_viewer.c
vendored
100
applications/external/text_viewer/text_viewer.c
vendored
@@ -223,56 +223,58 @@ int32_t text_viewer_app(void* p) {
|
||||
text_viewer_read_file(text_viewer);
|
||||
|
||||
InputEvent input;
|
||||
while(furi_message_queue_get(text_viewer->input_queue, &input, FuriWaitForever) ==
|
||||
FuriStatusOk) {
|
||||
if(input.key == InputKeyBack) {
|
||||
break;
|
||||
} else if(input.key == InputKeyUp) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(text_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
if(text_viewer->model->file_offset > 0) {
|
||||
text_viewer->model->file_offset -= TEXT_VIEWER_BYTES_PER_LINE;
|
||||
if(!text_viewer_read_file(text_viewer)) break;
|
||||
while(1) {
|
||||
if(furi_message_queue_get(text_viewer->input_queue, &input, 100) == FuriStatusOk) {
|
||||
if(input.key == InputKeyBack) {
|
||||
break;
|
||||
} else if(input.key == InputKeyUp) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(text_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
if(text_viewer->model->file_offset > 0) {
|
||||
text_viewer->model->file_offset -= TEXT_VIEWER_BYTES_PER_LINE;
|
||||
if(!text_viewer_read_file(text_viewer)) break;
|
||||
}
|
||||
furi_mutex_release(text_viewer->mutex);
|
||||
} else if(input.key == InputKeyDown) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(text_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
uint32_t last_byte_on_screen =
|
||||
text_viewer->model->file_offset + text_viewer->model->file_read_bytes;
|
||||
|
||||
if(text_viewer->model->file_size > last_byte_on_screen) {
|
||||
text_viewer->model->file_offset += TEXT_VIEWER_BYTES_PER_LINE;
|
||||
if(!text_viewer_read_file(text_viewer)) break;
|
||||
}
|
||||
furi_mutex_release(text_viewer->mutex);
|
||||
} else if(input.key == InputKeyLeft) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(text_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
text_viewer->model->mode = !text_viewer->model->mode;
|
||||
furi_mutex_release(text_viewer->mutex);
|
||||
} else if(input.key == InputKeyRight) {
|
||||
FuriString* buffer;
|
||||
buffer = furi_string_alloc();
|
||||
furi_string_printf(
|
||||
buffer,
|
||||
"File path: %s\nFile size: %lu (0x%lX)",
|
||||
furi_string_get_cstr(file_path),
|
||||
text_viewer->model->file_size,
|
||||
text_viewer->model->file_size);
|
||||
|
||||
DialogsApp* dialogs = furi_record_open(RECORD_DIALOGS);
|
||||
DialogMessage* message = dialog_message_alloc();
|
||||
dialog_message_set_header(
|
||||
message, "Text Viewer v1.1", 16, 2, AlignLeft, AlignTop);
|
||||
dialog_message_set_icon(message, &I_text_10px, 3, 2);
|
||||
dialog_message_set_text(
|
||||
message, furi_string_get_cstr(buffer), 3, 16, AlignLeft, AlignTop);
|
||||
dialog_message_set_buttons(message, NULL, NULL, "Back");
|
||||
dialog_message_show(dialogs, message);
|
||||
|
||||
furi_string_free(buffer);
|
||||
dialog_message_free(message);
|
||||
furi_record_close(RECORD_DIALOGS);
|
||||
}
|
||||
furi_mutex_release(text_viewer->mutex);
|
||||
} else if(input.key == InputKeyDown) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(text_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
uint32_t last_byte_on_screen =
|
||||
text_viewer->model->file_offset + text_viewer->model->file_read_bytes;
|
||||
|
||||
if(text_viewer->model->file_size > last_byte_on_screen) {
|
||||
text_viewer->model->file_offset += TEXT_VIEWER_BYTES_PER_LINE;
|
||||
if(!text_viewer_read_file(text_viewer)) break;
|
||||
}
|
||||
furi_mutex_release(text_viewer->mutex);
|
||||
} else if(input.key == InputKeyLeft) {
|
||||
furi_check(
|
||||
furi_mutex_acquire(text_viewer->mutex, FuriWaitForever) == FuriStatusOk);
|
||||
text_viewer->model->mode = !text_viewer->model->mode;
|
||||
furi_mutex_release(text_viewer->mutex);
|
||||
} else if(input.key == InputKeyRight) {
|
||||
FuriString* buffer;
|
||||
buffer = furi_string_alloc();
|
||||
furi_string_printf(
|
||||
buffer,
|
||||
"File path: %s\nFile size: %lu (0x%lX)",
|
||||
furi_string_get_cstr(file_path),
|
||||
text_viewer->model->file_size,
|
||||
text_viewer->model->file_size);
|
||||
|
||||
DialogsApp* dialogs = furi_record_open(RECORD_DIALOGS);
|
||||
DialogMessage* message = dialog_message_alloc();
|
||||
dialog_message_set_header(message, "Text Viewer v1.1", 16, 2, AlignLeft, AlignTop);
|
||||
dialog_message_set_icon(message, &I_text_10px, 3, 2);
|
||||
dialog_message_set_text(
|
||||
message, furi_string_get_cstr(buffer), 3, 16, AlignLeft, AlignTop);
|
||||
dialog_message_set_buttons(message, NULL, NULL, "Back");
|
||||
dialog_message_show(dialogs, message);
|
||||
|
||||
furi_string_free(buffer);
|
||||
dialog_message_free(message);
|
||||
furi_record_close(RECORD_DIALOGS);
|
||||
}
|
||||
view_port_update(text_viewer->view_port);
|
||||
}
|
||||
|
||||
2
applications/external/totp/totp_app.c
vendored
2
applications/external/totp/totp_app.c
vendored
@@ -207,7 +207,7 @@ int32_t totp_app() {
|
||||
PluginEvent event;
|
||||
bool processing = true;
|
||||
while(processing) {
|
||||
FuriStatus event_status = furi_message_queue_get(event_queue, &event, FuriWaitForever);
|
||||
FuriStatus event_status = furi_message_queue_get(event_queue, &event, 100);
|
||||
|
||||
if(furi_mutex_acquire(plugin_state->mutex, FuriWaitForever) == FuriStatusOk) {
|
||||
if(event_status == FuriStatusOk) {
|
||||
|
||||
Reference in New Issue
Block a user