Move doxygen to the include file for Mouse LLD

ugfx_release_2.6
Andrew Hannam 2013-04-07 16:30:00 +10:00
parent 9ee7c284e6
commit 5412fa5596
1 changed files with 181 additions and 121 deletions

View File

@ -1,121 +1,181 @@
/* /*
ChibiOS/GFX - Copyright (C) 2012, 2013 ChibiOS/GFX - Copyright (C) 2012, 2013
Joel Bodenmann aka Tectu <joel@unormal.org> Joel Bodenmann aka Tectu <joel@unormal.org>
This file is part of ChibiOS/GFX. This file is part of ChibiOS/GFX.
ChibiOS/GFX is free software; you can redistribute it and/or modify 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 it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or the Free Software Foundation; either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
ChibiOS/GFX is distributed in the hope that it will be useful, ChibiOS/GFX is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
/** /**
* @file include/ginput/lld/mouse.h * @file include/ginput/lld/mouse.h
* @brief GINPUT LLD header file for mouse/touch drivers. * @brief GINPUT LLD header file for mouse/touch drivers.
* *
* @defgroup Mouse Mouse * @defgroup Mouse Mouse
* @ingroup GINPUT * @ingroup GINPUT
* @{ * @{
*/ */
#ifndef _LLD_GINPUT_MOUSE_H #ifndef _LLD_GINPUT_MOUSE_H
#define _LLD_GINPUT_MOUSE_H #define _LLD_GINPUT_MOUSE_H
#if GINPUT_NEED_MOUSE || defined(__DOXYGEN__) #if GINPUT_NEED_MOUSE || defined(__DOXYGEN__)
#include "ginput_lld_mouse_config.h" #include "ginput_lld_mouse_config.h"
// GEVENT_MOUSE or GEVENT_TOUCH - What type of device is this. // GEVENT_MOUSE or GEVENT_TOUCH - What type of device is this.
#ifndef GINPUT_MOUSE_EVENT_TYPE #ifndef GINPUT_MOUSE_EVENT_TYPE
#define GINPUT_MOUSE_EVENT_TYPE GEVENT_MOUSE #define GINPUT_MOUSE_EVENT_TYPE GEVENT_MOUSE
#endif #endif
// TRUE/FALSE - Does the mouse/touch driver require calibration? // TRUE/FALSE - Does the mouse/touch driver require calibration?
#ifndef GINPUT_MOUSE_NEED_CALIBRATION #ifndef GINPUT_MOUSE_NEED_CALIBRATION
#define GINPUT_MOUSE_NEED_CALIBRATION FALSE #define GINPUT_MOUSE_NEED_CALIBRATION FALSE
#endif #endif
// TRUE/FALSE - Can the mouse/touch driver itself save calibration data? // TRUE/FALSE - Can the mouse/touch driver itself save calibration data?
#ifndef GINPUT_MOUSE_LLD_CALIBRATION_LOADSAVE #ifndef GINPUT_MOUSE_LLD_CALIBRATION_LOADSAVE
#define GINPUT_MOUSE_LLD_CALIBRATION_LOADSAVE FALSE #define GINPUT_MOUSE_LLD_CALIBRATION_LOADSAVE FALSE
#endif #endif
// n or -1 - n means to test calibration result (+/- pixels), -1 means not to. // n or -1 - n means to test calibration result (+/- pixels), -1 means not to.
#ifndef GINPUT_MOUSE_MAX_CALIBRATION_ERROR #ifndef GINPUT_MOUSE_MAX_CALIBRATION_ERROR
#define GINPUT_MOUSE_MAX_CALIBRATION_ERROR -1 #define GINPUT_MOUSE_MAX_CALIBRATION_ERROR -1
#endif #endif
// n - How many times to read (and average) per poll // n - How many times to read (and average) per poll
#ifndef GINPUT_MOUSE_READ_CYCLES #ifndef GINPUT_MOUSE_READ_CYCLES
#define GINPUT_MOUSE_READ_CYCLES 1 #define GINPUT_MOUSE_READ_CYCLES 1
#endif #endif
// n - Millisecs between poll's // n - Millisecs between poll's
#ifndef GINPUT_MOUSE_POLL_PERIOD #ifndef GINPUT_MOUSE_POLL_PERIOD
#define GINPUT_MOUSE_POLL_PERIOD 25 #define GINPUT_MOUSE_POLL_PERIOD 25
#endif #endif
// n - Movement allowed without discarding the CLICK or CLICKCXT event (+/- pixels) // n - Movement allowed without discarding the CLICK or CLICKCXT event (+/- pixels)
#ifndef GINPUT_MOUSE_MAX_CLICK_JITTER #ifndef GINPUT_MOUSE_MAX_CLICK_JITTER
#define GINPUT_MOUSE_MAX_CLICK_JITTER 1 #define GINPUT_MOUSE_MAX_CLICK_JITTER 1
#endif #endif
// n - Movement allowed without discarding the MOVE event (+/- pixels) // n - Movement allowed without discarding the MOVE event (+/- pixels)
#ifndef GINPUT_MOUSE_MAX_MOVE_JITTER #ifndef GINPUT_MOUSE_MAX_MOVE_JITTER
#define GINPUT_MOUSE_MAX_MOVE_JITTER 0 #define GINPUT_MOUSE_MAX_MOVE_JITTER 0
#endif #endif
// ms - Millisecs seperating a CLICK from a CXTCLICK // ms - Millisecs seperating a CLICK from a CXTCLICK
#ifndef GINPUT_MOUSE_CLICK_TIME #ifndef GINPUT_MOUSE_CLICK_TIME
#define GINPUT_MOUSE_CLICK_TIME 700 #define GINPUT_MOUSE_CLICK_TIME 700
#endif #endif
typedef struct MouseReading_t { typedef struct MouseReading_t {
coord_t x, y, z; coord_t x, y, z;
uint16_t buttons; uint16_t buttons;
} MouseReading; } MouseReading;
/*===========================================================================*/ /*===========================================================================*/
/* External declarations. */ /* External declarations. */
/*===========================================================================*/ /*===========================================================================*/
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
void ginput_lld_mouse_init(void); /**
void ginput_lld_mouse_get_reading(MouseReading *pt); * @brief Initialise the mouse/touch.
*
#if GINPUT_MOUSE_LLD_CALIBRATION_LOADSAVE * @notapi
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); void ginput_lld_mouse_init(void);
#endif
/**
/* This routine is provided to low level drivers to wakeup a value read from a thread context. * @brief Read the mouse/touch position.
* Particularly useful if GINPUT_MOUSE_POLL_PERIOD = TIME_INFINITE *
*/ * @param[in] pt A pointer to the structure to fill
void ginputMouseWakeup(void); *
* @note For drivers that don't support returning a position
/* This routine is provided to low level drivers to wakeup a value read from an ISR * when the touch is up (most touch devices), it should
* Particularly useful if GINPUT_MOUSE_POLL_PERIOD = TIME_INFINITE * return the previous position with the new Z value.
*/ * The z value is the pressure for those touch devices
void ginputMouseWakeupI(void); * that support it (-100 to 100 where > 0 is touched)
* or, 0 or 100 for those drivers that don't.
#ifdef __cplusplus *
} * @notapi
#endif */
void ginput_lld_mouse_get_reading(MouseReading *pt);
#endif /* GINPUT_NEED_MOUSE || GINPUT_NEED_TOUCH */
#if GINPUT_MOUSE_LLD_CALIBRATION_LOADSAVE
#endif /* _LLD_GINPUT_MOUSE_H */ /**
/** @} */ * @brief Load calibration data from a storage area on the touch controller.
*
* @param[in] instance The mouse instance number
*
* @note The instance parameter is currently always 0 as we only support
* one mouse/touch device at a time.
* @note This routine should only be provided if the driver has its own
* storage area where calibration data can be stored. The drivers
* option.h file should define GINPUT_MOUSE_LLD_CALIBRATION_LOADSAVE = TRUE
* if it supports this.
*
* @notapi
*/
const char *ginput_lld_mouse_calibration_load(uint16_t instance);
/**
* @brief Save calibration data to a storage area on the touch controller.
*
* @param[in] instance The mouse instance number
* @param[in] calbuf The calibration data to be saved
* @param[in] sz The size of the calibration data
*
* @note The instance parameter is currently always 0 as we only support
* one mouse/touch device at a time.
* @note This routine should only be provided if the driver has its own
* storage area where calibration data can be stored. The drivers
* option.h file should define GINPUT_MOUSE_LLD_CALIBRATION_LOADSAVE = TRUE
* if it supports this.
*
* @notapi
*/
void ginput_lld_mouse_calibration_save(uint16_t instance, const uint8_t *calbuf, size_t sz);
#endif
/**
* @brief Wakeup the high level code so that it attempts another read
*
* @note This routine is provided to low level drivers by the high level code
* @note Particularly useful if GINPUT_MOUSE_POLL_PERIOD = TIME_INFINITE
*
* @notapi
*/
void ginputMouseWakeup(void);
/**
* @brief Wakeup the high level code so that it attempts another read
*
* @note This routine is provided to low level drivers by the high level code
* @note Particularly useful if GINPUT_MOUSE_POLL_PERIOD = TIME_INFINITE
*
* @icode
* @notapi
*/
void ginputMouseWakeupI(void);
#ifdef __cplusplus
}
#endif
#endif /* GINPUT_NEED_MOUSE || GINPUT_NEED_TOUCH */
#endif /* _LLD_GINPUT_MOUSE_H */
/** @} */