From 7a9240c9efbf4489f9cdf13b8f48db943b9cebb6 Mon Sep 17 00:00:00 2001 From: Joe Taylor <joe@princeton.edu> Date: Mon, 28 Jan 2019 15:58:14 -0500 Subject: [PATCH] Basic saving of .wav files for FT4. --- widgets/mainwindow.cpp | 18 +++++++++++++++++- widgets/mainwindow.h | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/widgets/mainwindow.cpp b/widgets/mainwindow.cpp index 1b2443f01..7a9a96853 100644 --- a/widgets/mainwindow.cpp +++ b/widgets/mainwindow.cpp @@ -8625,7 +8625,8 @@ void MainWindow::ft4Data(int k) } if(k>=NRING) { -//Wrap the ring buffer pointer + if(m_saveAll) save_FT4(); + //Wrap the ring buffer pointer k=k-NRING; dec_data.params.kin=k; } @@ -8740,9 +8741,24 @@ void MainWindow::ft4_tx(int ntx) } m_dateTimeQSOOn=QDateTime::currentDateTimeUtc(); if(!m_btxok && m_btxok0 && g_iptt==1) stopTx(); + if(m_saveAll) save_FT4(); } void MainWindow::FT4_writeTx() { write_all("Tx",m_currentMessage); } + +void MainWindow::save_FT4() +{ + auto time = QDateTime::currentDateTimeUtc (); + QString t=time.toString("yyMMdd_hhmmss"); + m_fnameWE=m_config.save_directory().absoluteFilePath(t); + int nsec=(dec_data.params.kin + 3456)/12000; +// The following is potential a threading hazard - not a good +// idea to pass pointer to be processed in another thread + m_saveWAVWatcher.setFuture (QtConcurrent::run (std::bind (&MainWindow::save_wave_file, + this, m_fnameWE, &dec_data.d2[0], nsec, m_config.my_callsign(), + m_config.my_grid(), m_mode, m_nSubMode, m_freqNominal, m_hisCall, m_hisGrid))); +// qDebug() << "aa" << m_fnameWE << nsec; +} diff --git a/widgets/mainwindow.h b/widgets/mainwindow.h index 5a1e5037c..f97bdef32 100644 --- a/widgets/mainwindow.h +++ b/widgets/mainwindow.h @@ -751,6 +751,7 @@ private: void foxGenWaveform(int i,QString fm); void writeFoxQSO (QString const& msg); void FT4_writeTx(); + void save_FT4(); }; extern int killbyname(const char* progName);