Пример #1
0
        public Shutdown(System.Windows.Window owner, ShutdownMode mode)
        {
            this.InitializeComponent();
            if (owner.IsVisible)
            {
                this.Owner = owner;
            }
            else if (App.Current.MainWindow.IsVisible)
            {
                this.Owner = App.Current.MainWindow;
            }
            else
            {
                this.WindowStartupLocation = WindowStartupLocation.CenterScreen;
            }
            this.mode = mode;

            button_cancel.Content = Languages.Translate("Cancel");
            warning_message       = Languages.Translate("System will be shutdown! 20 seconds left!");
            text_message.Content  = warning_message;
            Title = Languages.Translate("Shutdown");

            //фоновые процессы
            CreateBackgoundWorker();
            worker.RunWorkerAsync();

            ShowDialog();
        }
Пример #2
0
        public About(System.Windows.Window owner)
        {
            this.Owner = owner;
            this.InitializeComponent();

            try
            {
                Assembly this_assembly = Assembly.GetExecutingAssembly();
                text_version.Text  = "Version: " + this_assembly.GetName().Version.ToString();
                text_version.Text += " (" + File.GetLastWriteTime(this_assembly.GetModules()[0].FullyQualifiedName).ToString("dd.MM.yyyy") + ")";

                object[] attributes = this_assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
                if (attributes.Length > 0)
                {
                    string copyright = ((AssemblyCopyrightAttribute)attributes[0]).Copyright;
                    if (copyright.Length > 10)
                    {
                        text_copyright.Text = copyright.Substring(10);
                    }
                }
            }
            catch { }

            text_about.ToolTip = SysInfo.AVSVersionString;

            Title                    = Languages.Translate("About");
            text_import.Text         = Languages.Translate("Output codecs:");
            text_export.Text         = Languages.Translate("Output containers:");
            button_changelog.Content = Languages.Translate("Changelog");

            ShowDialog();
        }
Пример #3
0
        public Decoder(Massive mass, DecoderModes mode, string outfile)
        {
            this.InitializeComponent();
            this.Owner   = App.Current.MainWindow;
            this.m       = mass.Clone();
            this.outfile = outfile;
            this.mode    = mode;

            label_info.Content = Languages.Translate("Please wait... Work in progress...");

            if (mode == DecoderModes.DecodeAudio)
            {
                Title = Languages.Translate("Audio decoding") + "...";
            }
            else if (mode == DecoderModes.DecodeVideo)
            {
                Title = Languages.Translate("Video decoding") + "...";
            }
            else if (mode == DecoderModes.DecodeAV)
            {
                Title = Languages.Translate("LossLess decoding") + "...";
            }

            //Определяем исходный файл
            source_file = (m.infilepath_source != null) ? m.infilepath_source : m.infilepath;

            //фоновое кодирование
            CreateBackgoundWorker();
            worker.RunWorkerAsync();

            ShowDialog();
        }
Пример #4
0
        private void worker_ProgressChanged(object sender, System.ComponentModel.ProgressChangedEventArgs e)
        {
            if (((BackgroundWorker)sender).WorkerReportsProgress)
            {
                if (prCurrent.IsIndeterminate)
                {
                    prCurrent.IsIndeterminate = false;
                    text_info.Content         = Languages.Translate("Indexing") + " (FFMS2)...";
                }

                prCurrent.Value = e.ProgressPercentage;
                if (total > 1)
                {
                    Title = e.ProgressPercentage.ToString("0") + "% (" + (current + 1) + " of " + total + ")";
                }
                else
                {
                    Title = "(" + e.ProgressPercentage.ToString("0") + "%)";
                }

                //Прогресс в Taskbar
                //if (Handle == IntPtr.Zero) Handle = new WindowInteropHelper(this).Handle;
                Win7Taskbar.SetProgressValue(Handle, Convert.ToUInt64(e.ProgressPercentage), 100);
            }
        }
