Finally found what was eating all the RAM :D

Re-enabled the tone key selector in Soundboard
Soundboard now uses OutputStream, like Replay
Constexpr'd a bunch of consts which were going to BSS section
Exiting an app now goes back to main menu
Cleaned up Message array
This commit is contained in:
furrtek
2018-05-15 23:35:30 +01:00
parent 2d3a6313cc
commit b29c1d9749
28 changed files with 419 additions and 279 deletions

View File

@@ -23,10 +23,10 @@
#ifndef __PROC_AUDIOTX_H__
#define __PROC_AUDIOTX_H__
#include "fifo.hpp"
#include "baseband_processor.hpp"
#include "baseband_thread.hpp"
#include "tone_gen.hpp"
#include "stream_output.hpp"
class AudioTXProcessor : public BasebandProcessor {
public:
@@ -35,27 +35,29 @@ public:
void on_message(const Message* const msg) override;
private:
static constexpr size_t baseband_fs = 1536000U;
bool configured = false;
size_t baseband_fs = 0;
BasebandThread baseband_thread { baseband_fs, this, NORMALPRIO + 20, baseband::Direction::Transmit };
int8_t audio_fifo_data[2048] { };
FIFO<int8_t> audio_fifo = { audio_fifo_data, 11 }; // 43ms @ 48000Hz
std::array<uint8_t, 64> audio { };
const buffer_t<uint8_t> audio_buffer {
audio.data(),
audio.size(),
baseband_fs / 8
};
std::unique_ptr<StreamOutput> stream { };
ToneGen tone_gen { };
uint32_t fm_delta { 0 };
uint32_t divider { };
uint32_t as { 0 };
uint32_t phase { 0 }, sphase { 0 };
int8_t out_sample { };
int32_t sample { 0 }, delta { };
int32_t sample { 0 }, audio_sample { 0 }, delta { };
int8_t re { 0 }, im { 0 };
bool asked { false };
size_t spectrum_interval_samples = 0;
size_t spectrum_samples = 0;
//int16_t audio_data[64];
/*const buffer_s16_t preview_audio_buffer {
@@ -63,6 +65,14 @@ private:
sizeof(int16_t)*64
};*/
bool configured { false };
uint32_t bytes_read { 0 };
void samplerate_config(const SamplerateConfigMessage& message);
void audio_config(const AudioTXConfigMessage& message);
void replay_config(const ReplayConfigMessage& message);
TXProgressMessage txprogress_message { };
RequestSignalMessage sig_message { RequestSignalMessage::Signal::FillRequest };
};