| 12345678910111213141516171819202122232425262728293031323334353637 |
- #include "flipper_v2.h"
- #include <stdio.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\n", dump.packed);
- }
- static void event_cb(const void* value, void* ctx) {
- const InputEvent* event = value;
- printf("event: %02x %s\n", event->input, event->state ? "pressed" : "released");
- }
- void application_input_dump(void* p) {
- // open record
- ValueManager* state_record = furi_open("input_state");
- furi_check(state_record);
- subscribe_pubsub(&state_record->pubsub, state_cb, NULL);
- PubSub* event_record = furi_open("input_events");
- furi_check(event_record);
- subscribe_pubsub(event_record, event_cb, NULL);
- printf("Example app [input dump]\n");
- for(;;) {
- delay(100);
- }
- }
|