[FL-1100] Input dump: Handle all input events and dump them to console (#401)
This commit is contained in:
		
							parent
							
								
									0c3a0a3312
								
							
						
					
					
						commit
						33a461e97b
					
				| @ -23,6 +23,42 @@ void input_dump_input_callback(InputEvent* input_event, void* ctx) { | ||||
|     osMessageQueuePut(event_queue, &event, 0, 0); | ||||
| } | ||||
| 
 | ||||
| static const char* input_dump_get_key_name(InputKey key) { | ||||
|     switch(key) { | ||||
|     case InputKeyOk: | ||||
|         return "Ok"; | ||||
|     case InputKeyBack: | ||||
|         return "Back"; | ||||
|     case InputKeyLeft: | ||||
|         return "Left"; | ||||
|     case InputKeyRight: | ||||
|         return "Right"; | ||||
|     case InputKeyUp: | ||||
|         return "Up"; | ||||
|     case InputKeyDown: | ||||
|         return "Down"; | ||||
|     default: | ||||
|         return "Unknown"; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| static const char* input_dump_get_type_name(InputType type) { | ||||
|     switch(type) { | ||||
|     case InputTypePress: | ||||
|         return "Press"; | ||||
|     case InputTypeRelease: | ||||
|         return "Release"; | ||||
|     case InputTypeShort: | ||||
|         return "Short"; | ||||
|     case InputTypeLong: | ||||
|         return "Long"; | ||||
|     case InputTypeRepeat: | ||||
|         return "Repeat"; | ||||
|     default: | ||||
|         return "Unknown"; | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| int32_t application_input_dump(void* p) { | ||||
|     osMessageQueueId_t event_queue = osMessageQueueNew(8, sizeof(InputDumpEvent), NULL); | ||||
| 
 | ||||
| @ -36,23 +72,28 @@ int32_t application_input_dump(void* p) { | ||||
|     Gui* gui = furi_record_open("gui"); | ||||
|     gui_add_view_port(gui, view_port, GuiLayerFullscreen); | ||||
| 
 | ||||
|     printf("Example app [input dump]\r\n"); | ||||
|     printf("[input_dump] waiting for input events\r\n"); | ||||
|     InputDumpEvent event; | ||||
| 
 | ||||
|     while(1) { | ||||
|         furi_check(osMessageQueueGet(event_queue, &event, NULL, osWaitForever) == osOK); | ||||
| 
 | ||||
|         printf( | ||||
|             "[input_dump] key: %s type: %s\r\n", | ||||
|             input_dump_get_key_name(event.input.key), | ||||
|             input_dump_get_type_name(event.input.type)); | ||||
| 
 | ||||
|         if(event.input.type == InputTypeLong && event.input.key == InputKeyBack) { | ||||
|             break; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     printf("[input_dump] shutting down, byebye!\r\n"); | ||||
| 
 | ||||
|     view_port_enabled_set(view_port, false); | ||||
|     gui_remove_view_port(gui, view_port); | ||||
|     view_port_free(view_port); | ||||
|     osMessageQueueDelete(event_queue); | ||||
| 
 | ||||
|             return 0; | ||||
|         } else if(event.input.type == InputTypePress || event.input.type == InputTypeRelease) { | ||||
|             printf( | ||||
|                 "event: %02x %s\r\n", event.input.key, event.input.type ? "pressed" : "released"); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 あく
						あく