75 void on_documentClosing()
override;
76 ossia::net::device_base& device()
const noexcept override {
return *m_localDevice; }
81 std::shared_ptr<const ScriptableSnapshot> snapshot()
const noexcept override;
83 const ReferenceIndex& references()
const noexcept {
return m_references; }
86 std::vector<QObject*>
referrers(
const QObject& target)
const override
88 return m_references.referrers(target);
90 std::vector<QObject*>
targets(
const QObject& referrer)
const override
92 return m_references.targets(referrer);
94 ossia::net::parameter_base*
95 reserve(const ::State::Address& address,
const ossia::value& sample)
override;
96 void follow(QObject& referrer)
override;
97 bool hasPlayedValues() const noexcept override;
98 void keepPlayedValues() override;
101 objectAt(const ossia::net::node_base& node, QString& member) const noexcept override;
102 ossia::net::node_base*
103 nodeOf(const QObject&
object, const QString& member) const noexcept override;
105 void connectToStop();
110 void createScriptable();
111 void cleanupScriptable();
112 void anchorDocument();
113 void retire(ossia::net::node_base& node);
114 ossia::net::node_base* revive(ossia::net::node_base& parent, const
std::
string& name);
117 void recorded(
Process::ControlInlet& port, const ossia::value& before);
118 void played(
Process::ControlInlet& port, const ossia::value& value);
120 std::optional<::
State::AddressAccessor>
121 migrated(const ::
State::AddressAccessor& a) const;
122 void commitRecorded(
Recall recall);
127 void beginRecall(
Recall recall);
128 void endRecall(
Recall recall);
131 void tag(ossia::net::node_base& node, const QObject&
object, const QString& member);
132 void onTreeChanged();
133 void onNodeChanged(ossia::net::node_base&) { onTreeChanged(); }
134 void onNodeRenamed(ossia::net::node_base&, std::string);
135 void onAttributeChanged(ossia::net::node_base&,
const std::string&) { onTreeChanged(); }
136 void onParameterChanged(
const ossia::net::parameter_base&) { onTreeChanged(); }
137 void rebuildSnapshot();
140 ScriptableInterval* m_scriptable{};
141 ossia::net::node_base* m_controls{};
142 ossia::net::node_base* m_triggers{};
143 ossia::net::node_base* m_conditions{};
144 std::vector<std::pair<ossia::net::node_base*, std::string>> m_retired;
145 bool m_flushConnected{};
146 bool m_stopConnected{};
147 std::vector<std::pair<QPointer<Process::ControlInlet>, ossia::value>> m_recorded;
149 std::vector<std::pair<QPointer<Process::ControlInlet>, ossia::value>> m_played;
151 void untag(
const ossia::net::node_base& node);
155 QPointer<QObject> object;
157 const QObject* key{};
160 ossia::hash_map<const ossia::net::node_base*, Tagged> m_byNode;
161 ossia::hash_map<const QObject*, ossia::small_vector<std::pair<QString, ossia::net::node_base*>, 2>>
163 std::shared_ptr<const ScriptableSnapshot> m_snapshot;
164 bool m_snapshotScheduled{};
165 ReferenceIndex m_references{*
this};
166 std::unique_ptr<ossia::net::device_base> m_localDevice;
std::vector< QObject * > referrers(const QObject &target) const override
The states, ports, events and syncs holding an address anchored to the object.
Definition LocalTreeDocumentPlugin.hpp:86
std::vector< QObject * > targets(const QObject &referrer) const override
The objects the addresses of a state, port, event or sync are anchored to.
Definition LocalTreeDocumentPlugin.hpp:90
Definition DocumentContext.hpp:18