MidiDeviceInfo

public final class MidiDeviceInfo
extends Object implements Parcelable

java.lang.Object
   ↳ android.media.midi.MidiDeviceInfo


This class contains information to describe a MIDI device. For now we only have information that can be retrieved easily for USB devices, but we will probably expand this in the future. This class is just an immutable object to encapsulate the MIDI device description. Use the MidiDevice class to actually communicate with devices.

Summary

Nested classes

class MidiDeviceInfo.PortInfo

Contains information about an input or output port. 

Constants

String PROPERTY_BLUETOOTH_DEVICE

Bundle key for the device's corresponding Bluetooth device.

String PROPERTY_MANUFACTURER

Bundle key for the device's manufacturer name property.

String PROPERTY_NAME

Bundle key for the device's user visible name property.

String PROPERTY_PRODUCT

Bundle key for the device's product name property.

String PROPERTY_SERIAL_NUMBER

Bundle key for the device's serial number property.

String PROPERTY_USB_DEVICE

Bundle key for the device's corresponding USB device.

String PROPERTY_VERSION

Bundle key for the device's version property.

int PROTOCOL_UMP_MIDI_1_0_UP_TO_128_BITS

Constant representing a default protocol with Universal MIDI Packets (UMP).

int PROTOCOL_UMP_MIDI_1_0_UP_TO_128_BITS_AND_JRTS

Constant representing a default protocol with Universal MIDI Packets (UMP).

int PROTOCOL_UMP_MIDI_1_0_UP_TO_64_BITS

Constant representing a default protocol with Universal MIDI Packets (UMP).

int PROTOCOL_UMP_MIDI_1_0_UP_TO_64_BITS_AND_JRTS

Constant representing a default protocol with Universal MIDI Packets (UMP).

int PROTOCOL_UMP_MIDI_2_0

Constant representing a default protocol with Universal MIDI Packets (UMP).

int PROTOCOL_UMP_MIDI_2_0_AND_JRTS

Constant representing a default protocol with Universal MIDI Packets (UMP).

int PROTOCOL_UMP_USE_MIDI_CI

Constant representing a default protocol with Universal MIDI Packets (UMP).

int PROTOCOL_UNKNOWN

Constant representing a device with an unknown default protocol.

int TYPE_BLUETOOTH

Constant representing Bluetooth MIDI devices for getType()

int TYPE_USB

Constant representing USB MIDI devices for getType()

int TYPE_VIRTUAL

Constant representing virtual (software based) MIDI devices for getType()

Inherited constants

Fields

public static final Creator<MidiDeviceInfo> CREATOR

Public methods

int describeContents()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation.

boolean equals(Object o)

Indicates whether some other object is "equal to" this one.

int getDefaultProtocol()

Returns the default protocol.

int getId()

Returns the ID of the device.

int getInputPortCount()

Returns the device's number of input ports.

int getOutputPortCount()

Returns the device's number of output ports.

PortInfo[] getPorts()

Returns information about the device's ports.

Bundle getProperties()

Returns the Bundle containing the device's properties.

int getType()

Returns the type of the device.

int hashCode()

Returns a hash code value for the object.

boolean isPrivate()

Returns true if the device is private.

String toString()

Returns a string representation of the object.

void writeToParcel(Parcel parcel, int flags)

Flatten this object in to a Parcel.

Inherited methods

Constants

PROPERTY_BLUETOOTH_DEVICE

Added in API level 23
public static final String PROPERTY_BLUETOOTH_DEVICE

Bundle key for the device's corresponding Bluetooth device. The value for this property is of type BluetoothDevice. Only set for Bluetooth MIDI devices. Used with the Bundle returned by getProperties()

Constant Value: "bluetooth_device"

PROPERTY_MANUFACTURER

Added in API level 23
public static final String PROPERTY_MANUFACTURER

Bundle key for the device's manufacturer name property. The value for this property is of type String. Used with the Bundle returned by getProperties(). Matches the USB device manufacturer name string for USB MIDI devices.

Constant Value: "manufacturer"

PROPERTY_NAME

Added in API level 23
public static final String PROPERTY_NAME

Bundle key for the device's user visible name property. The value for this property is of type String. Used with the Bundle returned by getProperties(). For USB devices, this is a concatenation of the manufacturer and product names.

Constant Value: "name"

PROPERTY_PRODUCT

Added in API level 23
public static final String PROPERTY_PRODUCT

Bundle key for the device's product name property. The value for this property is of type String. Used with the Bundle returned by getProperties() Matches the USB device product name string for USB MIDI devices.

Constant Value: "product"

PROPERTY_SERIAL_NUMBER

Added in API level 23
public static final String PROPERTY_SERIAL_NUMBER

Bundle key for the device's serial number property. The value for this property is of type String. Used with the Bundle returned by getProperties() Matches the USB device serial number for USB MIDI devices.

