mirror of
https://github.com/portapack-mayhem/mayhem-firmware.git
synced 2025-06-19 22:38:31 +00:00
Reorganize BasebandProcessor method/member visibility.
Also hide feed_audio_stats() inside fill_audio_buffer().
This commit is contained in:
parent
d7cb2c5da4
commit
665f54b410
@ -382,11 +382,6 @@ public:
|
|||||||
virtual void execute(buffer_c8_t buffer) = 0;
|
virtual void execute(buffer_c8_t buffer) = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
BlockDecimator<256> channel_spectrum_decimator { 4 };
|
|
||||||
|
|
||||||
ChannelStatsCollector channel_stats;
|
|
||||||
ChannelStatisticsMessage channel_stats_message;
|
|
||||||
|
|
||||||
void feed_channel_stats(const buffer_c16_t channel) {
|
void feed_channel_stats(const buffer_c16_t channel) {
|
||||||
channel_stats.feed(
|
channel_stats.feed(
|
||||||
channel,
|
channel,
|
||||||
@ -396,13 +391,6 @@ protected:
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void post_channel_stats_message(const ChannelStatistics statistics) {
|
|
||||||
if( channel_stats_message.is_free() ) {
|
|
||||||
channel_stats_message.statistics = statistics;
|
|
||||||
shared_memory.application_queue.push(&channel_stats_message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void feed_channel_spectrum(const buffer_c16_t channel) {
|
void feed_channel_spectrum(const buffer_c16_t channel) {
|
||||||
channel_spectrum_decimator.feed(
|
channel_spectrum_decimator.feed(
|
||||||
channel,
|
channel,
|
||||||
@ -412,6 +400,39 @@ protected:
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void fill_audio_buffer(const buffer_s16_t audio) {
|
||||||
|
auto audio_buffer = audio::dma::tx_empty_buffer();;
|
||||||
|
for(size_t i=0; i<audio_buffer.count; i++) {
|
||||||
|
audio_buffer.p[i].left = audio_buffer.p[i].right = audio.p[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
i2s::i2s0::tx_unmute();
|
||||||
|
|
||||||
|
feed_audio_stats(audio);
|
||||||
|
}
|
||||||
|
|
||||||
|
void mute_audio() {
|
||||||
|
// TODO: Feed audio stats? What if baseband never produces audio?
|
||||||
|
// TODO: How should audio stats behave if I *sometimes* mute audio?
|
||||||
|
i2s::i2s0::tx_mute();
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
BlockDecimator<256> channel_spectrum_decimator { 4 };
|
||||||
|
|
||||||
|
ChannelStatsCollector channel_stats;
|
||||||
|
ChannelStatisticsMessage channel_stats_message;
|
||||||
|
|
||||||
|
AudioStatsCollector audio_stats;
|
||||||
|
AudioStatisticsMessage audio_stats_message;
|
||||||
|
|
||||||
|
void post_channel_stats_message(const ChannelStatistics statistics) {
|
||||||
|
if( channel_stats_message.is_free() ) {
|
||||||
|
channel_stats_message.statistics = statistics;
|
||||||
|
shared_memory.application_queue.push(&channel_stats_message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void post_channel_spectrum_message(const buffer_c16_t data) {
|
void post_channel_spectrum_message(const buffer_c16_t data) {
|
||||||
if( !channel_spectrum_request_update ) {
|
if( !channel_spectrum_request_update ) {
|
||||||
channel_spectrum_request_update = true;
|
channel_spectrum_request_update = true;
|
||||||
@ -421,9 +442,6 @@ protected:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
AudioStatsCollector audio_stats;
|
|
||||||
AudioStatisticsMessage audio_stats_message;
|
|
||||||
|
|
||||||
void feed_audio_stats(const buffer_s16_t audio) {
|
void feed_audio_stats(const buffer_s16_t audio) {
|
||||||
audio_stats.feed(
|
audio_stats.feed(
|
||||||
audio,
|
audio,
|
||||||
@ -439,21 +457,6 @@ protected:
|
|||||||
shared_memory.application_queue.push(&audio_stats_message);
|
shared_memory.application_queue.push(&audio_stats_message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void fill_audio_buffer(const buffer_s16_t audio) {
|
|
||||||
auto audio_buffer = audio::dma::tx_empty_buffer();;
|
|
||||||
for(size_t i=0; i<audio_buffer.count; i++) {
|
|
||||||
audio_buffer.p[i].left = audio_buffer.p[i].right = audio.p[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
i2s::i2s0::tx_unmute();
|
|
||||||
}
|
|
||||||
|
|
||||||
void mute_audio() {
|
|
||||||
// TODO: Feed audio stats? What if baseband never produces audio?
|
|
||||||
// TODO: How should audio stats behave if I *sometimes* mute audio?
|
|
||||||
i2s::i2s0::tx_mute();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class NarrowbandAMAudio : public BasebandProcessor {
|
class NarrowbandAMAudio : public BasebandProcessor {
|
||||||
@ -488,7 +491,6 @@ public:
|
|||||||
auto audio = demod.execute(channel, work_audio_buffer);
|
auto audio = demod.execute(channel, work_audio_buffer);
|
||||||
|
|
||||||
audio_hpf.execute_in_place(audio);
|
audio_hpf.execute_in_place(audio);
|
||||||
feed_audio_stats(audio);
|
|
||||||
fill_audio_buffer(audio);
|
fill_audio_buffer(audio);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -542,7 +544,6 @@ public:
|
|||||||
|
|
||||||
if( audio_present_history ) {
|
if( audio_present_history ) {
|
||||||
audio_hpf.execute_in_place(audio);
|
audio_hpf.execute_in_place(audio);
|
||||||
feed_audio_stats(audio);
|
|
||||||
fill_audio_buffer(audio);
|
fill_audio_buffer(audio);
|
||||||
} else {
|
} else {
|
||||||
mute_audio();
|
mute_audio();
|
||||||
@ -609,7 +610,6 @@ public:
|
|||||||
|
|
||||||
/* -> 48kHz int16_t[32] */
|
/* -> 48kHz int16_t[32] */
|
||||||
audio_hpf.execute_in_place(audio);
|
audio_hpf.execute_in_place(audio);
|
||||||
feed_audio_stats(audio);
|
|
||||||
fill_audio_buffer(audio);
|
fill_audio_buffer(audio);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user