SwiftOCA 是 AES70/OCA 控制协议的纯 Swift 实现,主要用于专业音频设备的远程控制。
该软件包由三个库组成:
所有 API 都是异步安全的,并且支持 macOS 和 Linux:在 macOS 上,FlyingFox 用于 socket I/O,而在 Linux 上,使用 IORingSwift。
平台 | TCP | UDP 客户端 | UDP 服务器 | WS 客户端 | WS 服务器 | 本地 |
---|---|---|---|---|---|---|
macOS | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
Linux | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
示例代码可以在 Examples 中找到。
ocacli 是一个用于管理 OCA 设备的命令行实用程序,使用 SwiftOCA 实现。
正在进行对 AES70-2023 的支持:使用 @OcaProperty
和 @OcaDeviceProperty
包装器,可以轻松添加新类。对于仅包含属性的类,只需声明属性和访问器 ID,所有逻辑(包括事件通知)将在运行时处理。 对于自定义逻辑,请覆盖 handleCommand(from:)
方法。 可以通过覆盖 ensureReadable(by:command)
和 ensureWritable(by:command)
在对象或设备级别实现自定义访问控制。
使用 jsonObject
和 deserialize(jsonObject:)
方法提供到 JSON 类型的序列化,这些方法遍历声明的属性列表,并使用 Codable 编码非 JSON 类型。
还包括一个示例 SwiftUI 视图库,并且正在开发 Flutter 桥接 here。 下面是使用 SwiftOCAUI
控件生成的屏幕截图
Luke Howard lukeh@lukktone.com