Files

44 lines
1002 B
C++

#ifndef __TOUCH_H__
#define __TOUCH_H__
#include <cstdint>
#include "common_types.h"
class GT1151 {
public:
static GT1151 &instance();
static constexpr uint8_t kMaxTouch = 5;
static constexpr uint8_t kPressDown = 0x80;
static constexpr uint8_t kCathPress = 0x40;
RetCode init();
uint8_t scan(uint8_t mode);
uint16_t x(uint8_t index) const;
uint16_t y(uint8_t index) const;
uint8_t status() const;
bool isActive(uint8_t index) const;
uint8_t activeCount() const;
static volatile uint8_t irq_flag;
private:
GT1151();
~GT1151() = default;
GT1151(const GT1151 &) = delete;
GT1151 &operator=(const GT1151 &) = delete;
uint8_t writeReg(uint16_t reg, const uint8_t *buf, uint8_t len);
void readReg(uint16_t reg, uint8_t *buf, uint8_t len);
uint8_t sendConfig(uint8_t mode);
void extiInit();
uint16_t x_[kMaxTouch] = {0};
uint16_t y_[kMaxTouch] = {0};
uint8_t sta_ = 0;
uint8_t touchtype_ = 0;
};
#endif