mirror of
https://github.com/eried/portapack-mayhem.git
synced 2024-10-01 01:26:06 -04:00
Use freq from AppSettings unless passed from another app (#2073)
This commit is contained in:
parent
d29172f41e
commit
56303eb385
@ -175,16 +175,12 @@ void copy_to_radio_model(const AppSettings& settings) {
|
|||||||
// Specifically 'modulation' which requires a running baseband.
|
// Specifically 'modulation' which requires a running baseband.
|
||||||
|
|
||||||
if (flags_enabled(settings.mode, Mode::TX)) {
|
if (flags_enabled(settings.mode, Mode::TX)) {
|
||||||
if (!flags_enabled(settings.options, Options::UseGlobalTargetFrequency))
|
|
||||||
persistent_memory::set_target_frequency(settings.tx_frequency);
|
persistent_memory::set_target_frequency(settings.tx_frequency);
|
||||||
|
|
||||||
transmitter_model.configure_from_app_settings(settings);
|
transmitter_model.configure_from_app_settings(settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags_enabled(settings.mode, Mode::RX)) {
|
if (flags_enabled(settings.mode, Mode::RX)) {
|
||||||
if (!flags_enabled(settings.options, Options::UseGlobalTargetFrequency))
|
|
||||||
persistent_memory::set_target_frequency(settings.rx_frequency);
|
persistent_memory::set_target_frequency(settings.rx_frequency);
|
||||||
|
|
||||||
receiver_model.configure_from_app_settings(settings);
|
receiver_model.configure_from_app_settings(settings);
|
||||||
receiver_model.set_configuration_without_update(
|
receiver_model.set_configuration_without_update(
|
||||||
static_cast<ReceiverModel::Mode>(settings.modulation),
|
static_cast<ReceiverModel::Mode>(settings.modulation),
|
||||||
|
@ -118,9 +118,6 @@ enum class Mode : uint8_t {
|
|||||||
|
|
||||||
enum class Options {
|
enum class Options {
|
||||||
None = 0x0000,
|
None = 0x0000,
|
||||||
|
|
||||||
/* Don't use target frequency from app settings. */
|
|
||||||
UseGlobalTargetFrequency = 0x0001,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* NB: See RX/TX model headers for default values. */
|
/* NB: See RX/TX model headers for default values. */
|
||||||
|
@ -208,7 +208,9 @@ AnalogAudioView::AnalogAudioView(
|
|||||||
NavigationView& nav,
|
NavigationView& nav,
|
||||||
ReceiverModel::settings_t override)
|
ReceiverModel::settings_t override)
|
||||||
: AnalogAudioView(nav) {
|
: AnalogAudioView(nav) {
|
||||||
|
// Settings to override when launched from another app (versus from AppSettings .ini file)
|
||||||
// TODO: Which other settings make sense to override?
|
// TODO: Which other settings make sense to override?
|
||||||
|
field_frequency.set_value(override.frequency_app_override);
|
||||||
on_frequency_step_changed(override.frequency_step);
|
on_frequency_step_changed(override.frequency_step);
|
||||||
options_modulation.set_by_value(toUType(override.mode));
|
options_modulation.set_by_value(toUType(override.mode));
|
||||||
}
|
}
|
||||||
|
@ -174,7 +174,6 @@ class AnalogAudioView : public View {
|
|||||||
app_settings::SettingsManager settings_{
|
app_settings::SettingsManager settings_{
|
||||||
"rx_audio",
|
"rx_audio",
|
||||||
app_settings::Mode::RX,
|
app_settings::Mode::RX,
|
||||||
app_settings::Options::UseGlobalTargetFrequency,
|
|
||||||
{
|
{
|
||||||
{"iq_phase_calibration"sv, &iq_phase_calibration_value}, // we are saving and restoring that CAL from Settings.
|
{"iq_phase_calibration"sv, &iq_phase_calibration_value}, // we are saving and restoring that CAL from Settings.
|
||||||
}};
|
}};
|
||||||
|
@ -104,6 +104,14 @@ CaptureAppView::CaptureAppView(NavigationView& nav)
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CaptureAppView::CaptureAppView(
|
||||||
|
NavigationView& nav,
|
||||||
|
ReceiverModel::settings_t override)
|
||||||
|
: CaptureAppView(nav) {
|
||||||
|
// Settings to override when launched from another app (versus from AppSettings .ini file)
|
||||||
|
field_frequency.set_value(override.frequency_app_override);
|
||||||
|
}
|
||||||
|
|
||||||
CaptureAppView::~CaptureAppView() {
|
CaptureAppView::~CaptureAppView() {
|
||||||
receiver_model.disable();
|
receiver_model.disable();
|
||||||
baseband::shutdown();
|
baseband::shutdown();
|
||||||
|
@ -38,6 +38,7 @@ namespace ui {
|
|||||||
class CaptureAppView : public View {
|
class CaptureAppView : public View {
|
||||||
public:
|
public:
|
||||||
CaptureAppView(NavigationView& nav);
|
CaptureAppView(NavigationView& nav);
|
||||||
|
CaptureAppView(NavigationView& nav, ReceiverModel::settings_t override);
|
||||||
~CaptureAppView();
|
~CaptureAppView();
|
||||||
|
|
||||||
void focus() override;
|
void focus() override;
|
||||||
@ -52,8 +53,7 @@ class CaptureAppView : public View {
|
|||||||
NavigationView& nav_;
|
NavigationView& nav_;
|
||||||
RxRadioState radio_state_{ReceiverModel::Mode::Capture};
|
RxRadioState radio_state_{ReceiverModel::Mode::Capture};
|
||||||
app_settings::SettingsManager settings_{
|
app_settings::SettingsManager settings_{
|
||||||
"rx_capture", app_settings::Mode::RX,
|
"rx_capture", app_settings::Mode::RX};
|
||||||
app_settings::Options::UseGlobalTargetFrequency};
|
|
||||||
|
|
||||||
Labels labels{
|
Labels labels{
|
||||||
{{0 * 8, 1 * 16}, "Rate:", Color::light_grey()},
|
{{0 * 8, 1 * 16}, "Rate:", Color::light_grey()},
|
||||||
|
@ -596,6 +596,7 @@ MicTXView::MicTXView(
|
|||||||
NavigationView& nav,
|
NavigationView& nav,
|
||||||
ReceiverModel::settings_t override)
|
ReceiverModel::settings_t override)
|
||||||
: MicTXView(nav) {
|
: MicTXView(nav) {
|
||||||
|
// Settings to override when launched from another app (versus from AppSettings .ini file)
|
||||||
// Try to use the modulation/bandwidth from RX settings.
|
// Try to use the modulation/bandwidth from RX settings.
|
||||||
// TODO: These concepts should be merged so there's only one.
|
// TODO: These concepts should be merged so there's only one.
|
||||||
switch (override.mode) {
|
switch (override.mode) {
|
||||||
@ -616,6 +617,7 @@ MicTXView::MicTXView(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
field_frequency.set_value(override.frequency_app_override);
|
||||||
check_common_freq_tx_rx.set_value(true); // freq passed from other app is in tx_frequency, so set rx_frequency=tx_frequency
|
check_common_freq_tx_rx.set_value(true); // freq passed from other app is in tx_frequency, so set rx_frequency=tx_frequency
|
||||||
|
|
||||||
// TODO: bandwidth selection is tied too tightly to the UI
|
// TODO: bandwidth selection is tied too tightly to the UI
|
||||||
|
@ -118,7 +118,6 @@ class MicTXView : public View {
|
|||||||
app_settings::SettingsManager settings_{
|
app_settings::SettingsManager settings_{
|
||||||
"tx_mic",
|
"tx_mic",
|
||||||
app_settings::Mode::RX_TX,
|
app_settings::Mode::RX_TX,
|
||||||
app_settings::Options::UseGlobalTargetFrequency,
|
|
||||||
{
|
{
|
||||||
{"mic_mod_index"sv, &mic_mod_index},
|
{"mic_mod_index"sv, &mic_mod_index},
|
||||||
{"rxbw_index"sv, &rxbw_index},
|
{"rxbw_index"sv, &rxbw_index},
|
||||||
|
@ -508,7 +508,7 @@ ReconView::ReconView(NavigationView& nav)
|
|||||||
auto settings = receiver_model.settings();
|
auto settings = receiver_model.settings();
|
||||||
settings.frequency_step = step_mode.selected_index_value();
|
settings.frequency_step = step_mode.selected_index_value();
|
||||||
if (field_mode.selected_index_value() == SPEC_MODULATION)
|
if (field_mode.selected_index_value() == SPEC_MODULATION)
|
||||||
nav_.replace<CaptureAppView>();
|
nav_.replace<CaptureAppView>(settings);
|
||||||
else
|
else
|
||||||
nav_.replace<AnalogAudioView>(settings);
|
nav_.replace<AnalogAudioView>(settings);
|
||||||
};
|
};
|
||||||
@ -539,7 +539,7 @@ ReconView::ReconView(NavigationView& nav)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MicTX wants Modulation and Bandwidth overrides, but that's only stored on the RX model.
|
// MicTX wants Frequency, Modulation and Bandwidth overrides, but that's only stored on the RX model.
|
||||||
nav_.replace<MicTXView>(receiver_model.settings());
|
nav_.replace<MicTXView>(receiver_model.settings());
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -413,7 +413,7 @@ ScannerView::ScannerView(
|
|||||||
button_mic_app.on_select = [this](Button&) {
|
button_mic_app.on_select = [this](Button&) {
|
||||||
if (scan_thread)
|
if (scan_thread)
|
||||||
scan_thread->stop();
|
scan_thread->stop();
|
||||||
// MicTX wants Modulation and Bandwidth overrides, but that's only stored on the RX model.
|
// MicTX wants Frequency, Modulation and Bandwidth overrides, but that's only stored on the RX model.
|
||||||
nav_.replace<MicTXView>(receiver_model.settings());
|
nav_.replace<MicTXView>(receiver_model.settings());
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -68,6 +68,7 @@ rf::Frequency ReceiverModel::target_frequency() const {
|
|||||||
|
|
||||||
void ReceiverModel::set_target_frequency(rf::Frequency f) {
|
void ReceiverModel::set_target_frequency(rf::Frequency f) {
|
||||||
persistent_memory::set_target_frequency(f);
|
persistent_memory::set_target_frequency(f);
|
||||||
|
settings_.frequency_app_override = f;
|
||||||
update_tuning_frequency();
|
update_tuning_frequency();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,6 +48,7 @@ class ReceiverModel {
|
|||||||
uint32_t baseband_bandwidth = max283x::filter::bandwidth_minimum;
|
uint32_t baseband_bandwidth = max283x::filter::bandwidth_minimum;
|
||||||
uint32_t sampling_rate = 3'072'000;
|
uint32_t sampling_rate = 3'072'000;
|
||||||
rf::Frequency frequency_step = 25'000;
|
rf::Frequency frequency_step = 25'000;
|
||||||
|
rf::Frequency frequency_app_override = 0;
|
||||||
uint8_t lna_gain_db = 32;
|
uint8_t lna_gain_db = 32;
|
||||||
uint8_t vga_gain_db = 32;
|
uint8_t vga_gain_db = 32;
|
||||||
bool rf_amp = false;
|
bool rf_amp = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user