comparison framework/MainWindowBase.cpp @ 516:b926f08909b8 alignment-simple

Fix crashes in play() and stop() if no record target / play source present
author Chris Cannam
date Thu, 03 Mar 2016 09:12:28 +0000
parents 51befd6165a3
children 3ab6a5f7aca8
comparison
equal deleted inserted replaced
515:51befd6165a3 516:b926f08909b8
2704 } 2704 }
2705 2705
2706 void 2706 void
2707 MainWindowBase::play() 2707 MainWindowBase::play()
2708 { 2708 {
2709 if (m_recordTarget->isRecording() || m_playSource->isPlaying()) { 2709 if ((m_recordTarget && m_recordTarget->isRecording()) ||
2710 (m_playSource && m_playSource->isPlaying())) {
2710 stop(); 2711 stop();
2711 QAction *action = qobject_cast<QAction *>(sender()); 2712 QAction *action = qobject_cast<QAction *>(sender());
2712 if (action) action->setChecked(false); 2713 if (action) action->setChecked(false);
2713 } else { 2714 } else {
2714 if (m_audioIO) m_audioIO->resume(); 2715 if (m_audioIO) m_audioIO->resume();
3083 } 3084 }
3084 3085
3085 void 3086 void
3086 MainWindowBase::stop() 3087 MainWindowBase::stop()
3087 { 3088 {
3088 if (m_recordTarget->isRecording()) { 3089 if (m_recordTarget &&
3090 m_recordTarget->isRecording()) {
3089 m_recordTarget->stopRecording(); 3091 m_recordTarget->stopRecording();
3090 } 3092 }
3091 3093
3094 if (!m_playSource) return;
3095
3092 m_playSource->stop(); 3096 m_playSource->stop();
3093 3097
3094 if (m_audioIO) m_audioIO->suspend(); 3098 if (m_audioIO) m_audioIO->suspend();
3095 else if (m_playTarget) m_playTarget->suspend(); 3099 else if (m_playTarget) m_playTarget->suspend();
3096 3100