|
2 | 2 |
|
3 | 3 | #include <config.h> |
4 | 4 | #include <logger.h> |
| 5 | +#include <network/query.h> |
5 | 6 | #include <utils/utils.h> |
6 | 7 |
|
7 | 8 | constexpr auto LABEL = "spectogram"; |
8 | 9 |
|
9 | 10 | Spectrogram::Container::Container(int size) : m_lastDataSendTime(getTime()) { m_sum.resize(size); } |
10 | 11 |
|
11 | | -Spectrogram::Spectrogram(const int itemSize, const Frequency sampleRate, DataController& dataController, std::function<Frequency()> getFrequency) |
| 12 | +Spectrogram::Spectrogram(const int itemSize, const Frequency sampleRate, std::function<Frequency()> getFrequency, std::function<void(const nlohmann::json&)> send) |
12 | 13 | : gr::sync_block("Spectrogram", gr::io_signature::make(1, 1, sizeof(float) * itemSize), gr::io_signature::make(0, 0, 0)), |
13 | 14 | m_inputSize(itemSize), |
14 | 15 | m_outputSize(std::min(SPECTROGRAM_MAX_FFT, getFft(sampleRate, SPECTROGRAM_PREFERRED_MAX_STEP))), |
15 | 16 | m_decimatorFactor(m_inputSize / m_outputSize), |
16 | 17 | m_sampleRate(sampleRate), |
17 | | - m_dataController(dataController), |
18 | | - m_getFrequency(getFrequency) { |
| 18 | + m_getFrequency(getFrequency), |
| 19 | + m_send(send) { |
19 | 20 | const auto step = m_sampleRate / m_outputSize; |
20 | 21 | Logger::info( |
21 | 22 | LABEL, |
@@ -67,7 +68,8 @@ void Spectrogram::send(Container& container) { |
67 | 68 | for (int j = 0; j < m_outputSize; ++j) { |
68 | 69 | tmp[j] = container.m_sum[j] / container.m_counter; |
69 | 70 | } |
70 | | - m_dataController.pushSpectrogram(now, frequency, m_sampleRate, tmp.data(), m_outputSize); |
| 71 | + SpectrogramQuery spectrogram("", now, frequency, m_sampleRate, encode_base64(tmp.data(), m_outputSize)); |
| 72 | + m_send(spectrogram); |
71 | 73 | std::memset(container.m_sum.data(), 0, sizeof(float) * container.m_sum.size()); |
72 | 74 | container.m_counter = 0; |
73 | 75 | container.m_lastDataSendTime = now; |
|
0 commit comments