Skip to content

Commit 313da94

Browse files
committed
rework get dmx channels
1 parent cd33c6d commit 313da94

File tree

1 file changed

+48
-13
lines changed

1 file changed

+48
-13
lines changed

pygdtf/utils/__init__.py

Lines changed: 48 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,21 @@ def get_virtual_channels(
167167
"geometry": geometry.name,
168168
}
169169
if include_channel_functions:
170-
virtual_channel["channel_functions"] = (
171-
channel.logical_channels[0].channel_functions,
172-
)
170+
channel_functions = [
171+
{
172+
"name": channel_function.name,
173+
"attribute": channel_function.attribute.str_link,
174+
"real_fade": channel_function.real_fade,
175+
"channel_sets": [
176+
channel_set.name
177+
for channel_set in channel_function.channel_sets
178+
],
179+
}
180+
for channel_function in channel.logical_channels[
181+
0
182+
].channel_functions
183+
]
184+
virtual_channel["channel_functions"] = channel_functions
173185
virtual_channels.append(virtual_channel)
174186
return virtual_channels
175187

@@ -270,9 +282,19 @@ def get_dmx_channels(
270282
"break": channel_break,
271283
}
272284
if include_channel_functions:
273-
break_channel["channel_functions"] = channel.logical_channels[
274-
0
275-
].channel_functions
285+
channel_functions = [
286+
{
287+
"name": channel_function.name,
288+
"attribute": channel_function.attribute.str_link,
289+
"real_fade": channel_function.real_fade,
290+
"channel_sets": [
291+
channel_set.name
292+
for channel_set in channel_function.channel_sets
293+
],
294+
}
295+
for channel_function in channel.logical_channels[0].channel_functions
296+
]
297+
break_channel["channel_functions"] = channel_functions
276298
break_channels[offset_coarse - 1] = break_channel
277299

278300
if offset_fine > 0:
@@ -288,9 +310,22 @@ def get_dmx_channels(
288310
"break": channel_break,
289311
}
290312
if include_channel_functions:
291-
break_channel["channel_functions"] = channel.logical_channels[
292-
0
293-
].channel_functions
313+
channel_functions = [
314+
{
315+
"name": channel_function.name,
316+
"attribute": channel_function.attribute.str_link,
317+
"real_fade": channel_function.real_fade,
318+
"channel_sets": [
319+
channel_set.name
320+
for channel_set in channel_function.channel_sets
321+
],
322+
}
323+
for channel_function in channel.logical_channels[
324+
0
325+
].channel_functions
326+
]
327+
break_channel["channel_functions"] = channel_functions
328+
294329
break_channels[offset_fine - 1] = break_channel
295330

296331
dmx_channels[channel_break - 1] = break_channels
@@ -530,12 +565,12 @@ def calculate_complexity(gdtf_profile: Optional["pygdtf.FixtureType"] = None):
530565
channel_functions_count += len(channel_functions)
531566
physical_from_to = 0
532567
for channel_function in channel_functions:
533-
channel_sets_count += len(channel_function.channel_sets)
534-
if channel_function.real_fade != 0:
568+
channel_sets_count += len(channel_function.get("channel_sets", 0))
569+
if channel_function.get("real_fade", 0) != 0:
535570
real_fade_count += 1
536-
if channel_function.physical_to != 0:
571+
if channel_function.get("physical_to", 0) != 0:
537572
physical_from_to += 1
538-
if channel_function.physical_from != 0:
573+
if channel_function.get("physical_from", 0) != 0:
539574
physical_from_to += 1
540575

541576
data = (

0 commit comments

Comments
 (0)