Esempio n. 1
0
        private void lbxtask_MouseClick(object sender, MouseEventArgs e)
        {
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                if (lbxtask.SelectedItems.Count > 0)
                {
                    SaveConfig();

                    if (_last_task_index >= 0)
                    {
                        Task_Data_List[_last_task_index].CData = GetCurrentConfig();
                    }


                    lbltasksel.Text = (string)lbxtask.Items[lbxtask.SelectedIndex];
                    Common.TaskData tdata = Task_Data_List[lbxtask.SelectedIndex];
                    UpdateUI(tdata.CData);
                    _last_task_index = lbxtask.SelectedIndex;
                }
                else
                {
                    lbltasksel.Text = "全局设置";
                }
            }
        }
Esempio n. 2
0
 private void AddTask(string fname)
 {
     lbxtask.Items.Add(Path.GetFileName(fname));
     Common.TaskData tdata = new Common.TaskData();
     tdata.CData        = GetCurrentConfig();
     tdata.FileFullPath = fname;
     tdata.FileName     = Path.GetFileName(fname);
     Task_Data_List.Add(tdata);
 }
Esempio n. 3
0
        private void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            int i = 0;


            while (lbxtask.Items.Count > 0)
            {
                Common.TaskData tdata = Task_Data_List[0];
                string          workpath = tdata.CData.OutputPath;
                string          filemainname = Path.GetFileNameWithoutExtension(tdata.FileName);
                string          resolution = (string)cbxresolution.Items[tdata.CData.ResolutionIndex];
                string          fps = (string)cbxfps.Items[tdata.CData.FPSIndex];
                string          _x = "", _y = "", _s = "", _m = "", _a = "", _b = "", _p = "", sup = "";
                MakeAvs(0);
                if (tdata.CData.X_ > 0)
                {
                    _x = " -x" + tdata.CData.X_.ToString() + " ";
                }

                if (tdata.CData.Y_ > 0)
                {
                    _x = " -y" + tdata.CData.Y_.ToString() + " ";
                }

                if (tdata.CData.S_ > 0)
                {
                    _s = " -s" + tdata.CData.S_.ToString() + " ";
                }

                if (tdata.CData.M_ > 0)
                {
                    _m = " -m" + tdata.CData.M_.ToString() + " ";
                }

                if (tdata.CData.A_)
                {
                    _a = " -a1 ";
                }

                if (tdata.CData.B_)
                {
                    _b = " -b1 ";
                }

                if (tdata.CData.P_)
                {
                    _p = " -p1 ";
                }

                if (tdata.CData.BSup)
                {
                    sup = " -o \"" + workpath + "\\" + filemainname + "\\" + filemainname + ".sup\" ";
                }

                string param = "-t \"" + filemainname + "\" -l " + tdata.CData.Lang + " -v " + resolution + " -f " + fps + _x + _y + _s + _m + _a + _b + _p + "-o \"" + workpath + "\\" + filemainname + "\\" + filemainname + ".xml\"" + sup + "\"" + workpath + "\\" + filemainname + "\\" + filemainname + ".avs\"";
                _shell = new Shell(_avs2bdnxmlpath, param, workpath, OutputDataReceived);
                _shell.Start();

                while (!_shell.HasExited)
                {
                    Thread.Sleep(10);

                    if (worker.CancellationPending)
                    {
                        SetUI(true);
                        _shell.Stop();
                        e.Cancel = true;
                        return;
                    }
                }

                if (tdata.CData.BFirstBlack)
                {
                    BDN bdn = new BDN(workpath + "\\" + filemainname + "\\" + filemainname + ".xml", Common.FPSList[tdata.CData.FPSIndex], Common.ResolutionList[tdata.CData.ResolutionIndex]);
                    bdn.InsertBlack(true, workpath + "\\" + filemainname + "\\" + "0.png");
                    bdn.SaveBDN();
                }

                if (tdata.CData.BEndBlack)
                {
                    BDN bdn = new BDN(workpath + "\\" + filemainname + "\\" + filemainname + ".xml", Common.FPSList[tdata.CData.FPSIndex], Common.ResolutionList[tdata.CData.ResolutionIndex]);
                    bdn.InsertBlack(false, workpath + "\\" + filemainname + "\\" + "0.png", tdata.CData.EBlacka);
                    bdn.SaveBDN();
                }


                RemoveTask(0);
                ++i;
                worker.ReportProgress(i);
            }

            SetUI(true);
            MessageBox.Show(this, "全部操作完成", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
Esempio n. 4
0
        private void MakeAvs(int index)
        {
            Common.TaskData tdata = Task_Data_List[index];
            List <string>   olst  = new List <string>();

            int    fcount = 0;
            double fps;

            Common.Resolution res;
            string            filemainname = Path.GetFileNameWithoutExtension(tdata.FileName);
            string            outputpath   = tdata.CData.OutputPath + "\\" + filemainname + "\\";

            fps = Common.FPSList[tdata.CData.FPSIndex];
            res = Common.ResolutionList[tdata.CData.ResolutionIndex];
            Common.FileType ftype = Common.GetFileType(tdata.FileFullPath);

            if (ftype == Common.FileType.ASS)
            {
                fcount = ASSFile.GetFrameCount(tdata.FileFullPath, fps);
            }
            else if (ftype == Common.FileType.SSA)
            {
                fcount = SSAFile.GetFrameCount(tdata.FileFullPath, fps);
            }

            fcount += 100;

            if (tdata.CData.BVSMod)
            {
                olst.Add("LoadPlugin(\"" + _vsfiltermodpath + "\")");
                olst.Add("MaskSubMod(\"" + tdata.FileFullPath + "\", " + res.X.ToString() + ", " + res.Y.ToString() + ", " + fps.ToString() + ", " + fcount.ToString() + ")");
            }
            else
            {
                olst.Add("LoadPlugin(\"" + _vsfilterpath + "\")");
                olst.Add("MaskSub(\"" + tdata.FileFullPath + "\", " + res.X.ToString() + ", " + res.Y.ToString() + ", " + fps.ToString() + ", " + fcount.ToString() + ")");
            }



            if (tdata.CData.ResolutionIndex == 3)
            {
                olst.Add("LanczosResize(720,480)");
            }
            else if (tdata.CData.ResolutionIndex == 4)
            {
                olst.Add("LanczosResize(720,576)");
            }
            else
            {
                olst.Add("LanczosResize(" + res.X.ToString() + ", " + res.Y.ToString() + ")");
            }

            if (!Directory.Exists(tdata.CData.OutputPath))
            {
                Directory.CreateDirectory(tdata.CData.OutputPath);
            }

            string avsfile = outputpath + filemainname + ".avs";

            if (!Directory.Exists(outputpath))
            {
                Directory.CreateDirectory(outputpath);
            }

            if (File.Exists(avsfile))
            {
                File.Delete(avsfile);
            }

            FileStream   fs = File.Create(avsfile);
            StreamWriter sr = new StreamWriter(fs);

            sr.AutoFlush = true;

            foreach (string s in olst)
            {
                sr.WriteLine(s);
            }

            sr.Close();
            fs.Close();
        }