virtual_portal.h 884 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include <notification/notification_messages.h>
  3. #include <furi_hal_light.h>
  4. #include "pof_token.h"
  5. #define POF_TOKEN_LIMIT 16
  6. typedef enum {
  7. PoFHid,
  8. PoFXbox360
  9. } PoFType;
  10. typedef struct {
  11. PoFToken* tokens[POF_TOKEN_LIMIT];
  12. uint8_t sequence_number;
  13. bool active;
  14. bool speaker;
  15. NotificationApp* notifications;
  16. PoFType type;
  17. FuriThread* thread;
  18. } VirtualPortal;
  19. VirtualPortal* virtual_portal_alloc(NotificationApp* notifications);
  20. void virtual_portal_free(VirtualPortal* virtual_portal);
  21. void virtual_portal_cleanup(VirtualPortal* virtual_portal);
  22. void virtual_portal_load_token(VirtualPortal* virtual_portal, PoFToken* pof_token);
  23. int virtual_portal_process_message(
  24. VirtualPortal* virtual_portal,
  25. uint8_t* message,
  26. uint8_t* response);
  27. int virtual_portal_send_status(VirtualPortal* virtual_portal, uint8_t* response);