Loading...
Searching...
No Matches
/Vst3/Widgets.hpp
1#pragma once
2#include <Process/Style/ScenarioStyle.hpp>
3
4#include <Vst3/EffectModel.hpp>
5
6#include <score/graphics/GraphicWidgets.hpp>
7#include <score/graphics/TextItem.hpp>
8
9#include <ossia/dataflow/safe_nodes/port.hpp>
10
11#include <QDialog>
12
13#include <verdigris>
14
15namespace vst3
16{
17
19 : public QObject
20 , public score::QGraphicsSliderBase<VSTGraphicsSlider>
21{
22 W_OBJECT(VSTGraphicsSlider)
23 Q_INTERFACES(QGraphicsItem)
24 friend struct QGraphicsSliderBase<VSTGraphicsSlider>;
25
26 double m_value{};
27 double m_execValue{};
28 Steinberg::Vst::IEditController* fx{};
29 Steinberg::Vst::ParamID num{};
30
31private:
32 bool m_grab{};
33 bool m_hasExec{};
34
35public:
36 static const constexpr double min = 0.;
37 static const constexpr double max = 1.;
38 double init = 0.5;
39 friend struct score::DefaultControlImpl;
42 Steinberg::Vst::IEditController* fx, Steinberg::Vst::ParamID num,
43 QGraphicsItem* parent);
44
45 static double from01(double v) { return v; }
46 static double map(double v) { return v; }
47 static double unmap(double v) { return v; }
48
49 void setValue(double v);
50 double value() const;
51 void setExecutionValue(const ossia::value& v);
52 void resetExecution();
53
54 bool moving = false;
55
56public:
57 void valueChanged(double arg_1) W_SIGNAL(valueChanged, arg_1);
58 void sliderMoved() W_SIGNAL(sliderMoved);
59 void sliderReleased() W_SIGNAL(sliderReleased);
60
61private:
62 void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
63 void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
64 void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
65 void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) override;
66 void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
67 override;
68};
69
71{
72 const std::string_view name;
73
74 explicit constexpr VSTFloatSlider(const char* name)
75 : name{name}
76 {
77 }
78
79 static QWidget* make_widget(
80 Steinberg::Vst::IEditController* fx, const ControlInlet& inlet,
81 const score::DocumentContext& ctx, QWidget* parent, QObject* context);
82 static QGraphicsItem* make_item(
83 Steinberg::Vst::IEditController* fx, ControlInlet& inlet,
84 const score::DocumentContext& ctx, QGraphicsItem* parent, QObject* context);
85};
86
87}
Definition /Vst3/Control.hpp:19
Definition /Vst3/Widgets.hpp:21
Definition DefaultControlImpl.hpp:10
Definition DefaultGraphicsSliderImpl.hpp:31
Definition DocumentContext.hpp:18
Definition QGraphicsSliderBase.hpp:17
Definition /Vst3/Widgets.hpp:71