#include #include #include typedef union { unsigned int packed; InputState state; } InputDump; static void state_cb(const void* value, void* ctx) { InputDump dump = {.packed = 0}; dump.state = *(InputState*)value; printf("state: %02x\r\n", dump.packed); } static void event_cb(const void* value, void* ctx) { const InputEvent* event = value; printf("event: %02x %s\r\n", event->input, event->state ? "pressed" : "released"); } void application_input_dump(void* p) { // open record ValueManager* state_record = furi_record_open("input_state"); subscribe_pubsub(&state_record->pubsub, state_cb, NULL); PubSub* event_record = furi_record_open("input_events"); subscribe_pubsub(event_record, event_cb, NULL); printf("Example app [input dump]\r\n"); for(;;) { delay(100); } }