"""Atribuir roles de vídeo/áudio. Extraído de writer.py — ver fcpxml/writer/__init__.py para o conjunto. """ import xml.etree.ElementTree as ET from typing import Optional from .helpers import _sanitize_xml_value class RolesMixin: """Atribuir roles de vídeo/áudio.""" # ROLE OPERATIONS (v0.5.0) # ======================================================================== def assign_role( self, clip_id: str, audio_role: Optional[str] = None, video_role: Optional[str] = None, ) -> ET.Element: """Set the audio/video role on a clip. Args: clip_id: Name/ID of the clip audio_role: Audio role (e.g., "dialogue", "music", "effects") video_role: Video role (e.g., "video", "titles") Returns: The modified clip element """ clip = self._require_clip(clip_id) if audio_role is not None: clip.set('audioRole', _sanitize_xml_value(audio_role, 256)) if video_role is not None: clip.set('videoRole', _sanitize_xml_value(video_role, 256)) return clip # ========================================================================