还是一堆bug的状态

This commit is contained in:
2026-08-01 20:09:46 +08:00
parent 28b33fb820
commit 6ea03829bc
30 changed files with 84 additions and 2664 deletions
+15 -19
View File
@@ -10,8 +10,7 @@
#include <memory_resource>
#include <utility>
#include <vector>
#include "../../../third_party/Renderive/Widget/base/Generate_Mock_Data.h"
#include "../../../third_party/Renderive/Renderive/base/Memory.h"
#include "Renderive/export.h"
namespace {
struct Mock_Config {
bool performance{};
@@ -43,6 +42,10 @@ double make_random_value(renderive::Range range) {
std::swap(range.origin, range.target);
return renderive::get_data(range);
}
renderive::Time_Of_Day current_render_time() {
const QTime now = QTime::currentTime();
return {now.isValid() ? now.msecsSinceStartOfDay() : -1};
}
void push_radio_data(Radio_Widget* rw) {
if (!rw || !rw->spectrogram_line || !rw->water_fall || !rw->time_power || !rw->audio_spectrogram_plot || !rw->progress_bar1 || !rw->progress_bar2)
return;
@@ -55,12 +58,12 @@ void push_radio_data(Radio_Widget* rw) {
rw->progress_bar1->setValue(middle_power);
}
{
rw->water_fall->give_data(QTime::currentTime(), make_random_data(rw->water_fall->power_range(), rw->water_fall->frequency_point_size(), renderive::Memory_Domain::Waterfall));
rw->water_fall->give_data(current_render_time(), make_random_data(rw->water_fall->power_range(), rw->water_fall->frequency_point_size(), renderive::Memory_Domain::Waterfall));
}
{
renderive::Range r = rw->time_power->value_axis()->coord_range();
renderive::Range nr = {r.middle() - r.length() / 4, r.middle() + r.length() / 4};
rw->time_power->give_data(QTime::currentTime(), make_random_value(nr));
rw->time_power->give_data(current_render_time(), make_random_value(nr));
}
{
auto r = rw->audio_spectrogram_plot->power_axis()->coord_range();
@@ -80,10 +83,10 @@ void push_radio_data_perf(Radio_Widget* rw) {
rw->progress_bar1->setValue(middle_power);
}
{
rw->water_fall->give_data(QTime::currentTime(), make_random_data({0, 160}, 1024, renderive::Memory_Domain::Waterfall));
rw->water_fall->give_data(current_render_time(), make_random_data({0, 160}, 1024, renderive::Memory_Domain::Waterfall));
}
{
rw->time_power->give_data(QTime::currentTime(), make_random_value({-6000, 6000}));
rw->time_power->give_data(current_render_time(), make_random_value({-6000, 6000}));
}
{
rw->audio_spectrogram_plot->give_data(make_random_data({-6000, 6000}, 512, renderive::Memory_Domain::Spectrum));
@@ -156,20 +159,13 @@ Back_End::Back_End() {
QTimer::singleShot(0, this, [this, config]() {
Radio_Widget* rw = Main_Widget::instance()->radio_widget;
if (config.performance) {
mock_thread = new QThread(this);
auto worker = new QObject;
worker->moveToThread(mock_thread);
QObject::connect(mock_thread, &QThread::finished, worker, &QObject::deleteLater);
QObject::connect(mock_thread, &QThread::started, worker, [worker, config, rw]() {
auto timer = new QTimer(worker);
timer->setTimerType(Qt::PreciseTimer);
QObject::connect(timer, &QTimer::timeout, worker, [config, rw]() {
for (int i = 0; i < config.batch_count; ++i)
push_radio_data_perf(rw);
});
timer->start(config.interval_ms);
auto timer = new QTimer(this);
timer->setTimerType(Qt::PreciseTimer);
QObject::connect(timer, &QTimer::timeout, this, [config, rw]() {
for (int i = 0; i < config.batch_count; ++i)
push_radio_data_perf(rw);
});
mock_thread->start();
timer->start(config.interval_ms);
return;
}
auto timer = new QTimer(this);