17#ifndef SHIFT_REGISTER_DRIVER_H
18#define SHIFT_REGISTER_DRIVER_H
33 typedef uint16_t (*
MapFn)(uint8_t r, uint8_t c);
47 void begin()
override;
67 uint8_t
byteAt(uint16_t idx)
const;
Abstract hardware driver interface for the XPoint crosspoint matrix.
Host-only virtual shift-register driver — no hardware dependency.
Definition ShiftRegisterDriver.h:30
~ShiftRegisterDriver()
Destructor — frees the shadow buffer.
Definition ShiftRegisterDriver.cpp:14
uint16_t(* MapFn)(uint8_t r, uint8_t c)
Function pointer type: (row, col) → output bit index.
Definition ShiftRegisterDriver.h:33
uint8_t byteAt(uint16_t idx) const
Read one byte from the shadow buffer.
Definition ShiftRegisterDriver.cpp:40
void commitPhysicalUpdates() override
No-op for this virtual driver (no physical chain to clock).
Definition ShiftRegisterDriver.cpp:36
void begin() override
Zero the shadow buffer.
Definition ShiftRegisterDriver.cpp:19
void setNodeHardware(uint8_t r, uint8_t c, bool state) override
Set or clear one bit in the shadow buffer.
Definition ShiftRegisterDriver.cpp:23
uint16_t byteCount() const
Return the number of bytes in the shadow buffer.
Definition ShiftRegisterDriver.h:73
Abstract base class for all XPoint hardware drivers.
Definition XPointDriver.h:41