예제 #1
0
        private void GetDrivers(SessionInfo info)
        {
            if (_mustReloadDrivers)
            {
                _drivers.Clear();
                _mustReloadDrivers = false;
            }

            // Assume max 70 drivers
            for (int id = 0; id < 70; id++)
            {
                // Find existing driver in list
                var driver = _drivers.SingleOrDefault(d => d.Id == id);
                if (driver == null)
                {
                    driver = Driver.FromSessionInfo(info, id);
                    driver.IsCurrentDriver = false;

                    // If no driver found, end of list reached
                    if (driver == null) break;

                    // Add to list
                    _drivers.Add(driver);
                }
                else
                {
                    // Update and check if driver swap occurred
                    var oldId = driver.CustId;
                    var oldName = driver.Name;
                    driver.ParseDynamicSessionInfo(info);

                    if (oldId != driver.CustId)
                    {
                        var e = new DriverSwapEventArgs(oldId, driver.Id, oldName, driver.Name, driver, _telemetry.SessionTime.Value);
                        this.OnDriverSwap(e);
                    }
                }

                if (_sdk.DriverId == driver.Id)
                {
                    _driver = driver;
                    _driver.IsCurrentDriver = true;
                }
            }
        }
예제 #2
0
 protected virtual void OnDriverSwap(DriverSwapEventArgs e)
 {
     if (this.DriverSwapEvent != null) this.DriverSwapEvent(this, e);
 }