Пример #5
0
        private void text_bitrate_MouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            if (combo_mode.SelectedIndex >= 0 && combo_mode.SelectedIndex < 3)
            {
                try
                {
                    System.Diagnostics.ProcessStartInfo help = new System.Diagnostics.ProcessStartInfo();
                    help.FileName         = Calculate.StartupPath + "\\apps\\qaac\\qaac.exe";
                    help.WorkingDirectory = Path.GetDirectoryName(help.FileName);
                    help.Arguments        = " --formats";
                    help.UseShellExecute  = false;
                    help.CreateNoWindow   = true;

                    //Начиная с версии 1.26 qaac.exe работает со stdout\stderr используя UTF-8
                    help.StandardOutputEncoding = System.Text.Encoding.UTF8;
                    help.StandardErrorEncoding  = System.Text.Encoding.UTF8;
                    help.RedirectStandardOutput = true;
                    help.RedirectStandardError  = true;

                    System.Diagnostics.Process p = System.Diagnostics.Process.Start(help);

                    //Именно в таком порядке (а по хорошему надо в отдельных потоках)
                    string std_out = p.StandardOutput.ReadToEnd();
                    string std_err = p.StandardError.ReadToEnd();

                    new ShowWindow(root_window, "qaac --formats", ((std_err.Length > 0) ? std_err + "\r\n" : "") + std_out, new FontFamily("Lucida Console"));
                }
                catch (Exception ex)
                {
                    new Message(root_window).ShowMessage(ex.Message, Languages.Translate("Error"));
                }
            }
        }
Пример #6
0
        private void button_save_Click(object sender, RoutedEventArgs e)
        {
            if (infilepath != null)
            {
                try
                {
                    System.Windows.Forms.SaveFileDialog s = new System.Windows.Forms.SaveFileDialog();
                    s.SupportMultiDottedExtensions = true;
                    s.DefaultExt   = ".log";
                    s.AddExtension = true;
                    s.Title        = Languages.Translate("Select unique name for output file:");
                    s.Filter       = "LOG " + Languages.Translate("files") + "|*.log" +
                                     "|TXT " + Languages.Translate("files") + "|*.txt";

                    s.InitialDirectory = Path.GetDirectoryName(infilepath);
                    s.FileName         = Path.GetFileName(infilepath) + " - " + infomode.ToString(); //.ToLower();

                    if (s.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        File.WriteAllText(s.FileName, tbxInfo.Text); //, System.Text.Encoding.Default);
                    }
                }
                catch (Exception ex)
                {
                    ErrorException(ex);
                }
            }
        }
Пример #7
0
        public OpenDialog(string arguments, System.Windows.Window owner)
        {
            this.InitializeComponent();
            //this.Owner = owner;
            this.arguments = arguments;

            this.Top  = 0.0;
            this.Left = 0.0;

            //Когда XviD4PSP станет активным приложением, нужно будет вывести
            //окно SafeOpenDialog на первый план, т.к. само оно этого не сделает
            Application.Current.Activated += new EventHandler(Application_Activated);

            //Определяем текст заголовка, по которому будем искать окно
            if (arguments.StartsWith("oa"))
            {
                title = Languages.Translate("Select audio files") + ":";
            }
            else if (arguments.StartsWith("sub"))
            {
                title = Languages.Translate("Select subtitles file") + ":";
            }
            else
            {
                title = Languages.Translate("Select video files") + ":";
            }

            //BackgroundWorker
            CreateBackgroundWorker();
            worker.RunWorkerAsync();

            ShowDialog();
        }
Пример #8
0
        private void SetDefaultBitrates()
        {
            if (m.encodingmode == Settings.EncodingModes.Quality ||
                m.encodingmode == Settings.EncodingModes.Quantizer ||
                m.encodingmode == Settings.EncodingModes.TwoPassQuality ||
                m.encodingmode == Settings.EncodingModes.ThreePassQuality)
            {
                m.outvbitrate        = 3;
                num_bitrate.Value    = (decimal)m.outvbitrate;
                text_bitrate.Content = Languages.Translate("Quantizer") + ": (Q)";
            }

            if (m.encodingmode == Settings.EncodingModes.OnePass ||
                m.encodingmode == Settings.EncodingModes.TwoPass ||
                m.encodingmode == Settings.EncodingModes.ThreePass)
            {
                m.outvbitrate        = Calculate.GetAutoBitrate(m);
                num_bitrate.Value    = (decimal)m.outvbitrate;
                text_bitrate.Content = Languages.Translate("Bitrate") + ": (kbps)";
            }

            if (m.encodingmode == Settings.EncodingModes.TwoPassSize ||
                m.encodingmode == Settings.EncodingModes.ThreePassSize ||
                m.encodingmode == Settings.EncodingModes.OnePassSize)
            {
                m.outvbitrate        = m.infilesizeint;
                num_bitrate.Value    = (decimal)m.outvbitrate;
                text_bitrate.Content = Languages.Translate("Size") + ": (MB)";
            }

            SetToolTips();
        }
