initial commit
This commit is contained in:
100
components/ExternLib/SensorLib/src/TouchDrvInterface.cpp
Normal file
100
components/ExternLib/SensorLib/src/TouchDrvInterface.cpp
Normal file
@@ -0,0 +1,100 @@
|
||||
/**
|
||||
*
|
||||
* @license MIT License
|
||||
*
|
||||
* Copyright (c) 2022 lewis he
|
||||
*
|
||||
* Permission is hereby granted,free of charge,to any person obtaining a copy
|
||||
* of this software and associated documentation files (the "Software"),to deal
|
||||
* in the Software without restriction,including without limitation the rights
|
||||
* to use,copy,modify,merge,publish,distribute,sublicense,and/or sell
|
||||
* copies of the Software,and to permit persons to whom the Software is
|
||||
* furnished to do so,subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS OR
|
||||
* IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,DAMAGES OR OTHER
|
||||
* LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE,ARISING FROM,
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*
|
||||
* @file TouchDrvInterface.cpp
|
||||
* @author Lewis He (lewishe@outlook.com)
|
||||
* @date 2023-09-21
|
||||
*
|
||||
*/
|
||||
#include "TouchDrvInterface.hpp"
|
||||
|
||||
TouchDrvInterface::TouchDrvInterface() :
|
||||
_resX(0),
|
||||
_resY(0),
|
||||
_xMax(0),
|
||||
_yMax(0),
|
||||
_swapXY(false),
|
||||
_mirrorX(false),
|
||||
_mirrorY(false),
|
||||
_rst(-1),
|
||||
_irq(-1),
|
||||
_chipID(0x00),
|
||||
_HButtonCallback(nullptr),
|
||||
_userData(nullptr)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
TouchDrvInterface::~TouchDrvInterface()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
uint32_t TouchDrvInterface::getChipID()
|
||||
{
|
||||
return _chipID;
|
||||
}
|
||||
|
||||
|
||||
void TouchDrvInterface::setPins(int rst, int irq)
|
||||
{
|
||||
_irq = irq;
|
||||
_rst = rst;
|
||||
}
|
||||
|
||||
void TouchDrvInterface::setSwapXY(bool swap)
|
||||
{
|
||||
_swapXY = swap;
|
||||
}
|
||||
|
||||
void TouchDrvInterface::setMirrorXY(bool mirrorX, bool mirrorY)
|
||||
{
|
||||
_mirrorX = mirrorX;
|
||||
_mirrorY = mirrorY;
|
||||
}
|
||||
|
||||
void TouchDrvInterface::setMaxCoordinates(uint16_t x, uint16_t y)
|
||||
{
|
||||
_xMax = x;
|
||||
_yMax = y;
|
||||
}
|
||||
|
||||
void TouchDrvInterface::updateXY(uint8_t pointNum, int16_t *xBuffer, int16_t *yBuffer)
|
||||
{
|
||||
if (!pointNum)
|
||||
return;
|
||||
for (int i = 0; i < pointNum; ++i) {
|
||||
if (_swapXY) {
|
||||
uint16_t tmp = xBuffer[i];
|
||||
xBuffer[i] = yBuffer[i];
|
||||
yBuffer[i] = tmp;
|
||||
}
|
||||
if (_mirrorX && _xMax ) {
|
||||
xBuffer[i] = _xMax - xBuffer[i];
|
||||
}
|
||||
if (_mirrorY && _yMax) {
|
||||
yBuffer[i] = _yMax - yBuffer[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user