Constant Value: "serial_number"

PROPERTY_USB_DEVICE

Added in API level 23
public static final String PROPERTY_USB_DEVICE

Bundle key for the device's corresponding USB device. The value for this property is of type UsbDevice. Only set for USB MIDI devices. Used with the Bundle returned by getProperties()

Constant Value: "usb_device"

PROPERTY_VERSION

Added in API level 23
public static final String PROPERTY_VERSION

Bundle key for the device's version property. The value for this property is of type String. Used with the Bundle returned by getProperties() Matches the USB device version number for USB MIDI devices.

Constant Value: "version"

PROTOCOL_UMP_MIDI_1_0_UP_TO_128_BITS

Added in API level 33
public static final int PROTOCOL_UMP_MIDI_1_0_UP_TO_128_BITS

Constant representing a default protocol with Universal MIDI Packets (UMP). UMP is defined in "Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol" spec. All UMP data should be a multiple of 4 bytes. Use MIDI 1.0 through UMP with packet sizes up to 128 bits. Call MidiManager#getDevicesForTransport with parameter MidiManager#TRANSPORT_UNIVERSAL_MIDI_PACKETS to get devices with this transport.

Constant Value: 3 (0x00000003)

PROTOCOL_UMP_MIDI_1_0_UP_TO_128_BITS_AND_JRTS

Added in API level 33
public static final int PROTOCOL_UMP_MIDI_1_0_UP_TO_128_BITS_AND_JRTS

Constant representing a default protocol with Universal MIDI Packets (UMP). UMP is defined in "Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol" spec. All UMP data should be a multiple of 4 bytes. Use MIDI 1.0 through UMP with packet sizes up to 128 bits and jitter reduction timestamps. Call MidiManager#getDevicesForTransport with parameter MidiManager#TRANSPORT_UNIVERSAL_MIDI_PACKETS to get devices with this transport.

Constant Value: 4 (0x00000004)

PROTOCOL_UMP_MIDI_1_0_UP_TO_64_BITS

Added in API level 33
public static final int PROTOCOL_UMP_MIDI_1_0_UP_TO_64_BITS

Constant representing a default protocol with Universal MIDI Packets (UMP). UMP is defined in "Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol" spec. All UMP data should be a multiple of 4 bytes. Use MIDI 1.0 through UMP with packet sizes up to 64 bits. Call MidiManager#getDevicesForTransport with parameter MidiManager#TRANSPORT_UNIVERSAL_MIDI_PACKETS to get devices with this transport.

Constant Value: 1 (0x00000001)

PROTOCOL_UMP_MIDI_1_0_UP_TO_64_BITS_AND_JRTS

Added in API level 33
public static final int PROTOCOL_UMP_MIDI_1_0_UP_TO_64_BITS_AND_JRTS

Constant representing a default protocol with Universal MIDI Packets (UMP). UMP is defined in "Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol" spec. All UMP data should be a multiple of 4 bytes. Use MIDI 1.0 through UMP with packet sizes up to 64 bits and jitter reduction timestamps. Call MidiManager#getDevicesForTransport with parameter MidiManager#TRANSPORT_UNIVERSAL_MIDI_PACKETS to get devices with this transport.

Constant Value: 2 (0x00000002)

PROTOCOL_UMP_MIDI_2_0

Added in API level 33
public static final int PROTOCOL_UMP_MIDI_2_0

Constant representing a default protocol with Universal MIDI Packets (UMP). UMP is defined in "Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol" spec. All UMP data should be a multiple of 4 bytes. Use MIDI 2.0 through UMP. Call MidiManager#getDevicesForTransport with parameter MidiManager#TRANSPORT_UNIVERSAL_MIDI_PACKETS to get devices with this transport.

Constant Value: 17 (0x00000011)

PROTOCOL_UMP_MIDI_2_0_AND_JRTS

Added in API level 33
public static final int PROTOCOL_UMP_MIDI_2_0_AND_JRTS

Constant representing a default protocol with Universal MIDI Packets (UMP). UMP is defined in "Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol" spec. All UMP data should be a multiple of 4 bytes. Use MIDI 2.0 through UMP and jitter reduction timestamps. Call MidiManager#getDevicesForTransport with parameter MidiManager#TRANSPORT_UNIVERSAL_MIDI_PACKETS to get devices with this transport.

Constant Value: 18 (0x00000012)

PROTOCOL_UMP_USE_MIDI_CI

Added in API level 33
public static final int PROTOCOL_UMP_USE_MIDI_CI

Constant representing a default protocol with Universal MIDI Packets (UMP). UMP is defined in "Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol" spec. All UMP data should be a multiple of 4 bytes. Use UMP to negotiate with the device with MIDI-CI. MIDI-CI is defined in "MIDI Capability Inquiry (MIDI-CI)" spec. Call MidiManager#getDevicesForTransport with parameter MidiManager#TRANSPORT_UNIVERSAL_MIDI_PACKETS to get devices with this transport.

