summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Robert Wu <robertwu@google.com> 2022-01-27 19:30:59 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-01-27 19:30:59 +0000
commit19f083cda71b5903cff38bd71b9b4bd489d32db5 (patch)
tree52765dc6a535e9e59e024b00330142395d76c9cb
parent5c0a8f516977b76d8e7099fa03dbba6232fd3864 (diff)
parent4c6239b1564f123dac66600c8a63b509ba3bbcf5 (diff)
Merge "Don't call setInterface when querying protocol"
-rw-r--r--services/usb/java/com/android/server/usb/UsbUniversalMidiDevice.java11
1 files changed, 5 insertions, 6 deletions
diff --git a/services/usb/java/com/android/server/usb/UsbUniversalMidiDevice.java b/services/usb/java/com/android/server/usb/UsbUniversalMidiDevice.java
index db0c80f189d3..13d404caf6a2 100644
--- a/services/usb/java/com/android/server/usb/UsbUniversalMidiDevice.java
+++ b/services/usb/java/com/android/server/usb/UsbUniversalMidiDevice.java
@@ -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;
- }
+
+ // 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,
- interfaceDescriptor.getInterfaceNumber(),
+ 0,
interfaceDescriptor.getAlternateSetting());
-
connection.close();
return defaultMidiProtocol;
}