mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-04-24 03:29:57 -07:00
RPC: Add ASCII event support (#284)
* RPC: SendAsciiEventRequest support * GUI: Ascii input for ByteInput * Sync protobuf submodule * Update changelog
This commit is contained in:
@@ -82,6 +82,7 @@
|
||||
- JS:
|
||||
- New `i2c` module (#259 by @jamisonderek)
|
||||
- New `spi` module (#272 by @jamisonderek)
|
||||
- RPC: Added ASCII event support (#284 by @Willy-JL)
|
||||
- BadKB:
|
||||
- OFW: Add linux/gnome badusb demo files (by @thomasnemer)
|
||||
- Add older qFlipper install demos for windows and macos (by @DXVVAY & @grugnoymeme)
|
||||
|
||||
@@ -269,6 +269,37 @@ static void
|
||||
rpc_send_and_release_empty(session, request->command_id, PB_CommandStatus_OK);
|
||||
}
|
||||
|
||||
static void
|
||||
rpc_system_gui_send_ascii_event_request_process(const PB_Main* request, void* context) {
|
||||
furi_assert(request);
|
||||
furi_assert(request->which_content == PB_Main_gui_send_ascii_event_request_tag);
|
||||
furi_assert(context);
|
||||
|
||||
FURI_LOG_D(TAG, "SendAsciiEvent");
|
||||
|
||||
RpcGuiSystem* rpc_gui = context;
|
||||
RpcSession* session = rpc_gui->session;
|
||||
furi_assert(session);
|
||||
|
||||
bool is_valid = (request->content.gui_send_ascii_event_request.value <= 0xFF);
|
||||
|
||||
if(!is_valid) {
|
||||
rpc_send_and_release_empty(
|
||||
session, request->command_id, PB_CommandStatus_ERROR_INVALID_PARAMETERS);
|
||||
return;
|
||||
}
|
||||
|
||||
AsciiEvent event = {
|
||||
.value = request->content.gui_send_ascii_event_request.value,
|
||||
};
|
||||
|
||||
// Submit event
|
||||
FuriPubSub* ascii_events = furi_record_open(RECORD_ASCII_EVENTS);
|
||||
furi_pubsub_publish(ascii_events, &event);
|
||||
furi_record_close(RECORD_ASCII_EVENTS);
|
||||
rpc_send_and_release_empty(session, request->command_id, PB_CommandStatus_OK);
|
||||
}
|
||||
|
||||
static void rpc_system_gui_virtual_display_render_callback(Canvas* canvas, void* context) {
|
||||
furi_assert(canvas);
|
||||
furi_assert(context);
|
||||
@@ -459,6 +490,9 @@ void* rpc_system_gui_alloc(RpcSession* session) {
|
||||
rpc_handler.message_handler = rpc_system_gui_send_input_event_request_process;
|
||||
rpc_add_handler(session, PB_Main_gui_send_input_event_request_tag, &rpc_handler);
|
||||
|
||||
rpc_handler.message_handler = rpc_system_gui_send_ascii_event_request_process;
|
||||
rpc_add_handler(session, PB_Main_gui_send_ascii_event_request_tag, &rpc_handler);
|
||||
|
||||
rpc_handler.message_handler = rpc_system_gui_start_virtual_display_process;
|
||||
rpc_add_handler(session, PB_Main_gui_start_virtual_display_request_tag, &rpc_handler);
|
||||
|
||||
|
||||
Submodule assets/protobuf updated: b7d5881690...c255d71a90
Reference in New Issue
Block a user