mirror of
https://github.com/Boof2015/prism.git
synced 2026-08-19 03:54:23 +02:00
prism-tui PoC
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
#pragma once
|
||||
|
||||
#include "lufsmeter.h"
|
||||
#include "spectrum.h"
|
||||
#include "system_audio_capture.h"
|
||||
#include "vumeter.h"
|
||||
|
||||
#include <vector>
|
||||
|
||||
namespace Prism::Tui {
|
||||
|
||||
struct AnalysisFrame {
|
||||
std::vector<float> magnitudes;
|
||||
Visualizer::VUMeterSnapshot vu{};
|
||||
Visualizer::LUFSMeterSnapshot lufs{};
|
||||
};
|
||||
|
||||
class AnalysisPipeline {
|
||||
public:
|
||||
explicit AnalysisPipeline(float sampleRate, size_t fftSize = 2048);
|
||||
|
||||
void process(const Prism::Capture::AudioChunk& chunk);
|
||||
AnalysisFrame snapshot();
|
||||
void reset();
|
||||
|
||||
private:
|
||||
Visualizer::Spectrum spectrum_;
|
||||
Visualizer::VUMeterAnalyzer vu_;
|
||||
Visualizer::LUFSMeterAnalyzer lufs_;
|
||||
};
|
||||
|
||||
size_t drainCapture(Prism::Capture::SystemAudioCapture& capture,
|
||||
AnalysisPipeline& pipeline,
|
||||
bool& captureOverrun,
|
||||
size_t maxChunks = 64);
|
||||
|
||||
} // namespace Prism::Tui
|
||||
Reference in New Issue
Block a user