private void backgroundWorkerMain_ProgressChanged(object sender, ProgressChangedEventArgs e) { try { MkvExtractProgress progress = (MkvExtractProgress)e.UserState; this.progressBarEpisode.Maximum = progress.MaxEpisode; this.progressBarEpisode.Value = progress.CurEpisode; this.progressBarTrack.Maximum = progress.MaxTrack; this.progressBarTrack.Value = progress.CurTrack; this.labelProgress.Text = String.Format("Extracting track {0}/{1} from file {2}/{3}...", progress.CurTrack, progress.MaxTrack, progress.CurEpisode, progress.MaxEpisode); this.Update(); } catch { // Don't care } }
private void backgroundWorkerMain_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; MkvExtractProgress progress = new MkvExtractProgress(); progress.MaxEpisode = selectedMkvFiles.Count; foreach (string file in selectedMkvFiles) { progress.CurEpisode++; List <MkvTrack> tracks = null; if (trackTypeToExtract == "All subtitle tracks") { tracks = UtilsMkv.getSubtitleTrackList(file); } else if (trackTypeToExtract == "All audio tracks") { tracks = UtilsMkv.getAudioTrackList(file); } else { tracks = UtilsMkv.getTrackList(file); } progress.CurTrack = 0; progress.MaxTrack = tracks.Count; foreach (MkvTrack track in tracks) { if (worker.CancellationPending) { e.Cancel = true; return; } progress.CurTrack++; worker.ReportProgress(0, progress); string displayLang = UtilsLang.LangThreeLetter2Full(track.Lang); if (displayLang == "") { displayLang = "Unknown"; } string fileName = $"{outDir}{Path.DirectorySeparatorChar}{Path.GetFileNameWithoutExtension(file)} - Track {Convert.ToInt32(track.TrackID):00} - {displayLang}.{track.Extension}"; UtilsMkv.extractTrack(file, track.TrackID, fileName); } } }
private void backgroundWorkerMain_ProgressChanged(object sender, ProgressChangedEventArgs e) { try { MkvExtractProgress progress = (MkvExtractProgress)e.UserState; progressBarEpisode.Maximum = progress.MaxEpisode; progressBarEpisode.Value = progress.CurEpisode; progressBarTrack.Maximum = progress.MaxTrack; progressBarTrack.Value = progress.CurTrack; labelProgress.Text = $"Extracting track {progress.CurTrack}/{progress.MaxTrack} from file {progress.CurEpisode}/{progress.MaxEpisode}..."; Update(); } catch { // Don't care } }