Пример #9
0
        //Выводим инфу в окно
        private void SetUpWindow(string text, string info, string title, MessageStyle style)
        {
            this.Title        = title;
            text_message.Text = text;
            if (!string.IsNullOrEmpty(info))
            {
                text_info.Text    = info;
                btInfo.Visibility = Visibility.Visible;
            }

            mstyle = style;
            if (mstyle == MessageStyle.Ok)
            {
                btYes.Visibility = Visibility.Hidden;
                btNo.Content     = Languages.Translate("OK");
            }
            else if (mstyle == MessageStyle.YesNo)
            {
                btYes.Content = Languages.Translate("Yes");
                btNo.Content  = Languages.Translate("No");
            }
            else if (mstyle == MessageStyle.OkCancel)
            {
                btYes.Content = Languages.Translate("OK");
                btNo.Content  = Languages.Translate("Cancel");
            }
            else
            {
                btYes.Visibility = Visibility.Hidden;
                btNo.Content     = Languages.Translate("OK");
            }

            cm_copy.Header = Languages.Translate("Copy");
            ShowDialog();
        }
Пример #10
0
        public FilesListWindow(Massive mass)
        {
            this.InitializeComponent();
            this.Owner = App.Current.MainWindow;
            this.m     = mass.Clone();

            //забиваем список в форму
            list_files.Items.Clear();
            foreach (string file in m.infileslist)
            {
                list_files.Items.Add(file);
            }
            //выделяем последний файл
            list_files.SelectedItem = m.infileslist[m.infileslist.Length - 1];

            button_ok.Content     = Languages.Translate("OK");
            button_cancel.Content = Languages.Translate("Cancel");
            Title              = Languages.Translate("Add or remove friend files") + ":";
            btMoveUp.ToolTip   = cmenu_up.Header = Languages.Translate("Move up");
            btMoveDown.ToolTip = cmenu_down.Header = Languages.Translate("Move down");
            btAdd.ToolTip      = cmenu_add.Header = Languages.Translate("Add file");
            btRemove.ToolTip   = cmenu_remove.Header = Languages.Translate("Remove file");

            //выдаём диалог
            ShowDialog();
        }
Пример #11
0
        private void combo_profile_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
        {
            if ((combo_profile.IsDropDownOpen || combo_profile.IsSelectionBoxHighlighted) && combo_profile.SelectedItem != null)
            {
                RefreshCodecProfileWindow();

                //правим выходной битрейт
                if (m.outvcodec == "Copy")
                {
                    m.outvbitrate = m.invbitrate;
                }

                profile_was_changed = true;
                UpdateOutSize();
                profile_was_changed = false;

                //проверяем можно ли копировать данный формат
                if (m.outvcodec == "Copy")
                {
                    string CopyProblems = Format.ValidateCopyVideo(m);
                    if (CopyProblems != null)
                    {
                        new Message(this).ShowMessage(Languages.Translate("The stream contains parameters incompatible with this format") +
                                                      " " + Format.EnumToString(m.format) + ": " + CopyProblems + "." + Environment.NewLine +
                                                      Languages.Translate("(You see this message because video encoder = Copy)"), Languages.Translate("Warning"));
                    }
                }
            }
        }
Пример #12
0
        private void SetTooltips()
        {
            foreach (ComboBoxItem item in combo_converter.Items)
            {
                if (((AviSynthScripting.SamplerateModifers)item.Content) == AviSynthScripting.SamplerateModifers.AssumeSampleRate)
                {
                    item.ToolTip = Languages.Translate("AssumeSampleRate changes the sample rate (playback speed) of the current sample.") +
                                   Environment.NewLine + Languages.Translate("If used without AssumeFPS, it will cause desync with the video.");
                }
                else if (((AviSynthScripting.SamplerateModifers)item.Content) == AviSynthScripting.SamplerateModifers.SSRC)
                {
                    item.ToolTip = Languages.Translate("SSRC resampling. Audio is always converted to float.") +
                                   Environment.NewLine + Languages.Translate("This filter will result in better audio quality than ResampleAudio.") +
                                   Environment.NewLine + Languages.Translate("It uses SSRC by Naoki Shibata, which offers the best resample quality available.");
                }
                else if (((AviSynthScripting.SamplerateModifers)item.Content) == AviSynthScripting.SamplerateModifers.ResampleAudio)
                {
                    item.ToolTip = Languages.Translate("ResampleAudio performs a high-quality change of audio sample rate.");
                }
            }

            textbox_apath.ToolTip        = Languages.Translate("Path for external audio file");
            button_openapath.ToolTip     = Languages.Translate("Open external audio file");
            button_analysevolume.ToolTip = Languages.Translate("Analyse");
            button_play.ToolTip          = Languages.Translate("Play selected track");
            combo_mixing.ToolTip         = Languages.Translate("How to convert audio channels");
            button_fix_channels.ToolTip  = Languages.Translate("Remember this selection");
            check_apply_delay.ToolTip    = Languages.Translate("Auto apply to output");
            combo_volume.ToolTip         = Languages.Translate("Normalize to this (peak) level:") + "\r\n30% = -10.5dB\r\n40% = -8dB\r\n50% = -6dB\r\n60% = -4.5dB\r\n70% = -3dB\r\n80% = -1.9dB\r\n" +
                                           "90% = -0.9dB\r\n100% = 0dB (Nominal level)\r\n150% = 3.5dB\r\n200% = 6dB\r\n250% = 8dB\r\n300% = 9.5dB\r\n350% = 11dB\r\n400% = 12dB";
            combo_accurate.ToolTip = Languages.Translate("How many frames to analyze");
        }
