修复若干bug

This commit is contained in:
2026-08-02 12:15:48 +08:00
parent 64da97b7c7
commit 63b97c1bb2
22 changed files with 116 additions and 192 deletions
+8 -8
View File
@@ -2,18 +2,18 @@
#include "Frequency_Trace_p.h"
#include "../base/Memory.h"
namespace renderive {
RENDERIVE_DEFINE_RENDERABLE_BINDING(Frequency_Trace, Frequency_Trace_Private, Audio_Frequency_Render_State, Audio_Frequency_Input_Data, "Audio_Frequency")
RENDERIVE_DEFINE_RENDERABLE_BINDING(Frequency_Trace, Frequency_Trace_Private, Frequency_Trace_Render_State, Frequency_Trace_Input_Data, "Frequency_Trace")
std::shared_ptr<Time_Axis> Frequency_Trace::time_axis() {
return d()->edit_state_value(&Audio_Frequency_Render_State::time_axis).lock();
return d()->edit_state_value(&Frequency_Trace_Render_State::time_axis).lock();
}
void Frequency_Trace::set_time_axis(std::shared_ptr<Time_Axis> value) {
d()->set_state_value(&Audio_Frequency_Render_State::time_axis, std::weak_ptr<Time_Axis>(value));
d()->set_state_value(&Frequency_Trace_Render_State::time_axis, std::weak_ptr<Time_Axis>(value));
}
std::shared_ptr<Axis> Frequency_Trace::value_axis() {
return d()->edit_state_value(&Audio_Frequency_Render_State::value_axis).lock();
return d()->edit_state_value(&Frequency_Trace_Render_State::value_axis).lock();
}
void Frequency_Trace::set_value_axis(std::shared_ptr<Axis> value) {
d()->set_state_value(&Audio_Frequency_Render_State::value_axis, std::weak_ptr<Axis>(value));
d()->set_state_value(&Frequency_Trace_Render_State::value_axis, std::weak_ptr<Axis>(value));
}
Frequency_Trace::Builder::Builder(std::shared_ptr<Renderable> parent, std::shared_ptr<Time_Axis> time_axis, std::shared_ptr<Axis> value_axis) {
ASSERT(parent && parent->attached_to_plot(), "Audio_Frequency build error! parent invalid");
@@ -30,7 +30,7 @@ std::shared_ptr<Frequency_Trace> Frequency_Trace::Builder::build() {
auto ret = renderive::make_shared<Frequency_Trace>();
ret->init(parent);
Frequency_Trace_Private* pd = ret->d();
Audio_Frequency_Render_State* sc = reinterpret_cast<Audio_Frequency_Render_State*>(pd->state(State_Edit));
Frequency_Trace_Render_State* sc = reinterpret_cast<Frequency_Trace_Render_State*>(pd->state(State_Edit));
PROP_R(std::weak_ptr<Time_Axis>, time_axis)
PROP_R(std::weak_ptr<Axis>, value_axis)
sc->pen = Pen{.color = color, .width = 1.0};
@@ -39,7 +39,7 @@ std::shared_ptr<Frequency_Trace> Frequency_Trace::Builder::build() {
void Frequency_Trace::append_sample(int tick, double data) {
if (!ok())
return;
Render_Input_Lease<Frequency_Trace_Private, Audio_Frequency_Input_Data> input(d());
Render_Input_Lease<Frequency_Trace_Private, Frequency_Trace_Input_Data> input(d());
input->push(tick, data);
}
void Frequency_Trace::append_sample(Time_Of_Day time, double data) {
@@ -52,7 +52,7 @@ void Frequency_Trace::append_sample(Time_Of_Day time, double data) {
if (!stream)
return;
int tick = stream->append_time(time);
Render_Input_Lease<Frequency_Trace_Private, Audio_Frequency_Input_Data> input(d());
Render_Input_Lease<Frequency_Trace_Private, Frequency_Trace_Input_Data> input(d());
input->push(tick, data);
}
} // namespace renderive