| 123456789101112131415161718192021222324252627282930313233343536 |
- #include <furi.h>
- #include <stdio.h>
- #include <input/input.h>
- 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);
- }
- }
|