2020-06-10 04:13:56 +02:00
|
|
|
#pragma once
|
|
|
|
#include <imgui.h>
|
|
|
|
#include <imgui_internal.h>
|
|
|
|
#include <vector>
|
|
|
|
#include <mutex>
|
|
|
|
#include <GL/glew.h>
|
|
|
|
|
|
|
|
namespace ImGui {
|
|
|
|
class WaterFall {
|
|
|
|
public:
|
|
|
|
WaterFall();
|
|
|
|
|
|
|
|
void draw();
|
|
|
|
void pushFFT(std::vector<float> data, int n);
|
|
|
|
|
2020-06-10 18:52:07 +02:00
|
|
|
float centerFrequency;
|
|
|
|
float bandWidth;
|
|
|
|
float range;
|
|
|
|
|
2020-06-10 04:13:56 +02:00
|
|
|
private:
|
|
|
|
void drawWaterfall(ImGuiWindow* window, int width, int height, ImVec2 pos);
|
2020-06-10 18:52:07 +02:00
|
|
|
void drawFFT(ImGuiWindow* window, int width, int height, ImVec2 pos);
|
2020-06-10 04:13:56 +02:00
|
|
|
|
|
|
|
std::vector<std::vector<float>> fftBuffer;
|
|
|
|
bool newSamples;
|
|
|
|
std::mutex buf_mtx;
|
|
|
|
GLuint textureId;
|
|
|
|
uint8_t* pixelBuffer;
|
2020-06-10 18:52:07 +02:00
|
|
|
|
|
|
|
|
2020-06-10 04:13:56 +02:00
|
|
|
};
|
|
|
|
};
|