|
|
|
@@ -3,14 +3,26 @@ |
|
|
|
{
|
|
|
|
BluetoothManager()
|
|
|
|
{
|
|
|
|
ScanFilter.Builder scanFilterBuilder = new ScanFilter.Builder();
|
|
|
|
scanFilterBuilder.setServiceUuid (ParcelUuid.fromString (bluetoothLEMidiServiceUUID));
|
|
|
|
}
|
|
|
|
|
|
|
|
ScanSettings.Builder scanSettingsBuilder = new ScanSettings.Builder();
|
|
|
|
scanSettingsBuilder.setCallbackType (ScanSettings.CALLBACK_TYPE_ALL_MATCHES)
|
|
|
|
.setScanMode (ScanSettings.SCAN_MODE_LOW_POWER)
|
|
|
|
.setScanMode (ScanSettings.MATCH_MODE_STICKY);
|
|
|
|
public String[] getMidiBluetoothAddresses()
|
|
|
|
{
|
|
|
|
return bluetoothMidiDevices.toArray (new String[bluetoothMidiDevices.size()]);
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getHumanReadableStringForBluetoothAddress (String address)
|
|
|
|
{
|
|
|
|
BluetoothDevice btDevice = BluetoothAdapter.getDefaultAdapter().getRemoteDevice (address);
|
|
|
|
return btDevice.getName();
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean isBluetoothDevicePaired (String address)
|
|
|
|
{
|
|
|
|
return getAndroidMidiDeviceManager().isBluetoothDevicePaired (address);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void startStopScan (boolean shouldStart)
|
|
|
|
{
|
|
|
|
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
|
|
|
|
|
|
|
|
if (bluetoothAdapter == null)
|
|
|
|
@@ -27,25 +39,24 @@ |
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
bluetoothLeScanner.startScan (Arrays.asList (scanFilterBuilder.build()),
|
|
|
|
scanSettingsBuilder.build(),
|
|
|
|
this);
|
|
|
|
}
|
|
|
|
|
|
|
|
public String[] getMidiBluetoothAddresses()
|
|
|
|
{
|
|
|
|
return bluetoothMidiDevices.toArray (new String[bluetoothMidiDevices.size()]);
|
|
|
|
}
|
|
|
|
if (shouldStart)
|
|
|
|
{
|
|
|
|
ScanFilter.Builder scanFilterBuilder = new ScanFilter.Builder();
|
|
|
|
scanFilterBuilder.setServiceUuid (ParcelUuid.fromString (bluetoothLEMidiServiceUUID));
|
|
|
|
|
|
|
|
public String getHumanReadableStringForBluetoothAddress (String address)
|
|
|
|
{
|
|
|
|
BluetoothDevice btDevice = BluetoothAdapter.getDefaultAdapter().getRemoteDevice (address);
|
|
|
|
return btDevice.getName();
|
|
|
|
}
|
|
|
|
ScanSettings.Builder scanSettingsBuilder = new ScanSettings.Builder();
|
|
|
|
scanSettingsBuilder.setCallbackType (ScanSettings.CALLBACK_TYPE_ALL_MATCHES)
|
|
|
|
.setScanMode (ScanSettings.SCAN_MODE_LOW_POWER)
|
|
|
|
.setScanMode (ScanSettings.MATCH_MODE_STICKY);
|
|
|
|
|
|
|
|
public boolean isBluetoothDevicePaired (String address)
|
|
|
|
{
|
|
|
|
return getAndroidMidiDeviceManager().isBluetoothDevicePaired (address);
|
|
|
|
bluetoothLeScanner.startScan (Arrays.asList (scanFilterBuilder.build()),
|
|
|
|
scanSettingsBuilder.build(),
|
|
|
|
this);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
bluetoothLeScanner.stopScan (this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean pairBluetoothMidiDevice(String address)
|
|
|
|
@@ -406,27 +417,42 @@ |
|
|
|
return info.getPorts();
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getHumanReadableNameForPort (MidiDeviceInfo.PortInfo port, int portIndexToUseInName)
|
|
|
|
public String getHumanReadableNameForPort (MidiDeviceInfo.PortInfo port, int portIndexToUseInName, boolean addPortNumberToName)
|
|
|
|
{
|
|
|
|
String portName = port.getName();
|
|
|
|
if (addPortNumberToName)
|
|
|
|
{
|
|
|
|
String portName = port.getName();
|
|
|
|
|
|
|
|
if (portName.equals (""))
|
|
|
|
portName = ((port.getType() == MidiDeviceInfo.PortInfo.TYPE_OUTPUT) ? "Out " : "In ")
|
|
|
|
+ Integer.toString (portIndexToUseInName);
|
|
|
|
if (portName.equals(""))
|
|
|
|
portName = ((port.getType() == MidiDeviceInfo.PortInfo.TYPE_OUTPUT) ? "Out " : "In ")
|
|
|
|
+ Integer.toString(portIndexToUseInName);
|
|
|
|
|
|
|
|
return getHumanReadableDeviceName() + " " + portName;
|
|
|
|
return getHumanReadableDeviceName() + " " + portName;
|
|
|
|
}
|
|
|
|
|
|
|
|
return getHumanReadableDeviceName();
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getHumanReadableNameForPort (int portType, int androidPortID, int portIndexToUseInName)
|
|
|
|
{
|
|
|
|
MidiDeviceInfo.PortInfo[] ports = info.getPorts();
|
|
|
|
|
|
|
|
int numTotalPorts = 0;
|
|
|
|
|
|
|
|
for (MidiDeviceInfo.PortInfo port : ports)
|
|
|
|
{
|
|
|
|
if (port.getType() == portType)
|
|
|
|
{
|
|
|
|
numTotalPorts++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
for (MidiDeviceInfo.PortInfo port : ports)
|
|
|
|
{
|
|
|
|
if (port.getType() == portType)
|
|
|
|
{
|
|
|
|
if (port.getPortNumber() == androidPortID)
|
|
|
|
return getHumanReadableNameForPort (port, portIndexToUseInName);
|
|
|
|
return getHumanReadableNameForPort (port, portIndexToUseInName, (numTotalPorts > 1));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@@ -689,6 +715,15 @@ |
|
|
|
int portIdx = 0;
|
|
|
|
MidiDeviceInfo.PortInfo[] ports = physicalMidiDevice.getPorts();
|
|
|
|
|
|
|
|
int numberOfPorts = 0;
|
|
|
|
for (MidiDeviceInfo.PortInfo port : ports)
|
|
|
|
{
|
|
|
|
if (port.getType() == portType)
|
|
|
|
{
|
|
|
|
numberOfPorts++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
for (MidiDeviceInfo.PortInfo port : ports)
|
|
|
|
{
|
|
|
|
if (port.getType() == portType)
|
|
|
|
@@ -700,7 +735,8 @@ |
|
|
|
listOfReturnedDevices.add (path);
|
|
|
|
|
|
|
|
deviceNames.add (physicalMidiDevice.getHumanReadableNameForPort (port,
|
|
|
|
path.portIndexToUseInName));
|
|
|
|
path.portIndexToUseInName,
|
|
|
|
(numberOfPorts > 1)));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|