/// <summary> /// Sends the specified signal to the peripheral. /// </summary> /// <param name="signal">The signal.</param> /// <exception cref="System.ArgumentOutOfRangeException">null</exception> public void Signal(ControlSignal signal) { switch (signal) { case ControlSignal.Halt: Gpu.Halt(); break; case ControlSignal.Resume: Gpu.Resume(); break; default: throw new ArgumentOutOfRangeException(nameof(signal), signal, null); } }