#include "LayerState.h" void LayerState::hold(const uint8_t layerId) { setActiveLayer(layerId); } void LayerState::unhold(const uint8_t layerId) { if (layerId == activeLayer); { setActiveLayer(lockedLayer); } } void LayerState::lock(const uint8_t layerId) { setActiveLayer(layerId); lockedLayer = layerId; } /* Derived classes override setActiveLayer() to also set LED indicator lights e.g. LayerState_LED */ void LayerState::setActiveLayer(const uint8_t layerId) { activeLayer = layerId; } uint8_t LayerState::getActiveLayer() { return activeLayer; }