Example #1
0
        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));
            }
        }
Example #2
0
        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));
        }