A library with drivers for different peripherals on the LPC4088 QuickStart Board or related add-on boards.
Dependents: LPC4088test LPC4088test_ledonly LPC4088test_deleteall LPC4088_RAMtest ... more
Diff: TouchPanel.h
- Revision:
- 4:b32cf4ef45c5
- Child:
- 12:15597e45eea0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TouchPanel.h Fri Oct 18 12:48:58 2013 +0200 @@ -0,0 +1,77 @@ + +#ifndef TOUCHPANEL_H +#define TOUCHPANEL_H + + +/** + * An abstract class that represents touch panels. + */ +class TouchPanel { +public: + + typedef struct { + int32_t x; + int32_t y; + int32_t z; + } touchCoordinate_t; + + + /** + * Initialize the touch controller. This method must be called before + * calibrating or reading data from the controller + * + * @param width the width of the touch panel. This is usually the same as + * the width of the display + * @param height the height of the touch panel. This is usually the same + * as the height of the display. + * + * @return true if the request was successful; otherwise false + */ + virtual bool init(uint16_t width, uint16_t height) = 0; + + /** + * Read coordinates from the touch panel. + * + * @param coord pointer to coordinate object. The read coordinates will be + * written to this object. + */ + virtual bool read(touchCoordinate_t &coord) = 0; + + + /** + * Start to calibrate the display + * + * @return true if the request was successful; otherwise false + */ + virtual bool calibrateStart() = 0; + + /** + * Get the next calibration point. Draw an indicator on the screen + * at the coordinates and ask the user to press/click on the indicator. + * Please note that waitForCalibratePoint() must be called after this + * method. + * + * @param x the x coordinate is written to this argument + * @param y the y coordinate is written to this argument + * + * @return true if the request was successful; otherwise false + */ + virtual bool getNextCalibratePoint(uint16_t* x, uint16_t* y) = 0; + + /** + * Wait for a calibration point to have been pressed and recored. + * This method must be called just after getNextCalibratePoint(). + * + * @param morePoints true is written to this argument if there + * are more calibrations points available; otherwise it will be false + * @param timeout maximum number of milliseconds to wait for + * a calibration point. Set this argument to 0 to wait indefinite. + * + * @return true if the request was successful; otherwise false + */ + virtual bool waitForCalibratePoint(bool* morePoints, uint32_t timeout) = 0; + + +}; + +#endif