From f932d2d55070de28024fe2b542cc812ea89064f5 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Thu, 26 Dec 2019 22:01:36 -0500 Subject: [PATCH] Rewrite export of data in FreqWindow.cpp --- src/FreqWindow.cpp | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/FreqWindow.cpp b/src/FreqWindow.cpp index 765106ce8..9ccfb5ec7 100644 --- a/src/FreqWindow.cpp +++ b/src/FreqWindow.cpp @@ -68,6 +68,9 @@ and in the spectrogram spectral selection. #include #include +#include +#include + #include #include "ShuttleGui.h" @@ -1073,31 +1076,32 @@ void FrequencyPlotDialog::OnExport(wxCommandEvent & WXUNUSED(event)) if (fName.empty()) return; - wxTextFile f(fName); - f.Create(); - f.Open(); - if (!f.IsOpened()) { + wxFFileOutputStream ffStream{ fName }; + if (!ffStream.IsOk()) { AudacityMessageBox( XO("Couldn't write to file: %s").Format( fName ) ); return; } + wxTextOutputStream ss(ffStream); + const int processedSize = mAnalyst->GetProcessedSize(); const float *const processed = mAnalyst->GetProcessed(); if (mAlgChoice->GetSelection() == 0) { - f.AddLine(_("Frequency (Hz)\tLevel (dB)")); + ss + << XO("Frequency (Hz)\tLevel (dB)") << '\n'; for (int i = 1; i < processedSize; i++) - f.AddLine(wxString:: - Format(wxT("%f\t%f"), i * mRate / mWindowSize, - processed[i])); - } else { - f.AddLine(_("Lag (seconds)\tFrequency (Hz)\tLevel")); - for (int i = 1; i < processedSize; i++) - f.AddLine(wxString::Format(wxT("%f\t%f\t%f"), - i / mRate, mRate / i, processed[i])); + ss + << wxString::Format(wxT("%f\t%f\n"), + i * mRate / mWindowSize, processed[i] ); + } + else { + ss + << XO("Lag (seconds)\tFrequency (Hz)\tLevel") << '\n'; + for (int i = 1; i < processedSize; i++) + ss + << wxString::Format(wxT("%f\t%f\t%f\n"), + i / mRate, mRate / i, processed[i] ); } - - f.Write(); - f.Close(); } void FrequencyPlotDialog::OnReplot(wxCommandEvent & WXUNUSED(event))