private void OnUpdateStarted(object sender, MapChangeEventArgs e) { this.DelayedUpdateStartTimer.Start(); }
private void OnUpdateStopped(object sender, MapChangeEventArgs e) { this.Dispatcher.BeginInvoke((Action)(() => this.Title = "Unknown Location")); this.Dispatcher.BeginInvoke((Action)(() => this.TabControl.SelectedItem = this.TabStartup)); this.MusicPlayer.FadeOut(); }
private void Run() { bool incomingUpdates = false; DateTime timeSinceLastTick = DateTime.Now; uint tick = 0; uint mapID = 0; while (this.IsRunning) { if (tick == MumbleLink.Tick && (DateTime.Now - timeSinceLastTick).Seconds > this.CheckFrequency) { if (incomingUpdates) { incomingUpdates = false; if (this.UpdateStopped != null) { MapChangeEventArgs e = new MapChangeEventArgs(mapID, tick); this.UpdateStopped(this, e); } } } if (mapID != MumbleLink.MapId) { mapID = this.MumbleLink.MapId; if (this.MapChanged != null) { MapChangeEventArgs e = new MapChangeEventArgs(mapID, tick); this.MapChanged(this, e); } } if(!incomingUpdates) { if (tick != MumbleLink.Tick) { incomingUpdates = true; if (this.UpdateStarted != null) { MapChangeEventArgs e = new MapChangeEventArgs(mapID, tick); this.UpdateStarted(this, e); } } } if (tick != MumbleLink.Tick) { tick = this.MumbleLink.Tick; timeSinceLastTick = DateTime.Now; } } }