diff --git a/firmware/application/apps/analog_audio_app.cpp b/firmware/application/apps/analog_audio_app.cpp index 4f3d724ab733f5aadc388b1ada54f8ce99d8ad75..3c67df0ab8082573c3d59b634b66a080b6ce1b45 100644 --- a/firmware/application/apps/analog_audio_app.cpp +++ b/firmware/application/apps/analog_audio_app.cpp @@ -338,7 +338,8 @@ void AnalogAudioView::update_modulation(const ReceiverModel::Mode modulation) { record_view.set_sampling_rate(sampling_rate); if( !is_wideband_spectrum_mode ) { - audio::output::unmute(); + //audio::output::unmute(); + portapack::set_speaker_mode(portapack::speaker_mode); //Now depends on speaker mode } } diff --git a/firmware/application/apps/ui_scanner.cpp b/firmware/application/apps/ui_scanner.cpp index 26c00728662ef863bf9d2b704c3c0fa8352feabd..5bbefc3856ceceaf5b7f5ef728ced6bcad139412 100644 --- a/firmware/application/apps/ui_scanner.cpp +++ b/firmware/application/apps/ui_scanner.cpp @@ -174,7 +174,7 @@ ScannerView::ScannerView( audio::output::start(); - audio::output::mute(); + //audio::output::mute(); //No need for this baseband::run_image(portapack::spi_flash::image_tag_nfm_audio); receiver_model.set_modulation(ReceiverModel::Mode::NarrowbandFMAudio); receiver_model.set_sampling_rate(3072000); @@ -182,7 +182,7 @@ ScannerView::ScannerView( receiver_model.enable(); receiver_model.set_squelch_level(0); receiver_model.set_nbfm_configuration(field_bw.selected_index()); - audio::output::unmute(); + //audio::output::unmute(); //No need for this // TODO: Scanning thread here scan_thread = std::make_unique<ScannerThread>(frequency_list); diff --git a/firmware/application/audio.cpp b/firmware/application/audio.cpp index 4ba23accf393dfb3cc3241b0a54b1c1f7d820543..88f6585984f9b4210881c679c26df8b858db2210 100644 --- a/firmware/application/audio.cpp +++ b/firmware/application/audio.cpp @@ -136,11 +136,16 @@ namespace output { void start() { i2s::i2s0::tx_start(); - unmute(); + //unmute(); + portapack::set_speaker_mode(portapack::speaker_mode); //Now depends on speaker mode } void stop() { - mute(); + //mute(); //Now it depends on speaker mode + if (portapack::speaker_mode) + speaker_mute(); + else + mute(); //Mute headphones i2s::i2s0::tx_stop(); } diff --git a/firmware/application/portapack.cpp b/firmware/application/portapack.cpp index 99843aec31759b333243fde6c0eae784e81de24e..99bf2eccb26020231632683ced4a739d39e255c5 100644 --- a/firmware/application/portapack.cpp +++ b/firmware/application/portapack.cpp @@ -97,9 +97,15 @@ bool speaker_mode { false }; void set_speaker_mode(const bool v) { speaker_mode = v; if (speaker_mode) + { + audio::output::mute(); //Mute headphones audio::output::speaker_unmute(); + } else + { audio::output::speaker_mute(); + audio::output::unmute(); //Unmute headphones + } } static constexpr uint32_t systick_count(const uint32_t clock_source_f) {