Merge "Don't call setInterface when querying protocol"

This commit is contained in:
Robert Wu
2022-01-27 19:30:59 +00:00
committed by Android (Google) Code Review

View File

@@ -218,14 +218,13 @@ public final class UsbUniversalMidiDevice implements Closeable {
if (doesInterfaceContainInput
&& doesInterfaceContainOutput) {
UsbDeviceConnection connection = manager.openDevice(mUsbDevice);
if (!connection.claimInterface(interfaceDescriptor.toAndroid(mParser), true)) {
Log.d(TAG, "Can't claim control interface");
continue;
}
int defaultMidiProtocol = mMidiBlockParser.calculateMidiType(connection,
interfaceDescriptor.getInterfaceNumber(),
interfaceDescriptor.getAlternateSetting());
// The ALSA does not handle switching to the MIDI 2.0 interface correctly
// and stops exposing /dev/snd/midiC1D0 after calling connection.setInterface().
// Thus, simply use the control interface (interface zero).
int defaultMidiProtocol = mMidiBlockParser.calculateMidiType(connection,
0,
interfaceDescriptor.getAlternateSetting());
connection.close();
return defaultMidiProtocol;
}