use mineral_config_macros::config_section;
use super::audio::AudioConfig;
use super::cache::CacheConfig;
use super::download::DownloadConfig;
use super::queue::QueueConfig;
use super::script::ScriptConfig;
use super::sources::SourcesConfig;
use super::stats::StatsConfig;
#[config_section]
#[lua_extra_field(
"setup?",
"fun(api: mineral.DaemonApi): nil",
"daemon 启动或成功重载时执行;api 提供音乐、日志和 daemon 配置操作"
)]
pub struct DaemonConfig {
audio: AudioConfig,
cache: CacheConfig,
download: DownloadConfig,
sources: SourcesConfig,
queue: QueueConfig,
gapless_prefetch_ms: u64,
prev_restart_threshold_ms: u64,
player_tick_ms: u64,
session_save_secs: u64,
heartbeat_secs: u64,
report_interval_ms: u64,
seek_threshold_ms: u64,
download_speed_tick_ms: u64,
channel_workers_per: usize,
script: ScriptConfig,
stats: StatsConfig,
}