Ejemplo n.º 1
0
        private void RocketLeagueWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            var sw = new Stopwatch();

            sw.Start();

            while (!RocketLeagueWorker.CancellationPending)
            {
                // Refresh address every second
                if (sw.ElapsedMilliseconds > 1000)
                {
                    // Ensure process is still running
                    if (MainController.MainModel.RocketLeagueProcess.HasExited)
                    {
                        MainController.MainModel.Status = "Game not found";
                        LogitechGSDK.LogiLedRestoreLighting();
                        return;
                    }
                    sw.Restart();
                }

                // Update model boost amount
                MainController.MainModel.GetBoostAmount();
                FadeInIfHigher(MainController.MainModel);
                // Generate new bitmap
                var bitmap = CreateBoostBitmap(MainController.MainModel);

                // Post it to device
                LogitechGSDK.LogiLedSetLightingFromBitmap(OrionController.BitmapToByteArray(bitmap));
                Thread.Sleep(100);
            }
        }
Ejemplo n.º 2
0
        public void FadeInIfHigher(MainModel mainModel)
        {
            if (mainModel.BoostAmount <= mainModel.PreviousBoost)
            {
                return;
            }
            const int amountOfSteps = 6;

            var difference         = mainModel.BoostAmount - mainModel.PreviousBoost;
            var differenceStep     = difference / amountOfSteps;
            var differenceStepRest = difference % amountOfSteps;

            mainModel.BoostAmount = mainModel.PreviousBoost;

            for (var i = 0; i < amountOfSteps; i++)
            {
                if (differenceStepRest > 0)
                {
                    differenceStepRest    -= 1;
                    mainModel.BoostAmount += 1;
                }
                mainModel.BoostAmount += differenceStep;

                var bitmap = CreateBoostBitmap(mainModel);
                LogitechGSDK.LogiLedSetLightingFromBitmap(OrionController.BitmapToByteArray(bitmap));
                Thread.Sleep(50);
            }
        }
Ejemplo n.º 3
0
        public RocketLeagueController(MainController mainController)
        {
            // Setup Logitech SDK
            OrionController.SetupSdk();

            MainController             = mainController;
            RocketLeagueWorker         = new BackgroundWorker();
            RocketLeagueWorker.DoWork += RocketLeagueWorker_DoWork;
        }