From 85f7e69da5b3b36cc8a0f0a1dda8ce23ba4592b9 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sun, 14 Oct 2018 02:58:14 +0200 Subject: [PATCH] File Input: extended acceleration up to x1000 --- plugins/samplesource/filesource/filesourcegui.ui | 15 +++++++++++++++ .../samplesource/filesource/filesourceinput.cpp | 6 +++++- .../filesource/filesourcesettings.cpp | 2 +- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/plugins/samplesource/filesource/filesourcegui.ui b/plugins/samplesource/filesource/filesourcegui.ui index f40501a14..458043fa2 100644 --- a/plugins/samplesource/filesource/filesourcegui.ui +++ b/plugins/samplesource/filesource/filesourcegui.ui @@ -475,6 +475,21 @@ 100 + + + 200 + + + + + 500 + + + + + 1k + + diff --git a/plugins/samplesource/filesource/filesourceinput.cpp b/plugins/samplesource/filesource/filesourceinput.cpp index 4f8ed2175..4f0241a55 100644 --- a/plugins/samplesource/filesource/filesourceinput.cpp +++ b/plugins/samplesource/filesource/filesourceinput.cpp @@ -174,7 +174,7 @@ bool FileSourceInput::start() m_ifstream.seekg(sizeof(FileRecord::Header), std::ios::beg); } - if(!m_sampleFifo.setSize(m_sampleRate * sizeof(Sample))) { + if(!m_sampleFifo.setSize(m_settings.m_accelerationFactor * m_sampleRate * sizeof(Sample))) { qCritical("Could not allocate SampleFifo"); return false; } @@ -405,6 +405,10 @@ bool FileSourceInput::applySettings(const FileSourceSettings& settings, bool for if (m_fileSourceThread) { QMutexLocker mutexLocker(&m_mutex); + if (!m_sampleFifo.setSize(m_settings.m_accelerationFactor * m_sampleRate * sizeof(Sample))) { + qCritical("FileSourceInput::applySettings: could not reallocate sample FIFO size to %lu", + m_settings.m_accelerationFactor * m_sampleRate * sizeof(Sample)); + } m_fileSourceThread->setSampleRateAndSize(settings.m_accelerationFactor * m_sampleRate, m_sampleSize); // Fast Forward: 1 corresponds to live. 1/2 is half speed, 2 is double speed } } diff --git a/plugins/samplesource/filesource/filesourcesettings.cpp b/plugins/samplesource/filesource/filesourcesettings.cpp index c5c2f0442..950f1c1af 100644 --- a/plugins/samplesource/filesource/filesourcesettings.cpp +++ b/plugins/samplesource/filesource/filesourcesettings.cpp @@ -18,7 +18,7 @@ #include "filesourcesettings.h" -const unsigned int FileSourceSettings::m_accelerationMaxScale = 1; +const unsigned int FileSourceSettings::m_accelerationMaxScale = 2; FileSourceSettings::FileSourceSettings() {