class LightController { protected: int bjtCount; const int *bjtPins; int *bjtState; private: void setAbsoluteState(const char data[], int index); void parseRelativeState(const char data[], int index, int steps); int clampState(int stateValue); void commitState(int index); void commitPinState(int index); public: LightController(const int bjtPins[], int bjtCount); void updateState(const char data[], int steps); int getBjtCount(); const int *getBjtPins(); int *getBjtState(); };