Kok*_*lli 5 c linux midi device-driver linux-device-driver
我一直在玩C中使用数学波函数创建声音.我的项目的下一步是从MIDI键盘控制器获取用户输入,以便将波调制到不同的音高.
我的第一个想法是,这将是相对简单的,Linux,Linux,将允许我从我的设备读取原始数据流,就像我任何其他文件.
然而,研究压倒性地建议我为MIDI控制器编写设备驱动程序.一般的想法是,即使设备文件可能存在,当我的应用程序调用read()和write()等函数时,内核也不会知道要执行的系统调用.
尽管有这些警告,我做了一个实验.我插入了MIDI控制器并且使用了"/ dev/midi1"设备文件.出现了稳定的空字符流,当我按下MIDI控制器上的一个键时,出现了几个字节,对应于MIDI设备应输出的预期消息块.MIDI协议信息
所以我的问题是:
为什么cat'ed流表现如此?
这是否意味着我的系统上已经安装了即插即用设备驱动程序?
我是否仍然可以继续编写设备驱动程序,还是可以像文件一样阅读它?
感谢您提前在这些方面分享您的智慧.
为什么cat'ed流表现如此?
因为这可能是控制器正在接收的原始MIDI数据.空字节可能是某种同步标记.
这是否意味着我的系统上已经安装了即插即用设备驱动程序?
是.
然而,研究压倒性地建议我为MIDI控制器编写设备驱动程序.一般的想法是,即使设备文件可能存在,当我的应用程序调用read()和write()等函数时,内核也不会知道要执行的系统调用.
<...>
我是否仍然可以继续编写设备驱动程序,还是可以像文件一样阅读它?
我不确定你在读什么,或者你是如何得出这个结论的,但这是错误的.:)你已经为你的MIDI控制器安装了一个非常好的驱动程序 - 继续使用它!