ReceiverModel: Eliminate now-redundant BasebandConfiguration.

This commit is contained in:
Jared Boone 2016-07-27 14:42:46 -07:00
parent b60e88ef68
commit 371c6e0906
3 changed files with 20 additions and 41 deletions

View File

@ -286,11 +286,8 @@ void AnalogAudioView::update_modulation(const ReceiverModel::Mode modulation) {
baseband::run_image(image_tag);
const auto is_wideband_spectrum_mode = (modulation == ReceiverModel::Mode::SpectrumAnalysis);
receiver_model.set_baseband_configuration({
.mode = toUType(modulation),
.sampling_rate = is_wideband_spectrum_mode ? 20000000U : 3072000U,
.decimation_factor = 1,
});
receiver_model.set_modulation(toUType(modulation));
receiver_model.set_sampling_rate(is_wideband_spectrum_mode ? 20000000 : 3072000);
receiver_model.set_baseband_bandwidth(is_wideband_spectrum_mode ? 12000000 : 1750000);
receiver_model.enable();

View File

@ -116,11 +116,21 @@ void ReceiverModel::set_vga(int32_t v_db) {
}
uint32_t ReceiverModel::sampling_rate() const {
return baseband_configuration.sampling_rate;
return sampling_rate_;
}
void ReceiverModel::set_sampling_rate(uint32_t v) {
sampling_rate_ = v;
update_sampling_rate();
}
uint32_t ReceiverModel::modulation() const {
return baseband_configuration.mode;
return mode_;
}
void ReceiverModel::set_modulation(const uint32_t v) {
mode_ = v;
update_modulation();
}
volume_t ReceiverModel::headphone_volume() const {
@ -134,7 +144,7 @@ void ReceiverModel::set_headphone_volume(volume_t v) {
uint32_t ReceiverModel::baseband_oversampling() const {
// TODO: Rename decimation_factor.
return baseband_configuration.decimation_factor;
return decimation_factor_;
}
void ReceiverModel::enable() {
@ -192,11 +202,6 @@ void ReceiverModel::update_vga() {
radio::set_vga_gain(vga_gain_db_);
}
void ReceiverModel::set_baseband_configuration(const BasebandConfiguration config) {
baseband_configuration = config;
update_baseband_configuration();
}
void ReceiverModel::set_am_configuration(const size_t n) {
if( n < am_configs.size() ) {
am_config_index = n;

View File

@ -30,27 +30,6 @@
#include "max2837.hpp"
#include "volume.hpp"
struct BasebandConfiguration {
int32_t mode;
uint32_t sampling_rate;
size_t decimation_factor;
constexpr BasebandConfiguration(
int32_t mode,
uint32_t sampling_rate,
size_t decimation_factor = 1
) : mode { mode },
sampling_rate { sampling_rate },
decimation_factor { decimation_factor }
{
}
constexpr BasebandConfiguration(
) : BasebandConfiguration { -1, 0, 1 }
{
}
};
class ReceiverModel {
public:
enum class Mode : int32_t {
@ -83,8 +62,10 @@ public:
void set_vga(int32_t v_db);
uint32_t sampling_rate() const;
void set_sampling_rate(uint32_t v);
uint32_t modulation() const;
void set_modulation(uint32_t v);
volume_t headphone_volume() const;
void set_headphone_volume(volume_t v);
@ -94,8 +75,6 @@ public:
void enable();
void disable();
void set_baseband_configuration(const BasebandConfiguration config);
size_t am_configuration() const;
void set_am_configuration(const size_t n);
@ -113,11 +92,9 @@ private:
int32_t lna_gain_db_ { 32 };
uint32_t baseband_bandwidth_ { max2837::filter::bandwidth_minimum };
int32_t vga_gain_db_ { 32 };
BasebandConfiguration baseband_configuration {
.mode = 1, /* TODO: Enum! */
.sampling_rate = 3072000,
.decimation_factor = 1,
};
uint32_t mode_ { 1 };
uint32_t sampling_rate_ { 3072000 };
size_t decimation_factor_ { 1 };
size_t am_config_index = 0;
size_t nbfm_config_index = 0;
size_t wfm_config_index = 0;