#pragma once
/* ota_display.h — OTA notification UI on GC9A01 round LCD (bd-1yr8)
 *
 * GC9A01 240×240 round display via SPI (IO12 CS, IO11 DC, IO10 RST, IO9 BL).
 * Calls into display_draw_* primitives (provided by display driver layer).
 * This module owns the "OTA notification overlay" rendered over the HUD.
 */

#include <stdint.h>
#include <stdbool.h>
#include "ota_self.h"
#include "uart_ota.h"

/* ── Display primitives API (must be provided by display driver) ── */
void display_fill_rect(int x, int y, int w, int h, uint16_t rgb565);
void display_draw_string(int x, int y, const char *str, uint16_t fg, uint16_t bg);
void display_draw_arc(int cx, int cy, int r, int start_deg, int end_deg,
                       int thickness, uint16_t color);

/* ── Colour palette (RGB565) ── */
#define COL_BG       0x0000u  /* black */
#define COL_WHITE    0xFFFFu
#define COL_GREEN    0x07E0u
#define COL_YELLOW   0xFFE0u
#define COL_RED      0xF800u
#define COL_BLUE     0x001Fu
#define COL_ORANGE   0xFD20u

/* ── OTA display task: runs at 5 Hz, overlays OTA state on HUD ── */
void ota_display_init(void);

/* Called from main loop or display task to render the OTA overlay */
void ota_display_update(void);
