public void Stop() { if (State == PluginState.Running) { reader = null; state = PluginState.Ready; control.Enabled = true; } }
public void Start() { if (State == PluginState.Paused) { state = PluginState.Running; } else if (State == PluginState.Ready) { control.Enabled = false; state = PluginState.Running; control.Stream.Seek(0, SeekOrigin.Begin); reader = new AntVideoReader(control.Stream); } }
private void UpdateUi() { if (Stream != null) { roundsLabel.Text = string.Empty; playerLabel.Text = string.Empty; stateLabel.Text = string.Empty; infoPanel.Visible = true; loadingProgressBar.Value = 0; loadingProgressBar.Visible = true; try { Stream.Seek(0, SeekOrigin.Begin); AntVideoReader reader = new AntVideoReader(Stream); SimulationState lastState = reader.Read(); loadingProgressBar.Maximum = lastState.TotalRounds; while (!reader.Complete) { lastState = reader.Read(); loadingProgressBar.Value = lastState.CurrentRound; } roundsLabel.Text = lastState.CurrentRound.ToString(); stateLabel.Text = lastState.CurrentRound == lastState.TotalRounds ? "Finished" : "Not Finished"; playerLabel.Text = string.Join("\r\n", lastState.ColonyStates.Select(c => c.ColonyName)); } catch (Exception ex) { infoPanel.Visible = false; MessageBox.Show(ex.Message); Stream.Close(); Stream.Dispose(); Stream = null; } loadingProgressBar.Visible = false; } else { infoPanel.Visible = false; loadingProgressBar.Visible = false; } }