Пример #13
0
        public NeroAAC(Massive mass, AudioEncoding AudioEncWindow)
        {
            this.InitializeComponent();

            this.m           = mass.Clone();
            this.root_window = AudioEncWindow;

            combo_mode.Items.Add("CBR");
            combo_mode.Items.Add("VBR");
            combo_mode.Items.Add("ABR");
            combo_mode.Items.Add("ABR 2-Pass");

            combo_aac_profile.Items.Add("Auto");
            combo_aac_profile.Items.Add("AAC-LC");
            combo_aac_profile.Items.Add("AAC-HE");
            combo_aac_profile.Items.Add("AAC-HEv2");

            this.num_period.ValueChanged += new RoutedPropertyChangedEventHandler <decimal>(num_period_ValueChanged);
            num_period.ToolTip            = "2-Pass encoding bitrate averaging period, milliseconds. \r\nDefault and recommended: 0 (Auto).\r\n" +
                                            "\r\nWARNING! Low values may produce crash of neroAacEnc.exe!";

            text_mode.Content = Languages.Translate("Encoding mode") + ":";

            LoadFromProfile();
        }
Пример #14
0
        private void combo_profile_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
        {
            if ((combo_profile.IsDropDownOpen || combo_profile.IsSelectionBoxHighlighted) && combo_profile.SelectedItem != null)
            {
                RefreshCodecProfileWindow();

                //определяем аудио потоки
                AudioStream instream  = (AudioStream)m.inaudiostreams[m.inaudiostream];
                AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream];

                //правим выходной битрейт
                if (outstream.codec == "Copy")
                {
                    outstream.bitrate = instream.bitrate;
                }
                if (outstream.codec == "Disabled")
                {
                    outstream.bitrate = 0;
                }

                UpdateOutSize();

                //проверяем можно ли копировать данный формат
                if (outstream.codec == "Copy")
                {
                    string CopyProblems = Format.ValidateCopyAudio(m);
                    if (CopyProblems != null)
                    {
                        new Message(this).ShowMessage(Languages.Translate("The stream contains parameters incompatible with this format") +
                                                      " " + Format.EnumToString(m.format) + ": " + CopyProblems + "."
                                                      + Environment.NewLine + Languages.Translate("(You see this message because audio encoder = Copy)"), Languages.Translate("Warning"));
                    }
                }
            }
        }
Пример #15
0
 private void button_save_hotkeys_Click(object sender, RoutedEventArgs e)
 {
     if (edit)
     {
         if (textbox_combination.Text != "")
         {
             string Action = HotKeys.GetAction("=" + textbox_combination.Text);
             if (Action != "" && Action != raw_action[combo_action.SelectedIndex].ToString())
             {
                 ErrorException(Languages.Translate("Combination") + " \"" + textbox_combination.Text + "\" " + Languages.Translate("already used for") + " \"" + Languages.Translate(Action) + "\".");
                 return;
             }
         }
         string output = "";
         foreach (string line in HotKeys.Data)
         {
             if (line.Contains("="))
             {
                 string[] action = line.Trim().Split(new string[] { "=" }, StringSplitOptions.None);
                 if (action[0] == raw_action[combo_action.SelectedIndex].ToString())
                 {
                     output += action[0] + "=" + textbox_combination.Text + "; ";
                 }
                 else
                 {
                     output += line.Trim() + "; ";
                 }
             }
         }
         Settings.HotKeys = output;
         p.SetHotKeys(); //Тут происходит обновление HotKeys.Data
         UpdateHotKeysBox();
         Menu_Changed(null, null);
     }
 }
