aboutsummaryrefslogtreecommitdiffstats
path: root/halext/drivers/gdispNokia6610/gdisp_lld.h
diff options
context:
space:
mode:
Diffstat (limited to 'halext/drivers/gdispNokia6610/gdisp_lld.h')
-rw-r--r--halext/drivers/gdispNokia6610/gdisp_lld.h166
1 files changed, 166 insertions, 0 deletions
diff --git a/halext/drivers/gdispNokia6610/gdisp_lld.h b/halext/drivers/gdispNokia6610/gdisp_lld.h
new file mode 100644
index 00000000..618c8490
--- /dev/null
+++ b/halext/drivers/gdispNokia6610/gdisp_lld.h
@@ -0,0 +1,166 @@
+/*
+ ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010,
+ 2011,2012 Giovanni Di Sirio.
+
+ This file is part of ChibiOS/RT.
+
+ ChibiOS/RT is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ ChibiOS/RT is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ ---
+
+ A special exception to the GPL can be applied should you wish to distribute
+ a combined work that includes ChibiOS/RT, without being obliged to provide
+ the source code for any proprietary components. See the file exception.txt
+ for full details of how and when the exception can be applied.
+*/
+/*
+ Concepts and parts of this file have been contributed by:
+ Joel Bodenmann aka Tectu -> Maintainer
+ Andrew Hannam aka inmarket -> framework
+ Badger -> console implementation and FSMC
+ Abhishek -> font rendering
+ Ben William -> fastMath and lcdDrawEllipse()
+ Dongxu Li aka dxli -> lcdDrawEllipse() filled option
+*/
+
+/**
+ * @file gdispNokia6610/gdisp_lld.h
+ * @brief GDISP Graphic Driver subsystem low level driver header for the Nokia6610 display.
+ *
+ * @addtogroup GDISP
+ * @{
+ */
+
+#ifndef _GDISP_LLD_H
+#define _GDISP_LLD_H
+
+#if HAL_USE_GDISP || defined(__DOXYGEN__)
+
+/*===========================================================================*/
+/* Driver constants. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver pre-compile time settings. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Derived constants and error checks. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* Driver data structures and types. */
+/*===========================================================================*/
+
+/**
+ * @brief Structure representing a GDISP driver.
+ * @note Implementations may extend this structure to contain more,
+ * architecture dependent, fields.
+ */
+struct GDISPDriver {
+ /**
+ * @brief Width of the screen.
+ * @note Read-only.
+ */
+ coord_t Width;
+ /**
+ * @brief Height of the screen.
+ * @note Read-only.
+ */
+ coord_t Height;
+ /**
+ * @brief Current orientation of the screen.
+ * @note Read-only.
+ */
+ gdisp_orientation_t Orientation;
+ /**
+ * @brief Current power mode of the screen.
+ * @note Read-only.
+ */
+ gdisp_powermode_t Powermode;
+
+ #if defined(GDISP_DRIVER_EXT_FIELDS)
+ GDISP_DRIVER_EXT_FIELDS
+ #endif
+ /* End of mandatory fields */
+};
+
+/*===========================================================================*/
+/* Driver macros. */
+/*===========================================================================*/
+
+/*===========================================================================*/
+/* External declarations. */
+/*===========================================================================*/
+
+#if !defined(__DOXYGEN__)
+ extern GDISPDriver GDISP;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ /* Core functions */
+ void gdisp_lld_init(void);
+ void gdisp_lld_setpowermode(gdisp_powermode_t powerMode);
+ void gdisp_lld_setorientation(gdisp_orientation_t newOrientation);
+
+ /* Some of these functions will be implemented in software by the high level driver
+ depending on the GDISP_HARDWARE_XXX macros defined in gdisp_lld_config.h.
+ */
+
+ /* Drawing functions */
+ void gdisp_lld_clear(color_t color);
+ void gdisp_lld_drawpixel(coord_t x, coord_t y, color_t color);
+ void gdisp_lld_drawline(coord_t x0, coord_t y0, coord_t x1, coord_t y1, color_t color);
+ void gdisp_lld_drawbox(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color);
+ void gdisp_lld_fillarea(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color);
+ void gdisp_lld_blitarea(coord_t x, coord_t y, coord_t cx, coord_t cy, pixel_t *buffer);
+
+ /* Circular Drawing Functions */
+ #if GDISP_NEED_CIRCLE
+ void gdisp_lld_drawcircle(coord_t x, coord_t y, coord_t radius, color_t color);
+ void gdisp_lld_fillcircle(coord_t x, coord_t y, coord_t radius, color_t color);
+ #endif
+
+ #if GDISP_NEED_ELLIPSE
+ void gdisp_lld_drawellipse(coord_t x, coord_t y, coord_t a, coord_t b, color_t color);
+ void gdisp_lld_fillellipse(coord_t x, coord_t y, coord_t a, coord_t b, color_t color);
+ #endif
+
+ /* Text Rendering Functions */
+ #if GDISP_NEED_TEXT
+ void gdisp_lld_drawchar(coord_t x, coord_t y, char c, font_t font, color_t color);
+ void gdisp_lld_fillchar(coord_t x, coord_t y, char c, font_t font, color_t color, color_t bgcolor);
+ #endif
+
+ /* Pixel readback */
+ #if GDISP_NEED_PIXELREAD
+ color_t gdisp_lld_getpixelcolor(coord_t x, coord_t y);
+ #endif
+
+ /* Scrolling Function - clears the area scrolled out */
+ #if GDISP_NEED_SCROLL
+ void gdisp_lld_verticalscroll(coord_t x, coord_t y, coord_t cx, coord_t cy, int lines, color_t bgcolor);
+ #endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* HAL_USE_GDISP */
+
+#endif /* _GDISP_LLD_H */
+/** @} */