reminirestore-arch/G6Lighting
GitHub: reminirestore-arch/G6Lighting
这是一款原生 macOS 菜单栏应用,通过逆向工程 USB HID 协议来控制 Creative Sound BlasterX G6 声卡的 RGB 灯效。
Stars: 0 | Forks: 0
# G6 Lighting
[](https://github.com/reminirestore-arch/G6Lighting/actions/workflows/tests.yml)
[](https://codecov.io/gh/reminirestore-arch/G6Lighting)
[](https://github.com/reminirestore-arch/G6Lighting/releases/latest)


[](LICENSE)
原生的 macOS 菜单栏应用,用于控制 **Creative Sound BlasterX G6** USB 声卡的 RGB X-logo 和音量旋钮 LED 环。Creative 没有为该设备提供 macOS 软件——本应用填补了这一空白,直接与 G6 特定供应商的 HID 接口进行通信。
/` 中。
## 测试
```
swift run G6LightingTestRunner --testing-library swift-testing
```
跨越 7 个测试套件的 46 个测试涵盖:
- 通信协议字节的精确性(每个数据包字段、BGR 顺序、RGB 帧合成)
- 作为纯函数的灯效(在选定时间的峰值帧、周期正确性)
- 使用内存中 `KeyValueStore` 的设置持久化
- ViewModel 集成:启动、开/关、环 LED、错误展示、颜色重发
为什么使用自定义运行器:在仅安装了 Command Line Tools(无 Xcode)的设置上,标准的 `swift test` 构建的是一个无法直接执行的 Mach-O bundle,因此 swift-testing 的入口点永远不会被调用。专用的 `G6LightingTestRunner` 可执行目标包装了 `Testing.__swiftPMEntryPoint()` 并产生实际输出。
## 通信协议
所有命令都通过 `IOHIDDeviceSetReport` 作为 64 字节的 HID OUTPUT 报告发送到 **HID 接口 4**(供应商使用页 `0xFF00`)。接口 4 没有 OUT endpoint,因此写入操作通过 SET_REPORT 控制传输透明地进行路由。
### X-logo 色彩(3 个数据包)
| | bytes |
|---|---|
| init | `5A 3A 02 06 01 …` |
| mode | `5A 3A 06 04 . 03 01 . 01 …` |
| color | `5A 3A 09 0A . 03 01 01 {bri} {B} {G} {R} …` |
### 音量旋钮环 LED 切换(DATA + COMMIT)
| | bytes |
|---|---|
| DATA | `5A 39 03 00 0E {00=on, 01=off} …` |
| COMMIT | `5A 39 01 01 …` |
音量旋钮 LED 在硬件上是**双色(白/红)**的,而不是 RGB——只能暴露开/关状态。白色 = 播放音量,红色 = 侧音。
## 范围与相关项目
**G6 Lighting** 有意设计为一个专注的小型应用——仅限 RGB 和环 LED。它将保持这种定位。
如果你想要**完整的 G6 管理**(照明 + 音频 DSP:输出切换、SBX 效果、麦克风增益等):
- 计划为 macOS 推出一款更大的配套应用程序 **G6 Control**——独立的仓库,将与本应用共存。两者都可以并排安装,并使用互不相交的 G6 HID 命令族。参见 [issue #1](https://github.com/reminirestore-arch/G6Lighting/issues/1) 和 [`docs/G6Control-roadmap.md`](docs/G6Control-roadmap.md)。尚未开始。
- 在如今的 Linux / Windows 上:[`jackbrumley/rusty-g6`](https://github.com/jackbrumley/rusty-g6)——功能齐全的音频 GUI,MIT 许可证,完全相同的通信协议。
请选择适合你使用场景的工具——两者互不替代。
## 贡献
欢迎提交 PR——参见 [CONTRIBUTING.md](CONTRIBUTING.md)。对于错误和功能请求,请使用 [issue 跟踪器](https://github.com/reminirestore-arch/G6Lighting/issues)。
## 许可证
[MIT](LICENSE)——随心所欲使用,只需保留版权声明。
不隶属于 Creative Technology Ltd,也未经其认可。Sound Blaster 名称及产品名称均为 Creative Technology Ltd. 的商标。
标签:HID, RGB灯效, Swift, 声卡, 硬件控制, 菜单栏应用