结构优化
This commit is contained in:
@@ -1,10 +1,3 @@
|
||||
include(${CMAKE_SOURCE_DIR}/third_party/build_infra/Doxygen/export.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/third_party/build_infra/Graphviz/export.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/third_party/build_infra/LLVM/export.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/third_party/build_infra/Cppcheck/export.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/third_party/build_infra/lizard/export.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/third_party/build_infra/cloc_tokei/export.cmake)
|
||||
include(${CMAKE_SOURCE_DIR}/third_party/build_infra/CodeMetrics/export.cmake)
|
||||
set(module_dir "${CMAKE_CURRENT_LIST_DIR}/module")
|
||||
set(dir "${module_dir}/radio")
|
||||
file(GLOB_RECURSE srcs "${dir}/*.c" "${dir}/*.cpp" "${dir}/*.h" "${dir}/*.hpp" "${dir}/*.qrc")
|
||||
|
||||
@@ -58,10 +58,9 @@ void push_radio_data(Radio_Widget* rw) {
|
||||
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));
|
||||
}
|
||||
{
|
||||
int tick = rw->time_power->time_axis()->give_data(QTime::currentTime());
|
||||
renderive::Range r = rw->time_power->value_axis()->coord_range();
|
||||
renderive::Range nr = {r.center() - r.length() / 4, r.center() + r.length() / 4};
|
||||
rw->time_power->give_data(tick, make_random_value(nr));
|
||||
rw->time_power->give_data(QTime::currentTime(), make_random_value(nr));
|
||||
}
|
||||
{
|
||||
auto r = rw->audio_spectrogram_plot->power_axis()->coord_range();
|
||||
@@ -84,8 +83,7 @@ void push_radio_data_perf(Radio_Widget* rw) {
|
||||
rw->water_fall->give_data(QTime::currentTime(), make_random_data({0, 160}, 1024, renderive::Memory_Domain::Waterfall));
|
||||
}
|
||||
{
|
||||
int tick = rw->time_power->time_axis()->give_data(QTime::currentTime());
|
||||
rw->time_power->give_data(tick, make_random_value({-6000, 6000}));
|
||||
rw->time_power->give_data(QTime::currentTime(), make_random_value({-6000, 6000}));
|
||||
}
|
||||
{
|
||||
rw->audio_spectrogram_plot->give_data(make_random_data({-6000, 6000}, 512, renderive::Memory_Domain::Spectrum));
|
||||
|
||||
@@ -120,8 +120,7 @@ void Back_End::call_back_data_func(int channel, void *pData, int i_length)
|
||||
auto mw = Main_Widget::instance();
|
||||
auto rw = mw->radio_widget;
|
||||
auto iw = mw->intermediate_frequency_widget;
|
||||
int tick = rw->water_fall->time_axis()->give_data(QTime::currentTime());
|
||||
rw->water_fall->give_data(tick, data); // 中频瀑布图
|
||||
rw->water_fall->give_data(QTime::currentTime(), data); // 中频瀑布图
|
||||
rw->spectrogram_line->give_data(data); // 中频频谱图
|
||||
|
||||
iw->afterglow->give_data(data); // 余晖图
|
||||
@@ -159,8 +158,7 @@ void Back_End::call_back_data_func(int channel, void *pData, int i_length)
|
||||
|
||||
//std::cout << "audio == " << rbuf[256] << std::endl;
|
||||
|
||||
int tick = radio->time_power->time_axis()->give_data(QTime::currentTime());
|
||||
radio->time_power->give_data(tick, rbuf[256]);
|
||||
radio->time_power->give_data(QTime::currentTime(), rbuf[256]);
|
||||
|
||||
|
||||
// 保存音频流
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
static renderive::Range frequent_range = {-12000, 12000};
|
||||
static double max = 160;
|
||||
QWidget* Intermediate_Frequency_Widget::create_spectrogram_power_plot() {
|
||||
class Spectrum_Plot : public renderive::Plot {
|
||||
class Spectrum_Plot : public renderive::Latency_Eager_Plot {
|
||||
public:
|
||||
std::shared_ptr<renderive::Frequency_Axis> x_axis{};
|
||||
std::shared_ptr<renderive::Axis> y_axis{};
|
||||
@@ -23,18 +23,21 @@ QWidget* Intermediate_Frequency_Widget::create_spectrogram_power_plot() {
|
||||
std::shared_ptr<renderive::Spectrum> sp{};
|
||||
QMenu* menu{};
|
||||
void init() override {
|
||||
Plot::init();
|
||||
Latency_Eager_Plot::init();
|
||||
object_name = "Spectrum_Plot";
|
||||
auto data = create_renderable_node(get_root_renderable(), "Data_Renderable");
|
||||
auto axis = create_renderable_node(get_root_renderable(), "Axis_Renderable");
|
||||
auto frequency_axis_cache = create_renderable_node(get_root_renderable(), "Frequency_Axis_Cache");
|
||||
auto power_axis_cache = create_renderable_node(get_root_renderable(), "Power_Axis_Cache");
|
||||
auto overlay = create_renderable_node(get_root_renderable(), "Overlay_Renderable");
|
||||
x_axis = renderive::Frequency_Axis::Builder(axis, Qt::Horizontal)
|
||||
frequency_axis_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
power_axis_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
x_axis = renderive::Frequency_Axis::Builder(frequency_axis_cache, Qt::Horizontal)
|
||||
.set_tick_length(-10)
|
||||
.set_coord_range(frequent_range)
|
||||
.set_tick_length(-10)
|
||||
.set_sub_tick_length(-5)
|
||||
.build();
|
||||
y_axis = renderive::Axis::Builder(axis, Qt::Vertical)
|
||||
y_axis = renderive::Axis::Builder(power_axis_cache, Qt::Vertical)
|
||||
.set_coord_range({160, 0})
|
||||
.set_unit_text("功率")
|
||||
.build();
|
||||
@@ -79,7 +82,7 @@ QWidget* Intermediate_Frequency_Widget::create_spectrogram_power_plot() {
|
||||
return w;
|
||||
}
|
||||
QWidget* Intermediate_Frequency_Widget::create_Afterglow_Plot() {
|
||||
class Afterglow_Plot : public renderive::Plot {
|
||||
class Afterglow_Plot : public renderive::Latency_Eager_Plot {
|
||||
public:
|
||||
std::shared_ptr<renderive::Frequency_Axis> x_axis{};
|
||||
std::shared_ptr<renderive::Axis> y_axis{};
|
||||
@@ -87,18 +90,21 @@ QWidget* Intermediate_Frequency_Widget::create_Afterglow_Plot() {
|
||||
std::shared_ptr<renderive::Multi_Select_Rect> msr{};
|
||||
QMenu* menu{};
|
||||
void init() override {
|
||||
Plot::init();
|
||||
Latency_Eager_Plot::init();
|
||||
object_name = "Afterglow_Plot";
|
||||
auto data = create_renderable_node(get_root_renderable(), "Data_Renderable");
|
||||
auto axis = create_renderable_node(get_root_renderable(), "Axis_Renderable");
|
||||
auto frequency_axis_cache = create_renderable_node(get_root_renderable(), "Frequency_Axis_Cache");
|
||||
auto power_axis_cache = create_renderable_node(get_root_renderable(), "Power_Axis_Cache");
|
||||
auto overlay = create_renderable_node(get_root_renderable(), "Overlay_Renderable");
|
||||
x_axis = renderive::Frequency_Axis::Builder(axis, Qt::Horizontal)
|
||||
frequency_axis_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
power_axis_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
x_axis = renderive::Frequency_Axis::Builder(frequency_axis_cache, Qt::Horizontal)
|
||||
.set_coord_range(frequent_range)
|
||||
.set_tick_length(-10)
|
||||
.set_sub_tick_length(-5)
|
||||
.set_use_drag(true)
|
||||
.build();
|
||||
y_axis = renderive::Axis::Builder(axis, Qt::Vertical)
|
||||
y_axis = renderive::Axis::Builder(power_axis_cache, Qt::Vertical)
|
||||
.set_coord_range({160, 0})
|
||||
.set_use_drag(true)
|
||||
.build();
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include "RadioWidget.h"
|
||||
#include "RadioWidget.h"
|
||||
#include <QHBoxLayout>
|
||||
#include <QVBoxLayout>
|
||||
#include <vector>
|
||||
@@ -22,16 +22,15 @@ static bool radio_show_performance_overlay() {
|
||||
int value = qEnvironmentVariableIntValue("RADIO_SHOW_PERFORMANCE_OVERLAY", &ok);
|
||||
return ok ? value != 0 : false;
|
||||
}
|
||||
static void configure_radio_plot_perf(renderive::Plot* plot) {
|
||||
static void configure_radio_plot_perf(renderive::Latency_Eager_Plot* plot) {
|
||||
if (!radio_mock_perf_mode())
|
||||
return;
|
||||
plot->set_max_render_fps(1000);
|
||||
plot->set_render_schedule_mode(renderive::Plot_Render_Schedule_Mode::Feedback);
|
||||
if (radio_show_performance_overlay())
|
||||
plot->set_use_performance_shower(true);
|
||||
}
|
||||
QWidget* Radio_Widget::create_spectrogram_power_plot() {
|
||||
class Spectrum_Plot : public renderive::Plot {
|
||||
class Spectrum_Plot : public renderive::Latency_Eager_Plot {
|
||||
public:
|
||||
std::shared_ptr<renderive::Frequency_Axis> x_axis{};
|
||||
std::shared_ptr<renderive::Axis> y_axis{};
|
||||
@@ -39,20 +38,25 @@ QWidget* Radio_Widget::create_spectrogram_power_plot() {
|
||||
std::shared_ptr<renderive::Spectrum> sp{};
|
||||
QMenu* menu{};
|
||||
void init() override {
|
||||
Plot::init();
|
||||
Latency_Eager_Plot::init();
|
||||
configure_radio_plot_perf(this);
|
||||
object_name = "Spectrum_Plot";
|
||||
auto data = create_renderable_node(get_root_renderable(), "Data_Renderable");
|
||||
auto axis = create_renderable_node(get_root_renderable(), "Axis_Renderable");
|
||||
// auto frequency_axis_cache = create_renderable_node(get_root_renderable(), "Frequency_Axis_Cache");
|
||||
// auto power_axis_cache = create_renderable_node(get_root_renderable(), "Power_Axis_Cache");
|
||||
// frequency_axis_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
// power_axis_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
auto axis_cache = create_renderable_node(get_root_renderable(), "Power_Axis_Cache");
|
||||
axis_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
auto overlay = create_renderable_node(get_root_renderable(), "Overlay_Renderable");
|
||||
x_axis = renderive::Frequency_Axis::Builder(axis, Qt::Horizontal)
|
||||
.set_coord_range(frequent_range)
|
||||
.set_tick_length(-10)
|
||||
.build();
|
||||
y_axis = renderive::Axis::Builder(axis, Qt::Vertical)
|
||||
.set_coord_range({max, 0})
|
||||
.set_unit_text("功率")
|
||||
.build();
|
||||
x_axis = renderive::Frequency_Axis::Builder(axis_cache, Qt::Horizontal)
|
||||
.set_coord_range(frequent_range)
|
||||
.set_tick_length(-10)
|
||||
.build();
|
||||
y_axis = renderive::Axis::Builder(axis_cache, Qt::Vertical)
|
||||
.set_coord_range({max, 0})
|
||||
.set_unit_text("功率")
|
||||
.build();
|
||||
sp = renderive::Spectrum::Builder(data, x_axis, y_axis)
|
||||
.set_frequency_range(frequent_range)
|
||||
.set_frequency_point_size(1024)
|
||||
@@ -72,10 +76,10 @@ QWidget* Radio_Widget::create_spectrogram_power_plot() {
|
||||
void contextMenuEvent(QContextMenuEvent* event) override {
|
||||
if (!menu) {
|
||||
auto ws = concat_widgets(
|
||||
bw(cw(sp.get(), -1), "频谱图"),
|
||||
bw(cw(x_axis.get()), "频率x轴"),
|
||||
bw(cw(y_axis.get()), "功率y轴"),
|
||||
bw(cw(msr.get()), "多选框"));
|
||||
bw(cw(sp.get(), -1), "频谱图"),
|
||||
bw(cw(x_axis.get()), "频率x轴"),
|
||||
bw(cw(y_axis.get()), "功率y轴"),
|
||||
bw(cw(msr.get()), "多选框"));
|
||||
menu = create_menu(this, ws);
|
||||
}
|
||||
menu->exec(event->globalPos());
|
||||
@@ -96,7 +100,7 @@ QWidget* Radio_Widget::create_spectrogram_power_plot() {
|
||||
return w;
|
||||
}
|
||||
QWidget* Radio_Widget::create_water_fall_plot() {
|
||||
class Water_Fall_Plot : public renderive::Plot {
|
||||
class Water_Fall_Plot : public renderive::Latency_Eager_Plot {
|
||||
public:
|
||||
std::shared_ptr<renderive::Frequency_Axis> x_axis{};
|
||||
std::shared_ptr<renderive::Time_Axis> y_axis{};
|
||||
@@ -104,25 +108,28 @@ QWidget* Radio_Widget::create_water_fall_plot() {
|
||||
std::shared_ptr<renderive::Waterfall> wf{};
|
||||
QMenu* menu{};
|
||||
void init() override {
|
||||
Plot::init();
|
||||
Latency_Eager_Plot::init();
|
||||
configure_radio_plot_perf(this);
|
||||
object_name = "Water_Fall_Plot";
|
||||
auto data = create_renderable_node(get_root_renderable(), "Data_Renderable");
|
||||
auto axis = create_renderable_node(get_root_renderable(), "Axis_Renderable");
|
||||
auto stream_cache = create_renderable_node(get_root_renderable(), "Waterfall_Stream_Cache");
|
||||
auto data = create_renderable_node(stream_cache, "Data_Renderable");
|
||||
auto time_axis = create_renderable_node(stream_cache, "Time_Axis_Renderable");
|
||||
auto frequency_axis_cache = create_renderable_node(get_root_renderable(), "Frequency_Axis_Cache");
|
||||
auto overlay = create_renderable_node(get_root_renderable(), "Overlay_Renderable");
|
||||
x_axis = renderive::Frequency_Axis::Builder(axis, Qt::Horizontal)
|
||||
.set_tick_length(-10)
|
||||
.set_sub_tick_length(-5)
|
||||
.set_coord_range(frequent_range)
|
||||
.build();
|
||||
y_axis = renderive::Time_Axis::Builder(axis, Qt::Vertical)
|
||||
.set_time_point_size(100)
|
||||
.build();
|
||||
stream_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
frequency_axis_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
x_axis = renderive::Frequency_Axis::Builder(frequency_axis_cache, Qt::Horizontal)
|
||||
.set_tick_length(-10)
|
||||
.set_sub_tick_length(-5)
|
||||
.set_coord_range(frequent_range)
|
||||
.build();
|
||||
y_axis = renderive::Time_Axis::Builder(time_axis, Qt::Vertical)
|
||||
.set_time_point_size(100)
|
||||
.build();
|
||||
wf = renderive::Waterfall::Builder(data, x_axis, y_axis)
|
||||
.set_frequency_range(frequent_range)
|
||||
.set_frequency_point_size(1024)
|
||||
.set_power_range({0, max})
|
||||
// .set_time_point_size(100)
|
||||
.build();
|
||||
msr = renderive::Multi_Select_Rect::Builder(overlay, x_axis, y_axis).build();
|
||||
if (use_Performance_shower) set_use_performance_shower(true);
|
||||
@@ -139,10 +146,10 @@ QWidget* Radio_Widget::create_water_fall_plot() {
|
||||
void contextMenuEvent(QContextMenuEvent* event) override {
|
||||
if (!menu) {
|
||||
auto ws = concat_widgets(
|
||||
bw(cw(wf.get(), -1), "瀑布图"),
|
||||
bw(cw(x_axis.get()), "频率轴"),
|
||||
bw(cw(y_axis.get()), "时间轴"),
|
||||
bw(cw(msr.get()), "多选框"));
|
||||
bw(cw(wf.get(), -1), "瀑布图"),
|
||||
bw(cw(x_axis.get()), "频率轴"),
|
||||
bw(cw(y_axis.get()), "时间轴"),
|
||||
bw(cw(msr.get()), "多选框"));
|
||||
menu = create_menu(this, ws);
|
||||
}
|
||||
menu->exec(event->globalPos());
|
||||
@@ -154,7 +161,7 @@ QWidget* Radio_Widget::create_water_fall_plot() {
|
||||
return w;
|
||||
}
|
||||
QWidget* Radio_Widget::create_audio_spectrogram_plot() {
|
||||
class Spectrum_Plot : public renderive::Plot {
|
||||
class Spectrum_Plot : public renderive::Latency_Eager_Plot {
|
||||
public:
|
||||
std::shared_ptr<renderive::Frequency_Axis> x_axis{};
|
||||
std::shared_ptr<renderive::Axis> y_axis{};
|
||||
@@ -162,20 +169,23 @@ QWidget* Radio_Widget::create_audio_spectrogram_plot() {
|
||||
std::shared_ptr<renderive::Spectrum> sp{};
|
||||
QMenu* menu{};
|
||||
void init() override {
|
||||
Plot::init();
|
||||
Latency_Eager_Plot::init();
|
||||
configure_radio_plot_perf(this);
|
||||
object_name = "Spectrum_Plot";
|
||||
auto data = create_renderable_node(get_root_renderable(), "Data_Renderable");
|
||||
auto axis = create_renderable_node(get_root_renderable(), "Axis_Renderable");
|
||||
auto frequency_axis_cache = create_renderable_node(get_root_renderable(), "Frequency_Axis_Cache");
|
||||
auto power_axis_cache = create_renderable_node(get_root_renderable(), "Power_Axis_Cache");
|
||||
auto overlay = create_renderable_node(get_root_renderable(), "Overlay_Renderable");
|
||||
x_axis = renderive::Frequency_Axis::Builder(axis, Qt::Horizontal)
|
||||
.set_coord_range({-12000, 12000})
|
||||
.set_tick_length(-10)
|
||||
.set_sub_tick_length(-5)
|
||||
.build();
|
||||
y_axis = renderive::Axis::Builder(axis, Qt::Vertical)
|
||||
.set_coord_range({12000, -12000})
|
||||
.set_unit_text("功率").build();
|
||||
frequency_axis_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
power_axis_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
x_axis = renderive::Frequency_Axis::Builder(frequency_axis_cache, Qt::Horizontal)
|
||||
.set_coord_range({-12000, 12000})
|
||||
.set_tick_length(-10)
|
||||
.set_sub_tick_length(-5)
|
||||
.build();
|
||||
y_axis = renderive::Axis::Builder(power_axis_cache, Qt::Vertical)
|
||||
.set_coord_range({12000, -12000})
|
||||
.set_unit_text("功率").build();
|
||||
sp = renderive::Spectrum::Builder(data, x_axis, y_axis)
|
||||
.set_frequency_range({-12000, 12000})
|
||||
.set_frequency_point_size(512)
|
||||
@@ -195,10 +205,10 @@ QWidget* Radio_Widget::create_audio_spectrogram_plot() {
|
||||
void contextMenuEvent(QContextMenuEvent* event) override {
|
||||
if (!menu) {
|
||||
auto ws = concat_widgets(
|
||||
bw(cw(sp.get(), -1), "频谱图"),
|
||||
bw(cw(x_axis.get()), "频率x轴"),
|
||||
bw(cw(y_axis.get()), "功率y轴"),
|
||||
bw(cw(msr.get()), "多选框"));
|
||||
bw(cw(sp.get(), -1), "频谱图"),
|
||||
bw(cw(x_axis.get()), "频率x轴"),
|
||||
bw(cw(y_axis.get()), "功率y轴"),
|
||||
bw(cw(msr.get()), "多选框"));
|
||||
menu = create_menu(this, ws);
|
||||
}
|
||||
menu->exec(event->globalPos());
|
||||
@@ -210,7 +220,7 @@ QWidget* Radio_Widget::create_audio_spectrogram_plot() {
|
||||
return w;
|
||||
}
|
||||
QWidget* Radio_Widget::create_time_power_plot() {
|
||||
class Audio_Plot : public renderive::Plot {
|
||||
class Audio_Plot : public renderive::Latency_Eager_Plot {
|
||||
public:
|
||||
std::shared_ptr<renderive::Time_Axis> x_axis{};
|
||||
std::shared_ptr<renderive::Axis> y_axis{};
|
||||
@@ -218,19 +228,23 @@ QWidget* Radio_Widget::create_time_power_plot() {
|
||||
std::shared_ptr<renderive::Multi_Select_Rect> msr{};
|
||||
QMenu* menu{};
|
||||
void init() override {
|
||||
Plot::init();
|
||||
Latency_Eager_Plot::init();
|
||||
configure_radio_plot_perf(this);
|
||||
object_name = "Audio_Plot";
|
||||
auto data = create_renderable_node(get_root_renderable(), "Data_Renderable");
|
||||
auto axis = create_renderable_node(get_root_renderable(), "Axis_Renderable");
|
||||
auto stream_cache = create_renderable_node(get_root_renderable(), "Audio_Stream_Cache");
|
||||
auto data = create_renderable_node(stream_cache, "Data_Renderable");
|
||||
auto time_axis = create_renderable_node(stream_cache, "Time_Axis_Renderable");
|
||||
auto power_axis_cache = create_renderable_node(get_root_renderable(), "Power_Axis_Cache");
|
||||
auto overlay = create_renderable_node(get_root_renderable(), "Overlay_Renderable");
|
||||
x_axis = renderive::Time_Axis::Builder(axis, Qt::Horizontal)
|
||||
.set_tick_length(-10)
|
||||
.set_sub_tick_length(-5)
|
||||
.build();
|
||||
y_axis = renderive::Axis::Builder(axis, Qt::Vertical)
|
||||
.set_coord_range({12000, -12000})
|
||||
.build();
|
||||
stream_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
power_axis_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
x_axis = renderive::Time_Axis::Builder(time_axis, Qt::Horizontal)
|
||||
.set_tick_length(-10)
|
||||
.set_sub_tick_length(-5)
|
||||
.build();
|
||||
y_axis = renderive::Axis::Builder(power_axis_cache, Qt::Vertical)
|
||||
.set_coord_range({12000, -12000})
|
||||
.build();
|
||||
audio = renderive::Audio_Frequency::Builder(data, x_axis, y_axis)
|
||||
.build();
|
||||
msr = renderive::Multi_Select_Rect::Builder(overlay, x_axis, y_axis).build();
|
||||
@@ -249,10 +263,10 @@ QWidget* Radio_Widget::create_time_power_plot() {
|
||||
void contextMenuEvent(QContextMenuEvent* event) override {
|
||||
if (!menu) {
|
||||
auto ws = concat_widgets(
|
||||
bw(cw(audio.get(), -1), "音频图"),
|
||||
bw(cw(y_axis.get()), "功率y轴"),
|
||||
bw(cw(x_axis.get()), "时间轴"),
|
||||
bw(cw(msr.get()), "多选框"));
|
||||
bw(cw(audio.get(), -1), "音频图"),
|
||||
bw(cw(y_axis.get()), "功率y轴"),
|
||||
bw(cw(x_axis.get()), "时间轴"),
|
||||
bw(cw(msr.get()), "多选框"));
|
||||
menu = create_menu(this, ws);
|
||||
}
|
||||
menu->exec(event->globalPos());
|
||||
@@ -284,22 +298,22 @@ Radio_Widget::Radio_Widget(QWidget* parent) : Base_Widget(parent) {
|
||||
}
|
||||
QColor orange(255, 165, 0);
|
||||
progress_bar1 = new Progress_Bar({
|
||||
Tick("S", Qt::black),
|
||||
{"3", Qt::black},
|
||||
{"6", Qt::black},
|
||||
{"9", Qt::black},
|
||||
{"20", Qt::black},
|
||||
{"40", orange},
|
||||
{"60", orange},
|
||||
{"100", orange},
|
||||
{"+160", Qt::red},
|
||||
}, this);
|
||||
Tick("S", Qt::black),
|
||||
{"3", Qt::black},
|
||||
{"6", Qt::black},
|
||||
{"9", Qt::black},
|
||||
{"20", Qt::black},
|
||||
{"40", orange},
|
||||
{"60", orange},
|
||||
{"100", orange},
|
||||
{"+160", Qt::red},
|
||||
}, this);
|
||||
progress_bar2 = new Progress_Bar({
|
||||
{"1", Qt::black},
|
||||
{"2", Qt::yellow},
|
||||
{"3", Qt::red},
|
||||
{">5", Qt::red},
|
||||
}, this);
|
||||
{"1", Qt::black},
|
||||
{"2", Qt::yellow},
|
||||
{"3", Qt::red},
|
||||
{">5", Qt::red},
|
||||
}, this);
|
||||
progress_bar1->tick_space_w = 2.0f;
|
||||
auto main = create_vbox_layout({}, this);
|
||||
main->addStretch(1);
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "../menu/BaseWidgetMenu.h"
|
||||
#include "Renderive/base/Tool.h"
|
||||
QWidget* Sweep_Frequency_Widget::create_spectrogram_power_plot() {
|
||||
class Sweep_Frequent_Plot : public renderive::Plot {
|
||||
class Sweep_Frequent_Plot : public renderive::Latency_Eager_Plot {
|
||||
public:
|
||||
std::shared_ptr<renderive::Axis> x_axis{};
|
||||
std::shared_ptr<renderive::Axis> y_axis{};
|
||||
@@ -19,15 +19,18 @@ QWidget* Sweep_Frequency_Widget::create_spectrogram_power_plot() {
|
||||
std::shared_ptr<renderive::Sweep_Frequency> sf{};
|
||||
QMenu* menu{};
|
||||
void init() override {
|
||||
Plot::init();
|
||||
Latency_Eager_Plot::init();
|
||||
object_name = "Axis_Test_Plot";
|
||||
auto data = create_renderable_node(get_root_renderable(), "Data_Renderable");
|
||||
auto axis = create_renderable_node(get_root_renderable(), "Axis_Renderable");
|
||||
auto x_axis_cache = create_renderable_node(get_root_renderable(), "X_Axis_Cache");
|
||||
auto y_axis_cache = create_renderable_node(get_root_renderable(), "Y_Axis_Cache");
|
||||
auto overlay = create_renderable_node(get_root_renderable(), "Overlay_Renderable");
|
||||
x_axis = renderive::Axis::Builder(axis, Qt::Horizontal)
|
||||
x_axis_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
y_axis_cache->set_cache_mode(renderive::Renderable_Cache_Mode::Local_Pixel);
|
||||
x_axis = renderive::Axis::Builder(x_axis_cache, Qt::Horizontal)
|
||||
.set_coord_range({0, 100})
|
||||
.set_tick_length(-10).build();
|
||||
y_axis = renderive::Axis::Builder(axis, Qt::Vertical)
|
||||
y_axis = renderive::Axis::Builder(y_axis_cache, Qt::Vertical)
|
||||
.set_coord_range({100, 0})
|
||||
.set_tick_length(-10).build();
|
||||
sf = renderive::Sweep_Frequency::Builder(data, x_axis, y_axis)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "./BackEnd/MainWidget.h"
|
||||
#include "Application.h"
|
||||
#include "Renderive/architecture/export.h"
|
||||
#include "Renderive/plot/Plot.h"
|
||||
int main(int argc, char* argv[]) {
|
||||
Application app(argc, argv);
|
||||
Application::setAttribute(Qt::AA_UseHighDpiPixmaps);
|
||||
|
||||
Reference in New Issue
Block a user