SwiftOCA

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) 在对象或设备级别实现自定义访问控制。

使用 jsonObjectdeserialize(jsonObject:) 方法提供到 JSON 类型的序列化,这些方法遍历声明的属性列表,并使用 Codable 编码非 JSON 类型。

还包括一个示例 SwiftUI 视图库,并且正在开发 Flutter 桥接 here。 下面是使用 SwiftOCAUI 控件生成的屏幕截图

OCABrowser

Luke Howard lukeh@lukktone.com