#ifndef DISPLAY_TASK_H #define DISPLAY_TASK_H #include "esp_err.h" #include "game_framework.h" // Include the new framework header #include "freertos/queue.h" // Needed for QueueHandle_t // Define events that the display task can send to other tasks (like main) typedef enum { DISPLAY_EVENT_NONE = 0, DISPLAY_EVENT_RETURN_TO_MENU, // Add other display-related events if needed } display_event_t; // Declare the queue handle that display_task will use to send events extern QueueHandle_t display_event_queue; /** * @brief Function to start the display task. * @param button_input_queue The main queue for receiving button inputs. */ esp_err_t start_display_task(QueueHandle_t button_input_queue); // Function to update generic text lines on the display (e.g., for initial messages or debug) void display_update_text(const char *lines[], size_t num_lines); /** * @brief Sets the game instance for the display task to manage and transitions to game running state. * This function should be called by main.c after a game is selected from the menu. * @param game_instance A pointer to the game_t instance to be run. */ void display_set_game_active(const game_t *game_instance); #endif // DISPLAY_TASK_H