10 Commits

Author SHA1 Message Date
Phil Burk
8e82755dfd Merge "BluetoothMidiDevice: change write type to support JamStik" into mnc-dr-dev 2015-10-13 18:36:13 +00:00
Phil Burk
977fe03b36 BLE-MIDI: change binding for BluetoothMidiService
Add a remote call addBluetoothDevice() using AIDL.
This was needed because onBind() is only called once.

Bug: 23219556
Bug: 23760886
Change-Id: Id7554ca55d596352d11dbd6ae3e403138a29c864
Signed-off-by: Phil Burk <philburk@google.com>
(cherry picked from commit 7cd06c0b9e087a555d2c5dd4cab5b7eac8497526)
2015-10-13 15:40:03 +00:00
Phil Burk
af3e489c1e BluetoothMidiDevice: change write type to support JamStik
Temporarily use a Request instead of a Command so that the JamStik
will be properly enabled.

Bug: 24207964
Change-Id: I3d11732958c46e6039405b5969d5af0db8032fb9
Signed-off-by: Phil Burk <philburk@google.com>
(cherry picked from commit 95129f50c68c734c5ebdf32ff6b8b9c63cc1ada7)
2015-10-12 23:29:46 +00:00
Phil Burk
7688911b9f MidiBluetoothService: add new device to HashMap
The HashMap is being used but devices never added to the map.

Bug: 23429459
Change-Id: I1da5305a56f5bd48e1c5d9345e721ea8dd2eed4e
Signed-off-by: Phil Burk <philburk@google.com>
(cherry picked from commit e5f722e55c5708c2b48b8c9688c135e451225032)
2015-10-12 21:03:30 +00:00
Mike Lockwood
e0a6ca64fa MidiManager: proxy all requests to open devices through MidiService
Previously when a MidiManager client opened a virtual or Bluetooth device,
the client bound directly to the virtual device's MidiDeviceService
or BluetoothMidiDevice's IMidiDeviceServer for the given BluetoothDevice.
Only USB devices were opened in MidiService.

Now opening any type of MIDI device is done via IMidiManager.openDevice() or
IMidiManager.openBluetoothDevice().  MidiService tracks all connnections between
clients and devices.

Services that implement virtual devices must now require android.permission.BIND_MIDI_DEVICE_SERVICE
so only MidiService can bind to these services.

Bug: 21044677

Change-Id: I7172f7b1e0cbfe4a2a87dff376c32dc9b41aa563
2015-06-04 19:16:23 -07:00
Mike Lockwood
7eb441cb4a MidiManager: Address API Council feedback:
Rename MidiDeviceInfo.getPortList() to getPorts()

Rename MidiManager.getDeviceList() to getDevices()

Rename MidiReceiver.onReceive() to onSend()

Replace MidiManager.DeviceOpenCallback and BluetoothOpenCallback
with new interface MidiManager.OnDeviceOpenedListener

Add MidiSender.onConnect() and onDisconnect()

Add MidiReceiver.onFlush()

Ensure that MidiReceiver max message size is immutable

Bug: 21044677
Change-Id: I7711734a45e831e9744849a6f569e906feff9f80
2015-05-12 13:39:56 -07:00
Mike Lockwood
9490eae3aa BluetoothMidiDevice: Cleanup and error handling improvements
Change-Id: I8b932f73e0230adfe576d1fc6735bd7b41e84010
2015-05-07 13:39:01 -07:00
Mike Lockwood
8c26d843a7 BluetoothMidiService: Add support for sending SysEx messages that span multiple Bluetooth packets
Change-Id: Id56f7c82ec97b6a46258111bbfd46ab1dc14dfe9
2015-05-01 16:16:42 -07:00
Mike Lockwood
ff001809f6 BluetoothMidiService: Use MidiBtleTimeTracker to interpret incoming Bluetooth MIDI timestamps
Also fixed some problems handling timestamp wrapping.

Change-Id: Ic0aefc54f2560425bea6d07ca0c4529d16699eaa
2015-04-21 13:28:08 -07:00
Mike Lockwood
f0a41d1c59 Add support for Bluetooth MIDI devices
The Bluetooth MIDI devices are handled in the BluetoothMidiService APK.
Apps wishing to connect to Bluetooth MIDI devices call MidiManager.openBluetoothDevice()
which binds to BluetoothMidiService in a similar way as virtual devices are implemented.

Change-Id: Ie3fbca757928fd7873a009f9bf9e0ce0be487da6
2015-04-09 11:49:51 -07:00