private void frommp3ToolStripMenuItem_Click(object sender, EventArgs e) { // Parallel Mp3 to sign if (openFileMp3Transform.ShowDialog() == System.Windows.Forms.DialogResult.OK) { Signature.Parallel = true; Stopwatch sw = new Stopwatch(); sw.Start(); int error = 0, i = 0, n = openFileMp3Transform.FileNames.Length; Log("Convert " + n.ToString() + " files; "); Log(""); foreach (string FileName in openFileMp3Transform.FileNames) { i++; try { var onSono = new Signature.OnSonoBuildHandler((desc, progress) => { if (progress > 0) LogInline(String.Format("{0}: {1:0.0}%", desc, progress)); else LogInline(desc); return true; }); Signature sign = await Signature.GenerateFromMp3(FileName, BuildingRung, WindowFunction.HannWindow, onSono, ResampleFreqRate); sign.Save(FileName + ".sgn"); LogInline(String.Format("[{0}/{1}]: Transform \"{2}.sgn\", {3} lines {4}", i, n, FileName, sign.Data.Length, Environment.NewLine)); } catch (Exception ex) { LogInline(String.Format("[{0}/{1}]: Error transforming \"{2}\":{3} {4}", i, n, FileName, ex.Message, Environment.NewLine)); error++; } } sw.Stop(); Log(String.Format("Elapsed: {0}. Success {1}, errors {2}.", sw.Elapsed, i - error, error)); } }
private async Task ConvertFilesToSigns(string[] FileNames) { Signature.Parallel = true; WindowFunction WindowFunction = WindowFunction.HannWindow; Stopwatch sw = new Stopwatch(); sw.Start(); int error = 0, i = 0, n = FileNames.Length; Log("Convert " + n.ToString() + " files; " + Environment.NewLine); var onSono = new Signature.OnSonoBuildHandler((desc, progress) => { if (progress > 0) LogInline(String.Format("{0}: {1:0.0}%", desc, progress)); else LogInline(desc); return true; }); if (ConvertToPath == null) { if (MessageBox.Show("Располагать результат рядом с исходными файлами?", "", MessageBoxButtons.YesNo) == DialogResult.No) { convertTargetSelectDirectory_Click(null, null); } else convertTargetSourceFiles_Click(null, null); } bool dir = convertTargetSelectDirectory.Checked; foreach (string FileName in FileNames) { i++; try { Signature sign = null; string ext = FileParser.GetExtension(FileName); if (ext == ".mp3") sign = await Signature.GenerateFromMp3( FileName, BuildingRang, WindowFunction, onSono, ConvertRate); else if (ext == ".wav") sign = await Signature.GenerateFromWav( FileName, BuildingRang, WindowFunction, onSono, ConvertRate); else throw new Exception("Wrong file format: " + ext); if (sign != null) { if (dir) sign.Save(ConvertToPath + "\\" + sign.ToString() + ".sgn"); else sign.Save(sign.BaseFilePath + ".sgn"); LogInline(String.Format("[{0}/{1}]: Transform \"{2}.sgn\", {3} lines {4}", i, n, FileName, sign.Data.Length, Environment.NewLine)); } } catch (Exception ex) { LogInline(String.Format("[{0}/{1}]: Error transforming \"{2}\":{3} {4}", i, n, FileName, ex.Message, Environment.NewLine)); error++; } } sw.Stop(); Log(String.Format("Elapsed: {0}. Success {1}, errors {2}.", sw.Elapsed, i - error, error)); }