/*
 * Copyright (c) 2026 Martin Javier Klöckner <mklockner@fi.uba.ar>
 *
 * See file `LICENSE` for full details
 */

#ifndef _DISPLAY_I2C_H_
#define _DISPLAY_I2C_H_

#include <stdint.h>
#include <stdbool.h>

#ifdef __cplusplus
extern "C" {
#endif

#define G_DISPLAY_CHAR_DEGREE_CODE 0xDF

void display_i2c_init();
void display_i2c_set_cursor_pos(uint8_t x, uint8_t y);
void display_i2c_write_string(const char *str);
void display_i2c_clear(void);

void display_i2c_async_set_cursor_pos(uint8_t x, uint8_t y);
void display_i2c_async_write_string(const char *str);
void display_i2c_async_clear(void);
void display_i2c_async_tick(void);
bool display_i2c_async_done(void);

#ifdef __cplusplus
}
#endif

#endif /* _DISPLAY_I2C_H_ */
