/// <summary> /// Whenever a session starts this function will trigger the track parser to load the new track file. /// The event Track_Loaded is fired with a 500ms delay to allow the track parser to complete. /// The session_start function is trigger from the Simulator_StatePoller, which runs seperately anyway. /// </summary> /// <param name="sender"></param> private void Telemetry_Session_Start(object sender) { // Start track parser. // Wait 500ms because the track-parser may need some time to complete parsing the track. if (Net == null || !Net.IsClient) { Track = new Track.Track(Telemetry.m.Sim, Sim.Session.GameData_TrackFile); Thread.Sleep(1000); } if (Track_Loaded != null) Track_Loaded(null); }
/// <summary> /// Load new track. Specify location of gamedirectory and file. /// </summary> /// <param name="sim">Source simulator of track</param> /// <param name="track">Relative path from gamedirectory to track file OR track name.</param> public void Track_Load(ISimulator sim, string track) { if (Net == null || !Net.IsClient) { Track = new Track.Track(sim, track); } }
/// <summary> /// Unloads track. /// </summary> public void Track_Unload() { Track = null; }
//TODO: move to track class /// <summary> /// Loads route from network. /// </summary> /// <param name="routeCollection"></param> public void NetworkTrack_LoadRoute(RouteCollection routeCollection) { if (Net != null && Net.IsClient) { Track = new Track.Track(routeCollection); } }
/// <summary> /// 'Force' a track reload. /// </summary> public void ForceTrackLoad() { if (Net != null && Telemetry.m.Sim != null) { Track = new Track.Track(Telemetry.m.Sim, Sim.Session.GameData_TrackFile); } }
/// <summary> /// Сохранить трек в файл /// </summary> /// <param name="fileName">Имя файла</param> /// <param name="parser">Плагин для сохранения</param> private void SaveTrackProcess(string fileName, ITrackParser parser) { try { curParser = parser; if (File.Exists(saveTrackFileDialog.FileName)) File.Delete(saveTrackFileDialog.FileName); parser.SaveTrack(track, pTracks, saveTrackFileDialog.FileName); curParser = null; //MessageBox.Show("Сохранение успешно!"); //statusLabel.Text = "Сохранено"; } catch (Exception ex) { Logger.Error(this.GetType().FullName, ex); //MessageBox.Show("Ошибка во время сохранения, возможно файл используется другой программой"); //statusLabel.Text = "Ошибка"; isError = true; curParser = null; } }
/// <summary> /// Сохранить таблицу в файл /// </summary> /// <param name="fileName">Имя файла</param> /// <param name="parser">Обработчик трека для хранения</param> private void SaveFilteredProcess(String fileName, ITrackParser parser) { try { curParser = parser; if (File.Exists(fileName)) File.Delete(fileName); parser.SaveFilteredTrack(track, from, to, fileName, false); //MessageBox.Show("Сохранение успешно!"); curParser = null; } catch (Exception ex) { isError = true; Logger.Error(this.GetType().FullName, ex); } }
public LibraryLoader(ITrackConfigurationSearcher trackConfigurationSearcher, ITrackParser trackParser) { this.trackConfigurationSearcher = trackConfigurationSearcher ?? throw new ArgumentNullException(nameof(trackConfigurationSearcher)); this.trackParser = trackParser ?? throw new ArgumentNullException(nameof(trackParser)); }