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