display_task.h 608 B

123456789101112131415161718192021222324252627282930
  1. #pragma once
  2. #include <Arduino.h>
  3. #include <TFT_eSPI.h>
  4. #include "knob_data.h"
  5. #include "task.h"
  6. class DisplayTask : public Task<DisplayTask> {
  7. friend class Task<DisplayTask>; // Allow base Task to invoke protected run()
  8. public:
  9. DisplayTask(const uint8_t task_core);
  10. ~DisplayTask();
  11. void setData(KnobState state);
  12. protected:
  13. void run();
  14. private:
  15. TFT_eSPI tft_ = TFT_eSPI();
  16. /** Full-size sprite used as a framebuffer */
  17. TFT_eSprite spr_ = TFT_eSprite(&tft_);
  18. SemaphoreHandle_t semaphore_;
  19. KnobState state_;
  20. };