Example #1
0
        private void SendTemplateChange(string template, InputTemplateChange change)
        {
            if (m_Subscribers == null)
            {
                return;
            }

            // Don't mirror remoted templates to other remotes.
            if (template.StartsWith(kRemoteTemplateNamespacePrefix))
            {
                return;
            }

            Message msg;

            switch (change)
            {
            case InputTemplateChange.Added:
            case InputTemplateChange.Replaced:
                var message = NewTemplateMsg.Create(this, template);
                if (message == null)
                {
                    return;
                }
                msg = message.Value;
                break;

            case InputTemplateChange.Removed:
                msg = RemoveTemplateMsg.Create(this, template);
                break;

            default:
                return;
            }

            Send(msg);
        }
Example #2
0
        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.NewTemplate:
                NewTemplateMsg.Process(this, msg);
                break;

            case MessageType.RemoveTemplate:
                RemoveTemplateMsg.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;
            }
        }