试图在PortMidi中打开输入

问题描述:

我试图打开一个midi端口,使用PortMidi从C++中的MIDI键盘读取事件。我使用GetDeviceInfo找到了键盘的设备ID,但无法打开输入。试图在PortMidi中打开输入

功能如下:

Pm_OpenInput ( PortMidiStream ** stream, 
         PmDeviceID inputDevice, 
         void * inputDriverInfo, 
         long bufferSize, 
         PmTimeProcPtr time_proc, 
         void * time_info  
        ) 

该功能背后的完整文档是here

,我的实...

PortMidiStream **stream; 
Pm_OpenInput(stream, 12, NULL, 128, NULL, NULL); 

..gives错误

Ru n-Time检查失败#3 - 正在使用变量'stream'而未被初始化。

..这是真的够了,因为我还没有初始化它。我已经浏览了PortMidi.h和大多数互联网试图找到PortMidiStream以及如何初始化它,但没有成功。头文件只是表示它使用typedef和评论说

单PortMidiStream是 描述为一个开放的MIDI设备

这并没有太大的帮助。

任何想法表示赞赏

乔丹

PS-这里的PortMidi下载页面http://sourceforge.net/apps/trac/portmedia/wiki/portmidi

文档状态

流是 PortMidiStream指针将 收到的地址一个指向新打开的 流的指针。

因此,修改您的代码以完成它所说的事情。

PortMidiStream *stream; /* A PortMidiStream pointer */ 
Pm_OpenInput(&stream, 12, NULL, 128, NULL, NULL); /* Pass the address of the pointer */ 

这是C中用于返回指针值的常见习惯用法。

+0

谢谢,这是排序它 – jordanwise