Source code for jdxi_editor.jdxi.preset.incoming_data

from dataclasses import dataclass, field
from typing import Dict, Optional


@dataclass
[docs] class IncomingPresetData:
[docs] program_number: Optional[int] = None
[docs] program_name: Optional[str] = None
[docs] channel: Optional[int] = None
[docs] msb: Optional[int] = None
[docs] lsb: Optional[int] = None
[docs] tone_names: Dict[str, str] = field( default_factory=dict ) # e.g., {"analog": "Saw Lead"}
[docs] def set_tone_name(self, part: str, name: str) -> None: self.tone_names[part] = name
[docs] def get_tone_name(self, part: str) -> Optional[str]: return self.tone_names.get(part)
[docs] def clear(self) -> None: self.program_number = None self.channel = None self.tone_names.clear()