Vuo 2.4.4
Loading...
Searching...
No Matches
VuoSubcompositionMessageRouter.hh
Go to the documentation of this file.
1
10#pragma once
11
13class VuoEditorWindow;
14class VuoRendererNode;
15#include "shared_mutex.hh"
16
21{
22public:
25
26 void addComposition(VuoEditorWindow *window);
28 void linkSubcompositionToNodeInSupercomposition(VuoEditorComposition *subcompositionInstance, VuoEditorComposition *supercomposition, VuoRendererNode *nodeInSupercomposition);
30 void unlinkNodeInSupercompositionFromSubcomposition(VuoEditorComposition *supercomposition, const string &nodeIdentifier);
31 void relinkNodeInSupercompositionToSubcomposition(VuoEditorComposition *supercomposition, const string &nodeIdentifier);
33
40 void applyToLinkedCompositionWithIdentifier(VuoEditorComposition *currComposition, string compositionIdentifier, CompositionCallback doForComposition);
45
46private:
47 class CompositionInfo
48 {
49 public:
50 CompositionInfo(void);
51 CompositionInfo(VuoEditorWindow *window);
52 void reset(void);
53
54 VuoEditorWindow *window;
55 VuoEditorComposition *topLevelComposition;
56 VuoEditorComposition *supercomposition;
57 string nodeIdentifierInSupercomposition;
58 string compositionIdentifier;
59 };
60
61 map<VuoEditorComposition *, CompositionInfo> compositionInfos;
62 ting::shared_mutex compositionInfosMutex;
63
64 map<VuoEditorComposition *, CompositionInfo> unlinkedCompositionInfos;
65};