/// <summary> /// Encode Progress Event Handler /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The Interop.EncodeProgressEventArgs. /// </param> private void InstanceEncodeProgress(object sender, EncodeProgressEventArgs e) { EventArgs.EncodeProgressEventArgs args = new EventArgs.EncodeProgressEventArgs { AverageFrameRate = e.AverageFrameRate, CurrentFrameRate = e.CurrentFrameRate, EstimatedTimeLeft = e.EstimatedTimeLeft, PercentComplete = e.FractionComplete * 100, Task = e.Pass, TaskCount = e.PassCount, ElapsedTime = DateTime.Now - this.startTime, }; this.InvokeEncodeStatusChanged(args); }
private void InvokeEncodeStatusChanged(EventArgs.EncodeProgressEventArgs e) { EncodeProgressStatus handler = this.EncodeStatusChanged; handler?.Invoke(this, e); }
/// <summary> /// The Encode Status has changed Handler /// </summary> /// <param name="sender"> /// The Sender /// </param> /// <param name="e"> /// The Encode Progress Event Args /// </param> private void EncodeStatusChanged(object sender, EncodeProgressEventArgs e) { int percent; int.TryParse( Math.Round(e.PercentComplete).ToString(CultureInfo.InvariantCulture), out percent); Execute.OnUIThread( () => { if (this.queueProcessor.EncodeService.IsEncoding) { this.ProgramStatusLabel = string.Format(Resources.MainViewModel_EncodeStatusChanged_StatusLabel + Resources.Main_JobsPending_addon, e.PercentComplete, e.CurrentFrameRate, e.AverageFrameRate, e.EstimatedTimeLeft, e.ElapsedTime, this.queueProcessor.Count); if (lastEncodePercentage != percent && this.windowsSeven.IsWindowsSeven) { this.windowsSeven.SetTaskBarProgress(percent); } lastEncodePercentage = percent; this.ProgressPercentage = percent; this.NotifyOfPropertyChange(() => ProgressPercentage); } else { this.ProgramStatusLabel = Resources.Main_QueueFinished; this.IsEncoding = false; if (this.windowsSeven.IsWindowsSeven) { this.windowsSeven.SetTaskBarProgressToNoProgress(); } } }); }