blob: 51b9fae3f5e23f2bf9cf8bf8f448a34bf3b2948f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include "flipper_v2.h"
typedef struct {
GpioPin* led;
GpioPin* vibro;
} Ctx;
static void button_handler(const void* value, void* _ctx) {
const InputEvent* event = value;
Ctx* ctx = (Ctx*)_ctx;
if(event->input == InputOk) {
gpio_write(ctx->vibro, event->state);
gpio_write(ctx->led, !event->state);
}
}
void application_vibro(void* p) {
Ctx ctx = {.led = (GpioPin*)&led_gpio[1], .vibro = (GpioPin*)&vibro_gpio};
gpio_init(ctx.led, GpioModeOutputOpenDrain);
gpio_init(ctx.vibro, GpioModeOutputPushPull);
gpio_write(ctx.led, true);
gpio_write(ctx.vibro, false);
// subscribe on buttons
PubSub* event_record = furi_open("input_events");
furi_check(event_record);
subscribe_pubsub(event_record, button_handler, &ctx);
while(1) {
osDelay(osWaitForever);
}
}
|