问题标签 [reaper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
33 浏览

c++ - 如何找出在 C++/WinRT 中连接断开的 midiDevice 失败

我正在为 REAPER DAW 创建一个插件来支持 BLE MIDI 输入。代码如下:

当尝试连接到连接到系统的 MIDI 设备时,这就像一个魅力。但是,当尝试连接到超出范围的 BLE MIDI 设备时,只要我 co_await co_await MidiInPort::FromIdAsync,调用线程就会冻结五秒钟,然后 fire_and_forget 的其余部分根本不会执行。

我尝试了几件事,包括将 fire_and_forget 更改为 IAsyncAction 并从执行此操作的同步代码中获取结果,但结果都相同。如果我使用 Visual Studio 调试器单步执行协程,在 co_await 将调用者冻结五秒钟后,光标会立即跳转到协程的底部。

我可能做错了什么,但是文档中没有关于与设备的连接失败时应该采取什么行为的信息(例如,它是否应该只返回 nullptr,是否应该引发异常)?