Loading...
Searching...
No Matches
plugins/score-lib-process/Process/DocumentPlugin.hpp
1#pragma once
2#include <Process/Dataflow/CableItem.hpp>
3#include <Process/Dataflow/PortItem.hpp>
4
5#include <score/plugins/documentdelegate/plugin/DocumentPlugin.hpp>
6
7#include <ossia/detail/ptr_set.hpp>
8
9#include <verdigris>
10namespace Process
11{
12class SCORE_LIB_PROCESS_EXPORT DataflowManager final : public QObject
13{
14 W_OBJECT(DataflowManager)
15public:
18
19 using cable_map = ossia::ptr_map<const Process::Cable*, Dataflow::CableItem*>;
20 using port_map = ossia::ptr_map<const Process::Port*, Dataflow::PortItem*>;
21
22 Dataflow::CableItem* createCable(
23 const Process::Cable& cable, const Process::Context& context,
24 QGraphicsScene* scene);
25
26 cable_map& cables() noexcept { return m_cableMap; }
27 port_map& ports() noexcept { return m_portMap; }
28
29 void cableItemCreated(Dataflow::CableItem* item)
30 E_SIGNAL(SCORE_LIB_PROCESS_EXPORT, cableItemCreated, item);
31
32private:
33 cable_map m_cableMap;
34 port_map m_portMap;
35};
36}
37W_REGISTER_ARGTYPE(Dataflow::CableItem*)
Definition CableItem.hpp:37
Definition Cable.hpp:38
Definition plugins/score-lib-process/Process/DocumentPlugin.hpp:13
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
Definition ProcessContext.hpp:12