ssd1306dj/src/mgos_arduino_ssd1306.h

108 lines
4.2 KiB
C
Raw Normal View History

/*
* Copyright (c) 2014-2017 Cesanta Software Limited
* All rights reserved
*
* Arduino Adafruit_SSD1306 library API wrapper
*/
#include "Adafruit_SSD1306.h"
#ifdef __cplusplus
extern "C"
{
#endif
// Initialize Adafruit_SSD1306 library for I2C.
// Return value: handle opaque pointer.
// We set the reset pin and
// Resolution: 0 - RES_96_16, 1 - RES_128_32, 2 - RES_128_64.
Adafruit_SSD1306 *mgos_ssd1306_create_i2c(int rst, int res);
// Initialize Adafruit_SSD1306 library for SPI.
// Return value: handle opaque pointer.
// We set DataCommand, ChipSelect, Reset and
// Resolution: 0 - RES_96_16, 1 - RES_128_32, 2 - RES_128_64.
Adafruit_SSD1306 *mgos_ssd1306_create_spi(int dc, int rst, int cs, int res);
// Close Adafruit_SSD1306 handle. Return value: none.
void mgos_ssd1306_close(Adafruit_SSD1306 *ssd);
// Initialize the display.
void mgos_ssd1306_begin(Adafruit_SSD1306 *ssd, int vccstate, int i2caddr, bool reset);
void mgos_ssd1306_command(Adafruit_SSD1306 *ssd, int c);
void mgos_ssd1306_clear_display(Adafruit_SSD1306 *ssd);
void mgos_ssd1306_invert_display(Adafruit_SSD1306 *ssd, int i);
void mgos_ssd1306_display(Adafruit_SSD1306 *ssd);
// Activates a right handed scroll for rows start through stop.
void mgos_ssd1306_start_scroll_right(Adafruit_SSD1306 *ssd, int start, int stop);
// Activates a right handed scroll for rows start through stop.
void mgos_ssd1306_start_scroll_left(Adafruit_SSD1306 *ssd, int start, int stop);
// Activates a diagonal scroll for rows start through stop.
void mgos_ssd1306_start_scroll_diag_right(Adafruit_SSD1306 *ssd, int start, int stop);
// Activates a diagonal scroll for rows start through stop.
void mgos_ssd1306_start_scroll_diag_left(Adafruit_SSD1306 *ssd, int start, int stop);
// Stops scroll.
void mgos_ssd1306_stop_scroll(Adafruit_SSD1306 *ssd);
// Dims the display.
// dim = 1: display is dimmed;
// dim = 0: display is normal.
void mgos_ssd1306_dim(Adafruit_SSD1306 *ssd, int dim);
// Sets a single pixel.
void mgos_ssd1306_draw_pixel(Adafruit_SSD1306 *ssd, int x, int y, int color);
void mgos_ssd1306_draw_fast_vline(Adafruit_SSD1306 *ssd, int x, int y, int h, int color);
void mgos_ssd1306_draw_fast_hline(Adafruit_SSD1306 *ssd, int x, int y, int w, int color);
//Adafruit_GFX
int mgos_ssd1306_make_xy_pair(int x, int y);
void mgos_ssd1306_draw_circle(Adafruit_SSD1306 *ssd,
int x0y0, int r, int color);
void mgos_ssd1306_draw_circle_helper(Adafruit_SSD1306 *ssd,
int x0y0, int r, int cornername, int color);
void mgos_ssd1306_fill_circle(Adafruit_SSD1306 *ssd,
int x0y0, int r, int color);
void mgos_ssd1306_fill_circle_helper(Adafruit_SSD1306 *ssd,
int x0y0, int r, int cornername, int delta, int color);
void mgos_ssd1306_draw_triangle(Adafruit_SSD1306 *ssd,
int x0y0, int x1y1, int x2y2, int color);
void mgos_ssd1306_fill_triangle(Adafruit_SSD1306 *ssd,
int x0y0, int x1y1, int x2y2, int color);
void mgos_ssd1306_draw_round_rect(Adafruit_SSD1306 *ssd,
int x0y0, int w, int h, int radius, int color);
void mgos_ssd1306_fill_round_rect(Adafruit_SSD1306 *ssd,
int x0y0, int w, int h, int radius, int color);
void mgos_ssd1306_draw_char(Adafruit_SSD1306 *ssd,
int xy, int c, int color, int bg, int size);
void mgos_ssd1306_set_cursor(Adafruit_SSD1306 *ssd, int x, int y);
void mgos_ssd1306_set_text_color(Adafruit_SSD1306 *ssd, int c);
void mgos_ssd1306_set_text_color_bg(Adafruit_SSD1306 *ssd, int c, int bg);
void mgos_ssd1306_set_text_size(Adafruit_SSD1306 *ssd, int s);
void mgos_ssd1306_set_text_wrap(Adafruit_SSD1306 *ssd, boolean w);
int mgos_ssd1306_write(Adafruit_SSD1306 *ssd, const char *buffer, int size);
int mgos_ssd1306_height(Adafruit_SSD1306 *ssd);
int mgos_ssd1306_width(Adafruit_SSD1306 *ssd);
int mgos_ssd1306_get_rotation(Adafruit_SSD1306 *ssd);
// get current cursor position (get rotation safe maximum values, using: width() for x, height() for y)
int mgos_ssd1306_get_cursor_x(Adafruit_SSD1306 *ssd);
int mgos_ssd1306_get_cursor_y(Adafruit_SSD1306 *ssd);
#ifdef __cplusplus
}
#endif /* __cplusplus */