public OutputService( ITerminalContainer terminalContainer, IKernel32Api kernel32Api, ILogger logger) { _terminalContainer = terminalContainer ?? throw new ArgumentNullException(nameof(terminalContainer)); _kernel32Api = kernel32Api ?? throw new ArgumentNullException(nameof(kernel32Api)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _tasks = new Dictionary <ITerminal, Task>(); _previousBuffers = new ConcurrentDictionary <ITerminal, CharInfo[]>(); terminalContainer.ActiveTerminalChanged += TerminalContainer_ActiveTerminalChanged; }
public InputService( ITerminalContainer terminalContainer, IKernel32Api kernel32Api, IWinTerMulConfiguration configuration, ITerminalFactory terminalFactory) { _terminalContainer = terminalContainer ?? throw new ArgumentNullException(nameof(terminalContainer)); _kernel32Api = kernel32Api ?? throw new ArgumentNullException(nameof(kernel32Api)); _configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); _terminalFactory = terminalFactory ?? throw new ArgumentNullException(nameof(terminalFactory)); _prefixKeyWithoutCtrl = _configuration.PrefixKey[2]; _prefixKey = _prefixKeyWithoutCtrl - 'a' + 1; _charactersToIgnoreAfterPrefixKey = new[] { _prefixKey, _prefixKeyWithoutCtrl, 0 }; _kernel32Api.TreatControlCAsInput(); }