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 = "全局设置"; } } }
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); }
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); }
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(); }