mirror of
https://github.com/eried/portapack-mayhem.git
synced 2025-07-28 09:14:39 -04:00
ReceiverModel: Eliminate now-redundant BasebandConfiguration.
This commit is contained in:
parent
b60e88ef68
commit
371c6e0906
3 changed files with 20 additions and 41 deletions
|
@ -286,11 +286,8 @@ void AnalogAudioView::update_modulation(const ReceiverModel::Mode modulation) {
|
||||||
baseband::run_image(image_tag);
|
baseband::run_image(image_tag);
|
||||||
|
|
||||||
const auto is_wideband_spectrum_mode = (modulation == ReceiverModel::Mode::SpectrumAnalysis);
|
const auto is_wideband_spectrum_mode = (modulation == ReceiverModel::Mode::SpectrumAnalysis);
|
||||||
receiver_model.set_baseband_configuration({
|
receiver_model.set_modulation(toUType(modulation));
|
||||||
.mode = toUType(modulation),
|
receiver_model.set_sampling_rate(is_wideband_spectrum_mode ? 20000000 : 3072000);
|
||||||
.sampling_rate = is_wideband_spectrum_mode ? 20000000U : 3072000U,
|
|
||||||
.decimation_factor = 1,
|
|
||||||
});
|
|
||||||
receiver_model.set_baseband_bandwidth(is_wideband_spectrum_mode ? 12000000 : 1750000);
|
receiver_model.set_baseband_bandwidth(is_wideband_spectrum_mode ? 12000000 : 1750000);
|
||||||
receiver_model.enable();
|
receiver_model.enable();
|
||||||
|
|
||||||
|
|
|
@ -116,11 +116,21 @@ void ReceiverModel::set_vga(int32_t v_db) {
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t ReceiverModel::sampling_rate() const {
|
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 {
|
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 {
|
volume_t ReceiverModel::headphone_volume() const {
|
||||||
|
@ -134,7 +144,7 @@ void ReceiverModel::set_headphone_volume(volume_t v) {
|
||||||
|
|
||||||
uint32_t ReceiverModel::baseband_oversampling() const {
|
uint32_t ReceiverModel::baseband_oversampling() const {
|
||||||
// TODO: Rename decimation_factor.
|
// TODO: Rename decimation_factor.
|
||||||
return baseband_configuration.decimation_factor;
|
return decimation_factor_;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReceiverModel::enable() {
|
void ReceiverModel::enable() {
|
||||||
|
@ -192,11 +202,6 @@ void ReceiverModel::update_vga() {
|
||||||
radio::set_vga_gain(vga_gain_db_);
|
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) {
|
void ReceiverModel::set_am_configuration(const size_t n) {
|
||||||
if( n < am_configs.size() ) {
|
if( n < am_configs.size() ) {
|
||||||
am_config_index = n;
|
am_config_index = n;
|
||||||
|
|
|
@ -30,27 +30,6 @@
|
||||||
#include "max2837.hpp"
|
#include "max2837.hpp"
|
||||||
#include "volume.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 {
|
class ReceiverModel {
|
||||||
public:
|
public:
|
||||||
enum class Mode : int32_t {
|
enum class Mode : int32_t {
|
||||||
|
@ -83,8 +62,10 @@ public:
|
||||||
void set_vga(int32_t v_db);
|
void set_vga(int32_t v_db);
|
||||||
|
|
||||||
uint32_t sampling_rate() const;
|
uint32_t sampling_rate() const;
|
||||||
|
void set_sampling_rate(uint32_t v);
|
||||||
|
|
||||||
uint32_t modulation() const;
|
uint32_t modulation() const;
|
||||||
|
void set_modulation(uint32_t v);
|
||||||
|
|
||||||
volume_t headphone_volume() const;
|
volume_t headphone_volume() const;
|
||||||
void set_headphone_volume(volume_t v);
|
void set_headphone_volume(volume_t v);
|
||||||
|
@ -94,8 +75,6 @@ public:
|
||||||
void enable();
|
void enable();
|
||||||
void disable();
|
void disable();
|
||||||
|
|
||||||
void set_baseband_configuration(const BasebandConfiguration config);
|
|
||||||
|
|
||||||
size_t am_configuration() const;
|
size_t am_configuration() const;
|
||||||
void set_am_configuration(const size_t n);
|
void set_am_configuration(const size_t n);
|
||||||
|
|
||||||
|
@ -113,11 +92,9 @@ private:
|
||||||
int32_t lna_gain_db_ { 32 };
|
int32_t lna_gain_db_ { 32 };
|
||||||
uint32_t baseband_bandwidth_ { max2837::filter::bandwidth_minimum };
|
uint32_t baseband_bandwidth_ { max2837::filter::bandwidth_minimum };
|
||||||
int32_t vga_gain_db_ { 32 };
|
int32_t vga_gain_db_ { 32 };
|
||||||
BasebandConfiguration baseband_configuration {
|
uint32_t mode_ { 1 };
|
||||||
.mode = 1, /* TODO: Enum! */
|
uint32_t sampling_rate_ { 3072000 };
|
||||||
.sampling_rate = 3072000,
|
size_t decimation_factor_ { 1 };
|
||||||
.decimation_factor = 1,
|
|
||||||
};
|
|
||||||
size_t am_config_index = 0;
|
size_t am_config_index = 0;
|
||||||
size_t nbfm_config_index = 0;
|
size_t nbfm_config_index = 0;
|
||||||
size_t wfm_config_index = 0;
|
size_t wfm_config_index = 0;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue