// Currently deletes same segment from multiple channels public void Delete() { if (Service.DLLWrapper.Safe) { // set cursor based on current panel Cursor cursor = panel.TimeChannel1.ChartArea.CursorX; int smaller = (int)Math.Min(cursor.SelectionStart, cursor.SelectionEnd); int bigger = (int)Math.Max(cursor.SelectionStart, cursor.SelectionEnd); WavPackager packager = new WavPackager(null); RIFFData riff; for (int i = 0; i < panel.PanelData.RawChartData.Count; i++) { switch (panel.PanelData.RIFFData.BitsPerSample) { case 8: panel.PanelData.RawChartData[i].RemoveRange(smaller, bigger - smaller); panel.PanelData.RawChannelData[i].RemoveRange(smaller, bigger - smaller); break; case 16: panel.PanelData.RawChartData[i].RemoveRange(smaller, bigger - smaller); panel.PanelData.RawChannelData[i].RemoveRange(smaller * 2, (bigger - smaller) * 2); break; case 24: panel.PanelData.RawChartData[i].RemoveRange(smaller, bigger - smaller); panel.PanelData.RawChannelData[i].RemoveRange(smaller * 3, (bigger - smaller) * 3); break; case 32: panel.PanelData.RawChartData[i].RemoveRange(smaller, bigger - smaller); panel.PanelData.RawChannelData[i].RemoveRange(smaller * 4, (bigger - smaller) * 4); break; default: Console.WriteLine("DeleteWorker - Unsupported bits per sample"); break; } } riff = packager.GenerateRIFFData(panel); panel.PanelData.RIFFData = riff; panel.TimeChannel1.RefreshViewablePoints(); if (panel.TimeChannel2 != null) { panel.TimeChannel2.RefreshViewablePoints(); } } else { Console.WriteLine("Unsafe Delete() attempted; ignored"); } }
protected void RunFilterOnSelection(object sender, EventArgs e) { // Filter to time domain Console.WriteLine("Running IDFT"); int count = filter.Count; threads[0] = new Thread(() => ThreadedIDFT(0, 0, count / 4)); threads[1] = new Thread(() => ThreadedIDFT(1, count / 4, count / 2)); threads[2] = new Thread(() => ThreadedIDFT(2, count / 2, count * 3 / 4)); threads[3] = new Thread(() => ThreadedIDFT(3, count * 3 / 4, count)); threads[0].Start(); threads[1].Start(); threads[2].Start(); threads[3].Start(); idftResult = new List <int>(); for (int i = 0; i < threads.Length; i++) { threads[i].Join(); idftResult.AddRange(idftResults[i]); } count = entry.PanelData.RawChartData[chIndex].Count; Console.WriteLine("idftResult: " + count); threads[0] = new Thread(() => ThreadedConvolution(0, 0, count / 4)); threads[1] = new Thread(() => ThreadedConvolution(1, count / 4, count / 2)); threads[2] = new Thread(() => ThreadedConvolution(2, count / 2, count * 3 / 4)); threads[3] = new Thread(() => ThreadedConvolution(3, count * 3 / 4, count)); threads[0].Start(); threads[1].Start(); threads[2].Start(); threads[3].Start(); convolutionResult = new List <int>(); for (int i = 0; i < threads.Length; i++) { threads[i].Join(); convolutionResult.AddRange(convolutionResults[i]); } // Apply filter to time domain entry.PanelData.RawChartData[chIndex] = convolutionResult; // Repackage byte data for playback entry.PanelData.RawChannelData[chIndex] = entry.PanelData.IntToByteList(entry.PanelData.RawChartData[chIndex], entry.PanelData.RIFFData); WavPackager packager = new WavPackager(null); entry.PanelData.RIFFData = packager.GenerateRIFFData(entry); Console.WriteLine("IDFT completed"); }
private void SaveAs_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog(); sfd.InitialDirectory = @"C:\"; sfd.Title = "Save As ..."; sfd.CheckPathExists = true; sfd.AddExtension = true; sfd.DefaultExt = "wav"; sfd.Filter = "WAV files (*.wav) | *.wav"; sfd.RestoreDirectory = true; if (sfd.ShowDialog() == DialogResult.OK) { WavPackager wp = new WavPackager(sfd.FileName); //wp.WriteFile(parent.PanelData.RIFFData); wp.WriteFile(wp.GenerateRIFFData(parent)); } }