Provide AudioOutput::set_stream().

Assign when wanting to capture audio stream.
This commit is contained in:
Jared Boone 2016-04-23 14:55:59 -07:00
parent 7436dea51a
commit 67eb62ec12
2 changed files with 8 additions and 3 deletions

View File

@ -96,8 +96,8 @@ void AudioOutput::fill_audio_buffer(const buffer_f32_t& audio, const bool send_t
audio_buffer.p[i].left = audio_buffer.p[i].right = sample_saturated;
audio_int[i] = sample_saturated;
}
if( send_to_fifo ) {
stream.write(audio_int.data(), audio_buffer.count * sizeof(audio_int[0]));
if( stream && send_to_fifo ) {
stream->write(audio_int.data(), audio_buffer.count * sizeof(audio_int[0]));
}
feed_audio_stats(audio);

View File

@ -32,6 +32,7 @@
#include "audio_stats_collector.hpp"
#include <cstdint>
#include <memory>
class AudioOutput {
public:
@ -44,6 +45,10 @@ public:
void write(const buffer_s16_t& audio);
void write(const buffer_f32_t& audio);
void set_stream(std::unique_ptr<StreamInput> new_stream) {
stream = std::move(new_stream);
}
private:
static constexpr float k = 32768.0f;
static constexpr float ki = 1.0f / k;
@ -54,7 +59,7 @@ private:
IIRBiquadFilter deemph;
FMSquelch squelch;
StreamInput stream { 14 };
std::unique_ptr<StreamInput> stream;
AudioStatsCollector audio_stats;