?
TouchPanelDetectorX.hpp@0:cacfc9e25452, 2019-06-04 (annotated)
- Committer:
- phungductung
- Date:
- Tue Jun 04 21:58:08 2019 +0000
- Revision:
- 0:cacfc9e25452
?;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
phungductung | 0:cacfc9e25452 | 1 | //------------------------------------------------------ |
phungductung | 0:cacfc9e25452 | 2 | // Touch panel detector for x axis class |
phungductung | 0:cacfc9e25452 | 3 | // |
phungductung | 0:cacfc9e25452 | 4 | // 2016/03/31, Copyright (c) 2016 MIKAMI, Naoki |
phungductung | 0:cacfc9e25452 | 5 | //------------------------------------------------------ |
phungductung | 0:cacfc9e25452 | 6 | |
phungductung | 0:cacfc9e25452 | 7 | #ifndef F746_TOUCH_PANELDETECTORX_HPP |
phungductung | 0:cacfc9e25452 | 8 | #define F746_TOUCH_PANELDETECTORX_HPP |
phungductung | 0:cacfc9e25452 | 9 | |
phungductung | 0:cacfc9e25452 | 10 | #include "GuiBase.hpp" |
phungductung | 0:cacfc9e25452 | 11 | |
phungductung | 0:cacfc9e25452 | 12 | namespace Mikami |
phungductung | 0:cacfc9e25452 | 13 | { |
phungductung | 0:cacfc9e25452 | 14 | class TouchPanelDetectorX : public GuiBase |
phungductung | 0:cacfc9e25452 | 15 | { |
phungductung | 0:cacfc9e25452 | 16 | public: |
phungductung | 0:cacfc9e25452 | 17 | // Constructor |
phungductung | 0:cacfc9e25452 | 18 | TouchPanelDetectorX(uint16_t x1, uint16_t x2, |
phungductung | 0:cacfc9e25452 | 19 | uint16_t y1, uint16_t y2) |
phungductung | 0:cacfc9e25452 | 20 | : X1_(x1), X2_(x2), Y1_(y1), Y2_(y2) {} |
phungductung | 0:cacfc9e25452 | 21 | |
phungductung | 0:cacfc9e25452 | 22 | bool IsTouched(uint16_t xIn, uint16_t &xOut) |
phungductung | 0:cacfc9e25452 | 23 | { |
phungductung | 0:cacfc9e25452 | 24 | GetTsState(); |
phungductung | 0:cacfc9e25452 | 25 | |
phungductung | 0:cacfc9e25452 | 26 | if (!state_.touchDetected) return false; |
phungductung | 0:cacfc9e25452 | 27 | |
phungductung | 0:cacfc9e25452 | 28 | uint16_t x = state_.touchX[0]; |
phungductung | 0:cacfc9e25452 | 29 | uint16_t y = state_.touchY[0]; |
phungductung | 0:cacfc9e25452 | 30 | |
phungductung | 0:cacfc9e25452 | 31 | if ( (x < X1_) || (x > X2_) || (y < Y1_) || (y > Y2_) ) |
phungductung | 0:cacfc9e25452 | 32 | return false; |
phungductung | 0:cacfc9e25452 | 33 | |
phungductung | 0:cacfc9e25452 | 34 | const int WD = 8; |
phungductung | 0:cacfc9e25452 | 35 | if ( (x < xIn-WD) || (x > xIn+WD) ) return false; |
phungductung | 0:cacfc9e25452 | 36 | |
phungductung | 0:cacfc9e25452 | 37 | xOut = (x >= X1_) ? x : X1_; |
phungductung | 0:cacfc9e25452 | 38 | xOut = (x <= X2_) ? x : X2_; |
phungductung | 0:cacfc9e25452 | 39 | return true; |
phungductung | 0:cacfc9e25452 | 40 | } |
phungductung | 0:cacfc9e25452 | 41 | |
phungductung | 0:cacfc9e25452 | 42 | private: |
phungductung | 0:cacfc9e25452 | 43 | const uint16_t X1_, X2_, Y1_, Y2_; |
phungductung | 0:cacfc9e25452 | 44 | }; |
phungductung | 0:cacfc9e25452 | 45 | } |
phungductung | 0:cacfc9e25452 | 46 | #endif // F746_TOUCH_PANELDETECTORX_HPP |