49 lines
1.3 KiB
C++
49 lines
1.3 KiB
C++
#include "Adafruit_GenericDevice.h"
|
|
|
|
Adafruit_GenericDevice::Adafruit_GenericDevice(
|
|
busio_genericdevice_read_t read_func,
|
|
busio_genericdevice_write_t write_func,
|
|
busio_genericdevice_readreg_t readreg_func,
|
|
busio_genericdevice_writereg_t writereg_func) {
|
|
_read_func = read_func;
|
|
_write_func = write_func;
|
|
_readreg_func = readreg_func;
|
|
_writereg_func = writereg_func;
|
|
_begun = false;
|
|
}
|
|
|
|
bool Adafruit_GenericDevice::begin(void) {
|
|
_begun = true;
|
|
return true;
|
|
}
|
|
|
|
bool Adafruit_GenericDevice::write(const uint8_t *buffer, size_t len) {
|
|
if (!_begun)
|
|
return false;
|
|
|
|
return _write_func(buffer, len);
|
|
}
|
|
|
|
bool Adafruit_GenericDevice::read(uint8_t *buffer, size_t len) {
|
|
if (!_begun)
|
|
return false;
|
|
|
|
return _read_func(buffer, len);
|
|
}
|
|
|
|
bool Adafruit_GenericDevice::readRegister(uint8_t *addr_buf, uint8_t addrsiz,
|
|
uint8_t *buf, uint16_t bufsiz) {
|
|
if (!_begun || !_readreg_func)
|
|
return false;
|
|
|
|
return _readreg_func(addr_buf, addrsiz, buf, bufsiz);
|
|
}
|
|
|
|
bool Adafruit_GenericDevice::writeRegister(uint8_t *addr_buf, uint8_t addrsiz,
|
|
const uint8_t *buf,
|
|
uint16_t bufsiz) {
|
|
if (!_begun || !_writereg_func)
|
|
return false;
|
|
|
|
return _writereg_func(addr_buf, addrsiz, buf, bufsiz);
|
|
}
|