Beispiel #1
0
        //TODO get pipeline object

        internal VertexDataProcessor(LightDevice device, IntPtr layout)
        {
            _device = device;
            device.AddComponent(this);

            _inputLayout  = layout;
            _bufferUpdate = new BufferUpdate(device);
        }
        public void ParseMessage(string message)
        {
            MessageType messageType = ClassifyMessage(message);

            if (messageType == MessageType.Spot)
            {
                //If add spot
                //1. Process it.

                //2. Delete any Matching Call and Band
                //3. Add it.
                //Notes: In the case that another contact that shares multipliers is made, you get an Add which is really an update, with the reduced mult status
                //Notes: When you

                Spot s = new Spot(message);

                LogAction("Del/Add", s);
                DeleteSpot(s);
                AddSpot(s);
            }
            else if (messageType == MessageType.SpotDelete || messageType == MessageType.SpotDupe)
            {
                //If delete, or dupe, then parse the Spot delete it.
                Spot s = new Spot(message, true);

                LogAction("Del", s);

                DeleteSpot(s);
            }
            else if (messageType == MessageType.Contact)
            {
                //If Contact, then parse the Contact and delete it.
                Contact c = new Contact(message);

                LogAction("Contact", c);

                DeleteSpot(c);
            }

            MessageBuffer.Add($"{DateTime.Now.ToString("yyyy-dd-mm HH:mm:ss.ffffff")} | {Regex.Replace(message, @"\t|\n|\r", "")}");
            BufferUpdate?.Invoke(this, new SpotAnalysisUpdatedEventArgs());
        }