Пример #16
0
        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            bool cancel_closing = false;

            if (worker != null)
            {
                if (worker.IsBusy && num_closes < 5)
                {
                    //Отмена
                    cancel_closing = true;
                    worker.CancelAsync();
                    num_closes += 1;
                    m           = null;
                }
                else
                {
                    worker.Dispose();
                    worker = null;
                }
            }

            //Отменяем закрытие окна
            if (cancel_closing)
            {
                //CloseReader(false);

                label_info.Content = Languages.Translate("Aborting... Please wait...");
                e.Cancel           = true;
            }
            else
            {
                CloseReader(true);
            }
        }
Пример #17
0
        private void button_ok_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            //Имя нового профиля
            string name = textbox_profile.Text.Trim();

            //Проверка на недопустимые имена
            if (name == "")
            {
                return;
            }
            if (name.ToLower() == "disabled" && (ptype == ProfileType.SBC || ptype == ProfileType.AEncoding || ptype == ProfileType.VEncoding || ptype == ProfileType.Filtering) ||
                name.ToLower() == "default" && ptype == ProfileType.FFRebuilder)
            {
                new Message(this).ShowMessage(Languages.Translate("Profile with same name already exists."), Languages.Translate("Error"));
                return;
            }

            string profile_path = "";

            if (ptype == ProfileType.VEncoding)
            {
                profile_path = Calculate.StartupPath + "\\presets\\encoding\\" + format + "\\video\\" + name + ".txt";
            }
            else if (ptype == ProfileType.AEncoding)
            {
                profile_path = Calculate.StartupPath + "\\presets\\encoding\\" + format + "\\audio\\" + name + ".txt";
            }
            else if (ptype == ProfileType.SBC)
            {
                profile_path = Calculate.StartupPath + "\\presets\\sbc\\" + name + ".avs";
            }
            else if (ptype == ProfileType.Filtering)
            {
                profile_path = Calculate.StartupPath + "\\presets\\filtering\\" + name + ".avs";
            }
            else if (ptype == ProfileType.FFRebuilder)
            {
                profile_path = Calculate.StartupPath + "\\presets\\ffrebuilder\\" + name + ".txt";
            }

            if (File.Exists(profile_path))
            {
                Message mess = new Message(this);
                mess.ShowMessage(Languages.Translate("Profile with same name already exists.") +
                                 Environment.NewLine + Languages.Translate("Replace profile?"),
                                 Languages.Translate("Question"), Message.MessageStyle.YesNo);
                if (mess.result == Message.Result.No)
                {
                    return;
                }
            }

            profile = name;
            Close();
        }
Пример #18
0
        public Donate(System.Windows.Window owner)
        {
            this.InitializeComponent();

            this.Owner = owner;

            // Insert code required on object creation below this point.
            text_donate.Text = Languages.Translate("If you think that my unofficial builds of XviD4PSP are not so bad, and if you can help me with something, you can always send me email to say all what you wanna say, or may be something else") + " :)";
            this.Title       = Languages.Translate("Donate");

            Show();
        }
Пример #19
0
 private void SetFieldPhase()
 {
     if (!Application.Current.Dispatcher.CheckAccess())
     {
         Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new FieldPhaseDelegate(SetFieldPhase));
     }
     else
     {
         progress_total.Value = 0;
         label_info.Content   = Languages.Translate("Detecting fields order") + "...";
     }
 }
Пример #20
0
 private bool EnableEditing(ComboBox box)
 {
     //Включаем редактирование
     if (!box.IsEditable && box.SelectedItem.ToString().Length == 0)
     {
         box.IsEditable = true;
         box.ToolTip    = Languages.Translate("Enter - apply, Esc - cancel.");
         box.ApplyTemplate();
         return(true);
     }
     return(false);
 }
Пример #21
0
 private void ShowMessage(string data, string info)
 {
     if (!Application.Current.Dispatcher.CheckAccess())
     {
         Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new MessageDelegate(ShowMessage), data, info);
     }
     else
     {
         Message mes = new Message(/*this.Owner != null ? this.Owner : */ Application.Current.MainWindow);
         mes.ShowMessage(data, info, Languages.Translate("Error"), Message.MessageStyle.Ok);
     }
 }
Пример #22
0
 private void ErrorException(string data, string info)
 {
     if (!Application.Current.Dispatcher.CheckAccess())
     {
         Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new ErrorExceptionDelegate(ErrorException), data, info);
     }
     else
     {
         Message mes = new Message(this.IsLoaded ? this : Owner);
         mes.ShowMessage(data, info, Languages.Translate("Error"), Message.MessageStyle.Ok);
     }
 }
