2 #include <Process/Focus/FocusDispatcher.hpp>
3 #include <Process/LayerPresenter.hpp>
5 #include <Audio/Settings/Model.hpp>
6 #include <Media/Step/Commands.hpp>
7 #include <Media/Step/View.hpp>
9 #include <score/application/GUIApplicationContext.hpp>
10 #include <score/command/Dispatchers/SingleOngoingCommandDispatcher.hpp>
11 #include <score/tools/Bind.hpp>
13 #include <ossia/detail/math.hpp>
25 : LayerPresenter{model, view, ctx, parent}
27 , m_disp{m_context.context.commandStack}
32 connect(view, &View::change,
this, [&](std::size_t num,
float v) {
33 updateSteps(m, m_disp, num, v);
36 connect(view, &View::released,
this, [&] { m_disp.commit(); });
38 con(m, &Step::Model::stepsChanged,
this, [&] { m_view->update(); });
39 con(m, &Step::Model::stepCountChanged,
this, [&] { m_view->update(); });
40 con(m, &Step::Model::stepDurationChanged,
this,
41 [&] { on_zoomRatioChanged(m_ratio); });
44 con(audio_settings, &Audio::Settings::Model::RateChanged,
this,
45 [&] { on_zoomRatioChanged(m_ratio); });
48 void setWidth(qreal width, qreal defaultWidth)
override { m_view->setWidth(width); }
49 void setHeight(qreal val)
override { m_view->setHeight(val); }
51 void putToFront()
override { m_view->setVisible(
true); }
53 void putBehind()
override { m_view->setVisible(
false); }
55 void on_zoomRatioChanged(ZoomRatio r)
override
60 auto& m =
static_cast<const Step::Model&
>(m_process);
61 auto v = TimeVal::fromMsecs(m.stepDuration() / samplerate).toPixels(r);
62 m_view->setBarWidth(v);
65 void parentGeometryChanged()
override { }
Definition: score-plugin-audio/Audio/Settings/Model.hpp:22
Definition: LayerPresenter.hpp:34
The Process class.
Definition: score-lib-process/Process/Process.hpp:61
Definition: ProcessContext.hpp:12
T & settings() const
Access a specific Settings model instance.
Definition: ApplicationContext.hpp:40