2025-02-25 22:36:11 +08:00
|
|
|
from dataclasses import dataclass, asdict, field
|
2025-02-25 11:02:31 +08:00
|
|
|
from typing import Dict, List, Any, Optional
|
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
class FilterConfig:
|
|
|
|
type: str
|
|
|
|
frequency: float
|
|
|
|
q: float
|
|
|
|
gain: float
|
|
|
|
slope: int
|
2025-02-26 14:57:42 +08:00
|
|
|
enable: bool
|
2025-02-25 11:02:31 +08:00
|
|
|
|
2025-02-25 16:43:46 +08:00
|
|
|
|
|
|
|
|
2025-02-25 11:02:31 +08:00
|
|
|
@dataclass
|
|
|
|
class ChannelConfig:
|
|
|
|
delay_data: float
|
|
|
|
vol_data: float
|
|
|
|
mix_left_data: float
|
|
|
|
mix_right_data: float
|
|
|
|
filters: List[FilterConfig]
|
|
|
|
|
|
|
|
@dataclass
|
|
|
|
class ParamConfig:
|
|
|
|
name: str
|
|
|
|
created_at: str
|
|
|
|
description: str
|
2025-02-25 22:36:11 +08:00
|
|
|
channels: Dict[int, ChannelConfig] = field(default_factory=dict)
|
2025-02-25 11:02:31 +08:00
|
|
|
|
|
|
|
@dataclass
|
|
|
|
class ProjectData:
|
|
|
|
name: str
|
|
|
|
created_at: str
|
|
|
|
last_modified: str
|
|
|
|
description: str
|
2025-02-25 22:36:11 +08:00
|
|
|
params: Dict[str, ParamConfig] = field(default_factory=dict)
|