Пример #23
0
        public LameMP3(Massive mass, AudioEncoding AudioEncWindow)
        {
            this.InitializeComponent();

            this.m           = mass.Clone();
            this.root_window = AudioEncWindow;

            combo_mode.Items.Add("CBR");
            combo_mode.Items.Add("VBR");
            combo_mode.Items.Add("ABR");

            combo_channels_mode.Items.Add("Auto");                //default is (j) or (s) depending on bitrate
            combo_channels_mode.Items.Add("Stereo");              //"-m s" (s)imple = force LR stereo on all frames
            combo_channels_mode.Items.Add("Joint Stereo");        //"-m j" (j)oint  = joins the best possible of MS and LR stereo
            combo_channels_mode.Items.Add("Forced Joint Stereo"); //"-m f" (f)orce  = force MS stereo on all frames.
            combo_channels_mode.Items.Add("Mono");                //"-m m" (d)ual-mono, (m)ono
            combo_channels_mode.ToolTip = "Auto - auto select (depending on bitrate), default\r\n" +
                                          "Stereo - force LR stereo on all frames\r\n" +
                                          "Joint Stereo - joins the best possible of MS and LR stereo\r\n" +
                                          "Forced Joint Stereo - force MS stereo on all frames\r\n" +
                                          "Mono - encode as mono";

            combo_quality.Items.Add("0 - Best Quality");
            combo_quality.Items.Add("1");
            combo_quality.Items.Add("2 - Recommended");
            combo_quality.Items.Add("3");
            combo_quality.Items.Add("4");
            combo_quality.Items.Add("5 - Good Speed");
            combo_quality.Items.Add("6");
            combo_quality.Items.Add("7 - Very Fast");
            combo_quality.Items.Add("8");
            combo_quality.Items.Add("9 - Poor Quality");
            combo_quality.ToolTip = "Noise shaping & psycho acoustic algorithms\r\n" +
                                    "0 - highest quality, very slow\r\n" +
                                    "2 - recommended, default\r\n" +
                                    "9 - poor quality, but fast";

            combo_gain.Items.Add("None");
            combo_gain.Items.Add("Fast");
            combo_gain.Items.Add("Accurate");
            combo_gain.ToolTip = "None - do not compute RG (slightly faster encoding)\r\n" +
                                 "Fast - compute RG fast and slightly inaccurately, default\r\n" +
                                 "Accurate - compute RG more accurately, but slower";

            //прогружаем битрейты
            LoadBitrates();

            text_mode.Content    = Languages.Translate("Encoding mode") + ":";
            text_quality.Content = Languages.Translate("Accuracy") + ":";

            LoadFromProfile();
        }
Пример #24
0
        private void combo_framerate_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
        {
            if ((combo_framerate.IsDropDownOpen || combo_framerate.IsSelectionBoxHighlighted || combo_framerate.IsEditable) && combo_framerate.SelectedItem != null)
            {
                if (combo_framerate.SelectedItem.ToString().Length == 0)
                {
                    //Включаем редактирование
                    combo_framerate.IsEditable = true;
                    combo_framerate.ToolTip    = Languages.Translate("Enter - apply, Esc - cancel.");
                    combo_framerate.ApplyTemplate();
                    return;
                }
                else
                {
                    m.outframerate = Calculate.GetSplittedString(combo_framerate.SelectedItem.ToString(), 0);

                    m.sampleratemodifer = Settings.SamplerateModifer;
                    m = AviSynthScripting.CreateAutoAviSynthScript(m);

                    //механизм обхода ошибок SSRC
                    if (m.sampleratemodifer == AviSynthScripting.SamplerateModifers.SSRC &&
                        m.inaudiostreams.Count > 0 && m.outaudiostreams.Count > 0)
                    {
                        AudioStream instream  = (AudioStream)m.inaudiostreams[m.inaudiostream];
                        AudioStream outstream = (AudioStream)m.outaudiostreams[m.outaudiostream];
                        if (instream.samplerate != outstream.samplerate && outstream.samplerate != null &&
                            Calculate.CheckScriptErrors(m) == "SSRC: could not resample between the two samplerates.")
                        {
                            m.sampleratemodifer = AviSynthScripting.SamplerateModifers.ResampleAudio;
                            m = AviSynthScripting.CreateAutoAviSynthScript(m);
                        }
                    }

                    //обновляем конечное колличество фреймов, с учётом режима деинтерелейса
                    m             = Calculate.UpdateOutFrames(m);
                    m.outfilesize = Calculate.GetEncodingSize(m);

                    CheckFramerateModifierIsApplied();

                    p.m = m.Clone();
                    p.Refresh(m.script);
                    this.Focus();
                }

                if (combo_framerate.IsEditable)
                {
                    //Выключаем редактирование
                    combo_framerate.IsEditable = false;
                    combo_framerate.ToolTip    = null;
                }
            }
        }
