#firewire #protocols #alsa

bin+lib firewire-oxfw-protocols

Oxford Semiconductor FW970/971 ASICs 及厂商特定型号协议的实现

2 个不稳定版本

0.2.0 2023年4月18日
0.1.1 2022年8月5日

#375 in 多媒体

LGPL-3.0-or-later

280KB
6K SLoC

该库包包含 OXFW970 和 OXFW971 ASICs 以及连接到 IEEE 1394 总线的应用设备的协议实现。

OXFW970 和 OXFW971 ASICs

Oxford Semiconductor 公司成立于 1992 年,2009 年被 PLX Technology 收购。它推出了两个 ASIC;OXFW970(于 2004 年推出)和 OXFW971(于 2006 年推出),作为多通道等时传输 FireWire 音频控制器的低成本解决方案。它们被应用于一些供应商的产品中,用于 IEEE 1394 总线上的音频和音乐单元。

ALSA oxfw 驱动程序

Linux 音频子系统,即 ALSA,提供了可加载的内核模块(snd-oxfw)作为单元的驱动程序。驱动程序维护音频帧和 MIDI 消息的等时数据包流,因为其他 ASIC 功能(如数字信号处理)可以直接由用户空间应用程序操作。

该包是对运行时程序的补充实现,以满足该目的。

依赖项

这是依赖项列表。

glib 和 hinawa 包需要一些底层系统库。

Linux FireWire 子系统的功能通过 hinawa 包和库调用,以与 IEEE 1394 总线上的节点通信,因此该包不可移植。

支持的型号

这是当前支持的型号列表。

  • Tascam FireOne
  • Apogee Duet FireWire
  • Griffin FireWave
  • Lacie FireWire 扬声器
  • Mackie Tapco Link.FireWire 4x6

其他型号似乎不接受任何从外部操作内部 DSP 功能的操作。

包状态

该包由 ALSA GObject Introspection 团队snd-firewire-ctl-services 项目开发和维护,目前尚不稳定。包含的 Rust 元素可能会更改,且不具有向后兼容性。

许可证

该软件包根据 GNU Lesser General Public License v3.0 或更高版本 的条款发布,包括逆向工程条款。

支持

如果在使用过程中遇到问题,请在 https://github.com/alsa-project/snd-firewire-ctl-services/ 上提交问题。

免责声明

协议的实现是通过逆向工程开发的;通过嗅探目标设备连接的IEEE 1394总线,并分析硬件供应商提供的设备与驱动程序之间的通信。幸运的是,开发者获得了Echo Digital Audio公司提供的命令和响应机制的源代码,并获得重新实现并用于开源软件的许可。然而,由于开发者是在黑盒中工作的,因此可能不会与您的设备正常工作。

工具

一些程序位于 'src/bin' 目录下。

oxfw-info.rs

此程序通过Oxford半导体定义的协议从目标设备的节点检索信息,然后打印这些信息。

如果没有命令行参数,它将打印帮助信息并退出。

Usage:
  oxfw-info CDEV

  where:
    CDEV:       The path to special file of firewire character device, typically '/dev/fw1'.

请用firewire字符设备参数运行。

$ cargo run --bin oxfw-info /dev/fw1
...

依赖关系

~7.5MB
~153K SLoC