Example #1
0
        public void Receiver()
        {
            var receiver         = new Receiver(_channel1);
            var receiverInput    = new InputRemoting(receiver);
            var receiverDisposer = receiverInput.Subscribe(receiverInput);

            receiverInput.StartSending();
            receiverInput.StopSending();
            receiverDisposer.Dispose();
        }
Example #2
0
        public void Sender()
        {
            var sender         = new Sender();
            var senderInput    = new InputRemoting(sender);
            var senderDisposer = senderInput.Subscribe(new Observer(_channel1));

            senderInput.StartSending();
            senderInput.StopSending();
            senderDisposer.Dispose();
        }
        public void Receiver()
        {
            var receiver = new Receiver(_channel1);

            Assert.That(receiver.remoteDevices, Is.Empty);
            Assert.That(receiver.remoteLayouts, Is.Empty);
            var receiverInput    = new InputRemoting(receiver);
            var receiverDisposer = receiverInput.Subscribe(receiverInput);

            receiverInput.StartSending();
            receiverInput.StopSending();
            receiverDisposer.Dispose();
        }
        public void Sender()
        {
            var sender = new Sender();

            Assert.That(sender.layouts, Is.Not.Empty);
            Assert.That(sender.devices, Is.Not.Empty);
            var senderInput    = new InputRemoting(sender);
            var senderDisposer = senderInput.Subscribe(new Observer(_channel1));

            senderInput.StartSending();
            senderInput.StopSending();
            senderDisposer.Dispose();
            sender.Dispose();
        }
        public IEnumerator AddDevice()
        {
            var sender      = new Sender();
            var senderInput = new InputRemoting(sender);
            var senderSubscriberDisposer = senderInput.Subscribe(new Observer(_channel1));

            var receiver      = new Receiver(_channel2);
            var receiverInput = new InputRemoting(receiver);
            var receiverSubscriberDisposer = receiverInput.Subscribe(receiverInput);

            InputDevice       device = null;
            InputDeviceChange change = default;

            receiver.onDeviceChange += (_device, _change) => {
                device = _device;
                change = _change;
            };
            string layoutName = null;
            InputControlLayoutChange layoutChange = default;

            receiver.onLayoutChange += (_name, _change) => {
                layoutName   = _name;
                layoutChange = _change;
            };

            receiverInput.StartSending();
            senderInput.StartSending();

            yield return(new WaitUntil(() => device != null));

            yield return(new WaitUntil(() => layoutName != null));

            Assert.That(device, Is.Not.Null);
            Assert.That(change, Is.EqualTo(InputDeviceChange.Added));
            Assert.That(layoutName, Is.Not.Null);
            Assert.That(layoutChange, Is.EqualTo(InputControlLayoutChange.Added));

            Assert.That(receiver.remoteLayouts, Is.Not.Empty);
            Assert.That(receiver.remoteDevices, Is.Not.Empty);
            Assert.That(receiver.remoteDevices, Has.All.Matches <InputDevice>(d => d.remote));

            senderInput.StopSending();
            receiverInput.StopSending();

            senderSubscriberDisposer.Dispose();
            receiverSubscriberDisposer.Dispose();
            sender.Dispose();
            receiver.Dispose();
        }