Пример #25
0
        public ShowWindow(Window owner, string Title, string Text, FontFamily Font)
        {
            this.Owner = owner;
            this.InitializeComponent();
            this.group_box.Header      = this.Title = Title;
            this.text_box.FontFamily   = Font;
            this.text_box.Text         = Text;
            this.button_search.Content = Languages.Translate("Search");
            this.textbox_search.Text   = button_search.Content + "...";
            this.text_box.Focus();

            Show();
        }
Пример #26
0
        private void button_temppath_Click(object sender, RoutedEventArgs e)
        {
            System.Windows.Forms.FolderBrowserDialog folder = new System.Windows.Forms.FolderBrowserDialog();
            folder.Description         = Languages.Translate("Place for temp files") + ":";
            folder.ShowNewFolderButton = true;
            folder.SelectedPath        = Settings.TempPath;

            if (folder.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                Settings.TempPath = textbox_temp.Text = folder.SelectedPath;
            }
            p.TempFolderFiles();
        }
Пример #27
0
        public Demuxer(Massive mass, DemuxerMode mode, string outfile)
        {
            this.InitializeComponent();
            this.Owner   = App.Current.MainWindow;
            this.m       = mass.Clone();
            this.outfile = outfile;
            this.mode    = mode;

            //забиваем
            progress.Maximum = 100;

            label_info.Content = Languages.Translate("Please wait... Work in progress...");

            if (mode == DemuxerMode.DecodeToWAV)
            {
                Title = Languages.Translate("Decoding to Windows PCM") + "...";
            }
            else if (mode == DemuxerMode.NeroTempWAV)
            {
                Title = Languages.Translate("Creating Nero temp file") + "...";
            }
            else if (mode == DemuxerMode.ExtractAudio)
            {
                Title = Languages.Translate("Audio demuxing") + "...";
            }
            else if (mode == DemuxerMode.ExtractVideo)
            {
                Title = Languages.Translate("Video demuxing") + "...";
            }
            else if (mode == DemuxerMode.RepairMKV)
            {
                Title = Languages.Translate("Remuxing Matroska file") + "...";
            }

            //Определяем исходный файл
            source_file = (m.infilepath_source != null) ? m.infilepath_source : m.infilepath;

            //фоновое кодирование
            CreateBackgroundWorker();
            worker.RunWorkerAsync();

            //Сворачиваем окно, если программа минимизирована или свернута в трей
            if (!Owner.IsVisible || Owner.WindowState == WindowState.Minimized)
            {
                this.WindowState   = WindowState.Minimized;
                this.StateChanged += new EventHandler(Window_StateChanged);
                this.Name          = "Hidden";
            }

            ShowDialog();
        }
