mp_flipper_context.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include <stdint.h>
  2. #include <furi.h>
  3. #include <gui/gui.h>
  4. #include <dialogs/dialogs.h>
  5. #include <mp_flipper_modflipperzero.h>
  6. #define MP_FLIPPER_GPIO_PIN_OFF (1 << 15)
  7. #define MP_FLIPPER_GPIO_PIN_BLOCKED (1 << 7)
  8. #define MP_FLIPPER_GPIO_PIN_PWM ((MP_FLIPPER_GPIO_PIN_BLOCKED) | (1 << 8))
  9. typedef uint16_t mp_flipper_gpio_pin_t;
  10. #define MP_FLIPPER_INFRARED_RX_BUFFER_SIZE (1024)
  11. typedef struct {
  12. uint16_t size;
  13. uint32_t* buffer;
  14. uint16_t pointer;
  15. bool running;
  16. } mp_flipper_infrared_rx_t;
  17. typedef struct {
  18. size_t size;
  19. void* signal;
  20. size_t index;
  21. uint32_t repeat;
  22. bool level;
  23. mp_flipper_infrared_signal_tx_provider provider;
  24. } mp_flipper_infrared_tx_t;
  25. typedef struct {
  26. Gui* gui;
  27. ViewPort* view_port;
  28. Canvas* canvas;
  29. FuriPubSub* input_event_queue;
  30. FuriPubSubSubscription* input_event;
  31. DialogMessage* dialog_message;
  32. const char* dialog_message_button_left;
  33. const char* dialog_message_button_center;
  34. const char* dialog_message_button_right;
  35. FuriHalAdcHandle* adc_handle;
  36. mp_flipper_gpio_pin_t* gpio_pins;
  37. mp_flipper_infrared_rx_t* infrared_rx;
  38. mp_flipper_infrared_tx_t* infrared_tx;
  39. } mp_flipper_context_t;