public IButton RegisterButton(IArea area, Enum id, IBinaryInput input, Action<IButton> initializer = null) { if (area == null) throw new ArgumentNullException(nameof(area)); if (input == null) throw new ArgumentNullException(nameof(input)); var button = new Button( ComponentIdGenerator.Generate(area.Id, id), new PortBasedButtonEndpoint(input), _timerService, _settingsService); initializer?.Invoke(button); area.AddComponent(button); return button; }
public void RegisterRollerShutterButtons( IArea area, Enum upId, IBinaryInput upInput, Enum downId, IBinaryInput downInput) { if (area == null) throw new ArgumentNullException(nameof(area)); if (upInput == null) throw new ArgumentNullException(nameof(upInput)); if (downInput == null) throw new ArgumentNullException(nameof(downInput)); var upButton = new Button( ComponentIdGenerator.Generate(area.Id, upId), new PortBasedButtonEndpoint(upInput), _timerService, _settingsService); area.AddComponent(upButton); var downButton = new Button( ComponentIdGenerator.Generate(area.Id, downId), new PortBasedButtonEndpoint(downInput), _timerService, _settingsService); area.AddComponent(downButton); }
public IButton RegisterVirtualButton(IArea area, Enum id, Action<IButton> initializer = null) { if (area == null) throw new ArgumentNullException(nameof(area)); var virtualButton = new Button(ComponentIdGenerator.Generate(area.Id, id), new EmptyButtonEndpoint(), _timerService, _settingsService); initializer?.Invoke(virtualButton); area.AddComponent(virtualButton); return virtualButton; }