Пример #28
0
        private void SetTooltips()
        {
            foreach (ComboBoxItem item in combo_framerateconvertor.Items)
            {
                if (((AviSynthScripting.FramerateModifers)item.Content) == AviSynthScripting.FramerateModifers.AssumeFPS)
                {
                    item.ToolTip = Languages.Translate("AssumeFPS changes the frame rate without changing the frame count.") + "\r\n" +
                                   Languages.Translate("The video will play faster or slower.");
                }
                else if (((AviSynthScripting.FramerateModifers)item.Content) == AviSynthScripting.FramerateModifers.ChangeFPS)
                {
                    item.ToolTip = Languages.Translate("ChangeFPS changes the frame rate by deleting or duplicating frames.") + "\r\n" +
                                   Languages.Translate("The motion smoothness may be lost.");
                }
                else if (((AviSynthScripting.FramerateModifers)item.Content) == AviSynthScripting.FramerateModifers.ConvertFPS)
                {
                    item.ToolTip = Languages.Translate("ConvertFPS attempts to convert the frame rate using \"smart blending\" without deleting or duplicating frames.") + "\r\n" +
                                   Languages.Translate("The video may lose sharpness or may appear blending artifacts.");
                }
                else if (((AviSynthScripting.FramerateModifers)item.Content) == AviSynthScripting.FramerateModifers.ConvertMFlowFPS)
                {
                    item.ToolTip = Languages.Translate("Creates new frames using motion vectors between existing frames.") + "\r\n" +
                                   Languages.Translate("Based on functions MAnalyse and MFlowFps from the MVTools2 plugin.");
                }
            }

            string on   = Languages.Translate("On");
            string off  = Languages.Translate("Off");
            string _def = Languages.Translate("Default") + ": ";

            num_analyze_percent.ToolTip = _def + "1";
            num_min_sections.ToolTip    = _def + "150 (1 section = 5 frames, 150 sections = 750 frames)";
            num_hybrid_int.ToolTip      = _def + "5";
            num_hybrid_fo.ToolTip       = _def + "10";
            check_fo_portions.ToolTip   = _def + on;
            check_iscombed_mark.ToolTip = Languages.Translate("Print \"deinterlaced frame\" on each frame that was detected as Combed.") + "\r\n" +
                                          Languages.Translate("Use this option for tuning CThresh and MI, uncheck it when done!") + "\r\n\r\n" + _def + off;
            num_iscombed_cthresh.ToolTip = Languages.Translate("How strong or visible combing must be to be detected (lower values = higher sensitivity).") + "\r\n\r\n" + _def + "7";
            num_iscombed_mi.ToolTip      = Languages.Translate("How many combed areas must be found to detect whole frame as Сombed.") + "\r\n\r\n" + _def + "40";
            combo_qtgmc_preset.ToolTip   = _def + "Slow";
            num_qtgmc_sharp.ToolTip      = _def + "1.0";
            check_original_fps.ToolTip   = Languages.Translate("If checked, use the framerate of the raw video stream instead of the framerate of the container.") + "\r\n" +
                                           Languages.Translate("This option is meaningful only when a file is opening.") + "\r\n\r\n" + _def + off;
            check_nonstandard_fps.ToolTip = Languages.Translate("If checked, all non-standard fps will be passed on output without rounding to the nearest standard value") + ".\r\n\r\n" + _def + off;

            if (m != null)
            {
                SetAnalyseToolTip();
            }
        }
Пример #29
0
        private bool CheckBufferIsLost(bool _throw)
        {
            //true - потерян
            if ((AudioBuffer.Status & (int)BufferStatus.BufferLost) == 0)
            {
                return(false);
            }

            //С первого раза может не получиться, но
            //и растягивать навечно смысла тоже нет..
            for (int i = 0; i <= 10; i++)
            {
                try { AudioBuffer.Restore(); }
                catch (Exception) { /*Буфер пока-что не может быть восстановлен*/ }

                if ((AudioBuffer.Status & (int)BufferStatus.BufferLost) == 0)
                {
                    return(false);
                }

                if (IsError || IsAborted)
                {
                    return(true);
                }

                if (i == 10)
                {
                    if (_throw)
                    {
                        throw new Exception(Languages.Translate("AudioBuffer is lost and can't be restored!") + "\r\n" +
                                            Languages.Translate("Probably some other application uses it with higher privilege level."));
                    }
                    else
                    {
                        return(true);
                    }
                }
                else
                {
                    Thread.Sleep(100);
                    if (IsError || IsAborted)
                    {
                        return(true);
                    }
                }
            }

            return(true);
        }
Пример #30
0
        private void CalculateMod()
        {
            if (m.outresw % 16 == 0)
            {
                combo_width.ToolTip = ":16 ";
            }
            else if (m.outresw % 8 == 0)
            {
                combo_width.ToolTip = ":8 ";
            }
            else if (m.outresw % 4 == 0)
            {
                combo_width.ToolTip = ":4 ";
            }
            else if (m.outresw % 2 == 0)
            {
                combo_width.ToolTip = ":2 ";
            }
            else
            {
                combo_width.ToolTip = ":1 ";
            }
            combo_width.ToolTip += Languages.Translate("Width");
            manual_w.ToolTip     = combo_width.ToolTip;

            if (m.outresh % 16 == 0)
            {
                combo_height.ToolTip = ":16 ";
            }
            else if (m.outresh % 8 == 0)
            {
                combo_height.ToolTip = ":8 ";
            }
            else if (m.outresh % 4 == 0)
            {
                combo_height.ToolTip = ":4 ";
            }
            else if (m.outresh % 2 == 0)
            {
                combo_height.ToolTip = ":2 ";
            }
            else
            {
                combo_height.ToolTip = ":1 ";
            }
            combo_height.ToolTip += Languages.Translate("Height");
            manual_h.ToolTip      = combo_height.ToolTip;
        }