D:\ECHO 当前源码架构
本页依据本机 D:\ECHO 的 75d84ae8e 源码快照整理。它描述仓库已装配的实现,不是对官网版、Steam 默认分支或所有平台发布状态的承诺。具体可用性以实际安装包和发布说明为准。
四层各管什么
Section titled “四层各管什么”| 层 | 职责 | 源码入口 |
|---|---|---|
| React Renderer | 页面、设置、播放器控制和状态展示 | src/renderer |
| Preload + Electron Main | 类型化 IPC、窗口、Steamworks、后台任务和平台接入 | src/preload、src/main |
| Echo Core | 曲库分页查询、搜索、排序、收藏与歌单命令、部分扫描写入 | core、src/main/core |
| Native Audio Host | 解码、PCM、DSP、设备、播放时钟和实际完成状态 | native/audio-host、src/main/audio |
Echo Core 是逐步迁入的 C# / .NET 曲库业务,与 C++ 原生音频宿主不同。数据库初始化、扫描输入准备、文件监听和部分兼容路径仍在 Electron/TypeScript。Renderer 里的开关状态不能单独证明音频处理已经生效。
Renderer → Typed Preload / IPC → Electron Main ├─ 曲库服务 → Echo Core → 同一 SQLite 曲库 └─ AudioSession → Native Audio Host → 输出设备从功能找模块
Section titled “从功能找模块”| 要追的问题 | 优先查看 |
|---|---|
| 文件夹扫描、CUE、osu! / Geometry Dash 导入 | src/main/library、src/renderer/pages/FoldersPage.tsx |
| 智能歌单规则与结果 | src/renderer/components/playlists、src/main/library/LibraryStore.ts |
| Audio CD | src/renderer/pages/AudioCdPage.tsx、src/main/audio |
| 输出、DSP 是否真实生效 | src/main/audio、native/audio-host,结合宿主状态与回落原因 |
| 系统媒体控制 | Windows SMTC / 任务栏、Linux MPRIS、macOS Swift host 平台代码 |
| Workshop 内容与边界 | src/main/workshop、docs/workshop-sdk |
平台与发行边界
Section titled “平台与发行边界”Windows 是当前 Steam 发行主线。Linux 有 AppImage/deb 开发构建和 MPRIS 代码;macOS 有 Apple Silicon 本机构建、CoreAudio 与 Swift 系统集成。源码存在或构建成功不等于完成 Steam 正式发行验收。Steam 版还有独立的数据目录、DLC 权益和工坊边界;仓库里的旧实现不一定进入最终 depot。
改源码前先看 D:\ECHO\docs\engineering\README.md 与 AGENTS.md。用户操作可从智能歌单、Audio CD 与 CUE和导入音源开始。