Newer
Older
ESP32-RetroPlay / main / tasks / display_task.h
#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