aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJoel Bodenmann <joel@unormal.org>2013-02-11 09:25:26 +0100
committerJoel Bodenmann <joel@unormal.org>2013-02-11 09:25:26 +0100
commit885b3d53b3a491c62fb0634b78cb9857723ac15d (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /include
parent851e5fb09bdc086d734647128fd3051c3a8528e2 (diff)
downloaduGFX-885b3d53b3a491c62fb0634b78cb9857723ac15d.tar.gz
uGFX-885b3d53b3a491c62fb0634b78cb9857723ac15d.tar.bz2
uGFX-885b3d53b3a491c62fb0634b78cb9857723ac15d.zip
removed GDISP_LLD() macro
Diffstat (limited to 'include')
-rw-r--r--include/gadc/gadc.h250
-rw-r--r--include/gadc/options.h57
-rw-r--r--include/gaudin/gaudin.h170
-rw-r--r--include/gaudin/options.h45
-rw-r--r--include/gaudout/gaudout.h56
-rw-r--r--include/gaudout/options.h45
-rw-r--r--include/gdisp/fonts.h80
-rw-r--r--include/gdisp/gdisp.h291
-rw-r--r--include/gdisp/lld/emulation.c772
-rw-r--r--include/gdisp/lld/gdisp_lld.h544
-rw-r--r--include/gdisp/lld/gdisp_lld_msgs.h193
-rw-r--r--include/gdisp/options.h241
-rw-r--r--include/gevent/gevent.h250
-rw-r--r--include/gevent/options.h68
-rw-r--r--include/gfx.h170
-rw-r--r--include/gfx_rules.h128
-rw-r--r--include/ginput/dial.h123
-rw-r--r--include/ginput/ginput.h61
-rw-r--r--include/ginput/keyboard.h140
-rw-r--r--include/ginput/lld/mouse.h121
-rw-r--r--include/ginput/lld/toggle.h73
-rw-r--r--include/ginput/mouse.h171
-rw-r--r--include/ginput/options.h127
-rw-r--r--include/ginput/toggle.h112
-rw-r--r--include/gmisc/gmisc.h106
-rw-r--r--include/gmisc/options.h52
-rw-r--r--include/gtimer/gtimer.h182
-rw-r--r--include/gtimer/options.h52
-rw-r--r--include/gwin/button.h194
-rw-r--r--include/gwin/console.h144
-rw-r--r--include/gwin/graph.h208
-rw-r--r--include/gwin/gwin.h186
-rw-r--r--include/gwin/internal.h53
-rw-r--r--include/gwin/options.h71
-rw-r--r--include/tdisp/lld/tdisp_lld.h57
-rw-r--r--include/tdisp/options.h87
-rw-r--r--include/tdisp/tdisp.h147
37 files changed, 0 insertions, 5827 deletions
diff --git a/include/gadc/gadc.h b/include/gadc/gadc.h
deleted file mode 100644
index 5c490cb9..00000000
--- a/include/gadc/gadc.h
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/gadc/gadc.h
- * @brief GADC - Periodic ADC subsystem header file.
- *
- * @addtogroup GADC
- *
- * @details The reason why ChibiOS/GFX has it's own ADC abstraction is because
- * the Chibi-OS drivers are very CPU specific and do not
- * provide a way across all hardware platforms to create periodic
- * ADC conversions. There are also issues with devices with different
- * characteristics or periodic requirements on the same ADC
- * device (but different channels). This layer attempts to solve these
- * problems to provide a architecture neutral API. It also provides extra
- * features such as multi-buffer chaining for high speed ADC sources.
- * It provides one high speed virtual ADC device (eg a microphone) and
- * numerous low speed (less than 100Hz) virtual ADC devices (eg dials,
- * temperature sensors etc). The high speed device has timer based polling
- * to ensure exact conversion periods and a buffer management system.
- * The low speed devices are assumed to be non-critical timing devices
- * and do not have any buffer management.
- * Note that while only one high speed device has been provided it can
- * be used to read multiple physical ADC channels on the one physical
- * ADC device.
- * All callback routines are thread based unlike the Chibi-OS interrupt based
- * routines.
- *
- * @{
- */
-
-#ifndef _GADC_H
-#define _GADC_H
-
-#include "gfx.h"
-
-#if GFX_USE_GADC || defined(__DOXYGEN__)
-
-/* Include the driver defines */
-#include "gadc_lld_config.h"
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-// Event types for GADC
-#define GEVENT_ADC (GEVENT_GADC_FIRST+0)
-
-/**
- * @brief The High Speed ADC event structure.
- * @{
- */
-typedef struct GEventADC_t {
- /**
- * @brief The type of this event (GEVENT_ADC)
- */
- GEventType type;
- /**
- * @brief The event flags
- */
- uint16_t flags;
- /**
- * @brief The event flag values.
- * @{
- */
- #define GADC_HSADC_LOSTEVENT 0x0001 /**< @brief The last GEVENT_HSDADC event was lost */
- /** @} */
- /**
- * @brief The number of conversions in the buffer
- */
- size_t count;
- /**
- * @brief The buffer containing the conversion samples
- */
- adcsample_t *buffer;
- } GEventADC;
-
-/**
- * @brief A callback function (executed in a thread context)
- */
-typedef void (*GADCCallbackFunction)(adcsample_t *buffer, void *param);
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Initialise the high speed ADC.
- * @details Initialises but does not start the conversions.
- *
- * @param[in] physdev A value passed to describe which physical ADC devices/channels to use.
- * @param[in] frequency The frequency to create ADC conversions
- * @param[in] buffer The static buffer to put the ADC samples into.
- * @param[in] bufcount The total number of conversions that will fit in the buffer.
- * @param[in] countPerEvent The number of conversions to do before returning an event.
- *
- * @note If the high speed ADC is running it will be stopped.
- * @note Due to a bug in Chibi-OS countPerEvent must be even. If bufcount is not
- * evenly divisable by countPerEvent, the remainder must also be even.
- * @note The physdev parameter may be used to turn on more than one ADC channel.
- * Each channel is then interleaved into the provided buffer. Note 'bufcount'
- * and 'countPerEvent' parameters describe the number of conversions not the
- * number of samples.
- * As an example, if physdev turns on 2 devices then the buffer contains
- * alternate device samples and the buffer must contain 2 * bufcount samples.
- * The exact meaning of physdev is hardware dependent.
- * @note The buffer is circular. When the end of the buffer is reached it will start
- * putting data into the beginning of the buffer again.
- * @note The event listener must process the event (and the data in it) before the
- * next event occurs. If not, the following event will be lost.
- * @note If bufcount is evenly divisable by countPerEvent, then every event will return
- * countPerEvent conversions. If bufcount is not evenly divisable, it will return
- * a block of samples containing less than countPerEvent samples when it reaches the
- * end of the buffer.
- * @note While the high speed ADC is running, low speed conversions can only occur at
- * the frequency of the high speed events. Thus if high speed events are
- * being created at 50Hz (eg countPerEvent = 100, frequency = 5kHz) then the maximum
- * frequency for low speed conversions is likely to be 50Hz (although it might be
- * 100Hz on some hardware).
- *
- * @api
- */
-void gadcHighSpeedInit(uint32_t physdev, uint32_t frequency, adcsample_t *buffer, size_t bufcount, size_t samplesPerEvent);
-
-#if GFX_USE_GEVENT || defined(__DOXYGEN__)
- /**
- * @brief Turn on sending results to the GEVENT sub-system.
- * @details Returns a GSourceHandle to listen for GEVENT_ADC events.
- *
- * @note The high speed ADC will not use the GEVENT system unless this is
- * called first. This saves processing time if the application does
- * not want to use the GEVENT sub-system for the high speed ADC.
- * Once turned on it cannot be turned off.
- * @note The high speed ADC is capable of signalling via this method and a binary semaphore
- * at the same time.
- *
- * @api
- */
- GSourceHandle gadcHighSpeedGetSource(void);
-#endif
-
-/**
- * @brief Allow retrieving of results from the high speed ADC using a Binary Semaphore and a static event buffer.
- *
- * @param[in] pbsem The binary semaphore is signaled when data is available.
- * @param[in] pEvent The static event buffer to place the result information.
- *
- * @note Passing a NULL for pbsem or pEvent will turn off signalling via this method.
- * @note The high speed ADC is capable of signalling via this method and the GEVENT
- * sub-system at the same time.
- *
- * @api
- */
-void gadcHighSpeedSetBSem(BinarySemaphore *pbsem, GEventADC *pEvent);
-
-/**
- * @brief Start the high speed ADC conversions.
- * @pre It must have been initialised first with @p gadcHighSpeedInit()
- *
- * @api
- */
-GSourceHandle gadcHighSpeedStart(void);
-
-/**
- * @brief Stop the high speed ADC conversions.
- *
- * @api
- */
-void gadcHighSpeedStop(void);
-
-/**
- * @brief Perform a single low speed ADC conversion
- * @details Blocks until the conversion is complete
- * @pre This should not be called from within a GTimer callback as this routine
- * blocks until the conversion is ready.
- *
- * @param[in] physdev A value passed to describe which physical ADC devices/channels to use.
- * @param[in] buffer The static buffer to put the ADC samples into.
- *
- * @note This may take a while to complete if the high speed ADC is running as the
- * conversion is interleaved with the high speed ADC conversions on a buffer
- * completion.
- * @note The result buffer must be large enough to store one sample per device
- * described by the 'physdev' parameter.
- * @note If calling this routine would exceed @p GADC_MAX_LOWSPEED_DEVICES simultaneous low
- * speed devices, the routine will wait for an available slot to complete the
- * conversion.
- * @note Specifying more than one device in physdev is possible but discouraged as the
- * calculations to ensure the high speed ADC correctness will be incorrect. Symptoms
- * from over-running the high speed ADC include high speed samples being lost.
- *
- * @api
- */
-void gadcLowSpeedGet(uint32_t physdev, adcsample_t *buffer);
-
-/**
- * @brief Perform a low speed ADC conversion with callback (in a thread context)
- * @details Returns FALSE if there are no free low speed ADC slots. See @p GADC_MAX_LOWSPEED_DEVICES for details.
- *
- * @param[in] physdev A value passed to describe which physical ADC devices/channels to use.
- * @param[in] buffer The static buffer to put the ADC samples into.
- * @param[in] fn The callback function to call when the conversion is complete.
- * @param[in] param A parameter to pass to the callback function.
- *
- * @note This may be safely called from within a GTimer callback.
- * @note The callback may take a while to occur if the high speed ADC is running as the
- * conversion is interleaved with the high speed ADC conversions on a buffer
- * completion.
- * @note The result buffer must be large enough to store one sample per device
- * described by the 'physdev' parameter.
- * @note As this routine uses a low speed ADC, it asserts if you try to run more than @p GADC_MAX_LOWSPEED_DEVICES
- * at the same time.
- * @note Specifying more than one device in physdev is possible but discouraged as the
- * calculations to ensure the high speed ADC correctness will be incorrect. Symptoms
- * from over-running the high speed ADC include high speed samples being lost.
- *
- * @api
- */
-bool gadcLowSpeedStart(uint32_t physdev, adcsample_t *buffer, GADCCallbackFunction fn, void *param);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GFX_USE_GADC */
-
-#endif /* _GADC_H */
-/** @} */
-
diff --git a/include/gadc/options.h b/include/gadc/options.h
deleted file mode 100644
index dc5bd300..00000000
--- a/include/gadc/options.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gadc/options.h
- * @brief GADC - Periodic ADC subsystem options header file.
- *
- * @addtogroup GADC
- * @{
- */
-
-#ifndef _GADC_OPTIONS_H
-#define _GADC_OPTIONS_H
-
-/**
- * @name GADC Functionality to be included
- * @{
- */
-/**
- * @}
- *
- * @name GADC Optional Sizing Parameters
- * @{
- */
- /**
- * @brief The maximum simultaneous GADC low speed device conversions
- * @details Defaults to 4
- * @note This value must be less than the number of conversions that can occur
- * in a single high speed ADC cycle including the high speed ADC conversion.
- * For example, if the ADC can run at 132k samples per second and the high speed
- * virtual ADC is using 44kHz then GADC_MAX_LOWSPEED_DEVICES should be set to
- * 132/44 - 1 = 2
- */
- #ifndef GADC_MAX_LOWSPEED_DEVICES
- #define GADC_MAX_LOWSPEED_DEVICES 4
- #endif
-/** @} */
-
-#endif /* _GADC_OPTIONS_H */
-/** @} */
diff --git a/include/gaudin/gaudin.h b/include/gaudin/gaudin.h
deleted file mode 100644
index 6f35ba19..00000000
--- a/include/gaudin/gaudin.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/gaudin/gaudin.h
- * @brief GAUDIN - Audio Input subsystem header file.
- *
- * @addtogroup GAUDIN
- *
- * @{
- */
-
-#ifndef _GAUDIN_H
-#define _GAUDIN_H
-
-#include "gfx.h"
-
-#if GFX_USE_GAUDIN || defined(__DOXYGEN__)
-
-/* Include the driver defines */
-#include "gaudin_lld_config.h"
-//audio_in_sample_t
-//GAUDIN_SAMPLE_FORMAT ARRAY_DATA_10BITUNSIGNED
-//GAUDIN_STEREO_DEVICE FALSE
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-// Event types for GAUDIN
-#define GEVENT_AUDIO_IN (GEVENT_GAUDIN_FIRST+0)
-
-/**
- * @brief The Audio Input event structure.
- * @{
- */
-typedef struct GEventAudioIn_t {
- /**
- * @brief The type of this event (GEVENT_AUDIO_IN)
- */
- GEventType type;
- /**
- * @brief The event flags
- */
- uint16_t flags;
- /**
- * @brief The event flag values.
- * @{
- */
- #define GADC_AUDIO_IN_LOSTEVENT 0x0001 /**< @brief The last GEVENT_AUDIO_IN event was lost */
- /** @} */
- /**
- * @brief The number of audio samples in the buffer
- */
- size_t count;
- /**
- * @brief The buffer containing the audio samples
- */
- audio_in_sample_t *buffer;
- } GEventAudioIn;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Initialise the Audio Input Subsystem.
- * @details Initialises but does not start the audio in.
- *
- * @param[in] frequency The sample frequency
- * @param[in] buffer The static buffer to put the samples into.
- * @param[in] bufcount The total number of conversions that will fit in the buffer.
- * @param[in] countPerEvent The number of conversions to do before returning an event.
- *
- * @note If the audio input is running it will be stopped.
- * @note Due to a bug in Chibi-OS countPerEvent must be even for the GADC audio driver.
- * If bufcount is not evenly divisable by countPerEvent, the remainder must also be even.
- * This requirement may not apply to other GAUDIN drivers.
- * @note The number of samples for stereo devices will be double the number of conversions.
- * Make sure you allocate your buffers large enough. Each channel is then interleaved
- * into the provided buffer. Note 'bufcount' and 'countPerEvent' parameters describe the
- * number of conversions not the number of samples.
- * @note The buffer is circular. When the end of the buffer is reached it will start
- * putting data into the beginning of the buffer again.
- * @note The event listener must process the event (and the data in it) before the
- * next event occurs. If not, the following event will be lost.
- * @note If bufcount is evenly divisable by countPerEvent, then every event will return
- * countPerEvent conversions. If bufcount is not evenly divisable, it will return
- * a block of samples containing less than countPerEvent samples when it reaches the
- * end of the buffer.
- *
- * @api
- */
-void gaudinInit(uint32_t frequency, adcsample_t *buffer, size_t bufcount, size_t samplesPerEvent);
-
-#if GFX_USE_GEVENT || defined(__DOXYGEN__)
- /**
- * @brief Turn on sending results to the GEVENT sub-system.
- * @details Returns a GSourceHandle to listen for GEVENT_AUDIO_IN events.
- *
- * @note The audio input will not use the GEVENT system unless this is
- * called first. This saves processing time if the application does
- * not want to use the GEVENT sub-system for audio input.
- * Once turned on it cannot be turned off.
- * @note The audio input is capable of signalling via this method and a binary semaphore
- * at the same time.
- *
- * @api
- */
- GSourceHandle gaudinGetSource(void);
-#endif
-
-/**
- * @brief Allow retrieving of results from the audio input using a Binary Semaphore and a static event buffer.
- *
- * @param[in] pbsem The binary semaphore is signaled when data is available.
- * @param[in] pEvent The static event buffer to place the result information.
- *
- * @note Passing a NULL for pbsem or pEvent will turn off signalling via this method.
- * @note The audio input is capable of signalling via this method and the GEVENT
- * sub-system at the same time.
- *
- * @api
- */
-void gaudinSetBSem(BinarySemaphore *pbsem, GEventAudioIn *pEvent);
-
-/**
- * @brief Start the audio input conversions.
- * @pre It must have been initialised first with @p gaudinInit()
- *
- * @api
- */
-GSourceHandle gaudinStart(void);
-
-/**
- * @brief Stop the audio input conversions.
- *
- * @api
- */
-void gaudinStop(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GFX_USE_GAUDIN */
-
-#endif /* _GAUDIN_H */
-/** @} */
-
diff --git a/include/gaudin/options.h b/include/gaudin/options.h
deleted file mode 100644
index fdff5197..00000000
--- a/include/gaudin/options.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gaudin/options.h
- * @brief GAUDIN - Audio Input subsystem options header file.
- *
- * @addtogroup GAUDIN
- * @{
- */
-
-#ifndef _GAUDIN_OPTIONS_H
-#define _GAUDIN_OPTIONS_H
-
-/**
- * @name GAUDIN Functionality to be included
- * @{
- */
-/**
- * @}
- *
- * @name GAUDIN Optional Sizing Parameters
- * @{
- */
-/** @} */
-
-#endif /* _GAUDIN_OPTIONS_H */
-/** @} */
diff --git a/include/gaudout/gaudout.h b/include/gaudout/gaudout.h
deleted file mode 100644
index a85bb6f2..00000000
--- a/include/gaudout/gaudout.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/gaudout/gaudout.h
- * @brief GAUDOUT - Audio Output subsystem header file.
- *
- * @addtogroup GAUDOUT
- *
- * @{
- */
-
-#ifndef _GAUDOUT_H
-#define _GAUDOUT_H
-
-#include "gfx.h"
-
-#if GFX_USE_GAUDOUT || defined(__DOXYGEN__)
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GFX_USE_GAUDOUT */
-
-#endif /* _GAUDOUT_H */
-/** @} */
-
diff --git a/include/gaudout/options.h b/include/gaudout/options.h
deleted file mode 100644
index 34c03ac5..00000000
--- a/include/gaudout/options.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gaudout/options.h
- * @brief GAUDOUT - Audio Output subsystem options header file.
- *
- * @addtogroup GAUDOUT
- * @{
- */
-
-#ifndef _GAUDOUT_OPTIONS_H
-#define _GAUDOUT_OPTIONS_H
-
-/**
- * @name GAUDOUT Functionality to be included
- * @{
- */
-/**
- * @}
- *
- * @name GAUDOUT Optional Sizing Parameters
- * @{
- */
-/** @} */
-
-#endif /* _GAUDOUT_OPTIONS_H */
-/** @} */
diff --git a/include/gdisp/fonts.h b/include/gdisp/fonts.h
deleted file mode 100644
index f92f1b81..00000000
--- a/include/gdisp/fonts.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gdisp/fonts.h
- * @brief GDISP internal font definitions.
- * @details This is not generally needed by an application. It is used
- * by the low level drivers that need to understand a font.
- *
- * @addtogroup GDISP
- * @{
- */
-
-#ifndef _GDISP_FONTS_H
-#define _GDISP_FONTS_H
-
-/* Don't test against GFX_USE_GDISP as we may want to use this in other non-GDISP utilities. */
-
-/**
- * @brief The type of a font column.
- * @note Set by defining @p GDISP_MAX_FNT_HEIGHT appropriately.
- */
-#if GDISP_MAX_FONT_HEIGHT == 16
- typedef uint16_t fontcolumn_t;
-#elif GDISP_MAX_FONT_HEIGHT == 32
- typedef uint32_t fontcolumn_t;
-#else
- #error "GDISP: GDISP_MAX_FONT_HEIGHT must be either 16 or 32"
-#endif
-
-/**
- * @brief Internal font structure.
- * @note This structure is followed by:
- * 1. An array of character widths (uint8_t)
- * 2. An array of column data offsets (relative to the font structure)
- * 3. Each characters array of column data (fontcolumn_t)
- * Each sub-structure must be padded to a multiple of 8 bytes
- * to allow the tables to work across many different compilers.
- */
-struct font {
- const char * name;
- uint8_t height;
- uint8_t charPadding;
- uint8_t lineSpacing;
- uint8_t descenderHeight;
- uint8_t minWidth;
- uint8_t maxWidth;
- char minChar;
- char maxChar;
- uint8_t xscale;
- uint8_t yscale;
- const uint8_t *widthTable;
- const uint16_t *offsetTable;
- const fontcolumn_t *dataTable;
-};
-
-#define _getCharWidth(f,c) (((c) < (f)->minChar || (c) > (f)->maxChar) ? 0 : (f)->widthTable[(c) - (f)->minChar])
-#define _getCharOffset(f,c) ((f)->offsetTable[(c) - (f)->minChar])
-#define _getCharData(f,c) (&(f)->dataTable[_getCharOffset(f, c)])
-
-#endif /* _GDISP_FONTS_H */
-/** @} */
-
diff --git a/include/gdisp/gdisp.h b/include/gdisp/gdisp.h
deleted file mode 100644
index da6d859f..00000000
--- a/include/gdisp/gdisp.h
+++ /dev/null
@@ -1,291 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gdisp/gdisp.h
- * @brief GDISP Graphic Driver subsystem header file.
- *
- * @addtogroup GDISP
- *
- * @details The GDISP module provides high level abstraction to interface pixel oriented graphic displays.
- *
- * @pre GFX_USE_GDISP must be set to TRUE in gfxconf.h
- *
- * @{
- */
-
-#ifndef _GDISP_H
-#define _GDISP_H
-
-#include "gfx.h"
-
-/* This type definition is defined here as it gets used in other gfx sub-systems even
- * if GFX_USE_GDISP is FALSE.
- */
-
-/**
- * @brief The type for a coordinate or length on the screen.
- */
-typedef int16_t coord_t;
-
-#if GFX_USE_GDISP || defined(__DOXYGEN__)
-
-/*===========================================================================*/
-/* Driver constants. */
-/*===========================================================================*/
-
-/**
- * @name Some basic colors
- * @{
- */
-#define White HTML2COLOR(0xFFFFFF)
-#define Black HTML2COLOR(0x000000)
-#define Gray HTML2COLOR(0x808080)
-#define Grey Gray
-#define Blue HTML2COLOR(0x0000FF)
-#define Red HTML2COLOR(0xFF0000)
-#define Fuchsia HTML2COLOR(0xFF00FF)
-#define Magenta Fuchsia
-#define Green HTML2COLOR(0x008000)
-#define Yellow HTML2COLOR(0xFFFF00)
-#define Aqua HTML2COLOR(0x00FFFF)
-#define Cyan Aqua
-#define Lime HTML2COLOR(0x00FF00)
-#define Maroon HTML2COLOR(0x800000)
-#define Navy HTML2COLOR(0x000080)
-#define Olive HTML2COLOR(0x808000)
-#define Purple HTML2COLOR(0x800080)
-#define Silver HTML2COLOR(0xC0C0C0)
-#define Teal HTML2COLOR(0x008080)
-#define Orange HTML2COLOR(0xFFA500)
-#define Pink HTML2COLOR(0xFFC0CB)
-#define SkyBlue HTML2COLOR(0x87CEEB)
-/** @} */
-
-/*===========================================================================*/
-/* Low Level Driver details and error checks. */
-/*===========================================================================*/
-
-/* Include the low level driver information */
-#include "gdisp/lld/gdisp_lld.h"
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-/**
- * @brief Type for the text justification.
- */
-typedef enum justify {justifyLeft, justifyCenter, justifyRight} justify_t;
-/**
- * @brief Type for the font metric.
- */
-typedef enum fontmetric {fontHeight, fontDescendersHeight, fontLineSpacing, fontCharPadding, fontMinWidth, fontMaxWidth} fontmetric_t;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#if (GDISP_NEED_TEXT && GDISP_OLD_FONT_DEFINITIONS) || defined(__DOXYGEN__)
- #if GDISP_INCLUDE_FONT_SMALL
- extern const struct font fontSmall;
- extern const struct font fontSmallDouble;
- extern const struct font fontSmallNarrow;
- #endif
- #if GDISP_INCLUDE_FONT_LARGER
- extern const struct font fontLarger;
- extern const struct font fontLargerDouble;
- extern const struct font fontLargerNarrow;
- #endif
- #if GDISP_INCLUDE_FONT_UI1
- extern const struct font fontUI1;
- extern const struct font fontUI1Double;
- extern const struct font fontUI1Narrow;
- #endif
- #if GDISP_INCLUDE_FONT_UI2
- extern const struct font fontUI2;
- extern const struct font fontUI2Double;
- extern const struct font fontUI2Narrow;
- #endif
- #if GDISP_INCLUDE_FONT_LARGENUMBERS
- extern const struct font fontLargeNumbers;
- extern const struct font fontLargeNumbersDouble;
- extern const struct font fontLargeNumbersNarrow;
- #endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if GDISP_NEED_MULTITHREAD || GDISP_NEED_ASYNC
- /* These routines can be hardware accelerated
- * - Do not add a routine here unless it has also been added to the hardware acceleration layer
- */
-
- /* Base Functions */
- bool_t gdispInit(void);
- bool_t gdispIsBusy(void);
-
- /* Drawing Functions */
- void gdispClear(color_t color);
- void gdispDrawPixel(coord_t x, coord_t y, color_t color);
- void gdispDrawLine(coord_t x0, coord_t y0, coord_t x1, coord_t y1, color_t color);
- void gdispFillArea(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color);
- void gdispBlitAreaEx(coord_t x, coord_t y, coord_t cx, coord_t cy, coord_t srcx, coord_t srcy, coord_t srccx, const pixel_t *buffer);
-
- /* Clipping Functions */
- #if GDISP_NEED_CLIP
- void gdispSetClip(coord_t x, coord_t y, coord_t cx, coord_t cy);
- #endif
-
- /* Circle Functions */
- #if GDISP_NEED_CIRCLE
- void gdispDrawCircle(coord_t x, coord_t y, coord_t radius, color_t color);
- void gdispFillCircle(coord_t x, coord_t y, coord_t radius, color_t color);
- #endif
-
- /* Ellipse Functions */
- #if GDISP_NEED_ELLIPSE
- void gdispDrawEllipse(coord_t x, coord_t y, coord_t a, coord_t b, color_t color);
- void gdispFillEllipse(coord_t x, coord_t y, coord_t a, coord_t b, color_t color);
- #endif
-
- /* Arc Functions */
- #if GDISP_NEED_ARC
- void gdispDrawArc(coord_t x, coord_t y, coord_t radius, coord_t startangle, coord_t endangle, color_t color);
- void gdispFillArc(coord_t x, coord_t y, coord_t radius, coord_t startangle, coord_t endangle, color_t color);
- #endif
-
- /* Basic Text Rendering Functions */
- #if GDISP_NEED_TEXT
- void gdispDrawChar(coord_t x, coord_t y, char c, font_t font, color_t color);
- void gdispFillChar(coord_t x, coord_t y, char c, font_t font, color_t color, color_t bgcolor);
- #endif
-
- /* Read a pixel Function */
- #if GDISP_NEED_PIXELREAD
- color_t gdispGetPixelColor(coord_t x, coord_t y);
- #endif
-
- /* Scrolling Function - clears the area scrolled out */
- #if GDISP_NEED_SCROLL
- void gdispVerticalScroll(coord_t x, coord_t y, coord_t cx, coord_t cy, int lines, color_t bgcolor);
- #endif
-
- /* Set driver specific control */
- #if GDISP_NEED_CONTROL
- void gdispControl(unsigned what, void *value);
- #endif
-
- /* Query driver specific data */
- void *gdispQuery(unsigned what);
-
-#else
-
- /* The same as above but use the low level driver directly if no multi-thread support is needed */
- #define gdispInit(gdisp) GDISP_LLD(init)()
- #define gdispIsBusy() FALSE
- #define gdispClear(color) GDISP_LLD(clear)(color)
- #define gdispDrawPixel(x, y, color) GDISP_LLD(drawpixel)(x, y, color)
- #define gdispDrawLine(x0, y0, x1, y1, color) GDISP_LLD(drawline)(x0, y0, x1, y1, color)
- #define gdispFillArea(x, y, cx, cy, color) GDISP_LLD(fillarea)(x, y, cx, cy, color)
- #define gdispBlitAreaEx(x, y, cx, cy, sx, sy, scx, buf) GDISP_LLD(blitareaex)(x, y, cx, cy, sx, sy, scx, buf)
- #define gdispSetClip(x, y, cx, cy) GDISP_LLD(setclip)(x, y, cx, cy)
- #define gdispDrawCircle(x, y, radius, color) GDISP_LLD(drawcircle)(x, y, radius, color)
- #define gdispFillCircle(x, y, radius, color) GDISP_LLD(fillcircle)(x, y, radius, color)
- #define gdispDrawArc(x, y, radius, sangle, eangle, color) GDISP_LLD(drawarc)(x, y, radius, sangle, eangle, color)
- #define gdispFillArc(x, y, radius, sangle, eangle, color) GDISP_LLD(fillarc)(x, y, radius, sangle, eangle, color)
- #define gdispDrawEllipse(x, y, a, b, color) GDISP_LLD(drawellipse)(x, y, a, b, color)
- #define gdispFillEllipse(x, y, a, b, color) GDISP_LLD(fillellipse)(x, y, a, b, color)
- #define gdispDrawChar(x, y, c, font, color) GDISP_LLD(drawchar)(x, y, c, font, color)
- #define gdispFillChar(x, y, c, font, color, bgcolor) GDISP_LLD(fillchar)(x, y, c, font, color, bgcolor)
- #define gdispGetPixelColor(x, y) GDISP_LLD(getpixelcolor)(x, y)
- #define gdispVerticalScroll(x, y, cx, cy, lines, bgcolor) GDISP_LLD(verticalscroll)(x, y, cx, cy, lines, bgcolor)
- #define gdispControl(what, value) GDISP_LLD(control)(what, value)
- #define gdispQuery(what) GDISP_LLD(query)(what)
-
-#endif
-
-/* These routines are not hardware accelerated
- * - Do not add a hardware accelerated routines here.
- */
-
-/* Extra drawing functions */
-void gdispDrawBox(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color);
-
-/* Extra Text Functions */
-#if GDISP_NEED_TEXT
- void gdispDrawString(coord_t x, coord_t y, const char *str, font_t font, color_t color);
- void gdispFillString(coord_t x, coord_t y, const char *str, font_t font, color_t color, color_t bgcolor);
- void gdispDrawStringBox(coord_t x, coord_t y, coord_t cx, coord_t cy, const char* str, font_t font, color_t color, justify_t justify);
- void gdispFillStringBox(coord_t x, coord_t y, coord_t cx, coord_t cy, const char* str, font_t font, color_t color, color_t bgColor, justify_t justify);
- coord_t gdispGetFontMetric(font_t font, fontmetric_t metric);
- coord_t gdispGetCharWidth(char c, font_t font);
- coord_t gdispGetStringWidth(const char* str, font_t font);
- font_t gdispOpenFont(const char *name);
- void gdispCloseFont(font_t font);
- const char *gdispGetFontName(font_t font);
-#endif
-
-/* Extra Arc Functions */
-#if GDISP_NEED_ARC
- void gdispDrawRoundedBox(coord_t x, coord_t y, coord_t cx, coord_t cy, coord_t radius, color_t color);
- void gdispFillRoundedBox(coord_t x, coord_t y, coord_t cx, coord_t cy, coord_t radius, color_t color);
-#endif
-
-/* Support routine for packed pixel formats */
-#ifndef gdispPackPixels
- void gdispPackPixels(const pixel_t *buf, coord_t cx, coord_t x, coord_t y, color_t color);
-#endif
-
-/*
- * Macro definitions
- */
-
-/* Now obsolete functions */
-#define gdispBlitArea(x, y, cx, cy, buffer) gdispBlitAreaEx(x, y, cx, cy, 0, 0, cx, buffer)
-
-/* Macro definitions for common gets and sets */
-#define gdispSetPowerMode(powerMode) gdispControl(GDISP_CONTROL_POWER, (void *)(unsigned)(powerMode))
-#define gdispSetOrientation(newOrientation) gdispControl(GDISP_CONTROL_ORIENTATION, (void *)(unsigned)(newOrientation))
-#define gdispSetBacklight(percent) gdispControl(GDISP_CONTROL_BACKLIGHT, (void *)(unsigned)(percent))
-#define gdispSetContrast(percent) gdispControl(GDISP_CONTROL_CONTRAST, (void *)(unsigned)(percent))
-
-#define gdispGetWidth() ((coord_t)(unsigned)gdispQuery(GDISP_QUERY_WIDTH))
-#define gdispGetHeight() ((coord_t)(unsigned)gdispQuery(GDISP_QUERY_HEIGHT))
-#define gdispGetPowerMode() ((gdisp_powermode_t)(unsigned)gdispQuery(GDISP_QUERY_POWER))
-#define gdispGetOrientation() ((gdisp_orientation_t)(unsigned)gdispQuery(GDISP_QUERY_ORIENTATION))
-#define gdispGetBacklight() ((coord_t)(unsigned)gdispQuery(GDISP_QUERY_BACKLIGHT))
-#define gdispGetContrast() ((coord_t)(unsigned)gdispQuery(GDISP_QUERY_CONTRAST))
-
-/* More interesting macro's */
-#define gdispUnsetClip() gdispSetClip(0,0,gdispGetWidth(),gdispGetHeight())
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GFX_USE_GDISP */
-
-#endif /* _GDISP_H */
-/** @} */
-
diff --git a/include/gdisp/lld/emulation.c b/include/gdisp/lld/emulation.c
deleted file mode 100644
index a514458c..00000000
--- a/include/gdisp/lld/emulation.c
+++ /dev/null
@@ -1,772 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gdisp/lld/emulation.c
- * @brief GDISP emulation routines for stuff the driver dosen't support
- *
- * @addtogroup GDISP
- *
- * @details Even though this is a software emulation of a low level driver
- * most validation doesn't need to happen here as eventually
- * we call a real low level driver routine and if validation is
- * required - it will do it.
- *
- * @{
- */
-#ifndef GDISP_EMULATION_C
-#define GDISP_EMULATION_C
-
-#if GFX_USE_GDISP /*|| defined(__DOXYGEN__) */
-
-#ifndef GDISP_LLD_NO_STRUCT
- static struct GDISPDriver {
- coord_t Width;
- coord_t Height;
- gdisp_orientation_t Orientation;
- gdisp_powermode_t Powermode;
- uint8_t Backlight;
- uint8_t Contrast;
- #if GDISP_NEED_CLIP || GDISP_NEED_VALIDATION
- coord_t clipx0, clipy0;
- coord_t clipx1, clipy1; /* not inclusive */
- #endif
- } GDISP;
-#endif
-
-#if !GDISP_HARDWARE_CLEARS
- void GDISP_LLD(clear)(color_t color) {
- GDISP_LLD(fillarea)(0, 0, GDISP.Width, GDISP.Height, color);
- }
-#endif
-
-#if !GDISP_HARDWARE_LINES
- void GDISP_LLD(drawline)(coord_t x0, coord_t y0, coord_t x1, coord_t y1, color_t color) {
- int16_t dy, dx;
- int16_t addx, addy;
- int16_t P, diff, i;
-
- #if GDISP_HARDWARE_FILLS || GDISP_HARDWARE_SCROLL
- // speed improvement if vertical or horizontal
- if (x0 == x1) {
- if (y1 > y0)
- GDISP_LLD(fillarea)(x0, y0, 1, y1-y0+1, color);
- else
- GDISP_LLD(fillarea)(x0, y1, 1, y0-y1+1, color);
- return;
- }
- if (y0 == y1) {
- if (x1 > x0)
- GDISP_LLD(fillarea)(x0, y0, x1-x0+1, 1, color);
- else
- GDISP_LLD(fillarea)(x0, y1, x0-x1+1, 1, color);
- return;
- }
- #endif
-
- if (x1 >= x0) {
- dx = x1 - x0;
- addx = 1;
- } else {
- dx = x0 - x1;
- addx = -1;
- }
- if (y1 >= y0) {
- dy = y1 - y0;
- addy = 1;
- } else {
- dy = y0 - y1;
- addy = -1;
- }
-
- if (dx >= dy) {
- dy *= 2;
- P = dy - dx;
- diff = P - dx;
-
- for(i=0; i<=dx; ++i) {
- GDISP_LLD(drawpixel)(x0, y0, color);
- if (P < 0) {
- P += dy;
- x0 += addx;
- } else {
- P += diff;
- x0 += addx;
- y0 += addy;
- }
- }
- } else {
- dx *= 2;
- P = dx - dy;
- diff = P - dy;
-
- for(i=0; i<=dy; ++i) {
- GDISP_LLD(drawpixel)(x0, y0, color);
- if (P < 0) {
- P += dx;
- y0 += addy;
- } else {
- P += diff;
- x0 += addx;
- y0 += addy;
- }
- }
- }
- }
-#endif
-
-#if !GDISP_HARDWARE_FILLS
- void GDISP_LLD(fillarea)(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color) {
- #if GDISP_HARDWARE_SCROLL
- GDISP_LLD(verticalscroll)(x, y, cx, cy, cy, color);
- #elif GDISP_HARDWARE_LINES
- coord_t x1, y1;
-
- x1 = x + cx - 1;
- y1 = y + cy;
- for(; y < y1; y++)
- GDISP_LLD(drawline)(x, y, x1, y, color);
- #else
- coord_t x0, x1, y1;
-
- x0 = x;
- x1 = x + cx;
- y1 = y + cy;
- for(; y < y1; y++)
- for(x = x0; x < x1; x++)
- GDISP_LLD(drawpixel)(x, y, color);
- #endif
- }
-#endif
-
-#if !GDISP_HARDWARE_BITFILLS
- void GDISP_LLD(blitareaex)(coord_t x, coord_t y, coord_t cx, coord_t cy, coord_t srcx, coord_t srcy, coord_t srccx, const pixel_t *buffer) {
- coord_t x0, x1, y1;
-
- x0 = x;
- x1 = x + cx;
- y1 = y + cy;
- buffer += srcy*srccx+srcx;
- srccx -= cx;
- for(; y < y1; y++, buffer += srccx)
- for(x=x0; x < x1; x++)
- GDISP_LLD(drawpixel)(x, y, *buffer++);
- }
-#endif
-
-#if GDISP_NEED_CLIP && !GDISP_HARDWARE_CLIP
- void GDISP_LLD(setclip)(coord_t x, coord_t y, coord_t cx, coord_t cy) {
- #if GDISP_NEED_VALIDATION
- if (x >= GDISP.Width || y >= GDISP.Height || cx < 0 || cy < 0)
- return;
- if (x < 0) x = 0;
- if (y < 0) y = 0;
- if (x+cx > GDISP.Width) cx = GDISP.Width - x;
- if (y+cy > GDISP.Height) cy = GDISP.Height - y;
- #endif
- GDISP.clipx0 = x;
- GDISP.clipy0 = y;
- GDISP.clipx1 = x+cx;
- GDISP.clipy1 = y+cy;
- }
-#endif
-
-#if GDISP_NEED_CIRCLE && !GDISP_HARDWARE_CIRCLES
- void GDISP_LLD(drawcircle)(coord_t x, coord_t y, coord_t radius, color_t color) {
- coord_t a, b, P;
-
- a = 0;
- b = radius;
- P = 1 - radius;
-
- do {
- GDISP_LLD(drawpixel)(x+a, y+b, color);
- GDISP_LLD(drawpixel)(x+b, y+a, color);
- GDISP_LLD(drawpixel)(x-a, y+b, color);
- GDISP_LLD(drawpixel)(x-b, y+a, color);
- GDISP_LLD(drawpixel)(x+b, y-a, color);
- GDISP_LLD(drawpixel)(x+a, y-b, color);
- GDISP_LLD(drawpixel)(x-a, y-b, color);
- GDISP_LLD(drawpixel)(x-b, y-a, color);
- if (P < 0)
- P += 3 + 2*a++;
- else
- P += 5 + 2*(a++ - b--);
- } while(a <= b);
- }
-#endif
-
-#if GDISP_NEED_CIRCLE && !GDISP_HARDWARE_CIRCLEFILLS
- void GDISP_LLD(fillcircle)(coord_t x, coord_t y, coord_t radius, color_t color) {
- coord_t a, b, P;
-
- a = 0;
- b = radius;
- P = 1 - radius;
-
- do {
- GDISP_LLD(drawline)(x-a, y+b, x+a, y+b, color);
- GDISP_LLD(drawline)(x-a, y-b, x+a, y-b, color);
- GDISP_LLD(drawline)(x-b, y+a, x+b, y+a, color);
- GDISP_LLD(drawline)(x-b, y-a, x+b, y-a, color);
- if (P < 0)
- P += 3 + 2*a++;
- else
- P += 5 + 2*(a++ - b--);
- } while(a <= b);
- }
-#endif
-
-#if GDISP_NEED_ELLIPSE && !GDISP_HARDWARE_ELLIPSES
- void GDISP_LLD(drawellipse)(coord_t x, coord_t y, coord_t a, coord_t b, color_t color) {
- int dx = 0, dy = b; /* im I. Quadranten von links oben nach rechts unten */
- long a2 = a*a, b2 = b*b;
- long err = b2-(2*b-1)*a2, e2; /* Fehler im 1. Schritt */
-
- do {
- GDISP_LLD(drawpixel)(x+dx, y+dy, color); /* I. Quadrant */
- GDISP_LLD(drawpixel)(x-dx, y+dy, color); /* II. Quadrant */
- GDISP_LLD(drawpixel)(x-dx, y-dy, color); /* III. Quadrant */
- GDISP_LLD(drawpixel)(x+dx, y-dy, color); /* IV. Quadrant */
-
- e2 = 2*err;
- if(e2 < (2*dx+1)*b2) {
- dx++;
- err += (2*dx+1)*b2;
- }
- if(e2 > -(2*dy-1)*a2) {
- dy--;
- err -= (2*dy-1)*a2;
- }
- } while(dy >= 0);
-
- while(dx++ < a) { /* fehlerhafter Abbruch bei flachen Ellipsen (b=1) */
- GDISP_LLD(drawpixel)(x+dx, y, color); /* -> Spitze der Ellipse vollenden */
- GDISP_LLD(drawpixel)(x-dx, y, color);
- }
- }
-#endif
-
-#if GDISP_NEED_ELLIPSE && !GDISP_HARDWARE_ELLIPSEFILLS
- void GDISP_LLD(fillellipse)(coord_t x, coord_t y, coord_t a, coord_t b, color_t color) {
- int dx = 0, dy = b; /* im I. Quadranten von links oben nach rechts unten */
- long a2 = a*a, b2 = b*b;
- long err = b2-(2*b-1)*a2, e2; /* Fehler im 1. Schritt */
-
- do {
- GDISP_LLD(drawline)(x-dx,y+dy,x+dx,y+dy, color);
- GDISP_LLD(drawline)(x-dx,y-dy,x+dx,y-dy, color);
-
- e2 = 2*err;
- if(e2 < (2*dx+1)*b2) {
- dx++;
- err += (2*dx+1)*b2;
- }
- if(e2 > -(2*dy-1)*a2) {
- dy--;
- err -= (2*dy-1)*a2;
- }
- } while(dy >= 0);
-
- while(dx++ < a) { /* fehlerhafter Abbruch bei flachen Ellipsen (b=1) */
- GDISP_LLD(drawpixel)(x+dx, y, color); /* -> Spitze der Ellipse vollenden */
- GDISP_LLD(drawpixel)(x-dx, y, color);
- }
- }
-#endif
-
-#if GDISP_NEED_ARC && !GDISP_HARDWARE_ARCS
-
- #include <math.h>
-
- /*
- * @brief Internal helper function for gdispDrawArc()
- *
- * @note DO NOT USE DIRECTLY!
- *
- * @param[in] x, y The middle point of the arc
- * @param[in] start The start angle of the arc
- * @param[in] end The end angle of the arc
- * @param[in] radius The radius of the arc
- * @param[in] color The color in which the arc will be drawn
- *
- * @notapi
- */
- static void _draw_arc(coord_t x, coord_t y, uint16_t start, uint16_t end, uint16_t radius, color_t color) {
- if (/*start >= 0 && */start <= 180) {
- float x_maxI = x + radius*cos(start*M_PI/180);
- float x_minI;
-
- if (end > 180)
- x_minI = x - radius;
- else
- x_minI = x + radius*cos(end*M_PI/180);
-
- int a = 0;
- int b = radius;
- int P = 1 - radius;
-
- do {
- if(x-a <= x_maxI && x-a >= x_minI)
- GDISP_LLD(drawpixel)(x-a, y-b, color);
- if(x+a <= x_maxI && x+a >= x_minI)
- GDISP_LLD(drawpixel)(x+a, y-b, color);
- if(x-b <= x_maxI && x-b >= x_minI)
- GDISP_LLD(drawpixel)(x-b, y-a, color);
- if(x+b <= x_maxI && x+b >= x_minI)
- GDISP_LLD(drawpixel)(x+b, y-a, color);
-
- if (P < 0) {
- P = P + 3 + 2*a;
- a = a + 1;
- } else {
- P = P + 5 + 2*(a - b);
- a = a + 1;
- b = b - 1;
- }
- } while(a <= b);
- }
-
- if (end > 180 && end <= 360) {
- float x_maxII = x+radius*cos(end*M_PI/180);
- float x_minII;
-
- if(start <= 180)
- x_minII = x - radius;
- else
- x_minII = x+radius*cos(start*M_PI/180);
-
- int a = 0;
- int b = radius;
- int P = 1 - radius;
-
- do {
- if(x-a <= x_maxII && x-a >= x_minII)
- GDISP_LLD(drawpixel)(x-a, y+b, color);
- if(x+a <= x_maxII && x+a >= x_minII)
- GDISP_LLD(drawpixel)(x+a, y+b, color);
- if(x-b <= x_maxII && x-b >= x_minII)
- GDISP_LLD(drawpixel)(x-b, y+a, color);
- if(x+b <= x_maxII && x+b >= x_minII)
- GDISP_LLD(drawpixel)(x+b, y+a, color);
-
- if (P < 0) {
- P = P + 3 + 2*a;
- a = a + 1;
- } else {
- P = P + 5 + 2*(a - b);
- a = a + 1;
- b = b - 1;
- }
- } while (a <= b);
- }
- }
-
- void GDISP_LLD(drawarc)(coord_t x, coord_t y, coord_t radius, coord_t startangle, coord_t endangle, color_t color) {
- if(endangle < startangle) {
- _draw_arc(x, y, startangle, 360, radius, color);
- _draw_arc(x, y, 0, endangle, radius, color);
- } else {
- _draw_arc(x, y, startangle, endangle, radius, color);
- }
- }
-#endif
-
-#if GDISP_NEED_ARC && !GDISP_HARDWARE_ARCFILLS
- /*
- * @brief Internal helper function for gdispDrawArc()
- *
- * @note DO NOT USE DIRECTLY!
- *
- * @param[in] x, y The middle point of the arc
- * @param[in] start The start angle of the arc
- * @param[in] end The end angle of the arc
- * @param[in] radius The radius of the arc
- * @param[in] color The color in which the arc will be drawn
- *
- * @notapi
- */
- static void _fill_arc(coord_t x, coord_t y, uint16_t start, uint16_t end, uint16_t radius, color_t color) {
- if (/*start >= 0 && */start <= 180) {
- float x_maxI = x + radius*cos(start*M_PI/180);
- float x_minI;
-
- if (end > 180)
- x_minI = x - radius;
- else
- x_minI = x + radius*cos(end*M_PI/180);
-
- int a = 0;
- int b = radius;
- int P = 1 - radius;
-
- do {
- if(x-a <= x_maxI && x-a >= x_minI)
- GDISP_LLD(drawline)(x, y, x-a, y-b, color);
- if(x+a <= x_maxI && x+a >= x_minI)
- GDISP_LLD(drawline)(x, y, x+a, y-b, color);
- if(x-b <= x_maxI && x-b >= x_minI)
- GDISP_LLD(drawline)(x, y, x-b, y-a, color);
- if(x+b <= x_maxI && x+b >= x_minI)
- GDISP_LLD(drawline)(x, y, x+b, y-a, color);
-
- if (P < 0) {
- P = P + 3 + 2*a;
- a = a + 1;
- } else {
- P = P + 5 + 2*(a - b);
- a = a + 1;
- b = b - 1;
- }
- } while(a <= b);
- }
-
- if (end > 180 && end <= 360) {
- float x_maxII = x+radius*cos(end*M_PI/180);
- float x_minII;
-
- if(start <= 180)
- x_minII = x - radius;
- else
- x_minII = x+radius*cos(start*M_PI/180);
-
- int a = 0;
- int b = radius;
- int P = 1 - radius;
-
- do {
- if(x-a <= x_maxII && x-a >= x_minII)
- GDISP_LLD(drawline)(x, y, x-a, y+b, color);
- if(x+a <= x_maxII && x+a >= x_minII)
- GDISP_LLD(drawline)(x, y, x+a, y+b, color);
- if(x-b <= x_maxII && x-b >= x_minII)
- GDISP_LLD(drawline)(x, y, x-b, y+a, color);
- if(x+b <= x_maxII && x+b >= x_minII)
- GDISP_LLD(drawline)(x, y, x+b, y+a, color);
-
- if (P < 0) {
- P = P + 3 + 2*a;
- a = a + 1;
- } else {
- P = P + 5 + 2*(a - b);
- a = a + 1;
- b = b - 1;
- }
- } while (a <= b);
- }
- }
-
- void GDISP_LLD(fillarc)(coord_t x, coord_t y, coord_t radius, coord_t startangle, coord_t endangle, color_t color) {
- if(endangle < startangle) {
- _fill_arc(x, y, startangle, 360, radius, color);
- _fill_arc(x, y, 0, endangle, radius, color);
- } else {
- _fill_arc(x, y, startangle, endangle, radius, color);
- }
- }
-#endif
-
-#if GDISP_NEED_TEXT && !GDISP_HARDWARE_TEXT
- #include "gdisp/fonts.h"
-#endif
-
-#if GDISP_NEED_TEXT && !GDISP_HARDWARE_TEXT
- void GDISP_LLD(drawchar)(coord_t x, coord_t y, char c, font_t font, color_t color) {
- const fontcolumn_t *ptr;
- fontcolumn_t column;
- coord_t width, height, xscale, yscale;
- coord_t i, j, xs, ys;
-
- /* Check we actually have something to print */
- width = _getCharWidth(font, c);
- if (!width) return;
-
- xscale = font->xscale;
- yscale = font->yscale;
- height = font->height * yscale;
- width *= xscale;
-
- ptr = _getCharData(font, c);
-
- /* Loop through the data and display. The font data is LSBit first, down the column */
- for(i=0; i < width; i+=xscale) {
- /* Get the font bitmap data for the column */
- column = *ptr++;
-
- /* Draw each pixel */
- for(j=0; j < height; j+=yscale, column >>= 1) {
- if (column & 0x01) {
- for(xs=0; xs < xscale; xs++)
- for(ys=0; ys < yscale; ys++)
- GDISP_LLD(drawpixel)(x+i+xs, y+j+ys, color);
- }
- }
- }
- }
-#endif
-
-#if GDISP_NEED_TEXT && !GDISP_HARDWARE_TEXTFILLS
- void GDISP_LLD(fillchar)(coord_t x, coord_t y, char c, font_t font, color_t color, color_t bgcolor) {
- coord_t width, height;
- coord_t xscale, yscale;
-
- /* Check we actually have something to print */
- width = _getCharWidth(font, c);
- if (!width) return;
-
- xscale = font->xscale;
- yscale = font->yscale;
- height = font->height * yscale;
- width *= xscale;
-
- /* Method 1: Use background fill and then draw the text */
- #if GDISP_HARDWARE_TEXT || GDISP_SOFTWARE_TEXTFILLDRAW
-
- /* Fill the area */
- GDISP_LLD(fillarea)(x, y, width, height, bgcolor);
-
- /* Draw the text */
- GDISP_LLD(drawchar)(x, y, c, font, color);
-
- /* Method 2: Create a single column bitmap and then blit it */
- #elif GDISP_HARDWARE_BITFILLS && GDISP_SOFTWARE_TEXTBLITCOLUMN
- {
- const fontcolumn_t *ptr;
- fontcolumn_t column;
- coord_t i, j, xs, ys;
-
- /* Working buffer for fast non-transparent text rendering [patch by Badger]
- This needs to be larger than the largest character we can print.
- Assume the max is double sized by one column.
- */
- static pixel_t buf[sizeof(fontcolumn_t)*8*2];
-
- #if GDISP_NEED_VALIDATION
- /* Check our buffer is big enough */
- if ((unsigned)height > sizeof(buf)/sizeof(buf[0])) return;
- #endif
-
- ptr = _getCharData(font, c);
-
- /* Loop through the data and display. The font data is LSBit first, down the column */
- for(i = 0; i < width; i+=xscale) {
- /* Get the font bitmap data for the column */
- column = *ptr++;
-
- /* Draw each pixel */
- for(j = 0; j < height; j+=yscale, column >>= 1) {
- if (column & 0x01) {
- for(ys=0; ys < yscale; ys++)
- gdispPackPixels(buf, 1, j+ys, 0, color);
- } else {
- for(ys=0; ys < yscale; ys++)
- gdispPackPixels(buf, 1, j+ys, 0, bgcolor);
- }
- }
-
- for(xs=0; xs < xscale; xs++)
- GDISP_LLD(blitareaex)(x+i+xs, y, 1, height, 0, 0, 1, buf);
- }
- }
-
- /* Method 3: Create a character bitmap and then blit it */
- #elif GDISP_HARDWARE_BITFILLS
- {
- const fontcolumn_t *ptr;
- fontcolumn_t column;
- coord_t i, j, xs, ys;
-
- /* Working buffer for fast non-transparent text rendering [patch by Badger]
- This needs to be larger than the largest character we can print.
- Assume the max is double sized.
- */
- static pixel_t buf[20*(sizeof(fontcolumn_t)*8)*2];
-
- #if GDISP_NEED_VALIDATION
- /* Check our buffer is big enough */
- if ((unsigned)(width * height) > sizeof(buf)/sizeof(buf[0])) return;
- #endif
-
- ptr = _getCharData(font, c);
-
- /* Loop through the data and display. The font data is LSBit first, down the column */
- for(i = 0; i < width; i+=xscale) {
- /* Get the font bitmap data for the column */
- column = *ptr++;
-
- /* Draw each pixel */
- for(j = 0; j < height; j+=yscale, column >>= 1) {
- if (column & 0x01) {
- for(xs=0; xs < xscale; xs++)
- for(ys=0; ys < yscale; ys++)
- gdispPackPixels(buf, width, i+xs, j+ys, color);
- } else {
- for(xs=0; xs < xscale; xs++)
- for(ys=0; ys < yscale; ys++)
- gdispPackPixels(buf, width, i+xs, j+ys, bgcolor);
- }
- }
- }
-
- /* [Patch by Badger] Write all in one stroke */
- GDISP_LLD(blitareaex)(x, y, width, height, 0, 0, width, buf);
- }
-
- /* Method 4: Draw pixel by pixel */
- #else
- {
- const fontcolumn_t *ptr;
- fontcolumn_t column;
- coord_t i, j, xs, ys;
-
- ptr = _getCharData(font, c);
-
- /* Loop through the data and display. The font data is LSBit first, down the column */
- for(i = 0; i < width; i+=xscale) {
- /* Get the font bitmap data for the column */
- column = *ptr++;
-
- /* Draw each pixel */
- for(j = 0; j < height; j+=yscale, column >>= 1) {
- if (column & 0x01) {
- for(xs=0; xs < xscale; xs++)
- for(ys=0; ys < yscale; ys++)
- GDISP_LLD(drawpixel)(x+i+xs, y+j+ys, color);
- } else {
- for(xs=0; xs < xscale; xs++)
- for(ys=0; ys < yscale; ys++)
- GDISP_LLD(drawpixel)(x+i+xs, y+j+ys, bgcolor);
- }
- }
- }
- }
- #endif
- }
-#endif
-
-
-#if GDISP_NEED_CONTROL && !GDISP_HARDWARE_CONTROL
- void GDISP_LLD(control)(unsigned what, void *value) {
- (void)what;
- (void)value;
- /* Ignore everything */
- }
-#endif
-
-#if !GDISP_HARDWARE_QUERY
-void *GDISP_LLD(query)(unsigned what) {
- switch(what) {
- case GDISP_QUERY_WIDTH: return (void *)(unsigned)GDISP.Width;
- case GDISP_QUERY_HEIGHT: return (void *)(unsigned)GDISP.Height;
- case GDISP_QUERY_POWER: return (void *)(unsigned)GDISP.Powermode;
- case GDISP_QUERY_ORIENTATION: return (void *)(unsigned)GDISP.Orientation;
- case GDISP_QUERY_BACKLIGHT: return (void *)(unsigned)GDISP.Backlight;
- case GDISP_QUERY_CONTRAST: return (void *)(unsigned)GDISP.Contrast;
- default: return (void *)-1;
- }
-}
-#endif
-
-#if GDISP_NEED_MSGAPI
- void GDISP_LLD(msgdispatch)(gdisp_lld_msg_t *msg) {
- switch(msg->action) {
- case GDISP_LLD_MSG_NOP:
- break;
- case GDISP_LLD_MSG_INIT:
- GDISP_LLD(init)();
- break;
- case GDISP_LLD_MSG_CLEAR:
- GDISP_LLD(clear)(msg->clear.color);
- break;
- case GDISP_LLD_MSG_DRAWPIXEL:
- GDISP_LLD(drawpixel)(msg->drawpixel.x, msg->drawpixel.y, msg->drawpixel.color);
- break;
- case GDISP_LLD_MSG_FILLAREA:
- GDISP_LLD(fillarea)(msg->fillarea.x, msg->fillarea.y, msg->fillarea.cx, msg->fillarea.cy, msg->fillarea.color);
- break;
- case GDISP_LLD_MSG_BLITAREA:
- GDISP_LLD(blitareaex)(msg->blitarea.x, msg->blitarea.y, msg->blitarea.cx, msg->blitarea.cy, msg->blitarea.srcx, msg->blitarea.srcy, msg->blitarea.srccx, msg->blitarea.buffer);
- break;
- case GDISP_LLD_MSG_DRAWLINE:
- GDISP_LLD(drawline)(msg->drawline.x0, msg->drawline.y0, msg->drawline.x1, msg->drawline.y1, msg->drawline.color);
- break;
- #if GDISP_NEED_CLIP
- case GDISP_LLD_MSG_SETCLIP:
- GDISP_LLD(setclip)(msg->setclip.x, msg->setclip.y, msg->setclip.cx, msg->setclip.cy);
- break;
- #endif
- #if GDISP_NEED_CIRCLE
- case GDISP_LLD_MSG_DRAWCIRCLE:
- GDISP_LLD(drawcircle)(msg->drawcircle.x, msg->drawcircle.y, msg->drawcircle.radius, msg->drawcircle.color);
- break;
- case GDISP_LLD_MSG_FILLCIRCLE:
- GDISP_LLD(fillcircle)(msg->fillcircle.x, msg->fillcircle.y, msg->fillcircle.radius, msg->fillcircle.color);
- break;
- #endif
- #if GDISP_NEED_ELLIPSE
- case GDISP_LLD_MSG_DRAWELLIPSE:
- GDISP_LLD(drawellipse)(msg->drawellipse.x, msg->drawellipse.y, msg->drawellipse.a, msg->drawellipse.b, msg->drawellipse.color);
- break;
- case GDISP_LLD_MSG_FILLELLIPSE:
- GDISP_LLD(fillellipse)(msg->fillellipse.x, msg->fillellipse.y, msg->fillellipse.a, msg->fillellipse.b, msg->fillellipse.color);
- break;
- #endif
- #if GDISP_NEED_ARC
- case GDISP_LLD_MSG_DRAWARC:
- GDISP_LLD(drawcircle)(msg->drawarc.x, msg->drawarc.y, msg->drawarc.radius, msg->drawarc.startangle, msg->drawarc.endangle, msg->drawarc.color);
- break;
- case GDISP_LLD_MSG_FILLARC:
- GDISP_LLD(fillcircle)(msg->fillarc.x, msg->fillarc.y, msg->fillarc.radius, msg->fillarc.startangle, msg->fillarc.endangle, msg->fillarc.color);
- break;
- #endif
- #if GDISP_NEED_TEXT
- case GDISP_LLD_MSG_DRAWCHAR:
- GDISP_LLD(drawchar)(msg->drawchar.x, msg->drawchar.y, msg->drawchar.c, msg->drawchar.font, msg->drawchar.color);
- break;
- case GDISP_LLD_MSG_FILLCHAR:
- GDISP_LLD(fillchar)(msg->fillchar.x, msg->fillchar.y, msg->fillchar.c, msg->fillchar.font, msg->fillchar.color, msg->fillchar.bgcolor);
- break;
- #endif
- #if GDISP_NEED_PIXELREAD
- case GDISP_LLD_MSG_GETPIXELCOLOR:
- msg->getpixelcolor.result = GDISP_LLD(getpixelcolor)(msg->getpixelcolor.x, msg->getpixelcolor.y);
- break;
- #endif
- #if GDISP_NEED_SCROLL
- case GDISP_LLD_MSG_VERTICALSCROLL:
- GDISP_LLD(verticalscroll)(msg->verticalscroll.x, msg->verticalscroll.y, msg->verticalscroll.cx, msg->verticalscroll.cy, msg->verticalscroll.lines, msg->verticalscroll.bgcolor);
- break;
- #endif
- #if GDISP_NEED_CONTROL
- case GDISP_LLD_MSG_CONTROL:
- GDISP_LLD(control)(msg->control.what, msg->control.value);
- break;
- #endif
- case GDISP_LLD_MSG_QUERY:
- msg->query.result = GDISP_LLD(query)(msg->query.what);
- break;
- }
- }
-#endif
-
-#endif /* GFX_USE_GDISP */
-#endif /* GDISP_EMULATION_C */
-/** @} */
-
diff --git a/include/gdisp/lld/gdisp_lld.h b/include/gdisp/lld/gdisp_lld.h
deleted file mode 100644
index 6edaa0d4..00000000
--- a/include/gdisp/lld/gdisp_lld.h
+++ /dev/null
@@ -1,544 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gdisp/lld/gdisp_lld.h
- * @brief GDISP Graphic Driver subsystem low level driver header.
- *
- * @addtogroup GDISP
- * @{
- */
-
-#ifndef _GDISP_LLD_H
-#define _GDISP_LLD_H
-
-#if GFX_USE_GDISP || defined(__DOXYGEN__)
-
-/*===========================================================================*/
-/* Low level driver configuration needs */
-/*===========================================================================*/
-
-/*===========================================================================*/
-/* Include the low level driver configuration information */
-/*===========================================================================*/
-
-#include "gdisp_lld_config.h"
-
-/*===========================================================================*/
-/* Constants. */
-/*===========================================================================*/
-
-/**
- * @brief Driver Control Constants
- * @details Unsupported control codes are ignored.
- * @note The value parameter should always be typecast to (void *).
- * @note There are some predefined and some specific to the low level driver.
- * @note GDISP_CONTROL_POWER - Takes a gdisp_powermode_t
- * GDISP_CONTROL_ORIENTATION - Takes a gdisp_orientation_t
- * GDISP_CONTROL_BACKLIGHT - Takes an int from 0 to 100. For a driver
- * that only supports off/on anything other
- * than zero is on.
- * GDISP_CONTROL_CONTRAST - Takes an int from 0 to 100.
- * GDISP_CONTROL_LLD - Low level driver control constants start at
- * this value.
- */
-#define GDISP_CONTROL_POWER 0
-#define GDISP_CONTROL_ORIENTATION 1
-#define GDISP_CONTROL_BACKLIGHT 2
-#define GDISP_CONTROL_CONTRAST 3
-#define GDISP_CONTROL_LLD 1000
-
-/**
- * @brief Driver Query Constants
- * @details Unsupported query codes return (void *)-1.
- * @note There are some predefined and some specific to the low level driver.
- * @note The result should be typecast the required type.
- * @note GDISP_QUERY_WIDTH - Gets the width of the screen
- * GDISP_QUERY_HEIGHT - Gets the height of the screen
- * GDISP_QUERY_POWER - Get the current powermode
- * GDISP_QUERY_ORIENTATION - Get the current orientation
- * GDISP_QUERY_BACKLIGHT - Get the backlight state (0 to 100)
- * GDISP_QUERY_CONTRAST - Get the contrast.
- * GDISP_QUERY_LLD - Low level driver control constants start at
- * this value.
- */
-#define GDISP_QUERY_WIDTH 0
-#define GDISP_QUERY_HEIGHT 1
-#define GDISP_QUERY_POWER 2
-#define GDISP_QUERY_ORIENTATION 3
-#define GDISP_QUERY_BACKLIGHT 4
-#define GDISP_QUERY_CONTRAST 5
-#define GDISP_QUERY_LLD 1000
-
-/**
- * @brief Driver Pixel Format Constants
- */
-#define GDISP_PIXELFORMAT_RGB565 565
-#define GDISP_PIXELFORMAT_RGB888 888
-#define GDISP_PIXELFORMAT_RGB444 444
-#define GDISP_PIXELFORMAT_RGB332 332
-#define GDISP_PIXELFORMAT_RGB666 666
-#define GDISP_PIXELFORMAT_CUSTOM 99999
-#define GDISP_PIXELFORMAT_ERROR 88888
-
-/*===========================================================================*/
-/* Error checks. */
-/*===========================================================================*/
-
-/**
- * @name GDISP hardware accelerated support
- * @{
- */
- /**
- * @brief Hardware accelerated line drawing.
- * @details If set to @p FALSE software emulation is used.
- */
- #ifndef GDISP_HARDWARE_LINES
- #define GDISP_HARDWARE_LINES FALSE
- #endif
-
- /**
- * @brief Hardware accelerated screen clears.
- * @details If set to @p FALSE software emulation is used.
- */
- #ifndef GDISP_HARDWARE_CLEARS
- #define GDISP_HARDWARE_CLEARS FALSE
- #endif
-
- /**
- * @brief Hardware accelerated rectangular fills.
- * @details If set to @p FALSE software emulation is used.
- */
- #ifndef GDISP_HARDWARE_FILLS
- #define GDISP_HARDWARE_FILLS FALSE
- #endif
-
- /**
- * @brief Hardware accelerated fills from an image.
- * @details If set to @p FALSE software emulation is used.
- */
- #ifndef GDISP_HARDWARE_BITFILLS
- #define GDISP_HARDWARE_BITFILLS FALSE
- #endif
-
- /**
- * @brief Hardware accelerated circles.
- * @details If set to @p FALSE software emulation is used.
- */
- #ifndef GDISP_HARDWARE_CIRCLES
- #define GDISP_HARDWARE_CIRCLES FALSE
- #endif
-
- /**
- * @brief Hardware accelerated filled circles.
- * @details If set to @p FALSE software emulation is used.
- */
- #ifndef GDISP_HARDWARE_CIRCLEFILLS
- #define GDISP_HARDWARE_CIRCLEFILLS FALSE
- #endif
-
- /**
- * @brief Hardware accelerated ellipses.
- * @details If set to @p FALSE software emulation is used.
- */
- #ifndef GDISP_HARDWARE_ELLIPSES
- #define GDISP_HARDWARE_ELLIPSES FALSE
- #endif
-
- /**
- * @brief Hardware accelerated filled ellipses.
- * @details If set to @p FALSE software emulation is used.
- */
- #ifndef GDISP_HARDWARE_ELLIPSEFILLS
- #define GDISP_HARDWARE_ELLIPSEFILLS FALSE
- #endif
-
- /**
- * @brief Hardware accelerated arc's.
- * @details If set to @p FALSE software emulation is used.
- */
- #ifndef GDISP_HARDWARE_ARCS
- #define GDISP_HARDWARE_ARCS FALSE
- #endif
-
- /**
- * @brief Hardware accelerated filled arcs.
- * @details If set to @p FALSE software emulation is used.
- */
- #ifndef GDISP_HARDWARE_ARCFILLS
- #define GDISP_HARDWARE_ARCFILLS FALSE
- #endif
-
- /**
- * @brief Hardware accelerated text drawing.
- * @details If set to @p FALSE software emulation is used.
- */
- #ifndef GDISP_HARDWARE_TEXT
- #define GDISP_HARDWARE_TEXT FALSE
- #endif
-
- /**
- * @brief Hardware accelerated text drawing with a filled background.
- * @details If set to @p FALSE software emulation is used.
- */
- #ifndef GDISP_HARDWARE_TEXTFILLS
- #define GDISP_HARDWARE_TEXTFILLS FALSE
- #endif
-
- /**
- * @brief Hardware accelerated scrolling.
- * @details If set to @p FALSE there is no support for scrolling.
- */
- #ifndef GDISP_HARDWARE_SCROLL
- #define GDISP_HARDWARE_SCROLL FALSE
- #endif
-
- /**
- * @brief Reading back of pixel values.
- * @details If set to @p FALSE there is no support for pixel read-back.
- */
- #ifndef GDISP_HARDWARE_PIXELREAD
- #define GDISP_HARDWARE_PIXELREAD FALSE
- #endif
-
- /**
- * @brief The driver supports one or more control commands.
- * @details If set to @p FALSE there is no support for control commands.
- */
- #ifndef GDISP_HARDWARE_CONTROL
- #define GDISP_HARDWARE_CONTROL FALSE
- #endif
-
- /**
- * @brief The driver supports a non-standard query.
- * @details If set to @p FALSE there is no support for non-standard queries.
- */
- #ifndef GDISP_HARDWARE_QUERY
- #define GDISP_HARDWARE_QUERY FALSE
- #endif
-
- /**
- * @brief The driver supports a clipping in hardware.
- * @details If set to @p FALSE there is no support for non-standard queries.
- */
- #ifndef GDISP_HARDWARE_CLIP
- #define GDISP_HARDWARE_CLIP FALSE
- #endif
-/** @} */
-
-/**
- * @name GDISP software algorithm choices
- * @{
- */
- /**
- * @brief For filled text drawing, use a background fill and then draw
- * the text instead of using a blit or direct pixel drawing.
- * @details If set to @p TRUE background fill and then text draw is used.
- * @note This is ignored if hardware accelerated text is supported.
- */
- #ifndef GDISP_SOFTWARE_TEXTFILLDRAW
- #define GDISP_SOFTWARE_TEXTFILLDRAW FALSE
- #endif
-
- /**
- * @brief For filled text drawing, when using a bitmap blit
- * use a column by column buffer rather than a full character
- * buffer to save memory at a small performance cost.
- * @details If set to @p TRUE background fill one character column at a time.
- * @note This is ignored if software text using blit is not being used.
- */
- #ifndef GDISP_SOFTWARE_TEXTBLITCOLUMN
- #define GDISP_SOFTWARE_TEXTBLITCOLUMN FALSE
- #endif
-/** @} */
-
-/**
- * @name GDISP pixel format choices
- * @{
- */
- /**
- * @brief The native pixel format for this device
- * @note Should be set to one of the following:
- * GDISP_PIXELFORMAT_RGB565
- * GDISP_PIXELFORMAT_RGB888
- * GDISP_PIXELFORMAT_RGB444
- * GDISP_PIXELFORMAT_RGB332
- * GDISP_PIXELFORMAT_RGB666
- * GDISP_PIXELFORMAT_CUSTOM
- * @note If you set GDISP_PIXELFORMAT_CUSTOM you need to also define
- * color_t, RGB2COLOR(r,g,b), HTML2COLOR(h),
- * RED_OF(c), GREEN_OF(c), BLUE_OF(c),
- * COLOR(c) and MASKCOLOR.
- */
- #ifndef GDISP_PIXELFORMAT
- #define GDISP_PIXELFORMAT GDISP_PIXELFORMAT_ERROR
- #endif
-
- /**
- * @brief Do pixels require packing for a blit
- * @note Is only valid for a pixel format that doesn't fill it's datatype. ie formats:
- * GDISP_PIXELFORMAT_RGB888
- * GDISP_PIXELFORMAT_RGB444
- * GDISP_PIXELFORMAT_RGB666
- * GDISP_PIXELFORMAT_CUSTOM
- * @note If you use GDISP_PIXELFORMAT_CUSTOM and packed bit fills
- * you need to also define @p gdispPackPixels(buf,cx,x,y,c)
- * @note If you are using GDISP_HARDWARE_BITFILLS = FALSE then the pixel
- * format must not be a packed format as the software blit does
- * not support packed pixels
- * @note Very few cases should actually require packed pixels as the low
- * level driver can also pack on the fly as it is sending it
- * to the graphics device.
- */
- #ifndef GDISP_PACKED_PIXELS
- #define GDISP_PACKED_PIXELS FALSE
- #endif
-
- /**
- * @brief Do lines of pixels require packing for a blit
- * @note Ignored if GDISP_PACKED_PIXELS is FALSE
- */
- #ifndef GDISP_PACKED_LINES
- #define GDISP_PACKED_LINES FALSE
- #endif
-/** @} */
-
-/*===========================================================================*/
-/* Define the macro's for the various pixel formats */
-/*===========================================================================*/
-
-#if defined(__DOXYGEN__)
- /**
- * @brief The color of a pixel.
- */
- typedef uint16_t color_t;
- /**
- * @brief Convert a number (of any type) to a color_t.
- * @details Masks any invalid bits in the color
- */
- #define COLOR(c) ((color_t)(c))
- /**
- * @brief Does the color_t type contain invalid bits that need masking.
- */
- #define MASKCOLOR FALSE
- /**
- * @brief Convert red, green, blue (each 0 to 255) into a color value.
- */
- #define RGB2COLOR(r,g,b) ((color_t)((((r) & 0xF8)<<8) | (((g) & 0xFC)<<3) | (((b) & 0xF8)>>3)))
- /**
- * @brief Convert a 6 digit HTML code (hex) into a color value.
- */
- #define HTML2COLOR(h) ((color_t)((((h) & 0xF80000)>>8) | (((h) & 0x00FC00)>>5) | (((h) & 0x0000F8)>>3)))
- /**
- * @brief Extract the red component (0 to 255) of a color value.
- */
- #define RED_OF(c) (((c) & 0xF800)>>8)
- /**
- * @brief Extract the green component (0 to 255) of a color value.
- */
- #define GREEN_OF(c) (((c)&0x007E)>>3)
- /**
- * @brief Extract the blue component (0 to 255) of a color value.
- */
- #define BLUE_OF(c) (((c)&0x001F)<<3)
-
-#elif GDISP_PIXELFORMAT == GDISP_PIXELFORMAT_RGB565
- typedef uint16_t color_t;
- #define COLOR(c) ((color_t)(c))
- #define MASKCOLOR FALSE
- #define RGB2COLOR(r,g,b) ((color_t)((((r) & 0xF8)<<8) | (((g) & 0xFC)<<3) | (((b) & 0xF8)>>3)))
- #define HTML2COLOR(h) ((color_t)((((h) & 0xF80000)>>8) | (((h) & 0x00FC00)>>5) | (((h) & 0x0000F8)>>3)))
- #define RED_OF(c) (((c) & 0xF800)>>8)
- #define GREEN_OF(c) (((c)&0x07E0)>>3)
- #define BLUE_OF(c) (((c)&0x001F)<<3)
-
-#elif GDISP_PIXELFORMAT == GDISP_PIXELFORMAT_RGB888
- typedef uint32_t color_t;
- #define COLOR(c) ((color_t)(((c) & 0xFFFFFF)))
- #define MASKCOLOR TRUE
- #define RGB2COLOR(r,g,b) ((color_t)((((r) & 0xFF)<<16) | (((g) & 0xFF) << 8) | ((b) & 0xFF)))
- #define HTML2COLOR(h) ((color_t)(h))
- #define RED_OF(c) (((c) & 0xFF0000)>>16)
- #define GREEN_OF(c) (((c)&0x00FF00)>>8)
- #define BLUE_OF(c) ((c)&0x0000FF)
-
-#elif GDISP_PIXELFORMAT == GDISP_PIXELFORMAT_RGB444
- typedef uint16_t color_t;
- #define COLOR(c) ((color_t)(((c) & 0x0FFF)))
- #define MASKCOLOR TRUE
- #define RGB2COLOR(r,g,b) ((color_t)((((r) & 0xF0)<<4) | ((g) & 0xF0) | (((b) & 0xF0)>>4)))
- #define HTML2COLOR(h) ((color_t)((((h) & 0xF00000)>>12) | (((h) & 0x00F000)>>8) | (((h) & 0x0000F0)>>4)))
- #define RED_OF(c) (((c) & 0x0F00)>>4)
- #define GREEN_OF(c) ((c)&0x00F0)
- #define BLUE_OF(c) (((c)&0x000F)<<4)
-
-#elif GDISP_PIXELFORMAT == GDISP_PIXELFORMAT_RGB332
- typedef uint8_t color_t;
- #define COLOR(c) ((color_t)(c))
- #define MASKCOLOR FALSE
- #define RGB2COLOR(r,g,b) ((color_t)(((r) & 0xE0) | (((g) & 0xE0)>>3) | (((b) & 0xC0)>>6)))
- #define HTML2COLOR(h) ((color_t)((((h) & 0xE00000)>>16) | (((h) & 0x00E000)>>11) | (((h) & 0x0000C0)>>6)))
- #define RED_OF(c) ((c) & 0xE0)
- #define GREEN_OF(c) (((c)&0x1C)<<3)
- #define BLUE_OF(c) (((c)&0x03)<<6)
-
-#elif GDISP_PIXELFORMAT == GDISP_PIXELFORMAT_RGB666
- typedef uint32_t color_t;
- #define COLOR(c) ((color_t)(((c) & 0x03FFFF)))
- #define MASKCOLOR TRUE
- #define RGB2COLOR(r,g,b) ((color_t)((((r) & 0xFC)<<10) | (((g) & 0xFC)<<4) | (((b) & 0xFC)>>2)))
- #define HTML2COLOR(h) ((color_t)((((h) & 0xFC0000)>>6) | (((h) & 0x00FC00)>>4) | (((h) & 0x0000FC)>>2)))
- #define RED_OF(c) (((c) & 0x03F000)>>12)
- #define GREEN_OF(c) (((c)&0x00FC00)>>8)
- #define BLUE_OF(c) (((c)&0x00003F)<<2)
-
-#elif GDISP_PIXELFORMAT != GDISP_PIXELFORMAT_CUSTOM
- #error "GDISP: No supported pixel format has been specified."
-#endif
-
-/* Verify information for packed pixels and define a non-packed pixel macro */
-#if !GDISP_PACKED_PIXELS
- #define gdispPackPixels(buf,cx,x,y,c) { ((color_t *)(buf))[(y)*(cx)+(x)] = (c); }
-#elif !GDISP_HARDWARE_BITFILLS
- #error "GDISP: packed pixel formats are only supported for hardware accelerated drivers."
-#elif GDISP_PIXELFORMAT != GDISP_PIXELFORMAT_RGB888 \
- && GDISP_PIXELFORMAT != GDISP_PIXELFORMAT_RGB444 \
- && GDISP_PIXELFORMAT != GDISP_PIXELFORMAT_RGB666 \
- && GDISP_PIXELFORMAT != GDISP_PIXELFORMAT_CUSTOM
- #error "GDISP: A packed pixel format has been specified for an unsupported pixel format."
-#endif
-
-#if GDISP_NEED_SCROLL && !GDISP_HARDWARE_SCROLL
- #error "GDISP: Hardware scrolling is wanted but not supported."
-#endif
-
-#if GDISP_NEED_PIXELREAD && !GDISP_HARDWARE_PIXELREAD
- #error "GDISP: Pixel read-back is wanted but not supported."
-#endif
-
-/*===========================================================================*/
-/* Driver types. */
-/*===========================================================================*/
-
-/**
- * @brief The type of a pixel.
- */
-typedef color_t pixel_t;
-/**
- * @brief The type of a font.
- */
-typedef const struct font *font_t;
-/**
- * @brief Type for the screen orientation.
- */
-typedef enum orientation {GDISP_ROTATE_0, GDISP_ROTATE_90, GDISP_ROTATE_180, GDISP_ROTATE_270} gdisp_orientation_t;
-/**
- * @brief Type for the available power modes for the screen.
- */
-typedef enum powermode {powerOff, powerSleep, powerDeepSleep, powerOn} gdisp_powermode_t;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifndef GDISP_LLD_VMT
- /* Special magic stuff for the VMT driver */
- #define GDISP_LLD_VMT(x) GDISP_LLD(x)
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- /* Core functions */
- extern bool_t GDISP_LLD(init)(void);
-
- /* 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 */
- extern void GDISP_LLD_VMT(clear)(color_t color);
- extern void GDISP_LLD_VMT(drawpixel)(coord_t x, coord_t y, color_t color);
- extern void GDISP_LLD_VMT(fillarea)(coord_t x, coord_t y, coord_t cx, coord_t cy, color_t color);
- extern void GDISP_LLD_VMT(blitareaex)(coord_t x, coord_t y, coord_t cx, coord_t cy, coord_t srcx, coord_t srcy, coord_t srccx, const pixel_t *buffer);
- extern void GDISP_LLD_VMT(drawline)(coord_t x0, coord_t y0, coord_t x1, coord_t y1, color_t color);
-
- /* Circular Drawing Functions */
- #if GDISP_NEED_CIRCLE
- extern void GDISP_LLD_VMT(drawcircle)(coord_t x, coord_t y, coord_t radius, color_t color);
- extern void GDISP_LLD_VMT(fillcircle)(coord_t x, coord_t y, coord_t radius, color_t color);
- #endif
-
- #if GDISP_NEED_ELLIPSE
- extern void GDISP_LLD_VMT(drawellipse)(coord_t x, coord_t y, coord_t a, coord_t b, color_t color);
- extern void GDISP_LLD_VMT(fillellipse)(coord_t x, coord_t y, coord_t a, coord_t b, color_t color);
- #endif
-
- /* Arc Drawing Functions */
- #if GDISP_NEED_ARC
- extern void GDISP_LLD_VMT(drawarc)(coord_t x, coord_t y, coord_t radius, coord_t startangle, coord_t endangle, color_t color);
- extern void GDISP_LLD_VMT(fillarc)(coord_t x, coord_t y, coord_t radius, coord_t startangle, coord_t endangle, color_t color);
- #endif
-
- /* Text Rendering Functions */
- #if GDISP_NEED_TEXT
- extern void GDISP_LLD_VMT(drawchar)(coord_t x, coord_t y, char c, font_t font, color_t color);
- extern void GDISP_LLD_VMT(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
- extern color_t GDISP_LLD_VMT(getpixelcolor)(coord_t x, coord_t y);
- #endif
-
- /* Scrolling Function - clears the area scrolled out */
- #if GDISP_NEED_SCROLL
- extern void GDISP_LLD_VMT(verticalscroll)(coord_t x, coord_t y, coord_t cx, coord_t cy, int lines, color_t bgcolor);
- #endif
-
- /* Set driver specific control */
- #if GDISP_NEED_CONTROL
- extern void GDISP_LLD_VMT(control)(unsigned what, void *value);
- #endif
-
- /* Query driver specific data */
- extern void *GDISP_LLD_VMT(query)(unsigned what);
-
- /* Clipping Functions */
- #if GDISP_NEED_CLIP
- extern void GDISP_LLD_VMT(setclip)(coord_t x, coord_t y, coord_t cx, coord_t cy);
- #endif
-
- /* Messaging API */
- #if GDISP_NEED_MSGAPI
- #include "gdisp_lld_msgs.h"
- extern void GDISP_LLD(msgdispatch)(gdisp_lld_msg_t *msg);
- #endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GFX_USE_GDISP */
-
-#endif /* _GDISP_LLD_H */
-/** @} */
-
diff --git a/include/gdisp/lld/gdisp_lld_msgs.h b/include/gdisp/lld/gdisp_lld_msgs.h
deleted file mode 100644
index 6fe78567..00000000
--- a/include/gdisp/lld/gdisp_lld_msgs.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gdisp/lld/gdisp_lld_msgs.h
- * @brief GDISP Graphic Driver subsystem low level driver message structures.
- *
- * @addtogroup GDISP
- * @{
- */
-
-#ifndef _GDISP_LLD_MSGS_H
-#define _GDISP_LLD_MSGS_H
-
-/* This file describes the message API for gdisp_lld */
-#if GFX_USE_GDISP && GDISP_NEED_MSGAPI
-
-typedef enum gdisp_msgaction {
- GDISP_LLD_MSG_NOP,
- GDISP_LLD_MSG_INIT,
- GDISP_LLD_MSG_CLEAR,
- GDISP_LLD_MSG_DRAWPIXEL,
- GDISP_LLD_MSG_FILLAREA,
- GDISP_LLD_MSG_BLITAREA,
- GDISP_LLD_MSG_DRAWLINE,
- #if GDISP_NEED_CLIP
- GDISP_LLD_MSG_SETCLIP,
- #endif
- #if GDISP_NEED_CIRCLE
- GDISP_LLD_MSG_DRAWCIRCLE,
- GDISP_LLD_MSG_FILLCIRCLE,
- #endif
- #if GDISP_NEED_ELLIPSE
- GDISP_LLD_MSG_DRAWELLIPSE,
- GDISP_LLD_MSG_FILLELLIPSE,
- #endif
- #if GDISP_NEED_ARC
- GDISP_LLD_MSG_DRAWARC,
- GDISP_LLD_MSG_FILLARC,
- #endif
- #if GDISP_NEED_TEXT
- GDISP_LLD_MSG_DRAWCHAR,
- GDISP_LLD_MSG_FILLCHAR,
- #endif
- #if GDISP_NEED_PIXELREAD
- GDISP_LLD_MSG_GETPIXELCOLOR,
- #endif
- #if GDISP_NEED_SCROLL
- GDISP_LLD_MSG_VERTICALSCROLL,
- #endif
- #if GDISP_NEED_CONTROL
- GDISP_LLD_MSG_CONTROL,
- #endif
- GDISP_LLD_MSG_QUERY,
-} gdisp_msgaction_t;
-
-typedef union gdisp_lld_msg {
- gdisp_msgaction_t action;
- struct gdisp_lld_msg_init {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_INIT
- } init;
- struct gdisp_lld_msg_clear {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_CLEAR
- color_t color;
- } clear;
- struct gdisp_lld_msg_drawpixel {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_DRAWPIXEL
- coord_t x, y;
- color_t color;
- } drawpixel;
- struct gdisp_lld_msg_fillarea {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_FILLAREA
- coord_t x, y;
- coord_t cx, cy;
- color_t color;
- } fillarea;
- struct gdisp_lld_msg_blitarea {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_BLITAREA
- coord_t x, y;
- coord_t cx, cy;
- coord_t srcx, srcy;
- coord_t srccx;
- const pixel_t *buffer;
- } blitarea;
- struct gdisp_lld_msg_setclip {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_SETCLIP
- coord_t x, y;
- coord_t cx, cy;
- } setclip;
- struct gdisp_lld_msg_drawline {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_DRAWLINE
- coord_t x0, y0;
- coord_t x1, y1;
- color_t color;
- } drawline;
- struct gdisp_lld_msg_drawcircle {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_DRAWCIRCLE
- coord_t x, y;
- coord_t radius;
- color_t color;
- } drawcircle;
- struct gdisp_lld_msg_fillcircle {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_FILLCIRCLE
- coord_t x, y;
- coord_t radius;
- color_t color;
- } fillcircle;
- struct gdisp_lld_msg_drawellipse {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_DRAWELLIPSE
- coord_t x, y;
- coord_t a, b;
- color_t color;
- } drawellipse;
- struct gdisp_lld_msg_fillellipse {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_FILLELLIPSE
- coord_t x, y;
- coord_t a, b;
- color_t color;
- } fillellipse;
- struct gdisp_lld_msg_drawarc {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_DRAWARC
- coord_t x, y;
- coord_t radius;
- coord_t startangle, endangle;
- color_t color;
- } drawcircle;
- struct gdisp_lld_msg_fillarc {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_FILLARC
- coord_t x, y;
- coord_t radius;
- coord_t startangle, endangle;
- color_t color;
- } fillcircle;
- struct gdisp_lld_msg_drawchar {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_DRAWCHAR
- coord_t x, y;
- char c;
- font_t font;
- color_t color;
- } drawchar;
- struct gdisp_lld_msg_fillchar {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_FILLCHAR
- coord_t x, y;
- char c;
- font_t font;
- color_t color;
- color_t bgcolor;
- } fillchar;
- struct gdisp_lld_msg_getpixelcolor {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_GETPIXELCOLOR
- coord_t x, y;
- color_t result;
- } getpixelcolor;
- struct gdisp_lld_msg_verticalscroll {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_VERTICALSCROLL
- coord_t x, y;
- coord_t cx, cy;
- int lines;
- color_t bgcolor;
- } verticalscroll;
- struct gdisp_lld_msg_control {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_CONTROL
- int what;
- void * value;
- } control;
- struct gdisp_lld_msg_query {
- gdisp_msgaction_t action; // GDISP_LLD_MSG_QUERY
- int what;
- void * result;
- } query;
-} gdisp_lld_msg_t;
-
-#endif /* GFX_USE_GDISP && GDISP_NEED_MSGAPI */
-#endif /* _GDISP_LLD_MSGS_H */
-/** @} */
-
diff --git a/include/gdisp/options.h b/include/gdisp/options.h
deleted file mode 100644
index 2fedd34d..00000000
--- a/include/gdisp/options.h
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gdisp/options.h
- * @brief GDISP sub-system options header file.
- *
- * @addtogroup GDISP
- * @{
- */
-
-#ifndef _GDISP_OPTIONS_H
-#define _GDISP_OPTIONS_H
-
-/**
- * @name GDISP Functionality to be included
- * @{
- */
- /**
- * @brief Should all operations be clipped to the screen and colors validated.
- * @details Defaults to TRUE.
- * @note If this is FALSE, any operations that extend beyond the
- * edge of the screen will have undefined results. Any
- * out-of-range colors will produce undefined results.
- * @note If defined then all low level and high level GDISP driver routines
- * must check the validity of inputs and do something sensible
- * if they are out of range. It doesn't have to be efficient,
- * just valid.
- */
- #ifndef GDISP_NEED_VALIDATION
- #define GDISP_NEED_VALIDATION TRUE
- #endif
- /**
- * @brief Are clipping functions needed.
- * @details Defaults to TRUE
- */
- #ifndef GDISP_NEED_CLIP
- #define GDISP_NEED_CLIP TRUE
- #endif
- /**
- * @brief Are text functions needed.
- * @details Defaults to TRUE
- */
- #ifndef GDISP_NEED_TEXT
- #define GDISP_NEED_TEXT TRUE
- #endif
- /**
- * @brief Are circle functions needed.
- * @details Defaults to TRUE
- */
- #ifndef GDISP_NEED_CIRCLE
- #define GDISP_NEED_CIRCLE TRUE
- #endif
- /**
- * @brief Are ellipse functions needed.
- * @details Defaults to TRUE
- */
- #ifndef GDISP_NEED_ELLIPSE
- #define GDISP_NEED_ELLIPSE TRUE
- #endif
- /**
- * @brief Are arc functions needed.
- * @details Defaults to FALSE
- * @note Requires the maths library to be included in the link. ie -lm
- */
- #ifndef GDISP_NEED_ARC
- #define GDISP_NEED_ARC FALSE
- #endif
- /**
- * @brief Are scrolling functions needed.
- * @details Defaults to FALSE
- * @note This function must be supported by the low level GDISP driver
- * you have included in your project. If it isn't, defining this
- * option will cause a compile error.
- */
- #ifndef GDISP_NEED_SCROLL
- #define GDISP_NEED_SCROLL FALSE
- #endif
- /**
- * @brief Is the capability to read pixels back needed.
- * @details Defaults to FALSE
- * @note This function must be supported by the low level GDISP driver
- * you have included in your project. If it isn't, defining this
- * option will cause a compile error.
- */
- #ifndef GDISP_NEED_PIXELREAD
- #define GDISP_NEED_PIXELREAD FALSE
- #endif
- /**
- * @brief Control some aspect of the hardware operation.
- * @details Defaults to FALSE
- * @note This allows control of hardware specific features such as
- * screen rotation, backlight levels, contrast etc
- */
- #ifndef GDISP_NEED_CONTROL
- #define GDISP_NEED_CONTROL FALSE
- #endif
- /**
- * @brief Is the messaging api interface required.
- * @details Defaults to FALSE
- */
- #ifndef GDISP_NEED_MSGAPI
- #define GDISP_NEED_MSGAPI FALSE
- #endif
-/**
- * @}
- *
- * @name GDISP Multi-Threading Options
- * @{
- */
- /**
- * @brief Do the drawing functions need to be thread-safe.
- * @details Defaults to FALSE
- * @note Both GDISP_NEED_MULTITHREAD and GDISP_NEED_ASYNC make
- * the gdisp API thread-safe.
- * @note This is more efficient than GDISP_NEED_ASYNC as it only
- * requires a context switch if something else is already
- * drawing.
- */
- #ifndef GDISP_NEED_MULTITHREAD
- #define GDISP_NEED_MULTITHREAD FALSE
- #endif
- /**
- * @brief Use asynchronous calls (multi-thread safe).
- * @details Defaults to FALSE
- * @note Both GDISP_NEED_MULTITHREAD and GDISP_NEED_ASYNC make
- * the gdisp API thread-safe.
- * @note Turning this on adds two context switches per transaction
- * so it can significantly slow graphics drawing but it allows
- * drawing operations to continue in the background.
- */
- #ifndef GDISP_NEED_ASYNC
- #define GDISP_NEED_ASYNC FALSE
- #endif
-/**
- * @}
- *
- * @name GDISP Fonts
- * @{
- */
- /**
- * @brief Include the old global font variable definitions
- * @details Defaults to FALSE
- */
- #ifndef GDISP_OLD_FONT_DEFINITIONS
- #define GDISP_OLD_FONT_DEFINITIONS FALSE
- #endif
- /**
- * @brief Predefined built in fonts
- * @note Turning off the ones you are not using can save program size.
- */
- #ifndef GDISP_INCLUDE_FONT_SMALL
- #define GDISP_INCLUDE_FONT_SMALL TRUE
- #endif
- #ifndef GDISP_INCLUDE_FONT_LARGER
- #define GDISP_INCLUDE_FONT_LARGER TRUE
- #endif
- #ifndef GDISP_INCLUDE_FONT_UI1
- #define GDISP_INCLUDE_FONT_UI1 TRUE
- #endif
- #ifndef GDISP_INCLUDE_FONT_UI2
- #define GDISP_INCLUDE_FONT_UI2 TRUE
- #endif
- #ifndef GDISP_INCLUDE_FONT_LARGENUMBERS
- #define GDISP_INCLUDE_FONT_LARGENUMBERS TRUE
- #endif
-
-/**
- * @}
- *
- * @name GDISP Optional Sizing Parameters
- * @{
- */
- /**
- * @brief The maximum height of a font.
- * @details Either 16 or 32. Defaults to 16
- * @note Setting this to 32 causes the font tables to take
- * twice the internal program memory. Don't do it unless
- * you realy must define an unscaled font larger than 16 bits high.
- */
- #ifndef GDISP_MAX_FONT_HEIGHT
- #define GDISP_MAX_FONT_HEIGHT 16
- #endif
-/**
- * @}
- *
- * @name GDISP Optional Low Level Driver Defines
- * @{
- */
- /**
- * @brief Use a custom board definition even if a board definition exists.
- * @details Defaults to FALSE
- * @details If TRUE, add gdisp_lld_board.h to your project directory and customise it.
- * @note Not all GDISP low level drivers currently use board definition files.
- */
- #ifndef GDISP_USE_CUSTOM_BOARD
- #define GDISP_USE_CUSTOM_BOARD FALSE
- #endif
- /**
- * @brief Set the screen height and width.
- * @note Ignored by some low level GDISP drivers, optional for others.
- * @note Where these values are allowed, a default is always provided be the low level driver.
- * @note The list of GDISP low level drivers that allow these to be set are...
- * WIN32, SSD1289, SSD1963, TestStub
- */
- /* #define GDISP_SCREEN_WIDTH nnnn */
- /* #define GDISP_SCREEN_HEIGHT nnnn */
- /**
- * @brief Define which bus interface to use.
- * @details Only required by the SSD1963 driver.
- * @note This will be replaced eventually by board definition files
- */
- /* #define GDISP_USE_FSMC */
- /* #define GDISP_USE_GPIO */
- /**
- * @brief Define which two drivers will be used by the VMT layer.
- * @details Only required by the VMT driver.
- */
- /* #define GDISP_VMT_NAME1(x) x##YourDriver1 */
- /* #define GDISP_VMT_NAME2(x) x##YourDriver2 */
-/** @} */
-
-#endif /* _GDISP_OPTIONS_H */
-/** @} */
diff --git a/include/gevent/gevent.h b/include/gevent/gevent.h
deleted file mode 100644
index f9764336..00000000
--- a/include/gevent/gevent.h
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/gevent/gevent.h
- * @brief GEVENT GFX User Event subsystem header file.
- *
- * @addtogroup GEVENT
- *
- * @details GEVENT provides a simple to use but yet powerful event
- * system.
- *
- * @pre GFX_USE_GEVENT must be set to TRUE in your gfxconf.h
- *
- * @{
- */
-#ifndef _GEVENT_H
-#define _GEVENT_H
-
-#include "gfx.h"
-
-#if GFX_USE_GEVENT || defined(__DOXYGEN__)
-
-/* Data part of a static GListener initializer */
-#define _GLISTENER_DATA(name) { _SEMAPHORE_DATA(name.waitqueue, 0), _BSEMAPHORE_DATA(name.eventlock, FALSE), 0, 0, {0} }
-/* Static GListener initializer */
-#define GLISTENER_DECL(name) GListener name = _GLISTENER_DATA(name)
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-typedef uint16_t GEventType;
- #define GEVENT_NULL 0x0000 // Null Event - Do nothing
- #define GEVENT_EXIT 0x0001 // The listener is being forced to exit (someone is destroying the listener)
-
- /* Other event types are allocated in ranges in their respective include files */
- #define GEVENT_GINPUT_FIRST 0x0100 // GINPUT events range from 0x0100 to 0x01FF
- #define GEVENT_GWIN_FIRST 0x0200 // GWIN events range from 0x0200 to 0x02FF
- #define GEVENT_GADC_FIRST 0x0300 // GADC events range from 0x0300 to 0x033F
- #define GEVENT_GAUDIN_FIRST 0x0340 // GAUDIN events range from 0x0340 to 0x037F
- #define GEVENT_GAUDOUT_FIRST 0x0380 // GAUDOUT events range from 0x0380 to 0x03BF
- #define GEVENT_USER_FIRST 0x8000 // Any application defined events start at 0x8000
-
-// This object can be typecast to any GEventXxxxx type to allow any sub-system (or the application) to create events.
-// The prerequisite is that the new status structure type starts with a field named 'type' of type 'GEventType'.
-// The total status structure also must not exceed GEVENT_MAXIMUM_SIZE bytes.
-// For example, this is used by GWIN button events, GINPUT data streams etc.
-typedef union GEvent_u {
- GEventType type; // The type of this event
- char pad[GEVENT_MAXIMUM_SIZE]; // This is here to allow static initialisation of GEventObject's in the application.
- } GEvent;
-
-// A special callback function
-typedef void (*GEventCallbackFn)(void *param, GEvent *pe);
-
-// The Listener Object
-typedef struct GListener {
- Semaphore waitqueue; // Private: Semaphore for the listener to wait on.
- BinarySemaphore eventlock; // Private: Protect against more than one sources trying to use this event lock at the same time
- GEventCallbackFn callback; // Private: Call back Function
- void *param; // Private: Parameter for the callback function.
- GEvent event; // Public: The event object into which the event information is stored.
- } GListener;
-
-// The Source Object
-typedef struct GSource_t GSource, *GSourceHandle;
-
-// This structure is passed to a source to describe a contender listener for sending the current event.
-typedef struct GSourceListener_t {
- GListener *pListener; // The listener
- GSource *pSource; // The source
- unsigned listenflags; // The flags the listener passed when the source was assigned to it.
- unsigned srcflags; // For the source's exclusive use. Initialised as 0 for a new listener source assignment.
- } GSourceListener;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* How to listen for events (act as a Listener)...
- 1. Get handles for all the event sources you are interested in.
- 2. Initialise a listener
- 3. Attach sources to your listener.
- - Sources can be attached or detached from a listener at any time.
- - A source can be attached to more than one listener.
- 4. Loop on getting listener events
- 5. When finished detach all sources from the listener
-
- How to create events (act as a Source)...
- 1. Provide a funtion to the application that returns a GSourceHandle (which can be a pointer to whatever the source wants)
- 2. Whenever a possible event occurs call geventGetSourceListener to get a pointer to a GSourceListener.
- This will return NULL when there are no more listeners.
- For each listener - check the flags to see if an event should be sent.
- - use geventGetEvent() to get the event buffer supplied by the listener
- and then call geventSendEvent to send the event.
- - Note: geventGetEvent() may return FALSE to indicate the listener is currently not listening and
- therefore no event should be sent. This situation enables the source to (optionally) flag
- to the listener on its next wait that there have been missed events.
- - Note: The GSourceListener pointer (and the GEvent buffer) are only valid between
- the geventGetSourceListener call and either the geventSendEvent call or the next
- geventGetSourceListener call.
- - Note: All listeners must be processed for this event before anything else is processed.
-*/
-
-/*---------- Listener Functions --------------------------------------------*/
-
-/**
- * @brief Create a Listener
- * @details If insufficient resources are available it will either assert or return NULL
- * depending on the value of GEVENT_ASSERT_NO_RESOURCE.
- *
- * @param[in] pl A listener
- */
-void geventListenerInit(GListener *pl);
-
-/**
- * @brief Attach a source to a listener
- * @details Flags are interpreted by the source when generating events for each listener.
- * If this source is already assigned to the listener it will update the flags.
- * If insufficient resources are available it will either assert or return FALSE
- * depending on the value of GEVENT_ASSERT_NO_RESOURCE.
- *
- * @param[in] pl The listener
- * @param[in] gsh The source which has to be attached to the listener
- * @param[in] flags The flags
- *
- * @return TRUE if succeeded, FALSE otherwise
- */
-bool_t geventAttachSource(GListener *pl, GSourceHandle gsh, unsigned flags);
-
-/**
- * @brief Detach a source from a listener
- * @details If gsh is NULL detach all sources from this listener and if there is still
- * a thread waiting for events on this listener, it is sent the exit event.
- *
- * @param[in] pl The listener
- * @param[in] gsh The source
- */
-void geventDetachSource(GListener *pl, GSourceHandle gsh);
-
-/**
- * @brief Wait for an event on a listener from an assigned source.
- * @details The type of the event should be checked (pevent->type) and then pevent should
- * be typecast to the actual event type if it needs to be processed.
- * timeout specifies the time to wait in system ticks.
- * TIME_INFINITE means no timeout - wait forever for an event.
- * TIME_IMMEDIATE means return immediately
- * @note The GEvent buffer is staticly allocated within the GListener so the event does not
- * need to be dynamicly freed however it will get overwritten by the next call to
- * this routine.
- *
- * @param[in] pl The listener
- * @param[in] timeout The timeout
- *
- * @return NULL on timeout
- */
-GEvent *geventEventWait(GListener *pl, systime_t timeout);
-
-/* @brief Register a callback for an event on a listener from an assigned source.
- * @details The type of the event should be checked (pevent->type) and then pevent should be typecast to the
- * actual event type if it needs to be processed.
- *
- * @params[in] pl The Listener
- * @params[in] fn The function to call back
- * @params[in] param A parameter to pass the callback function
- *
- * @note The GEvent buffer is valid only during the time of the callback. The callback MUST NOT save
- * a pointer to the buffer for use outside the callback.
- * @note An existing callback function is de-registered by passing a NULL for 'fn'. Any existing
- * callback function is replaced. Any thread currently waiting using geventEventWait will be sent the exit event.
- * @note Callbacks occur in a thread context but stack space must be kept to a minumum and
- * the callback must process quickly as all other events are performed on a single thread.
- * @note In the callback function you should never call ANY event functions using your own GListener handle
- * as it WILL create a deadlock and lock the system up.
- * @note Applications should not use this call - geventEventWait() is the preferred mechanism for an
- * application. This call is provided for GUI objects that may not have their own thread.
- */
-void geventRegisterCallback(GListener *pl, GEventCallbackFn fn, void *param);
-
-/*---------- Source Functions --------------------------------------------*/
-
-/**
- * @brief Called by a source with a possible event to get a listener record.
- * @details @p lastlr should be NULL on the first call and thereafter the result of the previous call.
- *
- * @param[in] gsh The source handler
- * @param[in] lastlr The source listener
- *
- * @return NULL when there are no more listeners for this source
- */
-GSourceListener *geventGetSourceListener(GSourceHandle gsh, GSourceListener *lastlr);
-
-/**
- * @brief Get the event buffer from the GSourceListener.
- * @details A NULL return allows the source to record (perhaps in glr->scrflags) that the listener
- * has missed events. This can then be notified as part of the next event for the listener.
- * The buffer can only be accessed untill the next call to geventGetSourceListener
- * or geventSendEvent
- *
- * @param[in] psl The source listener
- *
- * @return NULL if the listener is not currently listening.
- */
-GEvent *geventGetEventBuffer(GSourceListener *psl);
-
-/**
- * @brief Called by a source to indicate the listener's event buffer has been filled.
- * @details After calling this function the source must not reference in fields in the GSourceListener or the event buffer.
- *
- * @param[in] psl The source listener
- */
-void geventSendEvent(GSourceListener *psl);
-
-/**
- * @brief Detach any listener that has this source attached
- *
- * @param[in] gsh The source handle
- */
-void geventDetachSourceListeners(GSourceHandle gsh);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GFX_USE_GEVENT */
-
-#endif /* _GEVENT_H */
-/** @} */
-
diff --git a/include/gevent/options.h b/include/gevent/options.h
deleted file mode 100644
index 576233bf..00000000
--- a/include/gevent/options.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gevent/options.h
- * @brief GEVENT sub-system options header file.
- *
- * @addtogroup GEVENT
- * @{
- */
-
-#ifndef _GEVENT_OPTIONS_H
-#define _GEVENT_OPTIONS_H
-
-/**
- * @name GEVENT Functionality to be included
- * @{
- */
- /**
- * @brief Should routines assert() if they run out of resources.
- * @details Defaults to FALSE.
- * @details If FALSE the application must be prepared to handle these
- * failures.
- */
- #ifndef GEVENT_ASSERT_NO_RESOURCE
- #define GEVENT_ASSERT_NO_RESOURCE FALSE
- #endif
-/**
- * @}
- *
- * @name GEVENT Optional Sizing Parameters
- * @{
- */
- /**
- * @brief Defines the maximum size of an event status variable.
- * @details Defaults to 32 bytes
- */
- #ifndef GEVENT_MAXIMUM_SIZE
- #define GEVENT_MAXIMUM_SIZE 32
- #endif
- /**
- * @brief Defines the maximum Source/Listener pairs in the system.
- * @details Defaults to 32
- */
- #ifndef GEVENT_MAX_SOURCE_LISTENERS
- #define GEVENT_MAX_SOURCE_LISTENERS 32
- #endif
-/** @} */
-
-#endif /* _GEVENT_OPTIONS_H */
-/** @} */
diff --git a/include/gfx.h b/include/gfx.h
deleted file mode 100644
index 552e3294..00000000
--- a/include/gfx.h
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gfx.h
- * @brief GFX system header file.
- *
- * @addtogroup GFX
- * @{
- */
-
-#ifndef _GFX_H
-#define _GFX_H
-
-/* gfxconf.h is the user's project configuration for the GFX system. */
-#include "gfxconf.h"
-
-/**
- * @name GFX sub-systems that can be turned on
- * @{
- */
- /**
- * @brief GFX Graphics Display Basic API
- * @details Defaults to FALSE
- * @note Also add the specific hardware driver to your makefile.
- * Eg. include $(GFXLIB)/drivers/gdisp/Nokia6610/gdisp_lld.mk
- */
- #ifndef GFX_USE_GDISP
- #define GFX_USE_GDISP FALSE
- #endif
- /**
- * @brief GFX Text Display Basic API
- * @details Defaults to FALSE
- * @note Also add the specific hardware driver to your makefile.
- * Eg. include $(GFXLIB)/drivers/tdisp/HD44780/tdisp_lld.mk
- */
- #ifndef GFX_USE_TDISP
- #define GFX_USE_TDISP FALSE
- #endif
- /**
- * @brief GFX Graphics Windowing API
- * @details Defaults to FALSE
- * @details Extends the GDISP API to add the concept of graphic windows.
- * @note Also supports high-level "window" objects such as console windows,
- * buttons, graphing etc
- */
- #ifndef GFX_USE_GWIN
- #define GFX_USE_GWIN FALSE
- #endif
- /**
- * @brief GFX Event API
- * @details Defaults to FALSE
- * @details Defines the concept of a "Source" that can send "Events" to "Listeners".
- */
- #ifndef GFX_USE_GEVENT
- #define GFX_USE_GEVENT FALSE
- #endif
- /**
- * @brief GFX Timer API
- * @details Defaults to FALSE
- * @details Provides thread context timers - both one-shot and periodic.
- */
- #ifndef GFX_USE_GTIMER
- #define GFX_USE_GTIMER FALSE
- #endif
- /**
- * @brief GFX Input Device API
- * @details Defaults to FALSE
- * @note Also add the specific hardware drivers to your makefile.
- * Eg.
- * include $(GFXLIB)/drivers/ginput/toggle/Pal/ginput_lld.mk
- * and...
- * include $(GFXLIB)/drivers/ginput/touch/MCU/ginput_lld.mk
- */
- #ifndef GFX_USE_GINPUT
- #define GFX_USE_GINPUT FALSE
- #endif
- /**
- * @brief GFX Generic Periodic ADC API
- * @details Defaults to FALSE
- */
- #ifndef GFX_USE_GADC
- #define GFX_USE_GADC FALSE
- #endif
- /**
- * @brief GFX Audio Input Device API
- * @details Defaults to FALSE
- * @note Also add the specific hardware drivers to your makefile.
- * Eg.
- * include $(GFXLIB)/drivers/gaudin/GADC/gaudin_lld.mk
- */
- #ifndef GFX_USE_GAUDIN
- #define GFX_USE_GAUDIN FALSE
- #endif
- /**
- * @brief GFX Audio Output Device API
- * @details Defaults to FALSE
- * @note Also add the specific hardware drivers to your makefile.
- * Eg.
- * include $(GFXLIB)/drivers/gaudout/PWM/gaudout_lld.mk
- */
- #ifndef GFX_USE_GAUDOUT
- #define GFX_USE_GAUDOUT FALSE
- #endif
- /**
- * @brief GFX Miscellaneous Routines API
- * @details Defaults to FALSE
- * @note Turning this on without turning on any GMISC_NEED_xxx macros will result
- * in no extra code being compiled in. GMISC is made up from the sum of its
- * parts.
- */
- #ifndef GFX_USE_GMISC
- #define GFX_USE_GMISC FALSE
- #endif
-/** @} */
-
-/**
- * Get all the options for each sub-system.
- *
- */
-#include "gmisc/options.h"
-#include "gevent/options.h"
-#include "gtimer/options.h"
-#include "gdisp/options.h"
-#include "gwin/options.h"
-#include "ginput/options.h"
-#include "tdisp/options.h"
-#include "gadc/options.h"
-#include "gaudin/options.h"
-#include "gaudout/options.h"
-
-/**
- * Inter-dependancy safety checks on the sub-systems.
- *
- */
-#include "gfx_rules.h"
-
-/**
- * Include the sub-system header files
- */
-#include "gevent/gevent.h"
-#include "gtimer/gtimer.h"
-#include "gdisp/gdisp.h"
-#include "gwin/gwin.h"
-#include "ginput/ginput.h"
-#include "tdisp/tdisp.h"
-#include "gadc/gadc.h"
-#include "gaudin/gaudin.h"
-#include "gaudout/gaudout.h"
-#include "gmisc/gmisc.h"
-
-#endif /* _GFX_H */
-/** @} */
diff --git a/include/gfx_rules.h b/include/gfx_rules.h
deleted file mode 100644
index c132de54..00000000
--- a/include/gfx_rules.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gfx_rules.h
- * @brief GFX system safety rules header file.
- *
- * @addtogroup GFX
- * @{
- */
-
-#ifndef _GFX_RULES_H
-#define _GFX_RULES_H
-
-/**
- * Safety checks on all the defines.
- *
- * These are defined in the order of their inter-dependancies.
- */
-
-#if GFX_USE_GWIN
- #if !GFX_USE_GDISP
- #error "GWIN: GFX_USE_GDISP must be TRUE when using GWIN"
- #endif
- #if !GDISP_NEED_CLIP
- #warning "GWIN: Drawing can occur outside the defined windows as GDISP_NEED_CLIP is FALSE"
- #endif
- #if GWIN_NEED_BUTTON
- #if !GDISP_NEED_TEXT
- #error "GWIN: GDISP_NEED_TEXT is required if GWIN_NEED_BUTTON is TRUE."
- #endif
- #if !GFX_USE_GEVENT
- #warning "GWIN: GFX_USE_GEVENT is required if GWIN_NEED_BUTTON is TRUE. It has been turned on for you."
- #undef GFX_USE_GEVENT
- #define GFX_USE_GEVENT TRUE
- #endif
- #if !GFX_USE_GINPUT || !(GINPUT_NEED_MOUSE || GINPUT_NEED_TOGGLE)
- #warning "GWIN: You have set GWIN_NEED_BUTTON to TRUE but no supported GINPUT (mouse/toggle) devices have been included"
- #endif
- #if !GDISP_NEED_MULTITHREAD && !GDISP_NEED_ASYNC
- #warning "GWIN: Either GDISP_NEED_MULTITHREAD or GDISP_NEED_ASYNC is required if GWIN_NEED_BUTTON is TRUE."
- #warning "GWIN: GDISP_NEED_MULTITHREAD has been turned on for you."
- #undef GDISP_NEED_MULTITHREAD
- #define GDISP_NEED_MULTITHREAD TRUE
- #endif
- #endif
- #if GWIN_NEED_CONSOLE
- #if !GDISP_NEED_TEXT
- #error "GWIN: GDISP_NEED_TEXT is required if GWIN_NEED_CONSOLE is TRUE."
- #endif
- #endif
- #if GWIN_NEED_GRAPH
- #endif
-#endif
-
-#if GFX_USE_GINPUT
- #if !GFX_USE_GEVENT
- #warning "GINPUT: GFX_USE_GEVENT is required if GFX_USE_GINPUT is TRUE. It has been turned on for you."
- #undef GFX_USE_GEVENT
- #define GFX_USE_GEVENT TRUE
- #endif
- #if !GFX_USE_GTIMER
- #warning "GINPUT: GFX_USE_GTIMER is required if GFX_USE_GINPUT is TRUE. It has been turned on for you."
- #undef GFX_USE_GTIMER
- #define GFX_USE_GTIMER TRUE
- #endif
-#endif
-
-#if GFX_USE_GDISP
- #if GDISP_NEED_MULTITHREAD && GDISP_NEED_ASYNC
- #error "GDISP: Only one of GDISP_NEED_MULTITHREAD and GDISP_NEED_ASYNC should be defined."
- #endif
- #if GDISP_NEED_ASYNC
- #if !GDISP_NEED_MSGAPI
- #warning "GDISP: Messaging API is required for Async Multi-Thread. It has been turned on for you."
- #undef GDISP_NEED_MSGAPI
- #define GDISP_NEED_MSGAPI TRUE
- #endif
- #endif
-#endif
-
-#if GFX_USE_TDISP
-#endif
-
-#if GFX_USE_GEVENT
- #if !CH_USE_MUTEXES || !CH_USE_SEMAPHORES
- #error "GEVENT: CH_USE_MUTEXES and CH_USE_SEMAPHORES must be defined in chconf.h"
- #endif
-#endif
-
-#if GFX_USE_GTIMER
- #if GFX_USE_GDISP && !GDISP_NEED_MULTITHREAD && !GDISP_NEED_ASYNC
- #warning "GTIMER: Neither GDISP_NEED_MULTITHREAD nor GDISP_NEED_ASYNC has been specified."
- #warning "GTIMER: Make sure you are not performing any GDISP/GWIN drawing operations in the timer callback!"
- #endif
-#endif
-
-#if GFX_USE_GAUDIN
-#endif
-
-#if GFX_USE_GAUDOUT
-#endif
-
-#if GFX_USE_GADC
-#endif
-
-#if GFX_USE_GMISC
-#endif
-
-#endif /* _GFX_H */
-/** @} */
diff --git a/include/ginput/dial.h b/include/ginput/dial.h
deleted file mode 100644
index 5679685e..00000000
--- a/include/ginput/dial.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/ginput/dial.h
- * @brief GINPUT GFX User Input subsystem header file.
- *
- * @defgroup Dial Dial
- * @ingroup GINPUT
- *
- * @details A dial provides a powerful way to navigate through menus
- * on a display.
- *
- * @pre GFX_USE_GINPUT must be set to TRUE in your gfxconf.h
- * @pre GINPUT_NEED_DIAL must be set to TRUE in your gfxconf.h
- *
- * @{
- */
-#ifndef _GINPUT_DIAL_H
-#define _GINPUT_DIAL_H
-
-#if GINPUT_NEED_DIAL || defined(__DOXYGEN__)
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-// Event types for various ginput sources
-#define GEVENT_DIAL (GEVENT_GINPUT_FIRST+4)
-
-typedef struct GEventDial_t {
- GEventType type; // The type of this event (GEVENT_DIAL)
- uint16_t instance; // The dial instance
- uint16_t value; // The dial value
- } GEventDial;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- /**
- * @brief Create a dial input instance
- *
- * @param[in] instance The ID of the dial input instance (from 0 to 9999)
- *
- * @return The soure handle of the created dial instance
- */
- GSourceHandle ginputGetDial(uint16_t instance);
-
- /**
- * @brief Reset the value back to the hardware default
- *
- * @param[in] instance The ID of the dial input instance
- */
- void ginputResetDialRange(uint16_t instance);
-
- /**
- * @brief Get the maximum value
- * @details The readings are scaled to be 0 ... max-1.
- * 0 means over the full uint16_t range.
- *
- * @param[in] instance The ID of the dial input instance
- *
- * @return The maximum value
- */
- uint16_t ginputGetDialRange(uint16_t instance);
-
- /**
- * @brief Set the maximum value
- * @note This shouldn't be set higher that the hardwares possible maximum value
- *
- * @param[in] instance The ID of the dial input instance
- * @param[in] max The maximum value to be set
- */
- void ginputSetDialRange(uint16_t instance, uint16_t max);
-
- /**
- * @brief Set the level change required before a dial even is generated (threshold)
- * @note This is done after range scaling
- *
- * @param[in] instance The ID of the dial input instance
- * @param[in] diff The amount of level changes
- */
- void ginputSetDialSensitivity(uint16_t instance, uint16_t diff);
-
- /**
- * @brief Get the current dial status
- *
- * @param[in] instance The ID of the dial input instance
- * @param[in] pdial The dial event struct
- *
- * @return Returns FALSE on an error (eg invalid instance)
- */
- bool_t ginputGetDialStatus(uint16_t instance, GEventDial *pdial);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GINPUT_NEED_DIAL */
-
-#endif /* _GINPUT_DIAL_H */
-/** @} */
diff --git a/include/ginput/ginput.h b/include/ginput/ginput.h
deleted file mode 100644
index 59f7640c..00000000
--- a/include/ginput/ginput.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/ginput/ginput.h
- * @brief GINPUT GFX User Input subsystem header file.
- *
- * @addtogroup GINPUT
- *
- * @details GINPUT provides an easy and common interface to use different input devices
- * such as touchscreens and mices.
- *
- * @pre GFX_USE_GINPUT must be set to TRUE in your gfxconf.h
- *
- * @{
- */
-#ifndef _GINPUT_H
-#define _GINPUT_H
-
-#include "gfx.h"
-
-#if GFX_USE_GINPUT || defined(__DOXYGEN__)
-
-/* How to use...
-
- 1. Get source handles for all the inputs you are interested in.
- - Attempting to get a handle for one instance of an input more than once will return the same handle
- 2. Create a listener
- 3. Assign inputs to your listener.
- - Inputs can be assigned or released from a listener at any time.
- - An input can be assigned to more than one listener.
- 4. Loop on getting listener events
- 5. When complete destroy the listener
-*/
-
-// Include various ginput types
-#include "ginput/mouse.h"
-#include "ginput/keyboard.h"
-#include "ginput/toggle.h"
-#include "ginput/dial.h"
-
-#endif /* GFX_USE_GINPUT */
-
-#endif /* _GINPUT_H */
-/** @} */
diff --git a/include/ginput/keyboard.h b/include/ginput/keyboard.h
deleted file mode 100644
index 9f5df32e..00000000
--- a/include/ginput/keyboard.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/ginput/keyboard.h
- * @brief GINPUT GFX User Input subsystem header file.
- *
- * @defgroup Keyboard Keyboard
- * @ingroup GINPUT
- * @{
- */
-
-#ifndef _GINPUT_KEYBOARD_H
-#define _GINPUT_KEYBOARD_H
-
-#if GINPUT_NEED_KEYBOARD || defined(__DOXYGEN__)
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-#define GINPUT_KEYBOARD_NUM_PORTS 1 // The total number of keyboard inputs
-
-// Event types for various ginput sources
-#define GEVENT_KEYBOARD (GEVENT_GINPUT_FIRST+2)
-
-typedef struct GEventKeyboard_t {
- GEventType type; // The type of this event (GEVENT_KEYBOARD)
- uint16_t instance; // The keyboard instance
- char c; // The Ascii code for the current key press.
- // The only possible values are 0(NUL), 8(BS), 9(TAB), 13(CR), 27(ESC), 32(SPACE) to 126(~), 127(DEL)
- // 0 indicates an extended only key.
- uint16_t code; // An extended keyboard code. Codes less than 128 match their ascii equivelent.
- #define GKEY_NULL 0
- #define GKEY_BACKSPACE 8
- #define GKEY_TAB 9
- #define GKEY_CR 13
- #define GKEY_ESC 27
- #define GKEY_SPACE 32
- #define GKEY_DEL 127
- #define GKEY_UP 0x0101
- #define GKEY_DOWN 0x0102
- #define GKEY_LEFT 0x0103
- #define GKEY_RIGHT 0x0104
- #define GKEY_HOME 0x0105
- #define GKEY_END 0x0106
- #define GKEY_PAGEUP 0x0107
- #define GKEY_PAGEDOWN 0x0108
- #define GKEY_INSERT 0x0109
- #define GKEY_DELETE 0x010A
- #define GKEY_SHIFT 0x0201
- #define GKEY_CNTRL 0x0202
- #define GKEY_ALT 0x0203
- #define GKEY_WINKEY 0x0204
- #define GKEY_RCLKEY 0x0205
- #define GKEY_FNKEY 0x0206
- #define GKEY_FN1 0x0301
- #define GKEY_FN2 0x0302
- #define GKEY_FN3 0x0303
- #define GKEY_FN4 0x0304
- #define GKEY_FN5 0x0305
- #define GKEY_FN6 0x0306
- #define GKEY_FN7 0x0307
- #define GKEY_FN8 0x0308
- #define GKEY_FN9 0x0309
- #define GKEY_FN10 0x030A
- #define GKEY_FN11 0x030B
- #define GKEY_FN12 0x030C
- uint16_t current_buttons; // A bit is set to indicate various meta status.
- #define GMETA_KEY_DOWN 0x0001
- #define GMETA_KEY_SHIFT 0x0002
- #define GMETA_KEY_CNTRL 0x0004
- #define GMETA_KEY_ALT 0x0008
- #define GMETA_KEY_WINKEY 0x0010
- #define GMETA_KEY_RCLKKEY 0x0020
- #define GMETA_KEY_FN 0x0040
- #define GMETA_KEY_MISSED_EVENT 0x8000
- uint16_t last_buttons; // The value of current_buttons on the last event
-} GEventKeyboard;
-
-// Keyboard Listen Flags - passed to geventAddSourceToListener()
-#define GLISTEN_KEYREPEATS 0x0001 // Return key repeats (where the key is held down to get a repeat character)
-#define GLISTEN_KEYCODES 0x0002 // Return all key presses including extended code key presses (not just ascii codes)
-#define GLISTEN_KEYALL 0x0004 // Return keyup's, keydown's and everything in between (but not repeats unless GLISTEN_KEYREPEATS is set).
-#define GLISTEN_KEYSINGLE 0x8000 // Return only when one particular extended code key is pressed or released. The particular extended code is OR'd into this value
- // eg. (GLISTEN_KEYSINGLE | GKEY_CR)
- // No other flags may be set with this flag.
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- /**
- * @brief Create a keyboard input instance
- *
- * @param[in] instance The ID of the keyboard input instance (from 0 to 9999)
- *
- * @return The source handle of the created input instance
- */
- GSourceHandle ginputGetKeyboard(uint16_t instance);
-
- /**
- * @brief Get the current keyboard status
- *
- * @param[in] instance The ID of the keyboard input instance
- * @param[in] pkeyboard The keyboard event struct
- *
- * @return Returns FALSE on an error (eg invalid instance)
- */
- bool_t ginputGetKeyboardStatus(uint16_t instance, GEventKeyboard *pkeyboard);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GINPUT_NEED_KEYBOARD */
-
-#endif /* _GINPUT_KEYBOARD_H */
-/** @} */
-
diff --git a/include/ginput/lld/mouse.h b/include/ginput/lld/mouse.h
deleted file mode 100644
index 5f4ba52c..00000000
--- a/include/ginput/lld/mouse.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/ginput/lld/mouse.h
- * @brief GINPUT LLD header file for mouse/touch drivers.
- *
- * @defgroup Mouse Mouse
- * @ingroup GINPUT
- * @{
- */
-
-#ifndef _LLD_GINPUT_MOUSE_H
-#define _LLD_GINPUT_MOUSE_H
-
-#if GINPUT_NEED_MOUSE || defined(__DOXYGEN__)
-
-#include "ginput_lld_mouse_config.h"
-
-// GEVENT_MOUSE or GEVENT_TOUCH - What type of device is this.
-#ifndef GINPUT_MOUSE_EVENT_TYPE
- #define GINPUT_MOUSE_EVENT_TYPE GEVENT_MOUSE
-#endif
-
-// TRUE/FALSE - Does the mouse/touch driver require calibration?
-#ifndef GINPUT_MOUSE_NEED_CALIBRATION
- #define GINPUT_MOUSE_NEED_CALIBRATION FALSE
-#endif
-
-// TRUE/FALSE - Can the mouse/touch driver itself save calibration data?
-#ifndef GINPUT_MOUSE_LLD_CALIBRATION_LOADSAVE
- #define GINPUT_MOUSE_LLD_CALIBRATION_LOADSAVE FALSE
-#endif
-
-// n or -1 - n means to test calibration result (+/- pixels), -1 means not to.
-#ifndef GINPUT_MOUSE_MAX_CALIBRATION_ERROR
- #define GINPUT_MOUSE_MAX_CALIBRATION_ERROR -1
-#endif
-
-// n - How many times to read (and average) per poll
-#ifndef GINPUT_MOUSE_READ_CYCLES
- #define GINPUT_MOUSE_READ_CYCLES 1
-#endif
-
-// n - Millisecs between poll's
-#ifndef GINPUT_MOUSE_POLL_PERIOD
- #define GINPUT_MOUSE_POLL_PERIOD 25
-#endif
-
-// n - Movement allowed without discarding the CLICK or CLICKCXT event (+/- pixels)
-#ifndef GINPUT_MOUSE_MAX_CLICK_JITTER
- #define GINPUT_MOUSE_MAX_CLICK_JITTER 1
-#endif
-
-// n - Movement allowed without discarding the MOVE event (+/- pixels)
-#ifndef GINPUT_MOUSE_MAX_MOVE_JITTER
- #define GINPUT_MOUSE_MAX_MOVE_JITTER 0
-#endif
-
-// ms - Millisecs seperating a CLICK from a CXTCLICK
-#ifndef GINPUT_MOUSE_CLICK_TIME
- #define GINPUT_MOUSE_CLICK_TIME 700
-#endif
-
-
-typedef struct MouseReading_t {
- coord_t x, y, z;
- uint16_t buttons;
- } MouseReading;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- void ginput_lld_mouse_init(void);
- void ginput_lld_mouse_get_reading(MouseReading *pt);
-
- #if GINPUT_MOUSE_LLD_CALIBRATION_LOADSAVE
- const char *ginput_lld_mouse_calibration_load(uint16_t instance);
- void ginput_lld_mouse_calibration_save(uint16_t instance, const uint8_t *calbuf, size_t sz);
- #endif
-
- /* This routine is provided to low level drivers to wakeup a value read from a thread context.
- * Particularly useful if GINPUT_MOUSE_POLL_PERIOD = TIME_INFINITE
- */
- void ginputMouseWakeup(void);
-
- /* This routine is provided to low level drivers to wakeup a value read from an ISR
- * Particularly useful if GINPUT_MOUSE_POLL_PERIOD = TIME_INFINITE
- */
- void ginputMouseWakeupI(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GINPUT_NEED_MOUSE || GINPUT_NEED_TOUCH */
-
-#endif /* _LLD_GINPUT_MOUSE_H */
-/** @} */
-
diff --git a/include/ginput/lld/toggle.h b/include/ginput/lld/toggle.h
deleted file mode 100644
index a75a670f..00000000
--- a/include/ginput/lld/toggle.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/ginput/lld/toggle.h
- * @brief GINPUT header file for toggle drivers.
- *
- * @defgroup Toggle Toggle
- * @ingroup GINPUT
- * @{
- */
-
-#ifndef _LLD_GINPUT_TOGGLE_H
-#define _LLD_GINPUT_TOGGLE_H
-
-#if GINPUT_NEED_TOGGLE || defined(__DOXYGEN__)
-
-// Describes how the toggle bits are obtained
-typedef struct GToggleConfig_t {
- void *id;
- unsigned mask;
- unsigned invert;
- iomode_t mode;
-} GToggleConfig;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- extern const GToggleConfig GInputToggleConfigTable[GINPUT_TOGGLE_CONFIG_ENTRIES];
-
- void ginput_lld_toggle_init(const GToggleConfig *ptc);
- unsigned ginput_lld_toggle_getbits(const GToggleConfig *ptc);
-
- /* This routine is provided to low level drivers to wakeup a value read from a thread context.
- * Particularly useful if GINPUT_TOGGLE_POLL_PERIOD = TIME_INFINITE
- */
- void ginputToggleWakeup(void);
-
- /* This routine is provided to low level drivers to wakeup a value read from an ISR
- * Particularly useful if GINPUT_TOGGLE_POLL_PERIOD = TIME_INFINITE
- */
- void ginputToggleWakeupI(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GFX_USE_GINPUT && GINPUT_NEED_TOGGLE */
-
-#endif /* _LLD_GINPUT_TOGGLE_H */
-/** @} */
-
diff --git a/include/ginput/mouse.h b/include/ginput/mouse.h
deleted file mode 100644
index 5385ff17..00000000
--- a/include/ginput/mouse.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/ginput/mouse.h
- * @brief GINPUT GFX User Input subsystem header file for mouse and touch.
- *
- * @defgroup Mouse Mouse
- * @ingroup GINPUT
- *
- * @details GINPUT allows it to easily interface touchscreens and mices to
- * your application.
- *
- * @pre GFX_USE_GINPUT must be set to TRUE in your gfxconf.h
- * @pre GINPUT_NEED_MOUSE must be set to TRUE in your gfxconf.h
- *
- * @{
- */
-
-#ifndef _GINPUT_MOUSE_H
-#define _GINPUT_MOUSE_H
-
-#if GINPUT_NEED_MOUSE || defined(__DOXYGEN__)
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-/* This type definition is also used by touch */
-typedef struct GEventMouse_t {
- GEventType type; // The type of this event (GEVENT_MOUSE or GEVENT_TOUCH)
- uint16_t instance; // The mouse/touch instance
- coord_t x, y, z; // The position of the mouse.
- // - For touch devices, Z is the current pressure if supported (otherwise 0)
- // - For mice, Z is the 3rd dimension if supported (otherwise 0)
- uint16_t current_buttons; // A bit is set if the button is down.
- // - For touch only bit 0 is relevant
- // - For mice the order of the buttons is (from 0 to n) left, right, middle, any other buttons
- // - Bit 15 being set indicates that an important mouse event has been missed.
- #define GINPUT_MOUSE_BTN_LEFT 0x0001
- #define GINPUT_MOUSE_BTN_RIGHT 0x0002
- #define GINPUT_MOUSE_BTN_MIDDLE 0x0004
- #define GINPUT_MOUSE_BTN_4 0x0008
- #define GINPUT_MISSED_MOUSE_EVENT 0x8000
- #define GINPUT_TOUCH_PRESSED GINPUT_MOUSE_BTN_LEFT
- uint16_t last_buttons; // The value of current_buttons on the last event
- enum GMouseMeta_e {
- GMETA_NONE = 0, // There is no meta event currently happening
- GMETA_MOUSE_DOWN = 1, // Button 0 has just gone down
- GMETA_MOUSE_UP = 2, // Button 0 has just gone up
- GMETA_MOUSE_CLICK = 4, // Button 0 has just gone through a short down - up cycle
- GMETA_MOUSE_CXTCLICK = 8 // For mice - The right button has just been depressed
- // For touch - a long press has just occurred
- } meta;
- } GEventMouse;
-
-// Mouse/Touch Listen Flags - passed to geventAddSourceToListener()
-#define GLISTEN_MOUSEMETA 0x0001 // Create events for meta events such as CLICK and CXTCLICK
-#define GLISTEN_MOUSEDOWNMOVES 0x0002 // Creates mouse move events when the primary mouse button is down (touch is on the surface)
-#define GLISTEN_MOUSEUPMOVES 0x0004 // Creates mouse move events when the primary mouse button is up (touch is off the surface - if the hardware allows).
-#define GLISTEN_MOUSENOFILTER 0x0008 // Don't filter out mouse moves where the position hasn't changed.
-#define GLISTEN_TOUCHMETA GLISTEN_MOUSEMETA
-#define GLISTEN_TOUCHDOWNMOVES GLISTEN_MOUSEDOWNMOVES
-#define GLISTEN_TOUCHUPMOVES GLISTEN_MOUSEUPMOVES
-#define GLISTEN_TOUCHNOFILTER GLISTEN_MOUSENOFILTER
-
-#define GINPUT_MOUSE_NUM_PORTS 1 // The total number of mouse/touch inputs supported
-
-// Event types for the mouse ginput source
-#define GEVENT_MOUSE (GEVENT_GINPUT_FIRST+0)
-#define GEVENT_TOUCH (GEVENT_GINPUT_FIRST+1)
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- /**
- * @brief Creates an instance of a mouse and returns the Source handler
- * @note hack: if the instance is 9999, no calibration will be performed!
- *
- * @param[in] instance The ID of the mouse input instance (from 0 to 9999)
- *
- * @return The source handle of the created instance
- */
- GSourceHandle ginputGetMouse(uint16_t instance);
-
- /**
- * @brief Get the current mouse position and button status
- * @note Unlinke a listener event, this status cannot record meta events such as
- * "CLICK".
- *
- * @param[in] instance The ID of the mouse input instance
- * @param[in] pmouse The mouse event
- *
- * @return FALSE on an error (eg. invalid instance)
- */
- bool_t ginputGetMouseStatus(uint16_t instance, GEventMouse *pmouse);
-
- /**
- * @brief Performs a calibration
- *
- * @param[in] instance The ID of the mouse input instance
- *
- * @return FALSE if the driver dosen't support a calibration of if the handle is invalid
- */
- bool_t ginputCalibrateMouse(uint16_t instance);
-
- /* Set the routines to save and fetch calibration data.
- * This function should be called before first calling ginputGetMouse() for a particular instance
- * as the gdispGetMouse() routine may attempt to fetch calibration data and perform a startup calibration if there is no way to get it.
- * If this is called after gdispGetMouse() has been called and the driver requires calibration storage, it will immediately save the data is has already obtained.
- * The 'requireFree' parameter indicates if the fetch buffer must be free()'d to deallocate the buffer provided by the Fetch routine.
- */
- typedef void (*GMouseCalibrationSaveRoutine)(uint16_t instance, const uint8_t *calbuf, size_t sz); // Save calibration data
- typedef const char * (*GMouseCalibrationLoadRoutine)(uint16_t instance); // Load calibration data (returns NULL if not data saved)
-
- /**
- * @brief Set the routines to store and restore calibration data
- *
- * @details This function should be called before first calling ginputGetMouse() for a particular instance
- * as the gdispGetMouse() routine may attempt to fetch calibration data and perform a startup calibration if there is no way to get it.
- * If this is called after gdispGetMouse() has been called and the driver requires calibration storage, it will immediately save the
- * data is has already obtained.
- * The 'requireFree' parameter indicates if the fetch buffer must be free()'d to deallocate the buffer provided by the Fetch routine.
- *
- * @param[in] instance The ID of the mouse input instance
- * @param[in] fnsave The routine to save the data
- * @param[in] fnload The routine to restore the data
- * @param[in] requireFree ToDo
- */
- void ginputSetMouseCalibrationRoutines(uint16_t instance, GMouseCalibrationSaveRoutine fnsave, GMouseCalibrationLoadRoutine fnload, bool_t requireFree);
-
- /**
- * @brief Test if a particular mouse/touch instance requires routines to save it's alibration data
- * @note Not implemented yet
- *
- * @param[in] instance The ID of the mouse input instance
- *
- * @return TRUE if needed
- */
- bool_t ginputRequireMouseCalibrationStorage(uint16_t instance);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GINPUT_NEED_MOUSE */
-
-#endif /* _GINPUT_MOUSE_H */
-/** @} */
-
diff --git a/include/ginput/options.h b/include/ginput/options.h
deleted file mode 100644
index e7635fb5..00000000
--- a/include/ginput/options.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/ginput/options.h
- * @brief GINPUT sub-system options header file.
- *
- * @addtogroup GINPUT
- * @{
- */
-
-#ifndef _GINPUT_OPTIONS_H
-#define _GINPUT_OPTIONS_H
-
-/**
- * @name GINPUT Functionality to be included
- * @{
- */
- /**
- * @brief Should mouse/touch functions be included.
- * @details Defaults to FALSE
- * @note Also add the a mouse/touch hardware driver to your makefile.
- * Eg.
- * include $(GFXLIB)/drivers/ginput/touch/MCU/ginput_lld.mk
- */
- #ifndef GINPUT_NEED_MOUSE
- #define GINPUT_NEED_MOUSE FALSE
- #endif
- /**
- * @brief Should keyboard functions be included.
- * @details Defaults to FALSE
- * @note Also add the a keyboard hardware driver to your makefile.
- * Eg.
- * include $(GFXLIB)/drivers/ginput/keyboard/XXXX/ginput_lld.mk
- */
- #ifndef GINPUT_NEED_KEYBOARD
- #define GINPUT_NEED_KEYBOARD FALSE
- #endif
- /**
- * @brief Should hardware toggle/switch/button functions be included.
- * @details Defaults to FALSE
- * @note Also add the a toggle hardware driver to your makefile.
- * Eg.
- * include $(GFXLIB)/drivers/ginput/toggle/Pal/ginput_lld.mk
- */
- #ifndef GINPUT_NEED_TOGGLE
- #define GINPUT_NEED_TOGGLE FALSE
- #endif
- /**
- * @brief Should analog dial functions be included.
- * @details Defaults to FALSE
- * @note Also add the a dial hardware driver to your makefile.
- * Eg.
- * include $(GFXLIB)/drivers/ginput/dial/analog/ginput_lld.mk
- */
- #ifndef GINPUT_NEED_DIAL
- #define GINPUT_NEED_DIAL FALSE
- #endif
-/**
- * @}
- *
- * @name GINPUT Optional Sizing Parameters
- * @{
- */
-/**
- * @}
- *
- * @name GINPUT Optional Low Level Driver Defines
- * @{
- */
- /**
- * @brief Use a custom board definition for the mouse/touch driver even if a board definition exists.
- * @details Defaults to FALSE
- * @details If TRUE, add ginput_lld_mouse_board.h to your project directory and customise it.
- * @note Not all GINPUT mouse/touch low level drivers use board definition files.
- */
- #ifndef GINPUT_MOUSE_USE_CUSTOM_BOARD
- #define GINPUT_MOUSE_USE_CUSTOM_BOARD FALSE
- #endif
- /**
- * @brief Use a custom board definition for the keyboard driver even if a board definition exists.
- * @details Defaults to FALSE
- * @details If TRUE, add ginput_lld_keyboard_board.h to your project directory and customise it.
- * @note Not all GINPUT keyboard low level drivers use board definition files.
- */
- #ifndef GINPUT_KEYBOARD_USE_CUSTOM_BOARD
- #define GINPUT_KEYBOARD_USE_CUSTOM_BOARD FALSE
- #endif
- /**
- * @brief Use a custom board definition for the toggle driver even if a board definition exists.
- * @details Defaults to FALSE
- * @details If TRUE, add ginput_lld_toggle_board.h to your project directory and customise it.
- * @note Not all GINPUT toggle low level drivers use board definition files.
- */
- #ifndef GINPUT_TOGGLE_USE_CUSTOM_BOARD
- #define GINPUT_TOGGLE_USE_CUSTOM_BOARD FALSE
- #endif
- /**
- * @brief Use a custom board definition for the dial driver even if a board definition exists.
- * @details Defaults to FALSE
- * @details If TRUE, add ginput_lld_dial_board.h to your project directory and customise it.
- * @note Not all GINPUT dial low level drivers use board definition files.
- */
- #ifndef GINPUT_DIAL_USE_CUSTOM_BOARD
- #define GINPUT_DIAL_USE_CUSTOM_BOARD FALSE
- #endif
-/** @} */
-
-#endif /* _GINPUT_OPTIONS_H */
-/** @} */
diff --git a/include/ginput/toggle.h b/include/ginput/toggle.h
deleted file mode 100644
index bec4ed32..00000000
--- a/include/ginput/toggle.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/ginput/toggle.h
- * @brief GINPUT GFX User Input subsystem header file.
- *
- * @defgroup Toggle Toggle
- * @ingroup GINPUT
- *
- * @details GINPUT allows it to interface toggle buttons easily to your
- * application.
- *
- * @pre GFX_USE_GINPUT must be set to TRUE in your gfxconf.h
- * @pre GINPUT_NEED_TOGGLE must be set to TRUE in your gfxconf.h
- *
- * @{
- */
-
-#ifndef _GINPUT_TOGGLE_H
-#define _GINPUT_TOGGLE_H
-
-#if GINPUT_NEED_TOGGLE || defined(__DOXYGEN__)
-
-/*===========================================================================*/
-/* Low Level Driver details and error checks. */
-/*===========================================================================*/
-
-// Get the hardware definitions - Number of instances etc.
-#include "ginput_lld_toggle_config.h"
-
-#ifndef GINPUT_TOGGLE_POLL_PERIOD
- #define GINPUT_TOGGLE_POLL_PERIOD 200
-#endif
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-// Event types for various ginput sources
-#define GEVENT_TOGGLE (GEVENT_GINPUT_FIRST+3)
-
-typedef struct GEventToggle_t {
- GEventType type; // The type of this event (GEVENT_TOGGLE)
- uint16_t instance; // The toggle instance
- bool_t on; // True if the toggle/button is on
- } GEventToggle;
-
-// Toggle Listen Flags - passed to geventAddSourceToListener()
-#define GLISTEN_TOGGLE_ON 0x0001 // Return an event when the toggle turns on
-#define GLISTEN_TOGGLE_OFF 0x0002 // Return an event when the toggle turns off
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
- /**
- * @brief Create a toggle input instance
- *
- * @param[in] instance The ID of the toggle input instance (from 0 to 9999)
- *
- * @return The source handle of the created instance
- */
- GSourceHandle ginputGetToggle(uint16_t instance);
-
- /**
- * @brief Can be used to invert the sense of a toggle
- *
- * @param[in] instance The ID of the toggle input instance
- * @param[in] invert If TRUE, will be inverted
- */
- void ginputInvertToggle(uint16_t instance, bool_t invert);
-
- /**
- * @brief Get the current toggle status
- *
- * @param[in] instance The ID of the toggle input instance
- * @param[in] ptoggle The toggle event struct
- *
- * @return Returns FALSE on an error (eg invalid instance)
- */
- bool_t ginputGetToggleStatus(uint16_t instance, GEventToggle *ptoggle);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GINPUT_NEED_TOGGLE */
-
-#endif /* _GINPUT_TOGGLE_H */
-/** @} */
-
diff --git a/include/gmisc/gmisc.h b/include/gmisc/gmisc.h
deleted file mode 100644
index c68e5ca2..00000000
--- a/include/gmisc/gmisc.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/gmisc/gmisc.h
- * @brief GMISC - Miscellaneous Routines header file.
- *
- * @addtogroup GAUDIN
- *
- * @{
- */
-
-#ifndef _GMISC_H
-#define _GMISC_H
-
-#include "gfx.h"
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-/**
- * @brief Sample data formats
- */
-typedef enum ArrayDataFormat_e {
- ARRAY_DATA_4BITUNSIGNED = 4, ARRAY_DATA_4BITSIGNED = 5,
- ARRAY_DATA_8BITUNSIGNED = 8, ARRAY_DATA_8BITSIGNED = 9,
- ARRAY_DATA_10BITUNSIGNED = 10, ARRAY_DATA_10BITSIGNED = 11,
- ARRAY_DATA_12BITUNSIGNED = 12, ARRAY_DATA_12BITSIGNED = 13,
- ARRAY_DATA_14BITUNSIGNED = 14, ARRAY_DATA_14BITSIGNED = 15,
- ARRAY_DATA_16BITUNSIGNED = 16, ARRAY_DATA_16BITSIGNED = 17,
- } ArrayDataFormat;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#if GFX_USE_GMISC || defined(__DOXYGEN__)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if GMISC_NEED_ARRAYOPS || defined(__DOXYGEN__)
- /**
- * @brief Convert from one array format to another array format.
- *
- * @param[in] srcfmt The format of the source array
- * @param[in] src The source array
- * @param[in] dstfmt The format of the destination array
- * @param[in] dst The dstination array
- * @param[in] cnt The number of array elements to convert
- *
- * @note Assumes the destination buffer is large enough for the resultant data.
- * @note This routine is optimised to perform as fast as possible.
- * @note No type checking is performed on the source format. It is assumed to
- * have only valid values eg. ARRAY_DATA_4BITSIGNED will have values
- * 0000 -> 0111 for positive numbers and 1111 -> 1000 for negative numbers
- * Bits 5 -> 8 in the storage byte are treated in an undefined manner.
- * @note If srcfmt or dstfmt is an unknown format, this routine does nothing
- * with no warning that something is wrong
- *
- * @api
- */
- void gmiscArrayConvert(ArrayDataFormat srcfmt, void *src, ArrayDataFormat dstfmt, void *dst, size_t cnt);
-
- #if 0
- void gmiscArrayTranslate(ArrayDataFormat fmt, void *src, void *dst, size_t cnt, int trans);
-
- void gmiscArrayMultiply(ArrayDataFormat fmt, void *src, void *dst, size_t cnt, int mult);
-
- void gmiscArrayDivide(ArrayDataFormat fmt, void *src, void *dst, size_t cnt, int mdiv);
-
- void gmiscArrayMultDiv(ArrayDataFormat fmt, void *src, void *dst, size_t cnt, int mult, int div);
-
- void gmiscArrayAdd(ArrayDataFormat fmt, void *src1, void *src2, void *dst, size_t cnt);
-
- void gmiscArrayAddNoOverflow(ArrayDataFormat fmt, void *src1, void *src2, void *dst, size_t cnt);
- #endif
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GFX_USE_MISC */
-
-#endif /* _GMISC_H */
-/** @} */
-
diff --git a/include/gmisc/options.h b/include/gmisc/options.h
deleted file mode 100644
index d526ff84..00000000
--- a/include/gmisc/options.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gmisc/options.h
- * @brief GMISC - Miscellaneous Routines options header file.
- *
- * @addtogroup GMISC
- * @{
- */
-
-#ifndef _GMISC_OPTIONS_H
-#define _GMISC_OPTIONS_H
-
-/**
- * @name GMISC Functionality to be included
- * @{
- */
- /**
- * @brief Include array operation functions
- * @details Defaults to FALSE
- */
- #ifndef GMISC_NEED_ARRAYOPS
- #define GMISC_NEED_ARRAYOPS FALSE
- #endif
-/**
- * @}
- *
- * @name GMISC Optional Sizing Parameters
- * @{
- */
-/** @} */
-
-#endif /* _GMISC_OPTIONS_H */
-/** @} */
diff --git a/include/gtimer/gtimer.h b/include/gtimer/gtimer.h
deleted file mode 100644
index 95ab6ba7..00000000
--- a/include/gtimer/gtimer.h
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/gtimer/gtimer.h
- * @brief GTIMER GFX User Timer subsystem header file.
- *
- * @addtogroup GTIMER
- *
- * @details The reason why ChibiOS/GFX has it's own timer abstraction is because
- * virtual timers provided by ChibiOS/RT are interrupt context only.
- * While great for what they are designed for, they make coding of the input
- * drivers much more complex.
- * For non-performance critical drivers like these input drivers, it would also
- * hog an in-ordinate amount of critical (interrupt locked) system time.
- * This contrary to the goals of a real-time operating system. So a user-land
- * (thread based) timer mechanism is also required.
- *
- * @pre GFX_USE_GTIMER must be set to TRUE in your gfxconf.h
- *
- * @{
- */
-
-#ifndef _GTIMER_H
-#define _GTIMER_H
-
-#include "gfx.h"
-
-#if GFX_USE_GTIMER || defined(__DOXYGEN__)
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-/* Data part of a static GTimer initialiser */
-#define _GTIMER_DATA() {0,0,0,0,0,0,0}
-
-/* Static GTimer initialiser */
-#define GTIMER_DECL(name) GTimer name = _GTIMER_DATA()
-
-/* A callback function (executed in a thread context) */
-typedef void (*GTimerFunction)(void *param);
-
-/**
- * @brief A GTimer structure
- */
-typedef struct GTimer_t {
- GTimerFunction fn;
- void *param;
- systime_t when;
- systime_t period;
- uint16_t flags;
- struct GTimer_t *next;
- struct GTimer_t *prev;
-} GTimer;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Initialise a timer.
- *
- * @param[in] pt pointer to a GTimer structure
- *
- * @api
- */
-void gtimerInit(GTimer *pt);
-
-/**
- * @brief Set a timer going or alter its properties if it is already going.
- *
- * @param[in] pt Pointer to a GTimer structure
- * @param[in] fn The callback function
- * @param[in] param The parameter to pass to the callback function
- * @param[in] periodic Is the timer a periodic timer? FALSE is a once-only timer.
- * @param[in] millisec The timer period. The following special values are allowed:
- * TIME_IMMEDIATE causes the callback function to be called asap.
- * A periodic timer with this value will fire once only.
- * TIME_INFINITE never timeout (unless triggered by gtimerJab or gtimerJabI)
- *
- * @note If the timer is already active its properties are updated with the new parameters.
- * The current period will be immediately canceled (without the callback function being
- * called) and the timer will be restart with the new timer properties.
- * @note The callback function should be careful not to over-run the thread stack.
- * Define a new value for the macro GTIME_THREAD_STACK_SIZE if you want to
- * change the default size.
- * @note The callback function should return as quickly as possible as all
- * timer callbacks are performed by a single thread. If a callback function
- * takes too long it could affect the timer response for other timers.
- * @note A timer callback function is not a replacement for a dedicated thread if the
- * function wants to perform computationally expensive stuff.
- * @note As the callback function is called on GTIMER's thread, the function must make sure it uses
- * appropriate synchronisation controls such as semaphores or mutexes around any data
- * structures it shares with other threads such as the main application thread.
- *
- * @api
- */
-void gtimerStart(GTimer *pt, GTimerFunction fn, void *param, bool_t periodic, systime_t millisec);
-
-/**
- * @brief Stop a timer (periodic or otherwise)
- *
- * @param[in] pt Pointer to a GTimer structure
- *
- * @note If the timer is not active this does nothing.
- *
- * @api
- */
-void gtimerStop(GTimer *pt);
-
-/**
- * @brief Test if a timer is currently active
- *
- * @param[in] pt Pointer to a GTimer structure
- *
- * @return TRUE if active, FALSE otherwise
- *
- * @api
- */
-bool_t gtimerIsActive(GTimer *pt);
-
-/**
- * @brief Jab a timer causing the current period to immediate expire
- * @details The callback function will be called as soon as possible.
- *
- * @pre Use from a normal thread context.
- *
- * @param[in] pt Pointer to a GTimer structure
- *
- * @note If the timer is not active this does nothing.
- * @note Repeated Jabs before the callback function actually happens are ignored.
- *
- * @api
- */
-void gtimerJab(GTimer *pt);
-
-/**
- * @brief Jab a timer causing the current period to immediate expire
- * @details The callback function will be called as soon as possible.
- *
- * @pre Use from an interrupt routine context.
- *
- * @param[in] pt Pointer to a GTimer structure
- *
- * @note If the timer is not active this does nothing.
- * @note Repeated Jabs before the callback function actually happens are ignored.
- *
- * @iclass
- * @api
- */
-void gtimerJabI(GTimer *pt);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GFX_USE_GTIMER */
-
-#endif /* _GTIMER_H */
-/** @} */
-
diff --git a/include/gtimer/options.h b/include/gtimer/options.h
deleted file mode 100644
index e0770627..00000000
--- a/include/gtimer/options.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gtimer/options.h
- * @brief GTIMER sub-system options header file.
- *
- * @addtogroup GTIMER
- * @{
- */
-
-#ifndef _GTIMER_OPTIONS_H
-#define _GTIMER_OPTIONS_H
-
-/**
- * @name GTIMER Functionality to be included
- * @{
- */
-/**
- * @}
- *
- * @name GTIMER Optional Sizing Parameters
- * @{
- */
- /**
- * @brief Defines the size of the timer threads work area (stack+structures).
- * @details Defaults to 512 bytes
- */
- #ifndef GTIMER_THREAD_WORKAREA_SIZE
- #define GTIMER_THREAD_WORKAREA_SIZE 512
- #endif
-/** @} */
-
-#endif /* _GTIMER_OPTIONS_H */
-/** @} */
diff --git a/include/gwin/button.h b/include/gwin/button.h
deleted file mode 100644
index ffec858b..00000000
--- a/include/gwin/button.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/gwin/button.h
- * @brief GWIN Graphic window subsystem header file.
- *
- * @defgroup Button Button
- * @ingroup GWIN
- *
- * @details GWIN allows it to easily create buttons with different styles
- * and check for different meta states such as: PRESSED, CLICKED,
- * RELEASED etc.
- *
- * @pre GFX_USE_GWIN must be set to TRUE in your gfxconf.h
- * @pre GWIN_NEED_BUTTON must be set to TRUE in your gfxconf.h
- * @{
- */
-
-#ifndef _GWIN_BUTTON_H
-#define _GWIN_BUTTON_H
-
-#if GWIN_NEED_BUTTON || defined(__DOXYGEN__)
-
-/*===========================================================================*/
-/* Driver constants. */
-/*===========================================================================*/
-
-#define GW_BUTTON 0x0002
-#define GEVENT_GWIN_BUTTON (GEVENT_GWIN_FIRST+0)
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-typedef struct GEventGWinButton_t {
- GEventType type; // The type of this event (GEVENT_GWIN_BUTTON)
- GHandle button; // The button that has been depressed (actually triggered on release)
-} GEventGWinButton;
-
-// There are currently no GEventGWinButton listening flags - use 0
-
-typedef enum GButtonShape_e {
- GBTN_3D, GBTN_SQUARE, GBTN_ROUNDED, GBTN_ELLIPSE
-} GButtonShape;
-
-typedef struct GButtonStyle_t {
- GButtonShape shape;
- color_t color_up_edge;
- color_t color_up_fill;
- color_t color_up_txt;
- color_t color_dn_edge;
- color_t color_dn_fill;
- color_t color_dn_txt;
-} GButtonStyle;
-
-typedef enum GButtonType_e {
- GBTN_NORMAL, GBTN_TOGGLE
-} GButtonType;
-
-typedef enum GButtonState_e {
- GBTN_UP, GBTN_DOWN
-} GButtonState;
-
-// A button window
-typedef struct GButtonObject_t {
- GWindowObject gwin;
-
- GButtonStyle style;
- GButtonState state;
- GButtonType type;
- const char * txt;
- GListener listener;
-} GButtonObject;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Create a button window.
- * @return NULL if there is no resultant drawing area, otherwise a window handle.
- *
- * @param[in] gb The GButtonObject structure to initialise. If this is NULL the structure is dynamically allocated.
- * @param[in] x,y The screen co-ordinates for the bottom left corner of the window
- * @param[in] width The width of the window
- * @param[in] height The height of the window
- * @param[in] font The font to use
- * @param[in] type The type of button
- * @note The drawing color gets set to White and the background drawing color to Black.
- * @note The dimensions and position may be changed to fit on the real screen.
- * @note The button is not automatically drawn. Call gwinButtonDraw() after changing the button style or setting the text.
- *
- * @api
- */
-GHandle gwinCreateButton(GButtonObject *gb, coord_t x, coord_t y, coord_t width, coord_t height, font_t font, GButtonType type);
-
-/**
- * @brief Set the style of a button.
- * @details The button style is defined by its shape and colours.
- *
- * @param[in] gh The window handle (must be a button window)
- * @param[in] style The button style to set.
- * @note The button is not automatically redrawn. Call gwinButtonDraw() after changing the button style
- *
- * @api
- */
-void gwinSetButtonStyle(GHandle gh, const GButtonStyle *style);
-
-/**
- * @brief Set the text of a button.
- *
- * @param[in] gh The window handle (must be a button window)
- * @param[in] txt The button text to set. This must be a constant string unless useAlloc is set.
- * @param[in] useAlloc If TRUE the string specified will be copied into dynamically allocated memory.
- * @note The button is not automatically redrawn. Call gwinButtonDraw() after changing the button text.
- *
- * @api
- */
-void gwinSetButtonText(GHandle gh, const char *txt, bool_t useAlloc);
-
-/**
- * @brief Redraw the button.
- *
- * @param[in] gh The window handle (must be a button window)
- *
- * @api
- */
-void gwinButtonDraw(GHandle gh);
-
-#define gwinGetButtonState(gh) (((GButtonObject *)(gh))->state)
-
-/**
- * @brief Get the source handle of a button
- * @details Get the source handle of a button so the application can listen for events
- *
- * @param[in] gh The Hanlde
- */
-#define gwinGetButtonSource(gh) ((GSourceHandle)(gh))
-
-#if defined(GINPUT_NEED_MOUSE) && GINPUT_NEED_MOUSE
- /**
- * @brief Attach a mouse source
- * @details Attach a mouse source to a given button
- *
- * @param[in] gh The button handle
- * @param[in] gsh The source handle
- *
- * @return
- */
- bool_t gwinAttachButtonMouseSource(GHandle gh, GSourceHandle gsh);
-#endif
-
-#if defined(GINPUT_NEED_TOGGLE) && GINPUT_NEED_TOGGLE
- /**
- * @brief Attach a toggle source
- * @details Attach a toggle source to this button
- *
- * @gh The button handle
- * @gsh The source handle
- *
- * @return
- */
- bool_t gwinAttachButtonToggleSource(GHandle gh, GSourceHandle gsh);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GWIN_NEED_BUTTON */
-
-#endif /* _GWIN_BUTTON_H */
-/** @} */
diff --git a/include/gwin/console.h b/include/gwin/console.h
deleted file mode 100644
index 30058b2b..00000000
--- a/include/gwin/console.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/gwin/console.h
- * @brief GWIN Graphic window subsystem header file.
- *
- * @defgroup Console Console
- * @ingroup GWIN
- *
- * @details GWIN allows it to create a console/terminal like window.
- * You can simply use chprintf() to print to the terminal.
- *
- * @pre GFX_USE_GWIN must be set to TRUE in your gfxconf.h
- * @pre GWIN_NEED_CONSOLE must be set to TRUE in your gfxconf.h
- *
- * @{
- */
-
-#ifndef _GWIN_CONSOLE_H
-#define _GWIN_CONSOLE_H
-
-#if GWIN_NEED_CONSOLE || defined(__DOXYGEN__)
-
-/*===========================================================================*/
-/* Driver constants. */
-/*===========================================================================*/
-
-#define GW_CONSOLE 0x0001
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-// A console window. Supports wrapped text writing and a cursor.
-typedef struct GConsoleObject_t {
- GWindowObject gwin;
-
- struct GConsoleWindowStream_t {
- const struct GConsoleWindowVMT_t *vmt;
- _base_asynchronous_channel_data
- } stream;
-
- coord_t cx,cy; // Cursor position
- uint8_t fy; // Current font height
- uint8_t fp; // Current font inter-character spacing
- } GConsoleObject;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Create a console window.
- * @details A console window allows text to be written using chprintf() (and the console functions defined here).
- * @brief Text in a console window supports newlines and will wrap text as required.
- * @return NULL if there is no resultant drawing area, otherwise a window handle.
- *
- * @param[in] gc The GConsoleObject structure to initialise. If this is NULL the structure is dynamically allocated.
- * @param[in] x,y The screen co-ordinates for the bottom left corner of the window
- * @param[in] width The width of the window
- * @param[in] height The height of the window
- * @param[in] font The font to use
- * @note The console is not automatically cleared on creation. You must do that by calling gwinClear() (possibly after changing your background color)
- * @note If the dispay does not support scrolling, the window will be cleared when the bottom line is reached.
- * @note The default drawing color gets set to White and the background drawing color to Black.
- * @note The dimensions and position may be changed to fit on the real screen.
- *
- * @api
- */
-GHandle gwinCreateConsole(GConsoleObject *gc, coord_t x, coord_t y, coord_t width, coord_t height, font_t font);
-
-/**
- * @brief Get a stream from a console window suitable for use with chprintf().
- * @return The stream handle or NULL if this is not a console window.
- *
- * @param[in] gh The window handle (must be a console window)
- *
- * @api
- */
-BaseSequentialStream *gwinGetConsoleStream(GHandle gh);
-
-/**
- * @brief Put a character at the cursor position in the window.
- * @note Uses the current foreground color to draw the character and fills the background using the background drawing color
- *
- * @param[in] gh The window handle (must be a console window)
- * @param[in] c The character to draw
- *
- * @api
- */
-void gwinPutChar(GHandle gh, char c);
-
-/**
- * @brief Put a string at the cursor position in the window. It will wrap lines as required.
- * @note Uses the current foreground color to draw the string and fills the background using the background drawing color
- *
- * @param[in] gh The window handle (must be a console window)
- * @param[in] str The string to draw
- *
- * @api
- */
-void gwinPutString(GHandle gh, const char *str);
-
-/**
- * @brief Put the character array at the cursor position in the window. It will wrap lines as required.
- * @note Uses the current foreground color to draw the string and fills the background using the background drawing color
- *
- * @param[in] gh The window handle (must be a console window)
- * @param[in] str The string to draw
- * @param[in] n The number of characters to draw
- *
- * @api
- */
-void gwinPutCharArray(GHandle gh, const char *str, size_t n);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GWIN_NEED_CONSOLE */
-
-#endif /* _GWIN_CONSOLE_H */
-/** @} */
diff --git a/include/gwin/graph.h b/include/gwin/graph.h
deleted file mode 100644
index 9267813b..00000000
--- a/include/gwin/graph.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gwin/graph.h
- * @brief GWIN GRAPH module header file.
- *
- * @defgroup Graph Graph
- * @ingroup GWIN
- *
- * @details GWIN allows it to easily draw graphs.
- * @pre GFX_USE_GWIN must be set to TRUE in your gfxconf.h
- * @pre GWIN_NEED_GRAPH must be set to TRUE in your gfxconf.h
- *
- * @{
- */
-
-#ifndef _GWIN_GRAPH_H
-#define _GWIN_GRAPH_H
-
-#if GWIN_NEED_GRAPH || defined(__DOXYGEN__)
-
-/*===========================================================================*/
-/* Driver constants. */
-/*===========================================================================*/
-
-#define GW_GRAPH 0x0003
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-typedef struct GGraphPoint_t {
- coord_t x, y;
- } GGraphPoint;
-
-typedef enum GGraphPointType_e {
- GGRAPH_POINT_NONE, GGRAPH_POINT_DOT, GGRAPH_POINT_SQUARE, GGRAPH_POINT_CIRCLE
- } GGraphPointType;
-
-typedef struct GGraphPointStyle_t {
- GGraphPointType type;
- coord_t size;
- color_t color;
- } GGraphPointStyle;
-
-typedef enum GGraphLineType_e {
- GGRAPH_LINE_NONE, GGRAPH_LINE_SOLID, GGRAPH_LINE_DOT, GGRAPH_LINE_DASH
- } GGraphLineType;
-
-typedef struct GGraphLineStyle_t {
- GGraphLineType type;
- coord_t size;
- color_t color;
- } GGraphLineStyle;
-
-typedef struct GGraphGridStyle_t {
- GGraphLineType type;
- coord_t size;
- color_t color;
- coord_t spacing;
- } GGraphGridStyle;
-
-typedef struct GGraphStyle_t {
- GGraphPointStyle point;
- GGraphLineStyle line;
- GGraphLineStyle xaxis;
- GGraphLineStyle yaxis;
- GGraphGridStyle xgrid;
- GGraphGridStyle ygrid;
- uint16_t flags;
- #define GWIN_GRAPH_STYLE_XAXIS_POSITIVE_ARROWS 0x0001
- #define GWIN_GRAPH_STYLE_XAXIS_NEGATIVE_ARROWS 0x0002
- #define GWIN_GRAPH_STYLE_YAXIS_POSITIVE_ARROWS 0x0004
- #define GWIN_GRAPH_STYLE_YAXIS_NEGATIVE_ARROWS 0x0008
- #define GWIN_GRAPH_STYLE_POSITIVE_AXIS_ARROWS (GWIN_GRAPH_STYLE_XAXIS_POSITIVE_ARROWS|GWIN_GRAPH_STYLE_YAXIS_POSITIVE_ARROWS)
- #define GWIN_GRAPH_STYLE_NEGATIVE_AXIS_ARROWS (GWIN_GRAPH_STYLE_XAXIS_NEGATIVE_ARROWS|GWIN_GRAPH_STYLE_YAXIS_NEGATIVE_ARROWS)
- #define GWIN_GRAPH_STYLE_XAXIS_ARROWS (GWIN_GRAPH_STYLE_XAXIS_POSITIVE_ARROWS|GWIN_GRAPH_STYLE_XAXIS_NEGATIVE_ARROWS)
- #define GWIN_GRAPH_STYLE_YAXIS_ARROWS (GWIN_GRAPH_STYLE_YAXIS_POSITIVE_ARROWS|GWIN_GRAPH_STYLE_YAXIS_NEGATIVE_ARROWS)
- #define GWIN_GRAPH_STYLE_ALL_AXIS_ARROWS (GWIN_GRAPH_STYLE_XAXIS_ARROWS|GWIN_GRAPH_STYLE_YAXIS_ARROWS)
-} GGraphStyle;
-
-// A graph window
-typedef struct GGraphObject_t {
- GWindowObject gwin;
- GGraphStyle style;
- coord_t xorigin, yorigin;
- coord_t lastx, lasty;
- } GGraphObject;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * @brief Create a graph window.
- * @return NULL if there is no resultant drawing area, otherwise a window handle.
- *
- * @param[in] gg The GGraphObject structure to initialise. If this is NULL the structure is dynamically allocated.
- * @param[in] x,y The screen co-ordinates for the bottom left corner of the window
- * @param[in] width The width of the window
- * @param[in] height The height of the window
- * @note The console is not automatically cleared on creation. You must do that by calling gwinClear() (possibly after changing your background color)
- * @note The coordinate system within the window for graphing operations (but not for any other drawing
- * operation) is relative to the bottom left corner and then shifted right and up by the specified
- * graphing x and y origin. Note that this system is inverted in the y direction relative to the display.
- * This gives the best graphing arrangement ie. increasing y values are closer to the top of the display.
- *
- * @api
- */
-GHandle gwinCreateGraph(GGraphObject *gg, coord_t x, coord_t y, coord_t width, coord_t height);
-
-/**
- * @brief Set the style of the graphing operations.
- *
- * @param[in] gh The window handle (must be a graph window)
- * @param[in] pstyle The graph style to set.
- * @note The graph is not automatically redrawn. The new style will apply to any new drawing operations.
- *
- * @api
- */
-void gwinGraphSetStyle(GHandle gh, const GGraphStyle *pstyle);
-
-/**
- * @brief Set the origin for graphing operations.
- *
- * @param[in] gh The window handle (must be a graph window)
- * @param[in] x, y The new origin for the graph (in graph coordinates relative to the bottom left corner).
- * @note The graph is not automatically redrawn. The new origin will apply to any new drawing operations.
- *
- * @api
- */
-void gwinGraphSetOrigin(GHandle gh, coord_t x, coord_t y);
-
-/**
- * @brief Draw the axis and the background grid.
- *
- * @param[in] gh The window handle (must be a graph window)
- * @note The graph is not automatically cleared. You must do that first by calling gwinClear().
- *
- * @api
- */
-void gwinGraphDrawAxis(GHandle gh);
-
-/**
- * @brief Start a new set of graphing data.
- * @details This prevents a line being drawn from the last data point to the next point to be drawn.
- *
- * @param[in] gh The window handle (must be a graph window)
- *
- * @api
- */
-void gwinGraphStartSet(GHandle gh);
-
-/**
- * @brief Draw a graph point.
- * @details A graph point and a line connecting to the previous point will be drawn.
- *
- * @param[in] gh The window handle (must be a graph window)
- * @param[in] x, y The new point for the graph.
- *
- * @api
- */
-void gwinGraphDrawPoint(GHandle gh, coord_t x, coord_t y);
-
-/**
- * @brief Draw multiple graph points.
- * @details A graph point and a line connecting to each previous point will be drawn.
- *
- * @param[in] gh The window handle (must be a graph window)
- * @param[in] points The array of points for the graph.
- * @param[in] count The number of points in the array.
- * @note This is slightly more efficient than calling gwinGraphDrawPoint() repeatedly.
- *
- * @api
- */
-void gwinGraphDrawPoints(GHandle gh, const GGraphPoint *points, unsigned count);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GWIN_NEED_GRAPH */
-
-#endif /* _GWIN_GRAPH_H */
-/** @} */
-
diff --git a/include/gwin/gwin.h b/include/gwin/gwin.h
deleted file mode 100644
index e109dd83..00000000
--- a/include/gwin/gwin.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/gwin/gwin.h
- * @brief GWIN Graphic window subsystem header file.
- *
- * @defgroup Window Window
- * @ingroup GWIN
- *
- * @details GWIN provides a basic window manager which allows it to easily
- * create and destroy different windows on runtime. Each window
- * will have it's own properties such as colors, brushes as well as
- * it's own drawing origin.
- * Moving the windows around is not supported yet.
- *
- * @pre GFX_USE_GWIN must be set to TRUE in your gfxconf.h
- *
- * @{
- */
-
-#ifndef _GWIN_H
-#define _GWIN_H
-
-#include "gfx.h"
-
-#if GFX_USE_GWIN || defined(__DOXYGEN__)
-
-/*===========================================================================*/
-/* Type definitions */
-/*===========================================================================*/
-
-typedef uint16_t GWindowType;
-#define GW_WINDOW 0x0000
-#define GW_FIRST_USER_WINDOW 0x8000
-
-// A basic window
-typedef struct GWindowObject_t {
- GWindowType type; // What type of window is this
- uint16_t flags; // Internal flags
- coord_t x, y; // Screen relative position
- coord_t width, height; // Dimensions of this window
- color_t color, bgcolor; // Current drawing colors
-#if GDISP_NEED_TEXT
- font_t font; // Current font
-#endif
-} GWindowObject, * GHandle;
-
-/*===========================================================================*/
-/* External declarations. */
-/*===========================================================================*/
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Base Functions */
-GHandle gwinCreateWindow(GWindowObject *gw, coord_t x, coord_t y, coord_t width, coord_t height);
-void gwinDestroyWindow(GHandle gh);
-
-/**
- * @brief Get the X coordinate of the window
- * @details Returns the X coordinate of the origin of the window.
- * The coordinate is relative to the physical screen zero point.
- *
- * @param[in] gh The window
- */
-#define gwinGetScreenX(gh) ((gh)->x)
-
-/**
- * @brief Get the Y coordinate of the window
- * @details Returns the Y coordinate of the origin of the window.
- * The coordinate is relative to the physical screen zero point.
- *
- * @param[in] gh The window
- */
-#define gwinGetScreenY(gh) ((gh)->y)
-
-/**
- * @brief Get the width of the window
- *
- * @param[in] gh The window
- */
-#define gwinGetWidth(gh) ((gh)->width)
-
-/**
- * @brief Get the height of the window
- *
- * @param[in] gh The window
- */
-#define gwinGetHeight(gh) ((gh)->height)
-
-/**
- * @brief Set foreground color
- * @details Set the color which will be used to draw
- *
- * @param[in] gh The window
- * @param[in] clr The color to be set
- */
-#define gwinSetColor(gh, clr) (gh)->color = (clr)
-
-/**
- * @brief Set background color
- * @details Set the color which will be used as background
- * @note gwinClear() must be called to set the background color
- *
- * @param[in] gh The window
- * @param[in] bgclr The background color
- */
-#define gwinSetBgColor(gh, bgclr) (gh)->bgcolor = (bgclr)
-
-/* Set up for text */
-#if GDISP_NEED_TEXT
- void gwinSetFont(GHandle gh, font_t font);
-#endif
-
-/* Drawing Functions */
-void gwinClear(GHandle gh);
-void gwinDrawPixel(GHandle gh, coord_t x, coord_t y);
-void gwinDrawLine(GHandle gh, coord_t x0, coord_t y0, coord_t x1, coord_t y1);
-void gwinDrawBox(GHandle gh, coord_t x, coord_t y, coord_t cx, coord_t cy);
-void gwinFillArea(GHandle gh, coord_t x, coord_t y, coord_t cx, coord_t cy);
-void gwinBlitArea(GHandle gh, coord_t x, coord_t y, coord_t cx, coord_t cy, coord_t srcx, coord_t srcy, coord_t srccx, const pixel_t *buffer);
-
-/* Circle Functions */
-#if GDISP_NEED_CIRCLE
- void gwinDrawCircle(GHandle gh, coord_t x, coord_t y, coord_t radius);
- void gwinFillCircle(GHandle gh, coord_t x, coord_t y, coord_t radius);
-#endif
-
-/* Ellipse Functions */
-#if GDISP_NEED_ELLIPSE
- void gwinDrawEllipse(GHandle gh, coord_t x, coord_t y, coord_t a, coord_t b);
- void gwinFillEllipse(GHandle gh, coord_t x, coord_t y, coord_t a, coord_t b);
-#endif
-
-/* Arc Functions */
-#if GDISP_NEED_ARC
- void gwinDrawArc(GHandle gh, coord_t x, coord_t y, coord_t radius, coord_t startangle, coord_t endangle);
- void gwinFillArc(GHandle gh, coord_t x, coord_t y, coord_t radius, coord_t startangle, coord_t endangle);
-#endif
-
-/* Read a pixel Function */
-#if GDISP_NEED_PIXELREAD
- color_t gwinGetPixelColor(GHandle gh, coord_t x, coord_t y);
-#endif
-
-/* Extra Text Functions */
-#if GDISP_NEED_TEXT
- void gwinDrawChar(GHandle gh, coord_t x, coord_t y, char c);
- void gwinFillChar(GHandle gh, coord_t x, coord_t y, char c);
- void gwinDrawString(GHandle gh, coord_t x, coord_t y, const char *str);
- void gwinFillString(GHandle gh, coord_t x, coord_t y, const char *str);
- void gwinDrawStringBox(GHandle gh, coord_t x, coord_t y, coord_t cx, coord_t cy, const char* str, justify_t justify);
- void gwinFillStringBox(GHandle gh, coord_t x, coord_t y, coord_t cx, coord_t cy, const char* str, justify_t justify);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-/* Include extra window types */
-#include "gwin/console.h"
-#include "gwin/button.h"
-#include "gwin/graph.h"
-
-#endif /* GFX_USE_GWIN */
-
-#endif /* _GWIN_H */
-/** @} */
diff --git a/include/gwin/internal.h b/include/gwin/internal.h
deleted file mode 100644
index b47a2229..00000000
--- a/include/gwin/internal.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-/**
- * @file include/gwin/internal.h
- * @brief GWIN Graphic window subsystem header file.
- *
- * @addtogroup GWIN
- * @{
- */
-#ifndef _GWIN_INTERNAL_H
-#define _GWIN_INTERNAL_H
-
-#if GFX_USE_GWIN || defined(__DOXYGEN__)
-
-/*===========================================================================*/
-/* Sub-system constants. */
-/*===========================================================================*/
-
-#define GWIN_FLG_DYNAMIC 0x0001
-#define GBTN_FLG_ALLOCTXT 0x0002
-#define GWIN_FIRST_CONTROL_FLAG 0x0004
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-GHandle _gwinInit(GWindowObject *gw, coord_t x, coord_t y, coord_t width, coord_t height, size_t size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GFX_USE_GWIN */
-
-#endif /* _GWIN_INTERNAL_H */
-/** @} */
diff --git a/include/gwin/options.h b/include/gwin/options.h
deleted file mode 100644
index 6e17e61f..00000000
--- a/include/gwin/options.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/gwin/options.h
- * @brief GWIN sub-system options header file.
- *
- * @addtogroup GWIN
- * @{
- */
-
-#ifndef _GWIN_OPTIONS_H
-#define _GWIN_OPTIONS_H
-
-/**
- * @name GWIN Functionality to be included
- * @{
- */
- /**
- * @brief Should button functions be included.
- * @details Defaults to FALSE
- */
- #ifndef GWIN_NEED_BUTTON
- #define GWIN_NEED_BUTTON FALSE
- #endif
- /**
- * @brief Should console functions be included.
- * @details Defaults to FALSE
- * @note To use chprintf() for printing in a console window you need to
- * include in your application source file...
- * \#include "chprintf.h"
- * Also in your makefile, as part of your list of C source files, include
- * ${CHIBIOS}/os/various/chprintf.c
- */
- #ifndef GWIN_NEED_CONSOLE
- #define GWIN_NEED_CONSOLE FALSE
- #endif
- /**
- * @brief Should graph functions be included.
- * @details Defaults to FALSE
- */
- #ifndef GWIN_NEED_GRAPH
- #define GWIN_NEED_GRAPH FALSE
- #endif
-/**
- * @}
- *
- * @name GWIN Optional Sizing Parameters
- * @{
- */
-/** @} */
-
-#endif /* _GWIN_OPTIONS_H */
-/** @} */
diff --git a/include/tdisp/lld/tdisp_lld.h b/include/tdisp/lld/tdisp_lld.h
deleted file mode 100644
index de6266f3..00000000
--- a/include/tdisp/lld/tdisp_lld.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/tdisp/lld/tdisp_lld.h
- * @brief TDISP driver subsystem low level driver header.
- *
- * @addtogroup TDISP
- * @{
- */
-
-#ifndef _TDISP_LLD_H
-#define _TDISP_LLD_H
-
-#if GFX_USE_TDISP || defined(__DOXYGEN__)
-
-#include "tdisp_lld_config.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-extern void tdisp_lld_write_cmd(uint8_t data);
-extern void tdisp_lld_write_data(uint8_t data);
-extern bool_t tdisp_lld_init(void);
-extern void tdisp_lld_set_cursor(coord_t col, coord_t row);
-extern void tdisp_lld_create_char(uint8_t address, char *charmap);
-extern void tdisp_lld_clear(void);
-extern void tdisp_lld_home(void);
-extern void tdisp_lld_control(uint16_t what, void *value);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* GFX_USE_TDISP */
-
-#endif /* _TDISP_LLD_H */
-/** @} */
-
diff --git a/include/tdisp/options.h b/include/tdisp/options.h
deleted file mode 100644
index 69d24b64..00000000
--- a/include/tdisp/options.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/tdisp/options.h
- * @brief TDISP sub-system options header file.
- *
- * @addtogroup TDISP
- * @{
- */
-
-#ifndef _TDISP_OPTIONS_H
-#define _TDISP_OPTIONS_H
-
-#if GFX_USE_TDISP
-/**
- * @name TDISP configuration
- * @{
- */
-
- /**
- * @brief How many rows of characters the TDISP provides
- */
- #ifndef TDISP_ROWS
- #define TDISP_ROWS 2
- #endif
-
- /**
- * @brief How many columns of characters the TDISP provides
- */
- #ifndef TDISP_COLUMNS
- #define TDISP_COLUMNS 16
- #endif
-
-/** @} */
-
-/**
- * @name TDISP interface configuration
- * @note Only one of these interfaces can be selected at a time!
- * @{
- */
- /**
- * @brief Use the 4-bit paralle interface
- */
- #ifndef TDISP_NEED_4BIT_MODE
- #define TDISP_NEED_4BIT_MODE FALSE
- #endif
-
- /**
- * @brief Use the 8-bit parallel interface
- */
- #ifndef TDISP_NEED_8BIT_MODE
- #define TDISP_NEED_8BIT_MODE FALSE
- #endif
-
- #if (!TDISP_NEED_4BIT_MODE && !TDISP_NEED_8BIT_MODE)
- #error "Either TDISP_NEED_4BIT_MODE or TDISP_NEED_8BIT_MODE needs to be set to TRUE in your gfxconf.h!"
- #endif
-
- #if (TDISP_NEED_4BIT_MODE && TDISP_NEED_8BIT_MODE)
- #error "Only TDISP_NEED_4BIT_MODE or TDISP_NEED_8BIT_MODE can be set to TRUE, not both at one!"
- #endif
-
-/** @} */
-
-#endif /* GFX_USE_TDISP */
-
-#endif /* _TDISP_OPTIONS_H */
-/** @} */
-
diff --git a/include/tdisp/tdisp.h b/include/tdisp/tdisp.h
deleted file mode 100644
index 01cb76a0..00000000
--- a/include/tdisp/tdisp.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- ChibiOS/GFX - Copyright (C) 2012
- Joel Bodenmann aka Tectu <joel@unormal.org>
-
- This file is part of ChibiOS/GFX.
-
- ChibiOS/GFX 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/GFX 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/>.
-*/
-
-/**
- * @file include/tdisp/tdisp.h
- * @brief TDISP Graphic Driver subsystem header file.
- *
- * @addtogroup TDISP
- *
- * @details The TDISP module provides high level abstraction to interface pixel oriented graphic displays.
- * Due the TDISP module is completely encapsulated from the other modules, it's very fast and lightweight.
- *
- * @pre GFX_USE_TDISP must be set to TRUE in gfxconf.h
- *
- * @{
- */
-
-#ifndef _TDISP_H
-#define _TDISP_H
-
-#include "gfx.h"
-
-#if GFX_USE_TDISP || defined(__DOXYGEN__)
-
-/* Include the low level driver information */
-#include "tdisp/lld/tdisp_lld.h"
-
-/**
- * @name TDISP display attributes
- * @{
- */
-#define TDISP_ON 0x01
-#define TDISP_OFF 0x02
-#define TDISP_CURSOR_ON 0x03
-#define TDISP_CURSOR_OFF 0x04
-#define TDISP_CURSOR_BLINK_ON 0x05
-#define TDISP_CURSOR_BLINK_OFF 0x06
-/** @} */
-
-/**
- * @brief TDISP driver initialisation
- * @note This function is not implicitly invoked by @p halInit().
- * It must be called manually.
- *
- * @return TRUE if success, FALSE otherwise
- *
- * @init
- */
-bool_t tdispInit(void);
-
-/**
- * @brief Control different display properties
- * @note A wrapper macro exists for each option, please use them
- * instead of this function manually.
- *
- * @param[in] what What you want to control
- * @param[in] value The value to be assigned
- */
-void tdispControl(uint16_t what, void *value);
-
-/**
- * @brief Clears the display
- */
-void tdispClear(void);
-
-/**
- * @brief Sets the cursor to it's home position ( 0/0 )
- */
-void tdispHome(void);
-
-/**
- * @brief Set cursor to a certain position
- *
- * @param[in] col The column
- * @param[in] row The row
- */
-void tdispSetCursor(coord_t col, coord_t row);
-
-/**
- * @brief Store a custom character in RAM
- *
- * @note This usually must be done after each power-up since most
- * LCDs lose their RAM content.
- *
- * @param[in] address On which address to store the character (from 0 up to max)
- * @param[in] charmap The character to be stored.
- */
-void tdispCreateChar(uint8_t address, char *charmap);
-
-/**
- * @brief Draws a single character at the current cursor position
- *
- * @param[in] c The character to be drawn
- */
-void tdispDrawChar(char c);
-
-/**
- * @brief Draws a string at the current cursor position
- *
- * @param[in] s The string to be drawn
- */
-void tdispDrawString(char *s);
-
-/**
- * @brief Draws a single character at a given position
- * @note This function manipulates the cursor position and it will not be
- * reset to it's original state
- *
- * @param[in] col The column
- * @param[in] row The row
- * @param[in] c The character to be drawn
- */
-void tdispDrawCharLocation(coord_t col, coord_t row, char c);
-
-/**
- * @brief Draws a string at a given position
- * @note This function manipulates the cursor position and it will not be
- * reset to it's original state
- *
- * @param[in] col The column
- * @param[in] row The row
- * @param[in] s The string to be drawn
- */
-void tdispDrawStringLocation(coord_t col, coord_t row, char *s);
-
-#endif /* GFX_USE_TDISP */
-
-#endif /* _TDISP_H */
-/** @} */
-