3 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
4 #include <JS/Qml/Metatypes.hpp>
6 #include <ossia/dataflow/graph_node.hpp>
7 #include <ossia/dataflow/token_request.hpp>
9 #include <ossia-qt/time.hpp>
20 void registerQmlValueTypeProvider();
25 W_GADGET(Vec2fValueType)
27 QString toString()
const;
35 qreal dotProduct(
const QVector2D& vec)
const;
36 W_INVOKABLE(dotProduct)
38 QVector2D times(
const QVector2D& vec)
const;
39 W_INVOKABLE(times, (
const QVector2D&))
40 QVector2D times(qreal scalar)
const;
41 W_INVOKABLE(times, (qreal))
43 QVector2D plus(
const QVector2D& vec)
const;
45 QVector2D minus(
const QVector2D& vec)
const;
47 QVector2D normalized()
const;
48 W_INVOKABLE(normalized)
52 QVector3D toVector3d()
const;
53 W_INVOKABLE(toVector3d)
54 QVector4D toVector4d()
const;
55 W_INVOKABLE(toVector4d)
57 bool fuzzyEquals(
const QVector2D& vec, qreal epsilon)
const;
58 W_INVOKABLE(fuzzyEquals, (
const QVector2D&, qreal))
59 bool fuzzyEquals(
const QVector2D& vec)
const;
60 W_INVOKABLE(fuzzyEquals, (
const QVector2D&))
62 W_PROPERTY(qreal, x READ x WRITE setX FINAL)
63 W_PROPERTY(qreal, y READ y WRITE setY FINAL)
69 W_GADGET(Vec3fValueType)
71 QString toString()
const;
81 QVector3D crossProduct(
const QVector3D& vec)
const;
82 W_INVOKABLE(crossProduct)
83 qreal dotProduct(
const QVector3D& vec)
const;
84 W_INVOKABLE(dotProduct)
86 QVector3D times(
const QVector3D& vec)
const;
87 W_INVOKABLE(times, (
const QVector3D&))
88 QVector3D times(
const QMatrix4x4& m)
const;
89 W_INVOKABLE(times, (
const QMatrix4x4&))
90 QVector3D times(qreal scalar)
const;
91 W_INVOKABLE(times, (qreal))
93 QVector3D plus(
const QVector3D& vec)
const;
95 QVector3D minus(
const QVector3D& vec)
const;
97 QVector3D normalized()
const;
98 W_INVOKABLE(normalized)
102 QVector2D toVector2d()
const;
103 W_INVOKABLE(toVector2d)
104 QVector4D toVector4d()
const;
105 W_INVOKABLE(toVector4d)
107 bool fuzzyEquals(
const QVector3D& vec, qreal epsilon)
const;
108 W_INVOKABLE(fuzzyEquals, (
const QVector3D&, qreal))
109 bool fuzzyEquals(
const QVector3D& vec)
const;
110 W_INVOKABLE(fuzzyEquals, (
const QVector3D&))
112 W_PROPERTY(qreal, x READ x WRITE setX FINAL)
113 W_PROPERTY(qreal, y READ y WRITE setY FINAL)
114 W_PROPERTY(qreal, z READ z WRITE setZ FINAL)
120 W_GADGET(Vec4fValueType)
122 QString toString()
const;
123 W_INVOKABLE(toString)
134 qreal dotProduct(
const QVector4D& vec)
const;
135 W_INVOKABLE(dotProduct)
137 QVector4D times(
const QVector4D& vec)
const;
138 W_INVOKABLE(times, (
const QVector4D&))
139 QVector4D times(
const QMatrix4x4& m)
const;
140 W_INVOKABLE(times, (
const QMatrix4x4&))
141 QVector4D times(qreal scalar)
const;
142 W_INVOKABLE(times, (qreal))
144 QVector4D plus(
const QVector4D& vec)
const;
146 QVector4D minus(
const QVector4D& vec)
const;
148 QVector4D normalized()
const;
149 W_INVOKABLE(normalized)
150 qreal length()
const;
153 QVector2D toVector2d()
const;
154 W_INVOKABLE(toVector2d)
155 QVector3D toVector3d()
const;
156 W_INVOKABLE(toVector3d)
158 bool fuzzyEquals(
const QVector4D& vec, qreal epsilon)
const;
159 W_INVOKABLE(fuzzyEquals, (
const QVector4D&, qreal))
160 bool fuzzyEquals(
const QVector4D& vec)
const;
161 W_INVOKABLE(fuzzyEquals, (
const QVector4D&))
163 W_PROPERTY(qreal, x READ x WRITE setX FINAL)
164 W_PROPERTY(qreal, y READ y WRITE setY FINAL)
165 W_PROPERTY(qreal, z READ z WRITE setZ FINAL)
166 W_PROPERTY(qreal, w READ w WRITE setW FINAL)
169 class TokenRequestValueType
171 W_GADGET(TokenRequestValueType)
173 ossia::token_request req;
175 double previous_date() const noexcept;
176 double date() const noexcept;
177 double parent_duration() const noexcept;
178 double offset() const noexcept;
179 double speed() const noexcept;
180 double tempo() const noexcept;
182 double musical_start_last_signature() const noexcept;
183 double musical_start_last_bar() const noexcept;
184 double musical_start_position() const noexcept;
185 double musical_end_last_bar() const noexcept;
186 double musical_end_position() const noexcept;
188 double signature_upper() const noexcept;
189 double signature_lower() const noexcept;
191 double model_read_duration() const noexcept;
192 W_INVOKABLE(model_read_duration)
193 double physical_start(
double ratio) const noexcept;
194 W_INVOKABLE(physical_start)
195 double physical_read_duration(
double ratio) const noexcept;
196 W_INVOKABLE(physical_read_duration)
197 double physical_write_duration(
double ratio) const noexcept;
198 W_INVOKABLE(physical_write_duration)
199 bool in_range(
double time) const noexcept;
200 W_INVOKABLE(in_range)
201 double to_physical_time_in_tick(
double time,
double ratio) const noexcept;
202 W_INVOKABLE(to_physical_time_in_tick)
203 double from_physical_time_in_tick(
double time,
double ratio) const noexcept;
204 W_INVOKABLE(from_physical_time_in_tick)
206 double position() const noexcept;
207 W_INVOKABLE(position)
208 bool forward() const noexcept;
210 bool backward() const noexcept;
211 W_INVOKABLE(backward)
212 bool paused() const noexcept;
215 double get_quantification_date(
double ratio) const noexcept;
216 W_INVOKABLE(get_quantification_date)
218 double get_physical_quantification_date(
double rate,
double ratio) const noexcept;
219 W_INVOKABLE(get_physical_quantification_date)
221 void set_end_time(
double time) noexcept;
222 W_INVOKABLE(set_end_time)
223 void set_start_time(
double time) noexcept;
224 W_INVOKABLE(set_start_time)
226 bool unexpected_bar_change() const noexcept;
227 W_INVOKABLE(unexpected_bar_change)
229 W_PROPERTY(
double, previous_date READ previous_date FINAL)
230 W_PROPERTY(
double, date READ date FINAL)
231 W_PROPERTY(
double, parent_duration READ parent_duration FINAL)
232 W_PROPERTY(
double, offset READ offset FINAL)
233 W_PROPERTY(
double, speed READ speed FINAL)
234 W_PROPERTY(
double, tempo READ tempo FINAL)
237 double, musical_start_last_signature READ musical_start_last_signature FINAL)
238 W_PROPERTY(
double, musical_start_last_bar READ musical_start_last_bar FINAL)
239 W_PROPERTY(
double, musical_start_position READ musical_start_position FINAL)
240 W_PROPERTY(
double, musical_end_last_bar READ musical_end_last_bar FINAL)
241 W_PROPERTY(
double, musical_end_position READ musical_end_position FINAL)
243 W_PROPERTY(
double, signature_upper READ signature_upper FINAL)
244 W_PROPERTY(
double, signature_lower READ signature_lower FINAL)
249 W_GADGET(SampleTimings)
251 ossia::exec_state_facade::sample_timings tm{};
253 int start_sample() const noexcept;
254 int length() const noexcept;
256 W_PROPERTY(
int, start_sample READ start_sample FINAL)
257 W_PROPERTY(
int, length READ length FINAL)
260 struct ExecutionStateValueType
262 W_GADGET(ExecutionStateValueType)
264 ossia::exec_state_facade req;
265 int sample_rate() const noexcept;
266 int buffer_size() const noexcept;
267 double model_to_physical() const noexcept;
268 double physical_to_model() const noexcept;
269 double physical_date() const noexcept;
270 double start_date_ns() const noexcept;
271 double current_date_ns() const noexcept;
273 SampleTimings timings(ossia::token_request tk) const noexcept;
276 W_PROPERTY(
int, sample_rate READ sample_rate FINAL)
277 W_PROPERTY(
int, buffer_size READ buffer_size FINAL)
278 W_PROPERTY(
double, model_to_physical READ model_to_physical FINAL)
279 W_PROPERTY(
double, physical_to_model READ physical_to_model FINAL)
280 W_PROPERTY(
double, physical_date READ physical_date FINAL)
281 W_PROPERTY(
double, start_date_ns READ start_date_ns FINAL)
282 W_PROPERTY(
double, current_date_ns READ current_date_ns FINAL)
286 Q_DECLARE_METATYPE(JS::TokenRequestValueType)
287 W_REGISTER_ARGTYPE(JS::TokenRequestValueType)
288 Q_DECLARE_METATYPE(JS::SampleTimings)
289 W_REGISTER_ARGTYPE(JS::SampleTimings)