Constant Value: 0 (0x00000000)

PROTOCOL_UNKNOWN

Added in API level 33
public static final int PROTOCOL_UNKNOWN

Constant representing a device with an unknown default protocol. If Universal MIDI Packets (UMP) are needed, use MIDI-CI through MIDI 1.0. UMP is defined in "Universal MIDI Packet (UMP) Format and MIDI 2.0 Protocol" spec. MIDI-CI is defined in "MIDI Capability Inquiry (MIDI-CI)" spec.

Constant Value: -1 (0xffffffff)

TYPE_BLUETOOTH

Added in API level 23
public static final int TYPE_BLUETOOTH

Constant representing Bluetooth MIDI devices for getType()

Constant Value: 3 (0x00000003)

TYPE_USB

Added in API level 23
public static final int TYPE_USB

Constant representing USB MIDI devices for getType()

Constant Value: 1 (0x00000001)

TYPE_VIRTUAL

Added in API level 23
public static final int TYPE_VIRTUAL

Constant representing virtual (software based) MIDI devices for getType()

Constant Value: 2 (0x00000002)

Fields

CREATOR

Added in API level 23
public static final Creator<MidiDeviceInfo> CREATOR

Public methods

describeContents

Added in API level 23
public int describeContents ()

Describe the kinds of special objects contained in this Parcelable instance's marshaled representation. For example, if the object will include a file descriptor in the output of writeToParcel(android.os.Parcel, int), the return value of this method must include the CONTENTS_FILE_DESCRIPTOR bit.

Returns
int a bitmask indicating the set of special object types marshaled by this Parcelable object instance. Value is either 0 or CONTENTS_FILE_DESCRIPTOR

equals

Added in API level 23
public boolean equals (Object o)

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
o Object: the reference object with which to compare.

Returns
boolean true if this object is the same as the obj argument; false otherwise.

getDefaultProtocol

Added in API level 33
public int getDefaultProtocol ()

Returns the default protocol. For most devices, this will be PROTOCOL_UNKNOWN. Returning PROTOCOL_UNKNOWN is not an error; the device just doesn't support Universal MIDI Packets by default.

Returns
int the device's default protocol. Value is PROTOCOL_UMP_USE_MIDI_CI, PROTOCOL_UMP_MIDI_1_0_UP_TO_64_BITS, PROTOCOL_UMP_MIDI_1_0_UP_TO_64_BITS_AND_JRTS, PROTOCOL_UMP_MIDI_1_0_UP_TO_128_BITS, PROTOCOL_UMP_MIDI_1_0_UP_TO_128_BITS_AND_JRTS, PROTOCOL_UMP_MIDI_2_0, PROTOCOL_UMP_MIDI_2_0_AND_JRTS, or PROTOCOL_UNKNOWN

getId

Added in API level 23
public int getId ()

Returns the ID of the device. This ID is generated by the MIDI service and is not persistent across device unplugs.

Returns
int the device's ID

getInputPortCount

Added in API level 23
public int getInputPortCount ()

Returns the device's number of input ports.

Returns
int the number of input ports

getOutputPortCount

Added in API level 23
public int getOutputPortCount ()

Returns the device's number of output ports.

Returns
int the number of output ports

getPorts

Added in API level 23
public PortInfo[] getPorts ()

Returns information about the device's ports. The ports are in unspecified order.

Returns
PortInfo[] array of PortInfo

getProperties

Added in API level 23
public Bundle getProperties ()

Returns the Bundle containing the device's properties.

Returns
Bundle the device's properties

getType

Added in API level 23
public int getType ()

Returns the type of the device.

Returns
int the device's type

hashCode

Added in API level 23
public int hashCode ()

Returns a hash code value for the object. This method is supported for the benefit of hash tables such as those provided by HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.

Returns
int a hash code value for this object.

isPrivate

Added in API level 23
public boolean isPrivate ()

Returns true if the device is private. Private devices are only visible and accessible to clients with the same UID as the application that is hosting the device.

Returns
boolean true if the device is private

toString

Added in API level 23
public String toString ()

Returns a string representation of the object.

Returns
String a string representation of the object.

writeToParcel

Added in API level 23
public void writeToParcel (Parcel parcel, 
                int flags)

Flatten this object in to a Parcel.

Parameters
parcel Parcel: The Parcel in which the object should be written. This value cannot be null.

flags int: Additional flags about how the object should be written. May be 0 or Parcelable.PARCELABLE_WRITE_RETURN_VALUE. Value is either 0 or a combination of Parcelable.PARCELABLE_WRITE_RETURN_VALUE, and android.os.Parcelable.PARCELABLE_ELIDE_DUPLICATES