cuemsutils 0.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cuemsutils/CTimecode.py +157 -0
- cuemsutils/__init__.py +4 -0
- cuemsutils/cues/ActionCue.py +124 -0
- cuemsutils/cues/AudioCue.py +282 -0
- cuemsutils/cues/Cue.py +251 -0
- cuemsutils/cues/CueList.py +160 -0
- cuemsutils/cues/CueOutput.py +13 -0
- cuemsutils/cues/CuemsScript.py +124 -0
- cuemsutils/cues/DmxCue.py +309 -0
- cuemsutils/cues/VideoCue.py +287 -0
- cuemsutils/cues/__init__.py +0 -0
- cuemsutils/log.py +77 -0
- cuemsutils/schemas/outputs.xsd +21 -0
- cuemsutils/schemas/project_mappings.xsd +74 -0
- cuemsutils/schemas/project_settings.xsd +23 -0
- cuemsutils/schemas/script.xsd +405 -0
- cuemsutils/schemas/settings.xsd +113 -0
- cuemsutils/xml/CMLCuemsConverter.py +177 -0
- cuemsutils/xml/DictParser.py +258 -0
- cuemsutils/xml/XmlBuilder.py +299 -0
- cuemsutils/xml/XmlReaderWriter.py +84 -0
- cuemsutils/xml/__init__.py +0 -0
- cuemsutils-0.0.1.dist-info/METADATA +47 -0
- cuemsutils-0.0.1.dist-info/RECORD +26 -0
- cuemsutils-0.0.1.dist-info/WHEEL +4 -0
- cuemsutils-0.0.1.dist-info/licenses/LICENSE +674 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<xs:schema targetNamespace="http://stagelab.net/cuems" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cms="http://stagelab.net/cuems">
|
|
3
|
+
<xs:element name="CuemsProjectMappings">
|
|
4
|
+
<xs:complexType>
|
|
5
|
+
<xs:sequence>
|
|
6
|
+
<xs:element name="number_of_nodes" minOccurs="1" maxOccurs="1" type="xs:nonNegativeInteger" />
|
|
7
|
+
<xs:element name="default_audio_input" minOccurs="1" maxOccurs="1" type="xs:string" />
|
|
8
|
+
<xs:element name="default_audio_output" minOccurs="1" maxOccurs="1" type="xs:string" />
|
|
9
|
+
<xs:element name="default_video_input" minOccurs="1" maxOccurs="1" type="xs:string" />
|
|
10
|
+
<xs:element name="default_video_output" minOccurs="1" maxOccurs="1" type="xs:string" />
|
|
11
|
+
<xs:element name="default_dmx_input" minOccurs="1" maxOccurs="1" type="xs:string" />
|
|
12
|
+
<xs:element name="default_dmx_output" minOccurs="1" maxOccurs="1" type="xs:string" />
|
|
13
|
+
<xs:element name="nodes" minOccurs="1" maxOccurs="1" type="cms:NodesType" />
|
|
14
|
+
</xs:sequence>
|
|
15
|
+
</xs:complexType>
|
|
16
|
+
</xs:element>
|
|
17
|
+
|
|
18
|
+
<xs:complexType name="NodesType">
|
|
19
|
+
<xs:sequence>
|
|
20
|
+
<xs:element name="node" minOccurs="1" maxOccurs="unbounded" type="cms:NodeType" />
|
|
21
|
+
</xs:sequence>
|
|
22
|
+
</xs:complexType>
|
|
23
|
+
|
|
24
|
+
<xs:complexType name="NodeType">
|
|
25
|
+
<xs:sequence>
|
|
26
|
+
<xs:element name="uuid" minOccurs="1" maxOccurs="1" type="xs:string" />
|
|
27
|
+
<xs:element name="mac" minOccurs="1" maxOccurs="1" type="cms:NonEmptyString" />
|
|
28
|
+
<xs:element name="audio" minOccurs="0" maxOccurs="1" type="cms:DeviceType" />
|
|
29
|
+
<xs:element name="video" minOccurs="0" maxOccurs="1" type="cms:DeviceType" />
|
|
30
|
+
<xs:element name="dmx" minOccurs="0" maxOccurs="1" type="cms:DeviceType" />
|
|
31
|
+
</xs:sequence>
|
|
32
|
+
</xs:complexType>
|
|
33
|
+
|
|
34
|
+
<xs:complexType name="DeviceType">
|
|
35
|
+
<xs:sequence>
|
|
36
|
+
<xs:element name="outputs" minOccurs="0" maxOccurs="unbounded" type="cms:PutGroupType" />
|
|
37
|
+
<xs:element name="inputs" minOccurs="0" maxOccurs="unbounded" type="cms:PutGroupType" />
|
|
38
|
+
</xs:sequence>
|
|
39
|
+
</xs:complexType>
|
|
40
|
+
|
|
41
|
+
<xs:complexType name="PutGroupType">
|
|
42
|
+
<xs:choice>
|
|
43
|
+
<xs:element name="output" minOccurs="0" maxOccurs="unbounded" type="cms:PutType"/>
|
|
44
|
+
<xs:element name="input" minOccurs="0" maxOccurs="unbounded" type="cms:PutType"/>
|
|
45
|
+
</xs:choice>
|
|
46
|
+
</xs:complexType>
|
|
47
|
+
|
|
48
|
+
<xs:complexType name="PutType">
|
|
49
|
+
<xs:sequence>
|
|
50
|
+
<xs:element name="name" minOccurs="1" maxOccurs="1" type="cms:NonEmptyString"></xs:element>
|
|
51
|
+
<xs:element name="mappings">
|
|
52
|
+
<xs:complexType>
|
|
53
|
+
<xs:sequence>
|
|
54
|
+
<xs:element name="mapped_to" minOccurs="1" maxOccurs="unbounded" type="xs:string" />
|
|
55
|
+
</xs:sequence>
|
|
56
|
+
</xs:complexType>
|
|
57
|
+
</xs:element>
|
|
58
|
+
</xs:sequence>
|
|
59
|
+
</xs:complexType>
|
|
60
|
+
|
|
61
|
+
<xs:complexType name="MappedToType">
|
|
62
|
+
<xs:sequence>
|
|
63
|
+
<xs:element name="uuid" minOccurs="1" maxOccurs="1" type="xs:string"></xs:element>
|
|
64
|
+
<xs:element name="name" minOccurs="1" maxOccurs="1" type="xs:string"></xs:element>
|
|
65
|
+
</xs:sequence>
|
|
66
|
+
</xs:complexType>
|
|
67
|
+
|
|
68
|
+
<xs:simpleType name="NonEmptyString">
|
|
69
|
+
<xs:restriction base="xs:string">
|
|
70
|
+
<xs:minLength value="1" />
|
|
71
|
+
<xs:pattern value=".*[^\s].*" />
|
|
72
|
+
</xs:restriction>
|
|
73
|
+
</xs:simpleType>
|
|
74
|
+
</xs:schema>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<xs:schema targetNamespace="http://stagelab.net/cuems" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cms="http://stagelab.net/cuems">
|
|
3
|
+
<xs:element name="CuemsProjectSettings">
|
|
4
|
+
<xs:complexType>
|
|
5
|
+
<xs:sequence>
|
|
6
|
+
<xs:element name="setting" minOccurs="0" maxOccurs="unbounded" type="cms:SettingType" />
|
|
7
|
+
</xs:sequence>
|
|
8
|
+
</xs:complexType>
|
|
9
|
+
</xs:element>
|
|
10
|
+
|
|
11
|
+
<xs:complexType name="SettingType">
|
|
12
|
+
<xs:sequence>
|
|
13
|
+
<xs:element name="name" type="cms:NonEmptyString" />
|
|
14
|
+
<xs:element name="value" type="cms:NonEmptyString" />
|
|
15
|
+
</xs:sequence>
|
|
16
|
+
</xs:complexType>
|
|
17
|
+
<xs:simpleType name="NonEmptyString">
|
|
18
|
+
<xs:restriction base="xs:string">
|
|
19
|
+
<xs:minLength value="1" />
|
|
20
|
+
<xs:pattern value=".*[^\s].*" />
|
|
21
|
+
</xs:restriction>
|
|
22
|
+
</xs:simpleType>
|
|
23
|
+
</xs:schema>
|
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
<?xml version="1.1" encoding="utf-8"?>
|
|
2
|
+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1" targetNamespace="http://stagelab.net/cuems" xmlns:cms="http://stagelab.net/cuems">
|
|
3
|
+
<!-- The main capsule to make it a whole, named CueMs -->
|
|
4
|
+
<!-- Our main object the script-->
|
|
5
|
+
<xs:annotation>
|
|
6
|
+
<xs:appinfo>StageLab CueMs v.0.1</xs:appinfo>
|
|
7
|
+
<xs:appinfo>https://github.com/stagesoft</xs:appinfo>
|
|
8
|
+
<xs:documentation xml:lang="en">
|
|
9
|
+
This schema defines the data structure for a script xml file to operate on
|
|
10
|
+
the CueMs system. https://www.stagelab.net/
|
|
11
|
+
</xs:documentation>
|
|
12
|
+
</xs:annotation>
|
|
13
|
+
|
|
14
|
+
<!-- Main and lonsome element in our schema containing all the others -->
|
|
15
|
+
<xs:element name="CuemsProject">
|
|
16
|
+
<xs:complexType>
|
|
17
|
+
<xs:sequence>
|
|
18
|
+
<!-- And our lonely script element, there should be just one per project -->
|
|
19
|
+
<xs:element name="CuemsScript">
|
|
20
|
+
<xs:complexType>
|
|
21
|
+
<!-- Which is a sequence of one of each of these objects -->
|
|
22
|
+
<xs:all>
|
|
23
|
+
<!-- The uuid, TODO specify the uuid format in a type -->
|
|
24
|
+
<xs:element name="uuid" type="cms:UuidType" />
|
|
25
|
+
<!-- The name, mainly a string, we can check lengths here too if desired -->
|
|
26
|
+
<xs:element name="name" type="cms:NameStringType" /> <!-- 3 - 60 chars -->
|
|
27
|
+
<!-- Long description of the script -->
|
|
28
|
+
<xs:element name="description" type="cms:DescriptionStringType" /> <!-- 0 - 255 chars -->
|
|
29
|
+
<!-- The date, Todo specify the date formant in a type-->
|
|
30
|
+
<xs:element name="created" type="cms:DateType" />
|
|
31
|
+
<xs:element name="modified" type="cms:DateType" />
|
|
32
|
+
<!-- The root cuelist of our project, mainly a cuelist at the root -->
|
|
33
|
+
<xs:element name="CueList" type="cms:CueListType" />
|
|
34
|
+
</xs:all>
|
|
35
|
+
<xs:assert test="modified >= created" />
|
|
36
|
+
</xs:complexType>
|
|
37
|
+
</xs:element>
|
|
38
|
+
</xs:sequence>
|
|
39
|
+
</xs:complexType>
|
|
40
|
+
</xs:element>
|
|
41
|
+
|
|
42
|
+
<!-- UUID string restrictions specs -->
|
|
43
|
+
<xs:simpleType name="UuidType">
|
|
44
|
+
<xs:restriction base="xs:string">
|
|
45
|
+
<xs:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}|" />
|
|
46
|
+
<xs:maxLength value="36" />
|
|
47
|
+
<xs:minLength value="36" />
|
|
48
|
+
</xs:restriction>
|
|
49
|
+
</xs:simpleType>
|
|
50
|
+
|
|
51
|
+
<!-- Target UUID string restrictions specs -->
|
|
52
|
+
<xs:simpleType name="TargetType">
|
|
53
|
+
<xs:restriction base="xs:string">
|
|
54
|
+
<xs:pattern value="([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})|()" />
|
|
55
|
+
<xs:maxLength value="36" />
|
|
56
|
+
<xs:minLength value="0" />
|
|
57
|
+
</xs:restriction>
|
|
58
|
+
</xs:simpleType>
|
|
59
|
+
|
|
60
|
+
<!-- Name text string restrictions -->
|
|
61
|
+
<xs:simpleType name="NameStringType">
|
|
62
|
+
<xs:restriction base="xs:string">
|
|
63
|
+
<xs:minLength value="3" />
|
|
64
|
+
<xs:maxLength value="60" />
|
|
65
|
+
</xs:restriction>
|
|
66
|
+
</xs:simpleType>
|
|
67
|
+
|
|
68
|
+
<!-- Description text string restrictions -->
|
|
69
|
+
<xs:simpleType name="DescriptionStringType">
|
|
70
|
+
<xs:restriction base="xs:string">
|
|
71
|
+
<xs:minLength value="0" />
|
|
72
|
+
<xs:maxLength value="255" />
|
|
73
|
+
</xs:restriction>
|
|
74
|
+
</xs:simpleType>
|
|
75
|
+
|
|
76
|
+
<!-- Our cuelist type -->
|
|
77
|
+
<xs:complexType name="CueListType">
|
|
78
|
+
<xs:complexContent>
|
|
79
|
+
<!-- Which is an extension of the base cue type -->
|
|
80
|
+
<xs:extension base="cms:CueType">
|
|
81
|
+
<xs:sequence>
|
|
82
|
+
<xs:element name="contents" type="cms:CueListContentsType" />
|
|
83
|
+
</xs:sequence>
|
|
84
|
+
</xs:extension>
|
|
85
|
+
</xs:complexContent>
|
|
86
|
+
</xs:complexType>
|
|
87
|
+
|
|
88
|
+
<!-- Our generic cue type -->
|
|
89
|
+
<xs:complexType name="CueType">
|
|
90
|
+
<xs:complexContent>
|
|
91
|
+
<xs:extension base="cms:CommonPropertiesType"></xs:extension>
|
|
92
|
+
</xs:complexContent>
|
|
93
|
+
</xs:complexType>
|
|
94
|
+
|
|
95
|
+
<xs:complexType name="CommonPropertiesType">
|
|
96
|
+
<xs:sequence>
|
|
97
|
+
<!-- Its own uuid -->
|
|
98
|
+
<xs:element name="uuid" type="cms:UuidType" />
|
|
99
|
+
<xs:element name="id" type="xs:string" />
|
|
100
|
+
<xs:element name="name" type="cms:NameStringType" />
|
|
101
|
+
<xs:element name="description" type="cms:DescriptionStringType" />
|
|
102
|
+
<!-- A flag to disable to cue -->
|
|
103
|
+
<xs:element name="enabled" type="cms:BoolType" />
|
|
104
|
+
<!-- A flag to indicate auto arming -->
|
|
105
|
+
<xs:element name="loaded" type="cms:BoolType" />
|
|
106
|
+
<!-- Timecode behaviour flag -->
|
|
107
|
+
<xs:element name="timecode" type="cms:BoolType" />
|
|
108
|
+
<!-- Its time mark -->
|
|
109
|
+
<xs:element name="offset" type="cms:CTimecodeType" />
|
|
110
|
+
<xs:element name="loop" type="cms:LoopType" /> <!-- -1/0/n -->
|
|
111
|
+
<!-- Execution options -->
|
|
112
|
+
<xs:element name="prewait" type="cms:CTimecodeType" /> <!-- After go before play -->
|
|
113
|
+
<xs:element name="postwait" type="cms:CTimecodeType" /> <!-- After play before post go-->
|
|
114
|
+
<xs:element name="post_go" type="cms:PostGoType" /> <!-- Types: pause/go/go_at_end -->
|
|
115
|
+
<xs:element name="target" type="cms:TargetType" /> <!-- target uuid -->
|
|
116
|
+
<xs:element name="UI_properties" type="cms:UiPropertiesType" />
|
|
117
|
+
</xs:sequence>
|
|
118
|
+
</xs:complexType>
|
|
119
|
+
|
|
120
|
+
<!-- Our cuelist contents type -->
|
|
121
|
+
<xs:complexType name="CueListContentsType">
|
|
122
|
+
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
123
|
+
<!-- Can have any other cuelists, recursively -->
|
|
124
|
+
<xs:element name="CueList" type="cms:CueListType" />
|
|
125
|
+
<!-- Can have any cues -->
|
|
126
|
+
<xs:element name="Cue" type="cms:CueType" />
|
|
127
|
+
<!-- Can be also specific type cues -->
|
|
128
|
+
<xs:element name="AudioCue" type="cms:AudioCueType" />
|
|
129
|
+
<xs:element name="DmxCue" type="cms:DmxCueType" />
|
|
130
|
+
<xs:element name="VideoCue" type="cms:VideoCueType" />
|
|
131
|
+
<xs:element name="ActionCue" type="cms:ActionCueType" />
|
|
132
|
+
</xs:choice>
|
|
133
|
+
</xs:complexType>
|
|
134
|
+
|
|
135
|
+
<xs:simpleType name="PostGoType">
|
|
136
|
+
<xs:restriction base="xs:string">
|
|
137
|
+
<xs:enumeration value="pause" />
|
|
138
|
+
<xs:enumeration value="go" />
|
|
139
|
+
<xs:enumeration value="go_at_end" />
|
|
140
|
+
</xs:restriction>
|
|
141
|
+
</xs:simpleType>
|
|
142
|
+
|
|
143
|
+
<xs:complexType name="UiPropertiesType">
|
|
144
|
+
<xs:all minOccurs="0">
|
|
145
|
+
<xs:element name="timeline_position" type="cms:Coordinates" />
|
|
146
|
+
<xs:element name="warning" type="xs:integer" />
|
|
147
|
+
</xs:all>
|
|
148
|
+
</xs:complexType>
|
|
149
|
+
|
|
150
|
+
<xs:complexType name="Coordinates">
|
|
151
|
+
<xs:sequence>
|
|
152
|
+
<xs:element name="x" type="xs:integer" />
|
|
153
|
+
<xs:element name="y" type="xs:integer" />
|
|
154
|
+
</xs:sequence>
|
|
155
|
+
</xs:complexType>
|
|
156
|
+
|
|
157
|
+
<!-- Our audio cue type-->
|
|
158
|
+
<xs:complexType name="AudioCueType">
|
|
159
|
+
<xs:complexContent>
|
|
160
|
+
<xs:extension base="cms:CueType">
|
|
161
|
+
<xs:sequence>
|
|
162
|
+
<xs:element name="Media" type="cms:MediaType" />
|
|
163
|
+
<xs:element name="master_vol" type="cms:PercentType" />
|
|
164
|
+
<xs:element name="Outputs" type="cms:OutputsType" />
|
|
165
|
+
</xs:sequence>
|
|
166
|
+
</xs:extension>
|
|
167
|
+
</xs:complexContent>
|
|
168
|
+
</xs:complexType>
|
|
169
|
+
|
|
170
|
+
<xs:complexType name="MediaType">
|
|
171
|
+
<xs:sequence minOccurs="0" maxOccurs="1">
|
|
172
|
+
<xs:element name="file_name" type="xs:string" />
|
|
173
|
+
<xs:element name="regions" type="cms:RegionsType" />
|
|
174
|
+
</xs:sequence>
|
|
175
|
+
</xs:complexType>
|
|
176
|
+
|
|
177
|
+
<xs:complexType name="RegionsType">
|
|
178
|
+
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
|
179
|
+
<xs:element name="region" type="cms:RegionType" />
|
|
180
|
+
</xs:sequence>
|
|
181
|
+
</xs:complexType>
|
|
182
|
+
|
|
183
|
+
<xs:complexType name="RegionType">
|
|
184
|
+
<xs:sequence minOccurs="1">
|
|
185
|
+
<xs:element name="id" type="xs:nonNegativeInteger" />
|
|
186
|
+
<xs:element name="loop" type="xs:nonNegativeInteger" />
|
|
187
|
+
<xs:element name="in_time" type="cms:CTimecodeType" />
|
|
188
|
+
<xs:element name="out_time" type="cms:CTimecodeType" />
|
|
189
|
+
</xs:sequence>
|
|
190
|
+
</xs:complexType>
|
|
191
|
+
|
|
192
|
+
<xs:complexType name="OutputsType">
|
|
193
|
+
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
|
194
|
+
<xs:element name="AudioCueOutput" type="cms:AudioCueOutputsType" />
|
|
195
|
+
<xs:element name="VideoCueOutput" type="cms:VideoCueOutputsType" />
|
|
196
|
+
</xs:choice>
|
|
197
|
+
</xs:complexType>
|
|
198
|
+
|
|
199
|
+
<xs:complexType name="AudioCueOutputsType">
|
|
200
|
+
<xs:sequence minOccurs="0" maxOccurs="unbounded">
|
|
201
|
+
<!-- <xs:element name="node_uuid" type="cms:UuidType" /> -->
|
|
202
|
+
<xs:element name="output_name" type="cms:NameStringType" />
|
|
203
|
+
<xs:element name="output_vol" type="cms:PercentType" />
|
|
204
|
+
<xs:element name="channels" type="cms:AudioChannelsType" />
|
|
205
|
+
</xs:sequence>
|
|
206
|
+
</xs:complexType>
|
|
207
|
+
|
|
208
|
+
<xs:complexType name="AudioChannelsType">
|
|
209
|
+
<xs:sequence minOccurs="0" maxOccurs="unbounded">
|
|
210
|
+
<xs:element name="channel" type="cms:AudioChannelType" />
|
|
211
|
+
</xs:sequence>
|
|
212
|
+
</xs:complexType>
|
|
213
|
+
|
|
214
|
+
<xs:complexType name="AudioChannelType">
|
|
215
|
+
<xs:sequence>
|
|
216
|
+
<xs:element name="channel_num" type="xs:integer" />
|
|
217
|
+
<xs:element name="channel_vol" type="xs:integer" />
|
|
218
|
+
</xs:sequence>
|
|
219
|
+
</xs:complexType>
|
|
220
|
+
|
|
221
|
+
<xs:complexType name="VideoCueType">
|
|
222
|
+
<xs:complexContent>
|
|
223
|
+
<xs:extension base="cms:CueType">
|
|
224
|
+
<xs:sequence>
|
|
225
|
+
<!-- A video media file path which can be none -->
|
|
226
|
+
<xs:element name="Media" type="cms:MediaType" />
|
|
227
|
+
<!-- An outputs section -->
|
|
228
|
+
<xs:element name="Outputs" type="cms:OutputsType" />
|
|
229
|
+
</xs:sequence>
|
|
230
|
+
</xs:extension>
|
|
231
|
+
</xs:complexContent>
|
|
232
|
+
</xs:complexType>
|
|
233
|
+
|
|
234
|
+
<xs:complexType name="VideoCueOutputsType">
|
|
235
|
+
<!-- Video outputs type -->
|
|
236
|
+
<!-- Specify n virtual video outputs -->
|
|
237
|
+
<xs:sequence minOccurs="1" maxOccurs="1">
|
|
238
|
+
<!-- <xs:element name="node_uuid" type="cms:UuidType" /> -->
|
|
239
|
+
<xs:element name="output_name" type="cms:NameStringType" />
|
|
240
|
+
<xs:element name="output_geometry" type="cms:VideoOutputGeometryType" />
|
|
241
|
+
</xs:sequence>
|
|
242
|
+
</xs:complexType>
|
|
243
|
+
|
|
244
|
+
<xs:complexType name="VideoOutputGeometryType">
|
|
245
|
+
<!-- Specs of the four corners of a media to display -->
|
|
246
|
+
<xs:sequence minOccurs="0" maxOccurs="1">
|
|
247
|
+
<xs:element name="x_scale" type="xs:float" />
|
|
248
|
+
<xs:element name="y_scale" type="xs:float" />
|
|
249
|
+
<xs:element name="corners" type="cms:VideoCornersType" />
|
|
250
|
+
</xs:sequence>
|
|
251
|
+
</xs:complexType>
|
|
252
|
+
|
|
253
|
+
<xs:complexType name="VideoCornersType">
|
|
254
|
+
<xs:sequence>
|
|
255
|
+
<xs:element name="top_left" type="cms:Coordinates" />
|
|
256
|
+
<xs:element name="top_right" type="cms:Coordinates" />
|
|
257
|
+
<xs:element name="bott_left" type="cms:Coordinates" />
|
|
258
|
+
<xs:element name="bott_right" type="cms:Coordinates" />
|
|
259
|
+
</xs:sequence>
|
|
260
|
+
</xs:complexType>
|
|
261
|
+
|
|
262
|
+
<xs:complexType name="DmxCueType">
|
|
263
|
+
<xs:complexContent>
|
|
264
|
+
<xs:extension base="cms:CueType">
|
|
265
|
+
<xs:sequence>
|
|
266
|
+
<!-- A dmx media file path which can be none -->
|
|
267
|
+
<xs:element name="Media" type="cms:MediaType" />
|
|
268
|
+
<xs:element name="fadein_time" type="xs:integer" />
|
|
269
|
+
<xs:element name="fadeout_time" type="xs:integer" />
|
|
270
|
+
</xs:sequence>
|
|
271
|
+
</xs:extension>
|
|
272
|
+
</xs:complexContent>
|
|
273
|
+
</xs:complexType>
|
|
274
|
+
|
|
275
|
+
<!-- Dmx scene type -->
|
|
276
|
+
<xs:complexType name="DmxSceneType">
|
|
277
|
+
<xs:sequence>
|
|
278
|
+
<xs:element name="uuid" type="xs:string" />
|
|
279
|
+
<xs:element name="name" type="cms:NameStringType" />
|
|
280
|
+
<xs:element name="description" type="cms:DescriptionStringType" />
|
|
281
|
+
<!-- We allow a max of 10 universes un a scene by now -->
|
|
282
|
+
<xs:element name="DmxUniverse" type="cms:DmxUniverseType">
|
|
283
|
+
<!-- They must be unique id's specs for the channels -->
|
|
284
|
+
<xs:unique name="unique_universe_number">
|
|
285
|
+
<xs:selector xpath="DmxUniverse" />
|
|
286
|
+
<xs:field xpath="@id" />
|
|
287
|
+
</xs:unique>
|
|
288
|
+
</xs:element>
|
|
289
|
+
</xs:sequence>
|
|
290
|
+
</xs:complexType>
|
|
291
|
+
|
|
292
|
+
<!-- Dmx universe type -->
|
|
293
|
+
<xs:complexType name="DmxUniverseType">
|
|
294
|
+
<xs:sequence>
|
|
295
|
+
<xs:element name="id" type="xs:positiveInteger"></xs:element>
|
|
296
|
+
<!-- List contents (to make it a list in python) -->
|
|
297
|
+
<xs:element name="dmx_channels" type="cms:DmxUniverseContentsType">
|
|
298
|
+
<xs:unique name="unique_channel_number">
|
|
299
|
+
<xs:selector xpath="dmx_channel" />
|
|
300
|
+
<xs:field xpath="@id" />
|
|
301
|
+
</xs:unique>
|
|
302
|
+
</xs:element>
|
|
303
|
+
</xs:sequence>
|
|
304
|
+
<xs:attribute name="id" type="xs:byte" />
|
|
305
|
+
</xs:complexType>
|
|
306
|
+
|
|
307
|
+
<!-- DMX allows a max of 512 different channels in a universe -->
|
|
308
|
+
<xs:complexType name="DmxUniverseContentsType">
|
|
309
|
+
<xs:sequence>
|
|
310
|
+
<xs:element name="dmx_channel" type="cms:DmxChannelType" minOccurs="0" maxOccurs="512" />
|
|
311
|
+
</xs:sequence>
|
|
312
|
+
</xs:complexType>
|
|
313
|
+
|
|
314
|
+
<!-- Dmx basic channel type -->
|
|
315
|
+
<xs:complexType name="DmxChannelType">
|
|
316
|
+
<xs:simpleContent>
|
|
317
|
+
<xs:extension base="xs:unsignedByte">
|
|
318
|
+
<xs:attribute name="id" type="cms:ChannelNumber" />
|
|
319
|
+
</xs:extension>
|
|
320
|
+
</xs:simpleContent>
|
|
321
|
+
</xs:complexType>
|
|
322
|
+
|
|
323
|
+
<xs:simpleType name="ChannelNumber">
|
|
324
|
+
<xs:restriction base="xs:integer">
|
|
325
|
+
<xs:minInclusive value="0" />
|
|
326
|
+
<xs:maxInclusive value="511" />
|
|
327
|
+
</xs:restriction>
|
|
328
|
+
</xs:simpleType>
|
|
329
|
+
|
|
330
|
+
<xs:complexType name="ActionCueType">
|
|
331
|
+
<xs:complexContent>
|
|
332
|
+
<xs:extension base="cms:CueType">
|
|
333
|
+
<xs:sequence>
|
|
334
|
+
<xs:element name="action_type" type="cms:ActionType" minOccurs="0" />
|
|
335
|
+
<xs:element name="action_target" type="cms:TargetType" />
|
|
336
|
+
</xs:sequence>
|
|
337
|
+
</xs:extension>
|
|
338
|
+
</xs:complexContent>
|
|
339
|
+
</xs:complexType>
|
|
340
|
+
|
|
341
|
+
<xs:simpleType name="ActionType">
|
|
342
|
+
<xs:restriction base="xs:string">
|
|
343
|
+
<xs:enumeration value="play" />
|
|
344
|
+
<xs:enumeration value="pause" />
|
|
345
|
+
<xs:enumeration value="stop" />
|
|
346
|
+
<xs:enumeration value="load" />
|
|
347
|
+
<xs:enumeration value="unload" />
|
|
348
|
+
<xs:enumeration value="enable" />
|
|
349
|
+
<xs:enumeration value="disable" />
|
|
350
|
+
<xs:enumeration value="fade_in" />
|
|
351
|
+
<xs:enumeration value="fade_out" />
|
|
352
|
+
<xs:enumeration value="wait" />
|
|
353
|
+
<xs:enumeration value="go_to" />
|
|
354
|
+
<xs:enumeration value="pause_project" />
|
|
355
|
+
<xs:enumeration value="resume_project" />
|
|
356
|
+
</xs:restriction>
|
|
357
|
+
</xs:simpleType>
|
|
358
|
+
|
|
359
|
+
<xs:simpleType name="BoolType">
|
|
360
|
+
<xs:restriction base="xs:string">
|
|
361
|
+
<xs:enumeration value="True" />
|
|
362
|
+
<xs:enumeration value="False" />
|
|
363
|
+
</xs:restriction>
|
|
364
|
+
</xs:simpleType>
|
|
365
|
+
|
|
366
|
+
<xs:simpleType name="DateType">
|
|
367
|
+
<xs:restriction base="xs:dateTime">
|
|
368
|
+
<xs:minInclusive value="2020-01-01T00:00:00"></xs:minInclusive>
|
|
369
|
+
</xs:restriction>
|
|
370
|
+
</xs:simpleType>
|
|
371
|
+
|
|
372
|
+
<xs:simpleType name="TimecodeType">
|
|
373
|
+
<xs:restriction base="xs:string">
|
|
374
|
+
<xs:pattern value="[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}" />
|
|
375
|
+
</xs:restriction>
|
|
376
|
+
</xs:simpleType>
|
|
377
|
+
|
|
378
|
+
<xs:complexType name="CTimecodeType">
|
|
379
|
+
<!-- Can be a timecode field or an empty NoneType field -->
|
|
380
|
+
<xs:choice minOccurs="0">
|
|
381
|
+
<xs:element name="CTimecode" type="cms:TimecodeType" />
|
|
382
|
+
</xs:choice>
|
|
383
|
+
</xs:complexType>
|
|
384
|
+
|
|
385
|
+
<xs:simpleType name="PercentType">
|
|
386
|
+
<!-- Integer from 0 to 100 -->
|
|
387
|
+
<xs:restriction base="xs:integer">
|
|
388
|
+
<xs:minInclusive value="0" />
|
|
389
|
+
<xs:maxInclusive value="100" />
|
|
390
|
+
</xs:restriction>
|
|
391
|
+
</xs:simpleType>
|
|
392
|
+
|
|
393
|
+
<xs:simpleType name="EmptyStringType">
|
|
394
|
+
<xs:restriction base="xs:string">
|
|
395
|
+
<xs:maxLength value="0"></xs:maxLength>
|
|
396
|
+
</xs:restriction>
|
|
397
|
+
</xs:simpleType>
|
|
398
|
+
|
|
399
|
+
<xs:simpleType name="LoopType">
|
|
400
|
+
<xs:restriction base="xs:integer">
|
|
401
|
+
<xs:minInclusive value="0" />
|
|
402
|
+
</xs:restriction>
|
|
403
|
+
</xs:simpleType>
|
|
404
|
+
|
|
405
|
+
</xs:schema>
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<xs:schema targetNamespace="http://stagelab.net/cuems" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cms="http://stagelab.net/cuems">
|
|
3
|
+
<xs:element name="CuemsSettings">
|
|
4
|
+
<xs:complexType>
|
|
5
|
+
<xs:sequence>
|
|
6
|
+
<xs:element name="Settings">
|
|
7
|
+
<xs:complexType>
|
|
8
|
+
<xs:sequence>
|
|
9
|
+
<xs:element name="library_path" type="xs:string" minOccurs="1" maxOccurs="1" />
|
|
10
|
+
<xs:element name="tmp_path" type="xs:string" minOccurs="1" maxOccurs="1" />
|
|
11
|
+
<xs:element name="database_name" type="xs:string" minOccurs="1" maxOccurs="1" />
|
|
12
|
+
<xs:element name="show_lock_file" type="xs:string" minOccurs="1" maxOccurs="1" />
|
|
13
|
+
<!-- Node settings -->
|
|
14
|
+
<xs:element name="node" type="cms:NodeConfType" minOccurs="1" maxOccurs="1"></xs:element>
|
|
15
|
+
</xs:sequence>
|
|
16
|
+
</xs:complexType>
|
|
17
|
+
</xs:element>
|
|
18
|
+
</xs:sequence>
|
|
19
|
+
</xs:complexType>
|
|
20
|
+
</xs:element>
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
<!-- TYPES DEFINITIONS -->
|
|
24
|
+
<xs:complexType name="NodeConfType">
|
|
25
|
+
<xs:sequence>
|
|
26
|
+
<xs:element name="uuid" type="cms:NonEmptyString" />
|
|
27
|
+
<xs:element name="mac" type="cms:NonEmptyString" />
|
|
28
|
+
<xs:element name="osc_dest_host" type="cms:NonEmptyString" />
|
|
29
|
+
<xs:element name="oscquery_ws_port" type="xs:positiveInteger" />
|
|
30
|
+
<xs:element name="oscquery_osc_port" type="xs:positiveInteger" />
|
|
31
|
+
<xs:element name="websocket_port" type="xs:positiveInteger" />
|
|
32
|
+
<xs:element name="load_timeout" type="xs:positiveInteger" />
|
|
33
|
+
<xs:element name="nodeconf_timeout" type="xs:positiveInteger" />
|
|
34
|
+
<xs:element name="discovery_timeout" type="xs:positiveInteger" />
|
|
35
|
+
<xs:element name="mtc_port" type="xs:string" />
|
|
36
|
+
<xs:element name="osc_in_port_base" type="xs:positiveInteger" />
|
|
37
|
+
<xs:element name="videoplayer" type="cms:VideoPlayerType" minOccurs="0" maxOccurs="1" />
|
|
38
|
+
<xs:element name="audioplayer" type="cms:AudioPlayerType" minOccurs="0" maxOccurs="1" />
|
|
39
|
+
<xs:element name="dmxplayer" type="cms:DmxPlayerType" minOccurs="0" maxOccurs="1" />
|
|
40
|
+
</xs:sequence>
|
|
41
|
+
</xs:complexType>
|
|
42
|
+
|
|
43
|
+
<xs:complexType name="PlayerType">
|
|
44
|
+
<xs:sequence>
|
|
45
|
+
<xs:element name="path" type="cms:NonEmptyString" />
|
|
46
|
+
<xs:element name="args" type="xs:string" />
|
|
47
|
+
</xs:sequence>
|
|
48
|
+
</xs:complexType>
|
|
49
|
+
|
|
50
|
+
<xs:complexType name="VideoPlayerType">
|
|
51
|
+
<xs:complexContent>
|
|
52
|
+
<xs:extension base="cms:PlayerType">
|
|
53
|
+
<xs:sequence>
|
|
54
|
+
<xs:element name="outputs" type="xs:positiveInteger"></xs:element>
|
|
55
|
+
</xs:sequence>
|
|
56
|
+
</xs:extension>
|
|
57
|
+
</xs:complexContent>
|
|
58
|
+
</xs:complexType>
|
|
59
|
+
|
|
60
|
+
<xs:complexType name="AudioPlayerType">
|
|
61
|
+
<xs:complexContent>
|
|
62
|
+
<xs:extension base="cms:PlayerType">
|
|
63
|
+
<xs:sequence>
|
|
64
|
+
<xs:element name="audio_cards" type="xs:positiveInteger"></xs:element>
|
|
65
|
+
</xs:sequence>
|
|
66
|
+
</xs:extension>
|
|
67
|
+
</xs:complexContent>
|
|
68
|
+
</xs:complexType>
|
|
69
|
+
|
|
70
|
+
<xs:complexType name="DmxPlayerType">
|
|
71
|
+
<xs:complexContent>
|
|
72
|
+
<xs:extension base="cms:PlayerType">
|
|
73
|
+
<xs:sequence>
|
|
74
|
+
<xs:element name="universes" type="xs:positiveInteger"></xs:element>
|
|
75
|
+
</xs:sequence>
|
|
76
|
+
</xs:extension>
|
|
77
|
+
</xs:complexContent>
|
|
78
|
+
</xs:complexType>
|
|
79
|
+
|
|
80
|
+
<xs:simpleType name="BoolType">
|
|
81
|
+
<xs:restriction base="xs:string">
|
|
82
|
+
<xs:enumeration value="True" />
|
|
83
|
+
<xs:enumeration value="False" />
|
|
84
|
+
</xs:restriction>
|
|
85
|
+
</xs:simpleType>
|
|
86
|
+
|
|
87
|
+
<xs:simpleType name="DateType">
|
|
88
|
+
<xs:restriction base="xs:dateTime">
|
|
89
|
+
<xs:minInclusive value="2020-01-01T00:00:00"></xs:minInclusive>
|
|
90
|
+
</xs:restriction>
|
|
91
|
+
</xs:simpleType>
|
|
92
|
+
|
|
93
|
+
<xs:simpleType name="TimecodeType">
|
|
94
|
+
<xs:restriction base="xs:string">
|
|
95
|
+
<xs:pattern value="[0-9]{2}:[0-9]{2}:[0-9]{2}:[0-9]{2}" />
|
|
96
|
+
</xs:restriction>
|
|
97
|
+
</xs:simpleType>
|
|
98
|
+
|
|
99
|
+
<xs:complexType name="CTimecodeType">
|
|
100
|
+
<xs:choice>
|
|
101
|
+
<xs:element name="CTimecode" type="cms:TimecodeType" default="00:00:00:00" />
|
|
102
|
+
<xs:element name="NoneType" type="xs:string" />
|
|
103
|
+
</xs:choice>
|
|
104
|
+
</xs:complexType>
|
|
105
|
+
|
|
106
|
+
<xs:simpleType name="NonEmptyString">
|
|
107
|
+
<xs:restriction base="xs:string">
|
|
108
|
+
<xs:minLength value="1" />
|
|
109
|
+
<xs:pattern value=".*[^\s].*" />
|
|
110
|
+
</xs:restriction>
|
|
111
|
+
</xs:simpleType>
|
|
112
|
+
|
|
113
|
+
</xs:schema>
|