OSSIA
Open Scenario System for Interactive Application
qml_scenario.hpp
1 #pragma once
2 #include <ossia/editor/scenario/scenario.hpp>
3 
4 #include <ossia-qt/score/qml_autom.hpp>
5 #include <ossia-qt/score/qml_sync.hpp>
6 
7 #include <ossia/detail/hash_map.hpp>
8 
9 #include <verdigris>
10 
11 namespace ossia
12 {
13 namespace qt
14 {
15 class qml_interval;
16 class qml_sync;
17 class qml_scenario : public qml_process
18 {
19  W_OBJECT(qml_scenario)
20 
21 public:
22  qml_scenario(QQuickItem* parent = nullptr);
23  ~qml_scenario() override;
24 
25  void registerInterval(qml_interval*);
26  void unregisterInterval(qml_interval*);
27 
28  void registerSync(qml_sync*);
29  void unregisterSync(qml_sync*);
30 
31  void setup() override;
32  std::shared_ptr<ossia::time_process> process() const override;
33 
34  qml_sync* startSync() const;
35 
36 public:
37  void setStartSync(qml_sync* s);
38  W_SLOT(setStartSync);
39 
40 public:
41  void startSyncChanged(qml_sync* arg_1) E_SIGNAL(OSSIA_EXPORT, startSyncChanged, arg_1);
42 
43 private:
44  void reset_impl() override;
45 
46  qml_sync* m_startSync{};
47  std::shared_ptr<ossia::scenario> m_impl;
48 
49  ossia::hash_set<qml_sync*> m_syncs;
50  ossia::hash_set<qml_interval*> m_intervals;
51 
52  W_PROPERTY(
53  qml_sync*, startSync READ startSync WRITE setStartSync NOTIFY startSyncChanged)
54 };
55 }
56 }
Definition: git_info.h:7