Skip to content

Commit

Permalink
Merge remote-tracking branch 'OFW/dev' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
xMasterX committed Jun 27, 2024
2 parents 115a8e5 + a881816 commit a91a4af
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ void nfc_render_mf_desfire_version(const MfDesfireVersion* data, FuriString* str
furi_string_cat_printf(
str,
"batch %02x:%02x:%02x:%02x:%02x\n"
"week %d year %d\n",
"week %02x year 20%02x\n",
data->batch[0],
data->batch[1],
data->batch[2],
Expand Down
21 changes: 17 additions & 4 deletions applications/services/rpc/rpc_gui.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ typedef struct {
RpcSession* session;
Gui* gui;
const Icon* icon;
FuriPubSub* input_events;

// Receive part
ViewPort* virtual_display_view_port;
Expand Down Expand Up @@ -234,10 +235,7 @@ static void
}

// Submit event
FuriPubSub* input_events = furi_record_open(RECORD_INPUT_EVENTS);
furi_check(input_events);
furi_pubsub_publish(input_events, &event);
furi_record_close(RECORD_INPUT_EVENTS);
furi_pubsub_publish(rpc_gui->input_events, &event);
rpc_send_and_release_empty(session, request->command_id, PB_CommandStatus_OK);
}

Expand Down Expand Up @@ -401,6 +399,7 @@ void* rpc_system_gui_alloc(RpcSession* session) {

RpcGuiSystem* rpc_gui = malloc(sizeof(RpcGuiSystem));
rpc_gui->gui = furi_record_open(RECORD_GUI);
rpc_gui->input_events = furi_record_open(RECORD_INPUT_EVENTS);
rpc_gui->session = session;

// Active session icon
Expand Down Expand Up @@ -447,6 +446,19 @@ void rpc_system_gui_free(void* context) {
RpcGuiSystem* rpc_gui = context;
furi_assert(rpc_gui->gui);

// Release ongoing inputs to avoid lockup
for(InputKey key = 0; key < InputKeyMAX; key++) {
if(rpc_gui->input_key_counter[key] != RPC_GUI_INPUT_RESET) {
InputEvent event = {
.key = key,
.type = InputTypeRelease,
.sequence_source = INPUT_SEQUENCE_SOURCE_SOFTWARE,
.sequence_counter = rpc_gui->input_key_counter[key],
};
furi_pubsub_publish(rpc_gui->input_events, &event);
}
}

if(rpc_gui->virtual_display_view_port) {
gui_remove_view_port(rpc_gui->gui, rpc_gui->virtual_display_view_port);
view_port_free(rpc_gui->virtual_display_view_port);
Expand Down Expand Up @@ -474,6 +486,7 @@ void rpc_system_gui_free(void* context) {
free(rpc_gui->transmit_frame);
rpc_gui->transmit_frame = NULL;
}
furi_record_close(RECORD_INPUT_EVENTS);
furi_record_close(RECORD_GUI);
free(rpc_gui);
}

0 comments on commit a91a4af

Please sign in to comment.