Exemplo n.º 1
0
        private async void ScanButton_Click(object aSender, RoutedEventArgs aEvent)
        {
            // Disable button until we're done here
            ScanButton.Click -= ScanButton_Click;
            if ((string)ScanButton.Content == "Start Scanning")
            {
                StartScanning?.Invoke(this, new EventArgs());
                if (_bpServer != null)
                {
                    await _bpServer.SendMessage(new StartScanning());
                }

                ScanButton.Content = "Stop Scanning";
            }
            else
            {
                StopScanning?.Invoke(this, new EventArgs());
                if (_bpServer != null)
                {
                    await _bpServer?.SendMessage(new StopScanning());
                }

                ScanButton.Content = "Start Scanning";
            }

            ScanButton.Click += ScanButton_Click;
        }
Exemplo n.º 2
0
        internal static Task <ServerMessage> SendStartScanning(ButtplugFFIMessageSorter aSorter, ButtplugFFIClientHandle aHandle)
        {
            var builder = new FlatBufferBuilder(1024);

            StartScanning.StartStartScanning(builder);
            var msg = StartScanning.EndStartScanning(builder);

            return(SendClientMessage(aSorter, aHandle, builder, ClientMessageType.StartScanning, msg.Value));
        }
Exemplo n.º 3
0
        public StartScanning ProcessSection(int Start, int Scanning, string SerialiseData)
        {
            bool ProcessSection = true;
            int  InitialStart   = Start;

            Scanning = GoToIndexOfCharacter(SerialiseData, '@', Start);
            uint NetID = uint.Parse(SerialiseData.Substring(Start, Scanning - Start));

            if (NetworkIdentity.spawned.ContainsKey(NetID) == false || NetworkIdentity.spawned[NetID] == null)
            {
                ProcessSection = false;
            }


            Start    = Scanning + 1;
            Scanning = GoToIndexOfCharacter(SerialiseData, '{', Scanning);
            string Name = SerialiseData.Substring(Start, Scanning - Start);

            if (ProcessSection == false ||
                NetworkIdentity.spawned.ContainsKey(NetID) == false ||
                SpriteHandlerManager.Instance.PresentSprites.ContainsKey(NetworkIdentity.spawned[NetID]) == false ||
                SpriteHandlerManager.Instance.PresentSprites[NetworkIdentity.spawned[NetID]].ContainsKey(Name) == false)
            {
                ProcessSection = false;
            }

            SpriteHandler SP = null;

            if (ProcessSection)
            {
                SP = SpriteHandlerManager.Instance.PresentSprites[NetworkIdentity.spawned[NetID]][Name];
            }


            Scanning++;

            if (SerialiseData.Length > Scanning && SerialiseData[Scanning] == '>')
            {
                Scanning += 1;
                Start     = Scanning;
                Scanning  = GotoIndexOfNextControlCharacter(SerialiseData, Scanning);
                if (ProcessSection)
                {
                    int SpriteID = int.Parse(SerialiseData.Substring(Start, Scanning - Start));
                    SP.SetSpriteSO(SpriteCatalogue.Instance.Catalogue[SpriteID], Network: false);
                }
            }

            if (SerialiseData.Length > Scanning && SerialiseData[Scanning] == '<')
            {
                Scanning += 1;
                Start     = Scanning;
                Scanning  = GotoIndexOfNextControlCharacter(SerialiseData, Scanning);
                if (ProcessSection)
                {
                    SP.ChangeSpriteVariant(int.Parse(SerialiseData.Substring(Start, Scanning - Start)), NetWork: false);
                }
            }

            if (SerialiseData.Length > Scanning && SerialiseData[Scanning] == '&')
            {
                Scanning += 1;
                Start     = Scanning;
                Scanning  = GotoIndexOfNextControlCharacter(SerialiseData, Scanning);
                if (ProcessSection)
                {
                    SP.ChangeSprite(int.Parse(SerialiseData.Substring(Start, Scanning - Start)), false);
                }
            }

            if (SerialiseData.Length > Scanning && SerialiseData[Scanning] == '#')
            {
                Scanning += 1;
                Start     = Scanning;
                Scanning  = GotoIndexOfNextControlCharacter(SerialiseData, Scanning);
                if (ProcessSection)
                {
                    SP.AnimateOnce(int.Parse(SerialiseData.Substring(Start, Scanning - Start)), false);
                }
            }

            if (SerialiseData.Length > Scanning && SerialiseData[Scanning] == ',')
            {
                Scanning++;
                if (ProcessSection)
                {
                    SP.PushTexture(false);
                }
            }

            if (SerialiseData.Length > Scanning && SerialiseData[Scanning] == '?')
            {
                Scanning++;
                if (ProcessSection)
                {
                    SP.Empty(false);
                }
            }


            if (SerialiseData.Length > Scanning && SerialiseData[Scanning] == '~')
            {
                Scanning++;
                if (ProcessSection)
                {
                    SP.PushClear(false);
                }
            }

            if (SerialiseData.Length > Scanning && SerialiseData[Scanning] == '^')
            {
                Scanning++;
                if (ProcessSection)
                {
                    SP.ClearPallet(false);
                }
            }


            if (SerialiseData.Length > Scanning && SerialiseData[Scanning] == '`')
            {
                Color TheColour = Color.white;
                TheColour.r = ((int)SerialiseData[Scanning + 1] / 255f);
                TheColour.g = ((int)SerialiseData[Scanning + 2] / 255f);
                TheColour.b = ((int)SerialiseData[Scanning + 3] / 255f);
                TheColour.a = ((int)SerialiseData[Scanning + 4] / 255f);
                Scanning    = Scanning + 4;
                if (ProcessSection)
                {
                    SP.SetColor(TheColour, false);
                }

                Scanning++;
            }

            if (SerialiseData.Length > Scanning && SerialiseData[Scanning] == '%')
            {
                Scanning = Scanning + 1;
                int paletteCount = SerialiseData[Scanning];

                List <Color> Colours = new List <Color>();
                for (int i = 0; i < paletteCount; i++)
                {
                    Colours.Add(GetColourFromStringIndex(SerialiseData, Scanning + (i * 4)));
                }

                Scanning = Scanning + 1;
                Scanning = Scanning + 4 * paletteCount;
                if (ProcessSection)
                {
                    SP.SetPaletteOfCurrentSprite(Colours, false);
                }
            }

            Scanning++;
            Start = Scanning;
            if (ProcessSection == false)
            {
                UnprocessedData.Add(SerialiseData.Substring(InitialStart, Start - InitialStart));
            }

            StartScanning StartScanning = new StartScanning()
            {
                INStart    = Start,
                INScanning = Scanning,
            };

            return(StartScanning);
        }