diff --git a/plugins/samplesource/fcdpro/fcdproinput.cpp b/plugins/samplesource/fcdpro/fcdproinput.cpp index 59cba5817..ac6e8cef1 100644 --- a/plugins/samplesource/fcdpro/fcdproinput.cpp +++ b/plugins/samplesource/fcdpro/fcdproinput.cpp @@ -90,6 +90,16 @@ bool FCDProInput::openDevice() return false; } + if (!openFCDAudio(fcd_traits::qtDeviceName)) + { + qCritical("FCDProInput::start: could not open FCD audio source"); + return false; + } + else + { + qDebug("FCDProInput::start: FCD audio source opened"); + } + return true; } @@ -123,16 +133,6 @@ bool FCDProInput::start() return false; } - if (!openFCDAudio(fcd_traits::qtDeviceName)) - { - qCritical("FCDProInput::start: could not open FCD audio source"); - return false; - } - else - { - qDebug("FCDProInput::start: FCD audio source opened"); - } - m_FCDThread = new FCDProThread(&m_sampleFifo, &m_fcdFIFO); m_FCDThread->startWork(); @@ -153,6 +153,8 @@ void FCDProInput::closeDevice() fcdClose(m_dev); m_dev = 0; + + closeFCDAudio(); } bool FCDProInput::openFCDAudio(const char* cardname) @@ -194,7 +196,6 @@ void FCDProInput::stop() // wait for thread to quit ? delete m_FCDThread; m_FCDThread = nullptr; - closeFCDAudio(); } m_running = false; diff --git a/plugins/samplesource/fcdproplus/fcdproplusinput.cpp b/plugins/samplesource/fcdproplus/fcdproplusinput.cpp index 940ad9d83..8ed4d5d49 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusinput.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplusinput.cpp @@ -90,6 +90,16 @@ bool FCDProPlusInput::openDevice() return false; } + if (!openFCDAudio(fcd_traits::qtDeviceName)) + { + qCritical("FCDProPlusInput::start: could not open FCD audio source"); + return false; + } + else + { + qDebug("FCDProPlusInput::start: FCD audio source opened"); + } + return true; } @@ -125,16 +135,6 @@ bool FCDProPlusInput::start() return false; } - if (!openFCDAudio(fcd_traits::qtDeviceName)) - { - qCritical("FCDProPlusInput::start: could not open FCD audio source"); - return false; - } - else - { - qDebug("FCDProPlusInput::start: FCD audio source opened"); - } - m_FCDThread = new FCDProPlusThread(&m_sampleFifo, &m_fcdFIFO); m_FCDThread->startWork(); @@ -155,6 +155,8 @@ void FCDProPlusInput::closeDevice() fcdClose(m_dev); m_dev = 0; + + closeFCDAudio(); } bool FCDProPlusInput::openFCDAudio(const char* cardname) @@ -196,7 +198,6 @@ void FCDProPlusInput::stop() // wait for thread to quit ? delete m_FCDThread; m_FCDThread = nullptr; - closeFCDAudio(); } m_running = false;