[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); |     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) { | int32_t application_input_dump(void* p) { | ||||||
|     osMessageQueueId_t event_queue = osMessageQueueNew(8, sizeof(InputDumpEvent), NULL); |     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* gui = furi_record_open("gui"); | ||||||
|     gui_add_view_port(gui, view_port, GuiLayerFullscreen); |     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; |     InputDumpEvent event; | ||||||
| 
 | 
 | ||||||
|     while(1) { |     while(1) { | ||||||
|         furi_check(osMessageQueueGet(event_queue, &event, NULL, osWaitForever) == osOK); |         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) { |         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); |     view_port_enabled_set(view_port, false); | ||||||
|     gui_remove_view_port(gui, view_port); |     gui_remove_view_port(gui, view_port); | ||||||
|     view_port_free(view_port); |     view_port_free(view_port); | ||||||
|     osMessageQueueDelete(event_queue); |     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; |     return 0; | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 あく
						あく