|
|
@@ -262,7 +262,24 @@ void gui_cli_screen_stream(Cli* cli, string_t args, void* context) {
|
|
|
gui_set_framebuffer_callback_context(gui, gui);
|
|
|
gui_set_framebuffer_callback(gui, gui_cli_screen_stream_callback);
|
|
|
gui_redraw(gui);
|
|
|
- cli_getc(gui->cli);
|
|
|
+
|
|
|
+ // Wait for control events
|
|
|
+ while(true) {
|
|
|
+ char c = cli_getc(gui->cli);
|
|
|
+ if(c == CliSymbolAsciiEsc) {
|
|
|
+ c = cli_getc(gui->cli);
|
|
|
+ if(c == 'i') {
|
|
|
+ InputEvent input_event;
|
|
|
+ input_event.key = cli_getc(gui->cli);
|
|
|
+ input_event.type = cli_getc(gui->cli);
|
|
|
+ osMessageQueuePut(gui->input_queue, &input_event, 0, osWaitForever);
|
|
|
+ osThreadFlagsSet(gui->thread, GUI_THREAD_FLAG_INPUT);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
gui_set_framebuffer_callback(gui, NULL);
|
|
|
gui_set_framebuffer_callback_context(gui, NULL);
|
|
|
}
|