From 4fabe89fba65db3128ae41b33ca98760a68aed99 Mon Sep 17 00:00:00 2001 From: Robert Wu <85952307+robertwu1@users.noreply.github.com> Date: Tue, 16 Jan 2024 15:51:31 -0800 Subject: [PATCH 1/2] add UMP device report --- .../oboetester/DeviceReportActivity.java | 47 +++++++++++++++++-- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/apps/OboeTester/app/src/main/java/com/mobileer/oboetester/DeviceReportActivity.java b/apps/OboeTester/app/src/main/java/com/mobileer/oboetester/DeviceReportActivity.java index e0ef42608..43b6fe4e9 100644 --- a/apps/OboeTester/app/src/main/java/com/mobileer/oboetester/DeviceReportActivity.java +++ b/apps/OboeTester/app/src/main/java/com/mobileer/oboetester/DeviceReportActivity.java @@ -26,6 +26,8 @@ import android.media.AudioDeviceInfo; import android.media.AudioManager; import android.media.MicrophoneInfo; +import android.media.midi.MidiDeviceInfo; +import android.media.midi.MidiManager; import android.os.Build; import android.os.Bundle; import android.util.Log; @@ -34,15 +36,13 @@ import android.widget.TextView; import android.widget.Toast; -import androidx.annotation.NonNull; - import com.mobileer.audio_device.AudioDeviceInfoConverter; import java.io.IOException; import java.util.Collection; import java.util.HashMap; import java.util.List; -import java.util.Map; +import java.util.Set; /** * Print a report of all the available audio devices. @@ -73,6 +73,7 @@ public void onAudioDevicesRemoved(AudioDeviceInfo[] removedDevices) { private TextView mAutoTextView; private AudioManager mAudioManager; private UsbManager mUsbManager; + private MidiManager mMidiManager; @Override protected void onCreate(Bundle savedInstanceState) { @@ -81,6 +82,7 @@ protected void onCreate(Bundle savedInstanceState) { mAutoTextView = (TextView) findViewById(R.id.text_log_device_report); mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); mUsbManager = (UsbManager) getSystemService(Context.USB_SERVICE); + mMidiManager = (MidiManager) getSystemService(Context.MIDI_SERVICE); } @Override @@ -142,6 +144,7 @@ private void reportDeviceInfo(Collection devices) { } report.append(reportAllMicrophones()); report.append(reportUsbDevices()); + report.append(reportMidiDevices()); log(report.toString()); } @@ -173,6 +176,44 @@ public String reportUsbDevices() { return report.toString(); } + public String reportMidiDevices() { + StringBuffer report = new StringBuffer(); + report.append("\n############################"); + report.append("\nMidi Device Report:\n"); + try { + MidiDeviceInfo[] midiDeviceInfos = mMidiManager.getDevices(); + for (MidiDeviceInfo midiDeviceInfo : midiDeviceInfos) { + report.append("\n==== MIDI Device ========= " + midiDeviceInfo.getId()); + addMidiDeviceInfoToDeviceReport(midiDeviceInfo, report); + } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + Set umpDeviceInfos = + mMidiManager.getDevicesForTransport(MidiManager.TRANSPORT_UNIVERSAL_MIDI_PACKETS); + for (MidiDeviceInfo midiDeviceInfo : umpDeviceInfos) { + report.append("\n==== UMP Device ========= " + midiDeviceInfo.getId()); + addMidiDeviceInfoToDeviceReport(midiDeviceInfo, report); + } + } + } catch (Exception e) { + Log.e(TestAudioActivity.TAG, "Caught ", e); + showErrorToast(e.getMessage()); + report.append("\nERROR: " + e.getMessage() + "\n"); + } + return report.toString(); + } + + public void addMidiDeviceInfoToDeviceReport(MidiDeviceInfo midiDeviceInfo, StringBuffer report){ + report.append("\nInput Count : " + midiDeviceInfo.getInputPortCount()); + report.append("\nOutput Count : " + midiDeviceInfo.getOutputPortCount()); + report.append("\nType : " + midiDeviceInfo.getType()); + report.append("\nIs Private : " + midiDeviceInfo.isPrivate()); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + report.append("\nDefault Protocol : " + midiDeviceInfo.getDefaultProtocol()); + } + report.append("\n" + midiDeviceInfo); + report.append("\n"); + } + public String reportAllMicrophones() { StringBuffer report = new StringBuffer(); report.append("\n############################"); From ca6fb0d4a8ac2c27565c21a55e5cd37ae6c062db Mon Sep 17 00:00:00 2001 From: Robert Wu <85952307+robertwu1@users.noreply.github.com> Date: Tue, 16 Jan 2024 15:54:31 -0800 Subject: [PATCH 2/2] change one function to private --- .../java/com/mobileer/oboetester/DeviceReportActivity.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/OboeTester/app/src/main/java/com/mobileer/oboetester/DeviceReportActivity.java b/apps/OboeTester/app/src/main/java/com/mobileer/oboetester/DeviceReportActivity.java index 43b6fe4e9..311462369 100644 --- a/apps/OboeTester/app/src/main/java/com/mobileer/oboetester/DeviceReportActivity.java +++ b/apps/OboeTester/app/src/main/java/com/mobileer/oboetester/DeviceReportActivity.java @@ -202,7 +202,8 @@ public String reportMidiDevices() { return report.toString(); } - public void addMidiDeviceInfoToDeviceReport(MidiDeviceInfo midiDeviceInfo, StringBuffer report){ + private void addMidiDeviceInfoToDeviceReport(MidiDeviceInfo midiDeviceInfo, + StringBuffer report){ report.append("\nInput Count : " + midiDeviceInfo.getInputPortCount()); report.append("\nOutput Count : " + midiDeviceInfo.getOutputPortCount()); report.append("\nType : " + midiDeviceInfo.getType());