private void SendLayoutChange(string layout, InputControlLayoutChange change) { if (m_Subscribers == null) { return; } Message msg; switch (change) { case InputControlLayoutChange.Added: case InputControlLayoutChange.Replaced: var message = NewLayoutMsg.Create(this, layout); if (message == null) { return; } msg = message.Value; break; case InputControlLayoutChange.Removed: msg = RemoveLayoutMsg.Create(this, layout); break; default: return; } Send(msg); }
void IObserver <Message> .OnNext(Message msg) { switch (msg.type) { case MessageType.Connect: ConnectMsg.Process(this, msg); break; case MessageType.Disconnect: DisconnectMsg.Process(this, msg); break; case MessageType.NewLayout: NewLayoutMsg.Process(this, msg); break; case MessageType.RemoveLayout: RemoveLayoutMsg.Process(this, msg); break; case MessageType.NewDevice: NewDeviceMsg.Process(this, msg); break; case MessageType.NewEvents: NewEventsMsg.Process(this, msg); break; case MessageType.ChangeUsages: ChangeUsageMsg.Process(this, msg); break; case MessageType.RemoveDevice: RemoveDeviceMsg.Process(this, msg); break; case MessageType.StartSending: StartSendingMsg.Process(this, msg); break; case MessageType.StopSending: StopSendingMsg.Process(this, msg); break; } }
private void SendLayoutChange(string layout, InputControlLayoutChange change) { if (m_Subscribers == null) { return; } // Don't mirror remoted layouts to other remotes. if (layout.StartsWith(kRemoteLayoutNamespacePrefix)) { return; } Message msg; switch (change) { case InputControlLayoutChange.Added: case InputControlLayoutChange.Replaced: var message = NewLayoutMsg.Create(this, layout); if (message == null) { return; } msg = message.Value; break; case InputControlLayoutChange.Removed: msg = RemoveLayoutMsg.Create(this, layout); break; default: return; } Send(msg); }