infrared_controller.h 1000 B

1234567891011121314151617181920212223242526272829
  1. #pragma once
  2. #include <stdbool.h>
  3. #include <notification/notification.h>
  4. #include <infrared_worker.h>
  5. #include <infrared_signal.h>
  6. #include "game_state.h"
  7. typedef struct InfraredController {
  8. LaserTagTeam team;
  9. InfraredWorker* worker;
  10. bool worker_rx_active;
  11. InfraredSignal* signal;
  12. NotificationApp* notification;
  13. bool hit_received;
  14. bool processing_signal;
  15. } InfraredController;
  16. InfraredController* infrared_controller_alloc();
  17. void infrared_controller_free(InfraredController* controller);
  18. void infrared_controller_set_team(InfraredController* controller, LaserTagTeam team);
  19. void infrared_controller_send(InfraredController* controller);
  20. bool infrared_controller_receive(InfraredController* controller);
  21. void update_infrared_board_status(InfraredController* controller);
  22. void infrared_controller_pause(InfraredController* controller);
  23. void infrared_controller_resume(InfraredController* controller);
  24. #define IR_COMMAND_RED_TEAM 0xA1
  25. #define IR_COMMAND_BLUE_TEAM 0xB2