From b3e2e89e518b8e79ce880979b25f7654c4d34017 Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Wed, 6 Apr 2016 11:15:45 -0700 Subject: [PATCH] Create audio recording thread in the right place. Was always creating, finding a timing issue when switching baseband modes, would freeze, probably due to a dangling pointer. TODO: Make stream recording setup synchronous. --- firmware/application/analog_audio_app.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/firmware/application/analog_audio_app.cpp b/firmware/application/analog_audio_app.cpp index f929ebfb8..1a3da0c18 100644 --- a/firmware/application/analog_audio_app.cpp +++ b/firmware/application/analog_audio_app.cpp @@ -135,8 +135,6 @@ AnalogAudioView::AnalogAudioView( audio::output::start(); update_modulation(static_cast(modulation)); - - audio_thread = std::make_unique("audio.s16"); } AnalogAudioView::~AnalogAudioView() { @@ -281,6 +279,7 @@ void AnalogAudioView::on_headphone_volume_changed(int32_t v) { void AnalogAudioView::update_modulation(const ReceiverModel::Mode modulation) { audio::output::mute(); + audio_thread.reset(); const auto is_wideband_spectrum_mode = (modulation == ReceiverModel::Mode::SpectrumAnalysis); receiver_model.set_baseband_configuration({ @@ -292,6 +291,7 @@ void AnalogAudioView::update_modulation(const ReceiverModel::Mode modulation) { receiver_model.enable(); if( !is_wideband_spectrum_mode ) { + audio_thread = std::make_unique("audio.s16"); audio::output::unmute(); } }