Files
soundobjects_blender_addon/intern/speaker_utils.py
2025-11-05 21:12:55 -08:00

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()