我正在开发一个从外部 USB 设备读取 MIDI 数据的 c++ 项目。该程序应该调用某些函数,具体取决于 USB 设备上的哪个推子/旋钮/按钮被移位/旋转/按下(例如 vol +- 或静音/取消静音通道)。
我想出找出哪个推子/旋钮/按钮被更改的唯一方法是使用一个相当大的 switch 语句,它基本上检查每个传入的 midi 事件。
看起来像这样:
switch(MidiMessage.get2ndByte()){
case 1 : cout << "Fader 1 Value : " << MidiMessage.get3rdByte() << endl;
case 2 : cout << "Fader 2 Value : " << MidiMessage.get3rdByte() << endl;
case 10 : cout << "Button 1 Value : << "MidiMessage.get3rdByte() << endl;
...
...
...
}
没有更有效/更智能的方法来做到这一点吗?