Vuo
2.3.2
editor
VuoSubcompositionMessageRouter.hh
Go to the documentation of this file.
1
10
#pragma once
11
12
class
VuoEditorComposition
;
13
class
VuoEditorWindow
;
14
class
VuoRendererNode
;
15
#include "shared_mutex.hh"
16
20
class
VuoSubcompositionMessageRouter
21
{
22
public
:
23
VuoSubcompositionMessageRouter
(
void
);
24
~VuoSubcompositionMessageRouter
(
void
);
25
26
void
addComposition
(
VuoEditorWindow
*window);
27
void
removeComposition
(
VuoEditorWindow
*window);
28
void
linkSubcompositionToNodeInSupercomposition
(
VuoEditorComposition
*subcompositionInstance,
VuoEditorComposition
*supercomposition,
VuoRendererNode
*nodeInSupercomposition);
29
void
unlinkSubcompositionFromNodeInSupercomposition
(
VuoEditorComposition
*subcompositionInstance);
30
void
unlinkNodeInSupercompositionFromSubcomposition
(
VuoEditorComposition
*supercomposition,
const
string
&nodeIdentifier);
31
void
relinkNodeInSupercompositionToSubcomposition
(
VuoEditorComposition
*supercomposition,
const
string
&nodeIdentifier);
32
string
getCompositionIdentifier
(
VuoEditorComposition
*composition);
33
35
typedef
void (^
CompositionCallback
)(
VuoEditorComposition
*);
36
typedef
void (^
CompositionCallbackWithIdentifier
)(
VuoEditorComposition
*, string);
37
typedef
void (^
CompositionCallbackWithPath
)(
VuoEditorComposition
*, string);
39
void
applyToLinkedTopLevelComposition
(
VuoEditorComposition
*currComposition,
CompositionCallbackWithIdentifier
doForComposition);
40
void
applyToLinkedCompositionWithIdentifier
(
VuoEditorComposition
*currComposition,
string
compositionIdentifier,
CompositionCallback
doForComposition);
41
void
applyToAllLinkedCompositions
(
VuoEditorComposition
*currComposition,
CompositionCallbackWithIdentifier
doForComposition);
42
void
applyToAllOtherTopLevelCompositions
(
VuoEditorComposition
*currComposition,
CompositionCallback
doForComposition);
43
void
applyIfInstalledAsSubcomposition
(
VuoEditorComposition
*currComposition,
CompositionCallbackWithPath
doForComposition);
44
void
applyToAllOtherCompositionsInstalledAsSubcompositions
(
VuoEditorComposition
*currComposition,
CompositionCallbackWithPath
doForComposition);
45
46
private
:
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
};
Generated on Sat Jun 19 2021 10:17:44 for Vuo by
1.9.1