98af2e4fec8c417f4a674a99f4b40f6f248d6a83 |
16-Feb-2018 |
Jeff Sharkey <jsharkey@android.com> |
Add RequiresFeature annotation. Certain APIs require that a device have a specific feature to operate correctly, so start annotating them. Test: builds, boots Bug: 72284763 Change-Id: Ie2f30284bdfdb6acc4067f434eba3b5433837606 Exempt-From-Owner-Approval: simple annotations
idiManager.java
|
9d30e119369bb242f493a57f01e101758ad3f7d5 |
04-Oct-2017 |
Phil Burk <philburk@google.com> |
mididocs: clarify direction and add BLE-MIDI link The explanation of input vs output was confusing. Added link to apps in test procedure page. Test: checked using Chrome browser Change-Id: I363c32e3b43c9d4b91c07842b6101702b035870c
ackage.html
|
ec68b46bc85b2317053da7e2933876fc6e51ac2f |
06-Jun-2017 |
Jeff Sharkey <jsharkey@google.com> |
Merge "Annotate @SystemApi with required permissions." into oc-dev am: c1406978a4 am: 7a2e4a8486 Change-Id: Ib629e25dbf047c110feaf03e4ff744b5c6df9aeb
|
d86b8fea43ebb6e5c31691b44d8ceb0d8d3c9072 |
03-Jun-2017 |
Jeff Sharkey <jsharkey@android.com> |
Annotate @SystemApi with required permissions. Most @SystemApi methods should be protected with system (or higher) permissions, so annotate common methods with @RequiresPermission to make automatic verification easier. Verification is really only relevant when calling into system services (where permissions checking can happen on the other side of a Binder call), so annotate managers with the new @SystemService annotation, which is now automatically documented. This is purely a docs change; no logic changes are being made. Test: make -j32 update-api && make -j32 offline-sdk-docs Bug: 62263906 Change-Id: I2554227202d84465676aa4ab0dd336b5c45fc651
idiManager.java
|
b414a2ccf14616c17bbaa969afd3c0becbbc431c |
20-Apr-2017 |
Mikhail Naganov <mnaganov@google.com> |
Make IMidiDeviceServer.setDeviceInfo method oneway This method is called from MidiService in system server, must be oneway. Remove the call to IMidiDeviceServer.getDeviceInfo from MidiService. It seems to be redundant. The reason is that MidiDeviceInfo is only created by MidiService (to maintain unique IDs), and after creation, it is pushed both to a remote MidiDeviceServer, and to a local MidiService.Device class simultaneously inside addDeviceLocked method. Thus, if MidiService.Device.mDeviceInfo is still null, there is no chance that remote MidiDeviceServer can hold a non-null MidiDeviceInfo. So the call to IMidiDeviceServer.getDeviceInfo will also return null, and thus can be avoided. Note that only for BT MIDI devices can MidiService.Device receive MidiDeviceInfo later in the lifecycle. All other types of devices receive MidiDeviceInfo upon construction. Bug: 37535382 Test: Used BT MIDI keyboard with MidiSynthDemo app Change-Id: I5378207922187866f3c43e01f1ed30f042720167
MidiDeviceServer.aidl
|
4f4e259dc1cc38aecfb0e6ceb7dc4041cf36a41f |
20-Apr-2017 |
Mikhail Naganov <mnaganov@google.com> |
MIDI: Mark IMidiDeviceServer.closeDevice as oneway This method is called from MidiService which is part of the system server and thus should avoid blocking calls. Bug: 37535382 Change-Id: Id44e159cf997fafbb0f0f69d31b38c10844808b5 Test: make
MidiDeviceServer.aidl
|
492e9e851cadca62df84eaff1a3c1ba788492fba |
22-Mar-2017 |
Narayan Kamath <narayan@google.com> |
Properly guard access to CloseGuard in finalizers. CloseGuard instances are allocated in constructors and usually assigned to final fields. This implies they're non-null in finalizers except in the case where the constructor throws. We add a null check to make sure we can continue cleaning up other state in the finalizer (if applicable). Also, this change decouples closeguard warnings in constructors from other state based logic. This because the logic there is usually duplicated with the call to close(). NOTE: This change is not a "complete" fix. Many of these finalizers are broken in the case where <init> throws. The only objective of this change is to make such errors more obvious. Note that some of these classes don't have CTS tests. Test: make, CtsMediaTestCases. Bug: 35609098 Change-Id: I24d9e0215f80e44914dba8ab99b6312fd6ed1fc0
idiDevice.java
idiDeviceServer.java
idiInputPort.java
idiOutputPort.java
|
71f672b98a0c31001ca28de86d9ac99fef0812b1 |
05-Mar-2017 |
Paul McLean <pmclean@google.com> |
Switching Native MIDI API to an "opaque pointers" model. Test: manual Change-Id: Ic181008427e6e81106d867cc3a70deef8c591841
idiDevice.java
|
c276c59eb5d0f36a1133ad718e5e1244390f4688 |
01-Sep-2016 |
Mikhail Naganov <mnaganov@google.com> |
nativemidi: Prototype demonstrating native access to IMidiDeviceServer Framework changes and a demo app Comment and finalized Native MIDI API Replaced fixed PortRegistry tables with std::map. more error handling. Removed not-very-useful MidiDeviceManager class. Made Java API functions @hide. Bug: 30252756 Test: Manual Change-Id: Iae98e589f38ef6d625ff0842401193fe98c5d881
idiDevice.java
|
33603ae9c52fe60ff7e19703b88599a227788189 |
27-Sep-2016 |
Mikhail Naganov <mnaganov@google.com> |
MIDI: fix building of properties for the native side A couple of MIDI device's properties (related to ALSA) are of int type and can't be transferred as a string. Fixed the code. As we whitelist properties that can go into native, there is no need to expect other type of properties besides ints and strings. Bug: 25945784 Change-Id: I008731d0ffee60c31be0bfddb15dcd1425e4b88e Test: using a PoC app
idiDeviceInfo.java
|
84b674079db819963b227df4dadb0fb5180527e6 |
15-Sep-2016 |
Mikhail Naganov <mnaganov@google.com> |
Make MidiDeviceInfo accessible to native code Update Java serialization code to allow interacting with native serialization code. One notable change is due to the fact that properties of non-primitive types can not be read back by native code, the properties are serialized in two versions: one only contains properties having primitive types, and another contains all the properties. The latter is ignored by native code. Bug: 25945784 Test: using a PoC app Change-Id: I047a5bdec3006bcbce34c1c63aa7746e01f7a71e
idiDeviceInfo.aidl
idiDeviceInfo.java
|
17bbb50edc8ccc56c4ecc932a19884c4cc1f5b6f |
12-Sep-2016 |
Mikhail Naganov <mnaganov@google.com> |
Midi: Replace usages of ParcelFileDescriptor with FileDescriptor FileDescriptor can be natively marshaled, and can be used with both Java and native code, whereas PFD can not. Bug: 25945784 Change-Id: I5299f0a1555d3531f7dcf1e23c027fb420dc3569
MidiDeviceServer.aidl
idiDevice.java
idiDeviceServer.java
idiInputPort.java
idiOutputPort.java
idiPortImpl.java
|
7ea3e54b729e90770aab1275b31303ae65bcecc6 |
10-Aug-2016 |
Mikhail Naganov <mnaganov@google.com> |
MIDI: Use server-side socket in blocking mode for virtual devices Since virtual MIDI servers may misbehave, blocking mode will throttle them if clients are not coping with their sending speed. Bug: 29413812 Change-Id: I9c4a2a7a7ea3ea060c93fedc7d0f033427c557c9
idiDeviceServer.java
|
382cb48848cb3968d5a0088a825706d66cdfbd50 |
08-Jul-2016 |
Mikhail Naganov <mnaganov@google.com> |
Protect MIDI framework against client blocks in MidiReceiver.onSend Make the server-side socket non-blocking when creating MidiOutputPort for clients. Thus if a client ceases to read from its side of the socket pair, the server will just fail to write instead of blocking. One drawback is that the MidiOutputPort on the client can't indicate that it has become dysfunctional, but it's not possible without changing the API. Bug: 29413812 Change-Id: I9dfcbdd214a815cea8fd1365324fd78ca459268a
idiDeviceServer.java
idiOutputPort.java
|
9a279ef267f194dd3f0b777da5a219b6ef04abac |
06-May-2016 |
Glenn Kasten <gkasten@google.com> |
Update MIDI package summary Bug: 28625060 Change-Id: If552ca8e1a0666d402b5f536699bf3fb09c1e324
ackage.html
|
01ab4d62d9779387f7acad96366db6763bfa6a1d |
20-Apr-2016 |
Phil Burk <philburk@google.com> |
MidiDevice: do not open ports on closed device Fix involves client side mIsDeviceClosed flag. Bug: 24949216 Change-Id: I666284a787fbb9a710d2372fb424e8e54f6a2825 Signed-off-by: Phil Burk <philburk@google.com>
idiDevice.java
|
80299748cc7ed5f59cb65122459b036b74150d4a |
05-Apr-2016 |
Phil Burk <philburk@google.com> |
MidiDevice: fix connectPorts for same Process If connectPorts() was called for a device in the same process then the connection would die when the ParcelFileDescriptor was closed. Bug: 26406775 Change-Id: Id0538452593b4761ac2a93d366ade76d2e35ce73 Signed-off-by: Phil Burk <philburk@google.com>
MidiDeviceServer.aidl
idiDevice.java
idiDeviceServer.java
|
c53962d4ede82a03b62f0c8bb86bd0da090a15eb |
02-Mar-2016 |
Jeff Sharkey <jsharkey@android.com> |
When system server goes down, crash apps more. Apps making calls into the system server may end up persisting internal state or making security decisions based on the perceived success or failure of a call, or the default values returned. The reality is that if the system process just died, init will be along shortly to kill all running apps, so we should have no problem rethrowing the RemoteException as a RuntimeException. Bug: 27364859 Change-Id: Ife0bcb079636c88d54c44d17eb580409fd79028b
idiManager.java
|
908d5bc82e82be680f3c2d76161e99970c51f62f |
26-Oct-2015 |
Phil Burk <philburk@google.com> |
MIDI docs: add missing bracket The example code for openDevice() was missing a close bracket. Bug: 25283941 Change-Id: I8fac6a6dee2393125ad4e057cb857fe21e43b491 Signed-off-by: Phil Burk <philburk@google.com>
ackage.html
|
100df4788d6e5cc4f81c6c764b5e15ec288dcc8d |
23-Sep-2015 |
Phil Burk <philburk@google.com> |
Merge "MidiService: update listener with current status when registered"
|
b2355940e3e697deeecd1b6511cd5094f9dc553a |
06-Aug-2015 |
Phil Burk <philburk@google.com> |
MidiService: update listener with current status when registered This will give an app an opportunity to learn whether an input port is busy before the user tries to connect and then fails. Bug: 22825043 Change-Id: Ifede60f166dfe66ea15453044fce06f4a8452b18 Signed-off-by: Phil Burk <philburk@google.com>
idiManager.java
|
7cd06c0b9e087a555d2c5dd4cab5b7eac8497526 |
03-Sep-2015 |
Phil Burk <philburk@google.com> |
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>
BluetoothMidiService.aidl
|
0ca998d79fe95ded26ec4ff0a1e0a8dc4802684b |
22-Aug-2015 |
Phil Burk <philburk@google.com> |
MidiManager: fix double BTLE callback Stop openBluetoothDevice() from calling its callback twice. Bug: 23218338 Change-Id: I2e738b22a124c0336c46bef05680a82ee1f59e79 Signed-off-by: Phil Burk <philburk@google.com>
idiManager.java
|
bda0caf07b786633381a029f782b9d2e1caa8a3f |
19-Aug-2015 |
Phil Burk <philburk@google.com> |
MIDI docs: fix buffer allocation Also describe NoteOn more clearly. Bug: 23303608 Change-Id: I35f88022c854c2eb16ec606e58f28e06c52d18b7 Signed-off-by: Phil Burk <philburk@google.com>
ackage.html
|
881cd15519535e493d497fefd857f8fe0236c774 |
05-Aug-2015 |
Phil Burk <philburk@google.com> |
Merge "MidiManager: use ConcurrentHashMap" into mnc-dev
|
a95faf78bf810e0b4eb3cb211c414bfbbd1a8061 |
05-Aug-2015 |
Phil Burk <philburk@google.com> |
MidiManager: use ConcurrentHashMap So that adding and removing device listeners is thread-safe. Bug: 22909752 Change-Id: I1369ab53c865b54e6e5eb8ea3e8d437fdd1d7197 Signed-off-by: Phil Burk <philburk@google.com>
idiManager.java
|
2f1a08e601f4fa24e589fc61ea38f80eb264a8f4 |
30-Jul-2015 |
Phil Burk <philburk@google.com> |
Merge "MIDI docs BTLE: how to open BTLE MIDI devices" into mnc-dev
|
fdcd82164f95699c36e044f90a12b9aa1c4f662f |
30-Jul-2015 |
Phil Burk <philburk@google.com> |
Merge "MIDI package doc: add hasSystemFeature() call" into mnc-dev
|
3cc1bdbc6efdb268be16e7184709eeb4ecf9b944 |
30-Jul-2015 |
Phil Burk <philburk@google.com> |
MIDI docs BTLE: how to open BTLE MIDI devices Adds crucial information including required permissions, MIDI UUID, and call to openBluetoothDevice(). Bug: 22606182 Change-Id: I47393bd0ecc2601906f6e50075d694c9cc17c993 Signed-off-by: Phil Burk <philburk@google.com>
ackage.html
|
44d535aaf2a06115de5255f2787c4f7a4db949ce |
29-Jul-2015 |
Phil Burk <philburk@google.com> |
MIDI package doc: add hasSystemFeature() call Bug: 22800792 Change-Id: Ib4b3e16e8167191505c31522bbccd521a9807528 Signed-off-by: Phil Burk <philburk@google.com>
ackage.html
|
645a0b2bfe0098fc49b873cd17d36c2bf5244dd5 |
29-Jul-2015 |
Phil Burk <philburk@google.com> |
MidiDevice: document that opens can return nulls Bug: 22800792 Change-Id: I8d7ca1976e9a8abbabc011d3b2391ad7fe646f83 Signed-off-by: Phil Burk <philburk@google.com>
idiDevice.java
|
2aef7e3559e9e2c78287a00b3f693b6dc19e56f0 |
18-Jun-2015 |
Mike Lockwood <lockwood@google.com> |
Fix MidiDevice.MidiConnection lifecycle Update device server's MidiDeviceStatus when a connection is made to one of its output ports. After connecting an input port to an output port using MidiDevice.connectPorts(), do not call IMidiDeviceServer.closePort() until MidiDevice.MidiConnection.close() is called. While I was in there, added missing CloseGuard support to the MidiDevice.MidiConnection class. This fixes a problem resulting in UsbMidiDevice closing the device's ALSA driver too soon. Bug: 21850709 Change-Id: I0c120f76b42eec8a143161e46dba73fbec5e4f31
idiDevice.java
idiDeviceServer.java
idiInputPort.java
|
d5ca05c3dd3c9cd2879b15ef2444c2c33824e01b |
12-Jun-2015 |
Mike Lockwood <lockwood@google.com> |
Merge "MidiDeviceServer: Fix race condition in setting device server's mDeviceInfo" into mnc-dev
|
acd4321872387212bbd956e134faf22eee4bbadc |
11-Jun-2015 |
Mike Lockwood <lockwood@google.com> |
MidiDeviceServer: Fix race condition in setting device server's mDeviceInfo This made it unsafe to open ports on a device from the MidiManager onDeviceOpened callback Bug: 21760692 Change-Id: I536acdf574a3ccecdb66a8fde87089538e8bb1ef
MidiDeviceServer.aidl
idiDeviceServer.java
idiDeviceService.java
idiManager.java
|
bcdf0dc1992b97579c4d5e0822dd58c597bb45a5 |
10-Jun-2015 |
Phil Burk <philburk@google.com> |
Merge "MIDI docs: use getPorts()" into mnc-dev
|
e0a6ca64fac5bd4f10139321604031816e90adb4 |
04-Jun-2015 |
Mike Lockwood <lockwood@google.com> |
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
MidiDeviceOpenCallback.aidl
MidiDeviceServer.aidl
MidiManager.aidl
idiDevice.java
idiDeviceServer.java
idiDeviceService.java
idiManager.java
ackage.html
|
7d2065ed4fcb6326b12ceba1384441977e35e4dd |
03-Jun-2015 |
Phil Burk <philburk@google.com> |
MIDI docs: use getPorts() Also use boolean to control synth start and stop. Add mention of feature declaration in Manifest. Add virtual MIDI devices to bullet list. Change-Id: I7b36e3ce69caf9d1d15d23f1a0836d525022ef9e Signed-off-by: Phil Burk <philburk@google.com>
ackage.html
|
4b901c4506d495c0cbcad316e38797c6522e88d0 |
21-May-2015 |
Chet Haase <chet@google.com> |
Merge "Fix docs to not refer to non-public classes." into mnc-dev
|
fa2dafa7412d8de75ba567bca414a1c40af38297 |
21-May-2015 |
Chet Haase <chet@google.com> |
Fix docs to not refer to non-public classes. Issue #21328285 public Midi docs refer to internal utility class Change-Id: Idddd5c98a78159190c6c34b17350f4630c33d6d5
ackage.html
|
b0e172304cc2f213789dfd8022e8ba9647897f36 |
19-May-2015 |
Glenn Kasten <gkasten@google.com> |
Merge "Explain the void send() throws IOException" into mnc-dev
|
5db6637f8c6c8b3365f0476f1264bf19dfbc7207 |
19-May-2015 |
Glenn Kasten <gkasten@google.com> |
Explain the void send() throws IOException Bug: 21044677 Change-Id: If6b51058813aff3780821db7c619004622df64ca
idiReceiver.java
|
a32d5c8472bd5aad855165edf6d7253e35e42393 |
19-May-2015 |
Glenn Kasten <gkasten@google.com> |
send without timestamp is not equivalent to send now Change-Id: I68decbd005932c762ccd376ee80b52ac9884fba4
idiReceiver.java
|
7eb441cb4abcd3230a4d243469c5044f49e707c8 |
12-May-2015 |
Mike Lockwood <lockwood@google.com> |
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
MidiManager.aidl
idiDevice.java
idiDeviceInfo.java
idiDeviceStatus.java
idiInputPort.java
idiManager.java
idiOutputPort.java
idiReceiver.java
idiSender.java
ackage.html
|
fd5637fcce18adf44421389bf97a9da546f08940 |
07-May-2015 |
Mike Lockwood <lockwood@google.com> |
MidiManager: Improve output of "dumpsys midi" - Include each device's port status from MidiDeviceStatus - MidiDeviceInfo.toString() now outputs all the names and values in the properties Bundle Change-Id: Ic9329153e4ae4d5619e274d27a420943473377e5
idiDeviceInfo.java
idiDeviceStatus.java
|
2757fed2d612b7d7331e8ad9067df24b154ff8d7 |
30-Apr-2015 |
Glenn Kasten <gkasten@google.com> |
Merge "Clarifying which receiver method to call." into mnc-dev
|
d8f6363a5d9c72f1ed22f79bc16563123dff4803 |
30-Apr-2015 |
Peter Brinkmann <brinkmann@google.com> |
Clarifying which receiver method to call. Change-Id: Iaf89e1ff27e257fd25c54e189e8fcd1b10e8edfc
idiReceiver.java
|
02868b1625f0b1fa6ce1fb2529186f155904dd03 |
29-Apr-2015 |
Mike Lockwood <lockwood@google.com> |
MidiDeviceInfo: Add version string property For USB devices, this is populated with the USB device version string. Change-Id: Ia9286d5f41783e4e960a9c724bf6b85b6599fe12
idiDeviceInfo.java
|
bed238fcea7c5dc5f0ad6f14d1b585b0947a4cdc |
13-Apr-2015 |
Glenn Kasten <gkasten@google.com> |
Merge "Android MIDI User Guide draft of 4/10/2015"
|
1b83e3f75e3bd96ed564ec4b95a8d69caabc0f5f |
13-Apr-2015 |
Phil Burk <philburk@google.com> |
Android MIDI User Guide draft of 4/10/2015 Change-Id: I80db2c29af581ff3d9d6bd87f5f79c1fde5c3055 Signed-off-by: Glenn Kasten <gkasten@google.com>
ackage.html
|
9189f5f0252e1ef3e7d00978ef12e964565dd6f1 |
10-Apr-2015 |
Mike Lockwood <lockwood@google.com> |
Add MidiDeviceInfo.getPortList() This replaces MidiDeviceInfo.getInputPortInfo() and getOutputPortInfo() Change-Id: I0a9bc7c34a172a072e86718d465967c6c618fb3b
idiDeviceInfo.java
idiDeviceService.java
|
f0a41d1c591193fbe02c9ddbaf24c79af4da9972 |
24-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
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
MidiDeviceServer.aidl
idiDeviceServer.java
idiManager.java
|
b6f50d357bd3d4d296be6bb047f5ce93a79cbca1 |
08-Apr-2015 |
Mike Lockwood <lockwood@google.com> |
Add support for flushing MIDI all scheduled MIDI events on a port Change-Id: I39d7862540d4d4b9e2df1265f9dd253541adb4c2
idiInputPort.java
idiOutputPort.java
idiPortImpl.java
idiReceiver.java
|
9db9326ad47279709a0f7989addaf4b45221b6b9 |
04-Apr-2015 |
Mike Lockwood <lockwood@google.com> |
Add MidiManager and MidiDevice classes to public API. Somehow we missed these two when we made the rest of the MIDI Manager public Change-Id: I08e94762e155aa6a7f98bd05b363aee5e4744061
idiDevice.java
idiManager.java
|
d1b16fe2fb7527eee214898263ec4d6dabbfb0b4 |
30-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
Move MIDI utilities for internal use to com.android.internal.midi package Change-Id: I7393ae1d4bca61667fb6ee809a7aa22c5c48de56
idiDeviceServer.java
idiDispatcher.java
idiOutputPort.java
|
3f5acc6d48337da1609f672d4385b1f170ec7f3e |
17-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
MidiDeviceInfo: Add constants for future Bluetooth MIDI support Change-Id: Id89b691e923b9de8e5dce58527ba38e28e8e1d36
idiDeviceInfo.java
|
0caf689ab4a47ad6741a3d1021743d4cb4281f6a |
17-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
MidiDeviceInfo: Fix NPE for devices with no port names Change-Id: I703709f84b6b1951b67918c9762bb84a142d855c
idiDeviceInfo.java
|
81b9f7d325a552c54e793b51f571ae3d65b26e94 |
11-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
Add MidiManager to public API Also made some small API changes based on feedback from the lint tool. Change-Id: Ibcf1e9107d86d3a364f811ce47a13aa0da653366
idiDeviceInfo.java
idiDeviceServer.java
idiDeviceService.java
idiDeviceStatus.java
idiDispatcher.java
idiInputPort.java
idiOutputPort.java
idiReceiver.java
idiSender.java
|
f2cd8024028f602a5e4c27f3d9222e872e4e84f2 |
11-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
MidiDeviceInfo meta-data improvements: Add property for user visible device name Add names for input and output ports Rename "model" to "product" to match USB specification. Change-Id: I8dc50da935f26825ffc73de456d34e7933aa987c
MidiManager.aidl
idiDeviceInfo.java
idiManager.java
|
5ff9e2a1719f78cddc7a23d6572ab15ab595dafd |
09-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
MidiManager: Add MIDI device status notifications MidiManager clients can be notified of device status changes via a new MidiDeviceStatus object. MidiDeviceStatus contains the busy status of the device's input ports and number of connections to the output ports. MidiDeviceService now has an optional callback for receiving notifications when its ports change as well. Change-Id: I1600df4464d82724bc026c27b9633ae9c412d3f0
MidiDeviceListener.aidl
MidiManager.aidl
idiDeviceServer.java
idiDeviceService.java
idiDeviceStatus.aidl
idiDeviceStatus.java
idiDispatcher.java
idiManager.java
|
46326e59a0a19367d4158c027d56d4b8440e8d3d |
06-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
MidiDevice: Add support for making direct connections between ports The output port of one device can be connected to the input port of another device using the new MidiDevice.connectPorts() method. This allows an application to direct the output of one device directly to the input port of another without having to copy data from one to another. Change-Id: I4d361c4e0950b9b9516b0c2f0c158677b1aca208
MidiDeviceServer.aidl
idiDevice.java
idiDeviceServer.java
idiInputPort.java
|
0c7342f0153076c88ba8e6a1647999c248787906 |
09-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
Add MidiReceiver.send() and MidiReceiver.getMaxMessageSize() Change-Id: I10d4f5e2400fcaf41f455e56ca25bbc0c781a042
idiDispatcher.java
idiInputPort.java
idiOutputPort.java
idiReceiver.java
|
be215dd57282888b05b234c39bba44cc0a864b8a |
07-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
MIDI Manager changes: Add CloseGuard support to MidiDevice and MidiDeviceServer Make MidiDevice.close() thread safe Make non-subclassable API classes final Other misc cleanup Change-Id: I7a5d31b06b8c2403cfbc5597c5c1395f0ac90194
idiDevice.java
idiDeviceInfo.java
idiDeviceServer.java
idiDispatcher.java
idiInputPort.java
idiManager.java
idiOutputPort.java
|
4a3d7ed45d98ad2fe900221755845b87f26b554a |
06-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
MIDI Manager: Add explicit close mechanism for input and output ports Relying on errors from closing the file descriptor is not reliable and was resulting in file descriptor leaks in device servers. Change-Id: Ib5cc22dba493eae6608a12cc6d4178d8390da77b
MidiDeviceServer.aidl
idiDevice.java
idiDeviceServer.java
idiInputPort.java
idiOutputPort.java
|
eebc98ff18c1ee92dff3fcd505158ea161d552be |
06-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
MidiDeviceService: Add getDeviceInfo() accessor method so service implementations can access their own device info object. Change-Id: I93e0c449e72d76568d7b4c9f7f7db00a846b5a33
idiDeviceService.java
idiPortImpl.java
|
35110d1ed72ee7fe687125831b4dd91b87b515ee |
05-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
Add MidiDevice.close() method so we can clean up our ServiceConnection Change-Id: I65cd4cfd940b02709daeffef6dab814305b8a6b0
idiDevice.java
idiManager.java
|
3b7664589be22ddad34b72e11ced937d48660ebb |
04-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
Make MidiSender and MidiReceiver abstract classes, rename MidiReceiver.post() to receive() Change-Id: I1cef3bd48ca0acf2968c9de223f78445f3434404
idiDeviceServer.java
idiDispatcher.java
idiInputPort.java
idiOutputPort.java
idiReceiver.java
idiSender.java
|
20821ecbe81ba52b260ae232096bc2bfb3e92ad0 |
24-Feb-2015 |
Mike Lockwood <lockwood@google.com> |
Eliminate MidiPort base class for MidiInputPort and MidiOutputPort Change-Id: I628c0468ac980eee909add53a4d6e55e9b358603
idiInputPort.java
idiOutputPort.java
idiPort.java
idiPortImpl.java
|
c623ec973b5e8d1fd2ff4162d5de8701a6490121 |
05-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
Merge "MidiManager: Virtual MIDI devices are now implemented as Services"
|
11fd96d6ff25bc1d710448eab545fe09da55a5f5 |
02-Mar-2015 |
Mike Lockwood <lockwood@google.com> |
MidiManager: Virtual MIDI devices are now implemented as Services To implement a virtual MIDI device, include a subclass of MidiDeviceService in your application. This service is identified by an intent filter and meta-data in the application's manifest to allow the MIDI manager to register the virtual device without actually running the application. Instead, the application's MidiDeviceService subclass is started on demand when MIDI manager clients want to open the device. Here is an example of how the MidiDeviceService might be described in the application manifest: <service android:name="VirtualDeviceService"> <intent-filter> <action android:name="android.media.midi.MidiDeviceService" /> </intent-filter> <meta-data android:name="android.media.midi.MidiDeviceService" android:resource="@xml/device_info" /> </service> and the device_info.xml meta-data: <devices> <device manufacturer="Sample Manufacturer" model="Sample Model" private="false"> <input-port name="my input port" /> <output-port name="my output port" /> </device> </devices> (note that the <input-port> and <output-port> names are not currently used, but support for these will be added in a subsequent change) Client's of the virtual device will bind directly to the hosting application's MidiDeviceService subclass. To support this, MidiManager.openDevice() now returns the MidiDevice asynchronously via a callback. This change also adds a utility class called MidiDispatcher, which is a MidiReceiver that dispatches all data it receives to a list of other MidiReceivers. We now use this internally in MidiInputPort and MidiDeviceServer, but developers may use it for other purposes as well. Change-Id: Ic3009f06d56f3d5edbd87de3f0c330b51a1c217d
MidiDeviceListener.aidl
MidiListener.aidl
MidiManager.aidl
idiDeviceInfo.java
idiDeviceServer.java
idiDeviceService.java
idiDispatcher.java
idiManager.java
idiOutputPort.java
|
08c7116ab9cd04ad6dd3c04aa1017237e7f409ac |
28-Feb-2015 |
John Spurlock <jspurlock@google.com> |
Remove unused imports in frameworks/base. Change-Id: I031443de83f93eb57a98863001826671b18f3b17
idiDevice.java
idiManager.java
idiPort.java
|
b673770f7172d4fca9bc05de1f36bc53e93eb247 |
20-Feb-2015 |
Mike Lockwood <lockwood@google.com> |
Add MIDI Manager API tweaks: - Change the package name from android.midi to android.media.midi - Add option for specifying a Handler for DeviceCallback notifications Change-Id: Ia9e9817a651c06299f4e02ee1da3c9666ff64cb9
MidiDeviceServer.aidl
MidiListener.aidl
MidiManager.aidl
idiDevice.java
idiDeviceInfo.aidl
idiDeviceInfo.java
idiDeviceServer.java
idiInputPort.java
idiManager.java
idiOutputPort.java
idiPort.java
idiReceiver.java
idiSender.java
|