Esempio n. 1
0
        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
            }
        }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        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
            }
        }