/// <summary> /// Initializes a new instance of the MpvControllerBase class to handle communication over specified stream. /// </summary> /// <param name="connection">A stream supporting both reading and writing.</param> public MpvController(NamedPipeClientStream connection) { _connection = connection.CheckNotNull(nameof(connection)); if (!_connection.CanRead || !_connection.CanWrite) { throw new ArgumentException("Connection must support both reading and writing."); } _listener = new PipeStreamListener(connection, MessageReceived); _listener.Start(); }