30 lines
839 B
Python
30 lines
839 B
Python
import bpy
|
|
|
|
def all_speakers(scene: bpy.types.Scene) -> list[bpy.types.Object]:
|
|
return [obj for obj in scene.objects if obj.type == 'SPEAKER']
|
|
|
|
|
|
def solo_speakers(scene: bpy.types.Scene, solo_group: list[bpy.types.Object]):
|
|
"""
|
|
Mutes all Objects not in `solo_group` and ensures all objects in this group
|
|
are not muted.
|
|
"""
|
|
for speaker in all_speakers(scene):
|
|
assert type(speaker.data) is bpy.types.Speaker
|
|
if speaker in solo_group:
|
|
speaker.data.muted = False
|
|
else:
|
|
speaker.data.muted = True
|
|
|
|
speaker.data.update_tag()
|
|
|
|
|
|
def unmute_all_speakers(scene):
|
|
"""
|
|
Unmutes all speakers.
|
|
"""
|
|
for speaker in all_speakers(scene):
|
|
assert type(speaker.data) is bpy.types.Speaker
|
|
speaker.data.muted = False
|
|
speaker.data.update_tag()
|