Loading media/java/android/media/midi/IMidiDeviceServer.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -31,4 +31,5 @@ interface IMidiDeviceServer void connectPorts(IBinder token, in ParcelFileDescriptor pfd, int outputPortNumber); MidiDeviceInfo getDeviceInfo(); void setDeviceInfo(in MidiDeviceInfo deviceInfo); } media/java/android/media/midi/MidiDeviceServer.java +19 −7 Original line number Diff line number Diff line Loading @@ -269,8 +269,20 @@ public final class MidiDeviceServer implements Closeable { public MidiDeviceInfo getDeviceInfo() { return mDeviceInfo; } @Override public void setDeviceInfo(MidiDeviceInfo deviceInfo) { if (Binder.getCallingUid() != Process.SYSTEM_UID) { throw new SecurityException("setDeviceInfo should only be called by MidiService"); } if (mDeviceInfo != null) { throw new IllegalStateException("setDeviceInfo should only be called once"); } mDeviceInfo = deviceInfo; } }; // Constructor for MidiManager.createDeviceServer() /* package */ MidiDeviceServer(IMidiManager midiManager, MidiReceiver[] inputPortReceivers, int numOutputPorts, Callback callback) { mMidiManager = midiManager; Loading @@ -292,6 +304,13 @@ public final class MidiDeviceServer implements Closeable { mGuard.open("close"); } // Constructor for MidiDeviceService.onCreate() /* package */ MidiDeviceServer(IMidiManager midiManager, MidiReceiver[] inputPortReceivers, MidiDeviceInfo deviceInfo, Callback callback) { this(midiManager, inputPortReceivers, deviceInfo.getOutputPortCount(), callback); mDeviceInfo = deviceInfo; } /* package */ IMidiDeviceServer getBinderInterface() { return mServer; } Loading @@ -300,13 +319,6 @@ public final class MidiDeviceServer implements Closeable { return mServer.asBinder(); } /* package */ void setDeviceInfo(MidiDeviceInfo deviceInfo) { if (mDeviceInfo != null) { throw new IllegalStateException("setDeviceInfo should only be called once"); } mDeviceInfo = deviceInfo; } private void updateDeviceStatus() { // clear calling identity, since we may be in a Binder call from one of our clients long identityToken = Binder.clearCallingIdentity(); Loading media/java/android/media/midi/MidiDeviceService.java +1 −3 Original line number Diff line number Diff line Loading @@ -83,9 +83,7 @@ abstract public class MidiDeviceService extends Service { if (inputPortReceivers == null) { inputPortReceivers = new MidiReceiver[0]; } server = new MidiDeviceServer(mMidiManager, inputPortReceivers, deviceInfo.getOutputPortCount(), mCallback); server.setDeviceInfo(deviceInfo); server = new MidiDeviceServer(mMidiManager, inputPortReceivers, deviceInfo, mCallback); } catch (RemoteException e) { Log.e(TAG, "RemoteException in IMidiManager.getServiceDeviceInfo"); server = null; Loading media/java/android/media/midi/MidiManager.java +0 −1 Original line number Diff line number Diff line Loading @@ -318,7 +318,6 @@ public final class MidiManager { Log.e(TAG, "registerVirtualDevice failed"); return null; } server.setDeviceInfo(deviceInfo); return server; } catch (RemoteException e) { Log.e(TAG, "RemoteException in createVirtualDevice"); Loading services/midi/java/com/android/server/midi/MidiService.java +9 −0 Original line number Diff line number Diff line Loading @@ -741,6 +741,15 @@ public class MidiService extends IMidiManager.Stub { MidiDeviceInfo deviceInfo = new MidiDeviceInfo(type, id, numInputPorts, numOutputPorts, inputPortNames, outputPortNames, properties, isPrivate); if (server != null) { try { server.setDeviceInfo(deviceInfo); } catch (RemoteException e) { Log.e(TAG, "RemoteException in setDeviceInfo()"); return null; } } Device device = null; BluetoothDevice bluetoothDevice = null; if (type == MidiDeviceInfo.TYPE_BLUETOOTH) { Loading Loading
media/java/android/media/midi/IMidiDeviceServer.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -31,4 +31,5 @@ interface IMidiDeviceServer void connectPorts(IBinder token, in ParcelFileDescriptor pfd, int outputPortNumber); MidiDeviceInfo getDeviceInfo(); void setDeviceInfo(in MidiDeviceInfo deviceInfo); }
media/java/android/media/midi/MidiDeviceServer.java +19 −7 Original line number Diff line number Diff line Loading @@ -269,8 +269,20 @@ public final class MidiDeviceServer implements Closeable { public MidiDeviceInfo getDeviceInfo() { return mDeviceInfo; } @Override public void setDeviceInfo(MidiDeviceInfo deviceInfo) { if (Binder.getCallingUid() != Process.SYSTEM_UID) { throw new SecurityException("setDeviceInfo should only be called by MidiService"); } if (mDeviceInfo != null) { throw new IllegalStateException("setDeviceInfo should only be called once"); } mDeviceInfo = deviceInfo; } }; // Constructor for MidiManager.createDeviceServer() /* package */ MidiDeviceServer(IMidiManager midiManager, MidiReceiver[] inputPortReceivers, int numOutputPorts, Callback callback) { mMidiManager = midiManager; Loading @@ -292,6 +304,13 @@ public final class MidiDeviceServer implements Closeable { mGuard.open("close"); } // Constructor for MidiDeviceService.onCreate() /* package */ MidiDeviceServer(IMidiManager midiManager, MidiReceiver[] inputPortReceivers, MidiDeviceInfo deviceInfo, Callback callback) { this(midiManager, inputPortReceivers, deviceInfo.getOutputPortCount(), callback); mDeviceInfo = deviceInfo; } /* package */ IMidiDeviceServer getBinderInterface() { return mServer; } Loading @@ -300,13 +319,6 @@ public final class MidiDeviceServer implements Closeable { return mServer.asBinder(); } /* package */ void setDeviceInfo(MidiDeviceInfo deviceInfo) { if (mDeviceInfo != null) { throw new IllegalStateException("setDeviceInfo should only be called once"); } mDeviceInfo = deviceInfo; } private void updateDeviceStatus() { // clear calling identity, since we may be in a Binder call from one of our clients long identityToken = Binder.clearCallingIdentity(); Loading
media/java/android/media/midi/MidiDeviceService.java +1 −3 Original line number Diff line number Diff line Loading @@ -83,9 +83,7 @@ abstract public class MidiDeviceService extends Service { if (inputPortReceivers == null) { inputPortReceivers = new MidiReceiver[0]; } server = new MidiDeviceServer(mMidiManager, inputPortReceivers, deviceInfo.getOutputPortCount(), mCallback); server.setDeviceInfo(deviceInfo); server = new MidiDeviceServer(mMidiManager, inputPortReceivers, deviceInfo, mCallback); } catch (RemoteException e) { Log.e(TAG, "RemoteException in IMidiManager.getServiceDeviceInfo"); server = null; Loading
media/java/android/media/midi/MidiManager.java +0 −1 Original line number Diff line number Diff line Loading @@ -318,7 +318,6 @@ public final class MidiManager { Log.e(TAG, "registerVirtualDevice failed"); return null; } server.setDeviceInfo(deviceInfo); return server; } catch (RemoteException e) { Log.e(TAG, "RemoteException in createVirtualDevice"); Loading
services/midi/java/com/android/server/midi/MidiService.java +9 −0 Original line number Diff line number Diff line Loading @@ -741,6 +741,15 @@ public class MidiService extends IMidiManager.Stub { MidiDeviceInfo deviceInfo = new MidiDeviceInfo(type, id, numInputPorts, numOutputPorts, inputPortNames, outputPortNames, properties, isPrivate); if (server != null) { try { server.setDeviceInfo(deviceInfo); } catch (RemoteException e) { Log.e(TAG, "RemoteException in setDeviceInfo()"); return null; } } Device device = null; BluetoothDevice bluetoothDevice = null; if (type == MidiDeviceInfo.TYPE_BLUETOOTH) { Loading