Move ReceiverView code to AnalogAudioView.

ReceiverView predated the "app" model, was serving as a shell for *all* radio activity, but became outmoded and redundant when non-audio modes were split out into separate apps.

Some stuff is broken in this change, will be fixed imminently.
This commit is contained in:
Jared Boone 2016-01-31 09:13:44 -08:00
parent f134e63f05
commit 4d3294c228
8 changed files with 331 additions and 402 deletions

View file

@ -23,13 +23,14 @@
#define __ANALOG_AUDIO_APP_H__
#include "receiver_model.hpp"
#include "ui_receiver.hpp"
#include "ui_spectrum.hpp"
#include "ui_font_fixed_8x16.hpp"
class AnalogAudioModel {
public:
AnalogAudioModel(ReceiverModel::Mode mode);
private:
void configure_nbfm(const size_t index);
void configure_wfm();
void configure_am(const size_t index);
@ -37,16 +38,110 @@ private:
namespace ui {
class AnalogAudioView : public spectrum::WaterfallWidget {
constexpr Style style_options_group {
.font = font::fixed_8x16,
.background = Color::blue(),
.foreground = Color::white(),
};
class AnalogAudioView : public View {
public:
AnalogAudioView(
ReceiverModel::Mode mode
) : model { mode }
{
}
AnalogAudioView(NavigationView& nav);
~AnalogAudioView();
void on_show() override;
void on_hide() override;
void set_parent_rect(const Rect new_parent_rect) override;
void focus() override;
private:
AnalogAudioModel model;
static constexpr ui::Dim header_height = 2 * 16;
RSSI rssi {
{ 21 * 8, 0, 6 * 8, 4 },
};
Channel channel {
{ 21 * 8, 5, 6 * 8, 4 },
};
Audio audio {
{ 21 * 8, 10, 6 * 8, 4 },
};
FrequencyField field_frequency {
{ 5 * 8, 0 * 16 },
};
LNAGainField field_lna {
{ 15 * 8, 0 * 16 }
};
NumberField field_vga {
{ 18 * 8, 0 * 16},
2,
{ max2837::vga::gain_db_range.minimum, max2837::vga::gain_db_range.maximum },
max2837::vga::gain_db_step,
' ',
};
OptionsField options_modulation {
{ 0 * 8, 0 * 16 },
4,
{
{ " AM ", 1 },
{ "NFM ", 2 },
{ "WFM ", 3 },
{ "SPEC", 4 },
}
};
NumberField field_volume {
{ 28 * 8, 0 * 16 },
2,
{ 0, 99 },
1,
' ',
};
FrequencyOptionsView view_frequency_options {
{ 0 * 8, 1 * 16, 30 * 8, 1 * 16 },
&style_options_group
};
RadioGainOptionsView view_rf_gain_options {
{ 0 * 8, 1 * 16, 30 * 8, 1 * 16 },
&style_options_group
};
/*
AmplitudeModulationOptionsView view_am_modulation_options {
{ 0 * 8, 1 * 16, 30 * 8, 1 * 16 },
&style_options_group
};
FrequencyModulationOptionsView view_fm_modulation_options {
{ 0 * 8, 1 * 16, 30 * 8, 1 * 16 },
&style_options_group
};
*/
spectrum::WaterfallWidget waterfall;
void on_tuning_frequency_changed(rf::Frequency f);
void on_baseband_bandwidth_changed(uint32_t bandwidth_hz);
void on_rf_amp_changed(bool v);
void on_lna_changed(int32_t v_db);
void on_vga_changed(int32_t v_db);
void on_modulation_changed(int32_t v);
void on_show_options_frequency();
void on_show_options_rf_gain();
void on_frequency_step_changed(rf::Frequency f);
void on_reference_ppm_correction_changed(int32_t v);
void on_headphone_volume_changed(int32_t v);
void on_edit_frequency();
};
} /* namespace ui */